summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_fsm.c2
-rw-r--r--bgpd/bgp_open.c13
-rw-r--r--bgpd/bgp_open.h1
-rw-r--r--bgpd/bgp_vty.c4
-rw-r--r--doc/user/bgp.rst2
5 files changed, 18 insertions, 4 deletions
diff --git a/bgpd/bgp_fsm.c b/bgpd/bgp_fsm.c
index 8664a7582e..01c61615a3 100644
--- a/bgpd/bgp_fsm.c
+++ b/bgpd/bgp_fsm.c
@@ -1304,7 +1304,7 @@ void bgp_fsm_change_status(struct peer *peer, int status)
peer->rtt_keepalive_rcv = 0;
/* Fire backward transition hook if that's the case */
- if (peer->ostatus > peer->status)
+ if (peer->ostatus == Established && peer->status != Established)
hook_call(peer_backward_transition, peer);
/* Save event that caused status change. */
diff --git a/bgpd/bgp_open.c b/bgpd/bgp_open.c
index d1667fac26..c8cb6b77e2 100644
--- a/bgpd/bgp_open.c
+++ b/bgpd/bgp_open.c
@@ -357,6 +357,7 @@ static void bgp_capability_orf_not_support(struct peer *peer, iana_afi_t afi,
}
static const struct message orf_type_str[] = {
+ {ORF_TYPE_RESERVED, "Reserved"},
{ORF_TYPE_PREFIX, "Prefixlist"},
{ORF_TYPE_PREFIX_OLD, "Prefixlist (old)"},
{0}};
@@ -433,6 +434,12 @@ static int bgp_capability_orf_entry(struct peer *peer,
switch (hdr->code) {
case CAPABILITY_CODE_ORF:
switch (type) {
+ case ORF_TYPE_RESERVED:
+ if (bgp_debug_neighbor_events(peer))
+ zlog_debug(
+ "%s Addr-family %d/%d has reserved ORF type, ignoring",
+ peer->host, afi, safi);
+ break;
case ORF_TYPE_PREFIX:
break;
default:
@@ -443,6 +450,12 @@ static int bgp_capability_orf_entry(struct peer *peer,
break;
case CAPABILITY_CODE_ORF_OLD:
switch (type) {
+ case ORF_TYPE_RESERVED:
+ if (bgp_debug_neighbor_events(peer))
+ zlog_debug(
+ "%s Addr-family %d/%d has reserved ORF type, ignoring",
+ peer->host, afi, safi);
+ break;
case ORF_TYPE_PREFIX_OLD:
break;
default:
diff --git a/bgpd/bgp_open.h b/bgpd/bgp_open.h
index 19ddd9bd25..6be94443c8 100644
--- a/bgpd/bgp_open.h
+++ b/bgpd/bgp_open.h
@@ -76,6 +76,7 @@ struct graceful_restart_af {
/* Cooperative Route Filtering Capability. */
/* ORF Type */
+#define ORF_TYPE_RESERVED 0
#define ORF_TYPE_PREFIX 64
#define ORF_TYPE_PREFIX_OLD 128
diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c
index 057f9ffc37..1f66080e93 100644
--- a/bgpd/bgp_vty.c
+++ b/bgpd/bgp_vty.c
@@ -3394,7 +3394,7 @@ DEFUN (no_bgp_graceful_restart_rib_stale_time,
}
DEFUN(bgp_llgr_stalepath_time, bgp_llgr_stalepath_time_cmd,
- "bgp long-lived-graceful-restart stale-time (1-4294967295)",
+ "bgp long-lived-graceful-restart stale-time (1-16777215)",
BGP_STR
"Enable Long-lived Graceful Restart\n"
"Specifies maximum time to wait before purging long-lived stale routes\n"
@@ -3411,7 +3411,7 @@ DEFUN(bgp_llgr_stalepath_time, bgp_llgr_stalepath_time_cmd,
}
DEFUN(no_bgp_llgr_stalepath_time, no_bgp_llgr_stalepath_time_cmd,
- "no bgp long-lived-graceful-restart stale-time [(1-4294967295)]",
+ "no bgp long-lived-graceful-restart stale-time [(1-16777215)]",
NO_STR BGP_STR
"Enable Long-lived Graceful Restart\n"
"Specifies maximum time to wait before purging long-lived stale routes\n"
diff --git a/doc/user/bgp.rst b/doc/user/bgp.rst
index 695530dbfe..7083b19b90 100644
--- a/doc/user/bgp.rst
+++ b/doc/user/bgp.rst
@@ -1052,7 +1052,7 @@ Long-lived Graceful Restart
Currently, only restarter mode is supported. This capability is advertised only
if graceful restart capability is negotiated.
-.. clicmd:: bgp long-lived-graceful-restart stale-time (1-4294967295)
+.. clicmd:: bgp long-lived-graceful-restart stale-time (1-16777215)
Specifies the maximum time to wait before purging long-lived stale routes for
helper routers.