]> git.proxmox.com Git - mirror_frr.git/commit - zebra/zebra_evpn_mac.c
zebra: accept bgp remote mac-ip update if the higher-seq-local mac is not bgp-ready
authorAnuradha Karuppiah <anuradhak@cumulusnetworks.com>
Thu, 1 Oct 2020 21:19:52 +0000 (14:19 -0700)
committerAnuradha Karuppiah <anuradhak@nvidia.com>
Mon, 21 Dec 2020 16:41:17 +0000 (08:41 -0800)
commit16de1338a9c58c6dcbf98e7064c57708d1e91d68
tree7b1313cb363d2c03a4522e6c0cc1be4ea3f5dc0d
parent6c111b51a1647ca994b061c0adc9c65023ea6814
zebra: accept bgp remote mac-ip update if the higher-seq-local mac is not bgp-ready

If a local-MAC or local-neigh is not active locally it is not sent to BGP.
At this point if BGP rxes a remote route it accepts it and installs in
zebra. Zebra was rejecting BGP's update if it had a higher seq local (inactive)
entry. This would result in bgp and zebra falling out of sync.

In some cases zebra would delete the local-inactive entries in sometime (as
a part of the dplane/kernel garbage collection). This would leave zebra
with missing remote entries (which were still present in bgpd).

This change allows lower-seq BGP updates to overwrite zebra's local entry if
that entry happens to be local-inactive.

Note: This logic was already in use for sync-mac-ip updates. Extended the
same logic to remote-mac-ip updates.

Ticket: CM-31626

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
zebra/zebra_evpn.c
zebra/zebra_evpn_mac.c
zebra/zebra_evpn_neigh.c
zebra/zebra_evpn_neigh.h