Go to file
radhika 2376c3f225 bfd: Fix for missing BFD client regs/deregs from quagga clients
Ticket: CM-11256
Signed-off-by: Radhika Mahankali <radhika@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by: Kanna Rajagopal <kanna@cumulusnetworks.com>
Testing: Unit, PTM smoke, OSPF smoke, BGP Smoke

Issue:
BFD client registrations are not being sent to PTM from BGP/OSPF clients when the quagga clients have no BFD configuration. This can create stale BFD sessions in PTM when BFD is removed from quagga configuration before quagga is restarted.

BFD client de-registrations from BGP/OSPF also go missing sometimes when quagga is restarted. This also will cause stale BFD sessions in PTM.

Root Cause:
BFD client registrations were being sent at the time of BGP/OSPF daemon initialization. But, they were being sent to zebra before the socket connection between zebra and BGP/OSPF was established. This causes the missing BFD client registrations.

BFD client de-registrations are sent from zebra when zebra detects socket close for BGP/OSPF daemons. Based on the timing, the de-registrations may happen after socket between PTM and zebra is closed. This will result in missing de-registrations.

Fix:
Moved sending of BFD client registration messages to zebra connected callback to make sure that they are sent after the BGP/OSPF daemons connect with zebra.

Added BFD client de-registrations for BGP/OSPF to be also sent when zebra daemon gets restart signal. They are sent from the signal handler only if it was not already handled in zebra client socket close callback.
2016-06-21 03:39:58 -07:00
bgpd bfd: Fix for missing BFD client regs/deregs from quagga clients 2016-06-21 03:39:58 -07:00
cumulus cumulus: Changes to make this code work for redhat 2016-06-15 07:36:41 -04:00
debian debian: Fix rules file 2016-06-15 12:42:35 -04:00
doc doc: Add quagga.1 to the distribution 2016-06-14 15:17:03 -04:00
fpm fpm: Add public header for Forwarding Plane Manager 2012-11-30 21:41:17 +01:00
init build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
isisd quagga: Fixup startup to allow consistency between sysV and systemd 2016-04-27 16:04:48 -04:00
lib configure: Auto pick-up the correct json env 2016-06-15 07:36:41 -04:00
m4 build: fix "pragma weak" mixups 2013-02-09 03:00:12 +01:00
ospf6d bfd: Fix for missing BFD client regs/deregs from quagga clients 2016-06-21 03:39:58 -07:00
ospfclient Quagga: Fixup some compile warnings 2015-11-23 13:31:11 -08:00
ospfd bfd: Fix for missing BFD client regs/deregs from quagga clients 2016-06-21 03:39:58 -07:00
pkgsrc build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
ports build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
redhat redhat: Fix runtime dependency and quaggavty group 2016-06-15 07:36:41 -04:00
ripd lib: refactor connected_lookup_prefix 2016-05-12 10:03:44 -04:00
ripngd quagga: Fixup startup to allow consistency between sysV and systemd 2016-04-27 16:04:48 -04:00
solaris build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
tests quagga: "set community x:y" needs bounds checking 2016-04-14 18:16:43 +00:00
tools quagga: Modify code to build properly in tools and cumulus 2016-06-15 07:36:41 -04:00
vtysh vtysh: Allow file read in to continue in more cases 2016-04-15 15:13:13 -04:00
watchquagga quagga: Fixup startup to allow consistency between sysV and systemd 2016-04-27 16:04:48 -04:00
zebra bfd: Fix for missing BFD client regs/deregs from quagga clients 2016-06-21 03:39:58 -07:00
.gitignore git: add (generated) cscope files to .gitignore 2015-09-22 11:54:09 -07:00
AUTHORS Initial revision 2002-12-13 20:15:29 +00:00
bootstrap.sh autoreconf -i 2007-02-06 19:28:28 +00:00
buildtest.sh quagga: remove babel 2016-02-11 08:55:24 -08:00
ChangeLog [trivia] Make 'make dist' happy about ChangeLog expunge 2008-08-23 08:36:42 +01:00
configure.ac quagga: Allow compile time determination of v6 RR semantics 2016-06-20 09:06:07 -04:00
COPYING *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
COPYING.LIB *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
HACKING.pending HACKING.pending: Add Quagga-RE details 2012-03-02 11:56:38 +00:00
HACKING.tex HACKING.tex: Change to a LaTeX version of HACKING 2012-03-08 16:14:13 +00:00
INSTALL.quagga.txt build: improve backtrace support/detection 2014-04-01 17:20:44 +02:00
Makefile.am quagga: Modify code to build properly in tools and cumulus 2016-06-15 07:36:41 -04:00
NEWS doc: update NEWS for 0.99.23 changes 2014-06-24 07:12:01 +02:00
README 2004-11-12 Paul Jakma <paul@dishone.st> 2004-11-12 10:30:21 +00:00
README.NetBSD Omit --opaque-lsa from build (now default). 2011-06-28 15:05:05 -04:00
REPORTING-BUGS Update for git and emphasize asking for good reports. 2010-05-05 07:51:26 -04:00
SERVICES 2607/tcp is already used by ospfapi. 2003-12-23 10:42:45 +00:00
stamp-h.in Initial revision 2002-12-13 20:15:29 +00:00
TODO doc: update TODO for ospf6d work & bgp multipath 2013-04-16 11:56:11 +02:00
update-autotools * README.NetBSD: use update-autotools instead of autoreconf 2007-02-02 16:52:38 +00:00

Quagga is free software that manages various IPv4 and IPv6 routing
protocols.

Currently Quagga supports BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1,
RIPv2, and RIPng as well as very early support for IS-IS.
  
See the file INSTALL.quagga.txt for building and installation instructions.
  
See the file REPORTING-BUGS to report bugs.
  
Quagga is free software. See the file COPYING for copying conditions.