summaryrefslogtreecommitdiff
path: root/bgpd/bgp_errors.c
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@opensourcerouting.org>2021-04-22 11:04:52 +0200
committerDavid Lamparter <equinox@opensourcerouting.org>2022-05-19 12:14:40 +0200
commitbd9fb6f368049bd5f1f6a2b7bc97fbd51c9300cc (patch)
treef172dc19ee071f21387bc212197d4913b99a881a /bgpd/bgp_errors.c
parent18028bdb9b5d0e5cd6081d8df387551c206ce7ab (diff)
bgpd: implement SendHoldTimer
As described by https://www.ietf.org/archive/id/draft-spaghetti-idr-bgp-sendholdtimer-04.html Since this replicates the HoldTime check on the receiver that is already part of the protocol, I do not believe it necessary to wait for IETF progress on this draft. It's just replicating an existing element of the protocol at the other side of the session. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'bgpd/bgp_errors.c')
-rw-r--r--bgpd/bgp_errors.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/bgpd/bgp_errors.c b/bgpd/bgp_errors.c
index 193c96a169..9f87f8ce7a 100644
--- a/bgpd/bgp_errors.c
+++ b/bgpd/bgp_errors.c
@@ -182,6 +182,12 @@ static struct log_ref ferr_bgp_warn[] = {
.suggestion = "Gather log files and open an Issue, restart FRR",
},
{
+ .code = EC_BGP_SENDQ_STUCK_WARN,
+ .title = "BGP has been unable to send anything to a peer for an extended time",
+ .description = "The BGP peer does not seem to be receiving or processing any data received from us, causing updates to be delayed.",
+ .suggestion = "Check connectivity to the peer and that it is not overloaded",
+ },
+ {
.code = END_FERR,
}
};
@@ -481,6 +487,12 @@ static struct log_ref ferr_bgp_err[] = {
.suggestion = "Add a v6 LL address to the outgoing interfaces as per RFC",
},
{
+ .code = EC_BGP_SENDQ_STUCK_PROPER,
+ .title = "BGP is shutting down a peer due to being unable to send anything for an extended time",
+ .description = "No BGP updates were successfully sent to the peer for more than twice the holdtime.",
+ .suggestion = "Check connectivity to the peer and that it is not overloaded",
+ },
+ {
.code = END_FERR,
}
};