From 1e1398e3daa4c63c18da8e1f49b3c20bac6a3490 Mon Sep 17 00:00:00 2001 From: Stephen Worley Date: Tue, 26 Oct 2021 17:48:49 -0400 Subject: zebra: special sync routes lower seq handling Add some special handling to accept lower seq routes for local known routes when not ready. This aligns the code back a bit more to where it was before to fix seen issues with sync routes. Signed-off-by: Stephen Worley --- zebra/zebra_evpn_neigh.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'zebra/zebra_evpn_neigh.c') diff --git a/zebra/zebra_evpn_neigh.c b/zebra/zebra_evpn_neigh.c index c187b5947f..7b5f1fc240 100644 --- a/zebra/zebra_evpn_neigh.c +++ b/zebra/zebra_evpn_neigh.c @@ -501,20 +501,33 @@ bool zebra_evpn_neigh_is_bgp_seq_ok(struct zebra_evpn *zevpn, { uint32_t tmp_seq; const char *n_type; + bool is_local = false; if (CHECK_FLAG(n->flags, ZEBRA_NEIGH_LOCAL)) { tmp_seq = n->loc_seq; n_type = "local"; + is_local = true; } else { tmp_seq = n->rem_seq; n_type = "remote"; } if (seq < tmp_seq) { + if (is_local && !zebra_evpn_neigh_is_ready_for_bgp(n)) { + if (IS_ZEBRA_DEBUG_EVPN_MH_NEIGH || + IS_ZEBRA_DEBUG_VXLAN) + zlog_debug( + "%s-macip not ready vni %u %s mac %pEA IP %pIA lower seq %u f 0x%x", + sync ? "sync" : "remote", zevpn->vni, + n_type, macaddr, &n->ip, tmp_seq, + n->flags); + return true; + } + /* if the neigh was never advertised to bgp we must accept * whatever sequence number bgp sends */ - if (zebra_vxlan_accept_bgp_seq()) { + if (!is_local && zebra_vxlan_accept_bgp_seq()) { if (IS_ZEBRA_DEBUG_EVPN_MH_NEIGH || IS_ZEBRA_DEBUG_VXLAN) zlog_debug( -- cgit v1.2.3