summaryrefslogtreecommitdiff
path: root/ospf6d/ospf6_main.c
diff options
context:
space:
mode:
authorradhika <radhika@cumulusnetworks.com>2016-05-08 20:11:18 -0700
committerradhika <radhika@cumulusnetworks.com>2016-05-08 20:11:18 -0700
commit567b877d7ff2c04ccf62bca75338cec7a560f184 (patch)
tree216b7fa0e0cb090fd081c5810b2be507acd0ff59 /ospf6d/ospf6_main.c
parent021530c1e3e4f67a313e4c34536bd513809e2054 (diff)
zebra - BFD client de-registration support
CM-10680 Issue: When BGP daemon is stopped, all the BGP BFD sessions are not getting deleted from PTM. Root cause: BGP daemon stop causes BFD de-register message to be sent for every peer on which BFD is enabled. But, all the de-register messages from bgpd to zebra are not processed before the socket close. This results in some stale BGP BFD sessions. Fix: Support for client de-register message has been added in PTM/BFD. Changes in Quagga to support BFD client de-registrations: − The BFD clients de-registration is sent directly from zebra daemon when zebra client (bgpd, ospfd and ospf6d) socket close is detected. − Introduced a BFD flag for the zebra clients to prevent BFD de-registration messages from being sent to zebra daemon when the client is shutting down. This reduces the BFD messaging. CM-10540 Issue: Invalid ptm status “fail” instead of “n/a” being displayed for VRF interfaces. Root cause: ptm status is not being initialized to “unknown” status when VRF interface is added or changed. The uninitialized value is ‘0’ which is the value for “fail” Fix: Initialized the ptm status to the correct value. Signed-off-by: Radhika Mahankali <radhika@cumulusnetworks.com> Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com> Reviewed-by: Kanna Rajagopal <kanna@cumulusnetworks.com> Ticket: CM-10680, CM-10540 Reviewed By: CCR-4653 Testing Done: PTM smoke, BGP smoke and ptmd_test.py:TestMultipleAddrsIntfOspfBgp
Diffstat (limited to 'ospf6d/ospf6_main.c')
-rw-r--r--ospf6d/ospf6_main.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/ospf6d/ospf6_main.c b/ospf6d/ospf6_main.c
index 9a73ccc4b8..52dc6677f0 100644
--- a/ospf6d/ospf6_main.c
+++ b/ospf6d/ospf6_main.c
@@ -37,6 +37,7 @@
#include "sigevent.h"
#include "zclient.h"
#include "vrf.h"
+#include "bfd.h"
#include "ospf6d.h"
#include "ospf6_top.h"
@@ -144,6 +145,8 @@ ospf6_exit (int status)
if (ospf6)
ospf6_delete (ospf6);
+ bfd_gbl_exit();
+
for (ALL_LIST_ELEMENTS_RO (vrf_iflist (VRF_DEFAULT), node, ifp))
if (ifp->info != NULL)
ospf6_interface_delete(ifp->info);