]> git.puffer.fish Git - matthieu/frr.git/commit
bgpd: unregister VNI learning from zebra on default instance delete
authorAnuradha Karuppiah <anuradhak@cumulusnetworks.com>
Mon, 20 Aug 2018 14:51:34 +0000 (07:51 -0700)
committerAnuradha Karuppiah <anuradhak@cumulusnetworks.com>
Mon, 20 Aug 2018 14:51:34 +0000 (07:51 -0700)
commitde6058ab915c50cdc7b19b544b519c4b9b4543d6
tree7ad9ed676d901f52be8c0b2f8b6296a7cb055fbb
parente0909ff51f20af75ea15993f9c1d7f054018cf98
bgpd: unregister VNI learning from zebra on default instance delete

The code for this was always there but was not kicking in because of an
incorrect dependency on is_evpn_enabled. This API attempts to locate the
default instance from bgp_master's instance list. Only the instance
currently being deleted has already been removed from the instance list
by the time bgp_delete->bgp_zebra_instance_deregister is executed.

Symptom of this bug used to show up when a default instance is deleted
and created again. In that case bgp_zebra_instance_register would not be
effective as zebra ignores the register as dup (dereg didn't happen in the
first place) so bgpd wouldn't reload already configured L2-VNIs.
root@cel-sea-03:~# net show bgp l2vpn evpn vni |grep 1000
* 1000       L2   169.253.0.11:9   6646:1000  6646:1000 vrf1
root@cel-sea-03:~# grep "router bgp"  /etc/frr/frr.conf
router bgp 6646
root@cel-sea-03:~# sed -i 's/6646/6656/' /etc/frr/frr.conf
root@cel-sea-03:~# grep "router bgp"  /etc/frr/frr.conf
router bgp 6656
root@cel-sea-03:~# systemctl reload frr
root@cel-sea-03:~# net show bgp l2vpn evpn vni |grep 1000
root@cel-sea-03:~#

Fix simply changes the order of dereg to make
bgp_zebra_instance_deregister actually happen (by doing it before the
default instance is removed from the master list).

Ticket: CM-21566

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
bgpd/bgpd.c