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
3 files changed, 15 insertions, 1 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