Go to file
vivek 3e5c6e00cb zebra: Implement recovery for route install failure
Quagga does not have proper recovery for route install failure (in
the kernel). The lack of this may not be a significant issue if the
failure is only an exception. However, the introduction of route
replace presents a new failure scenario which was not there earlier.
Before replace, the update operation involved a delete followed by
add; the failure of add would not leave hanging route entries in the
kernel as they would've got deleted first. With route replace, if
the replace fails, recovery action to delete the route is needed, else
the route remains hanging in the kernel.

In particular, with VRFs and in the presence of ECMP/multipath, a
failure mode exists where Quagga thinks that routes have been cleaned
up and deleted from the kernel but the kernel continues to retain them.
This happens when multiple VRF interfaces are moved from one VRF to
another.

This patch addresses this scenario by implementing proper recovery for
route install failure.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Dinesh Dutt <ddutt@cumulusnetworks.com>
Reviewed-by:   Donald Sharp <sharpd@cumulusnetworks.com>

Ticket: CM-10361
Reviewed By: CCR-4566
Testing Done: bgp-min, ospf-min, bgp-smoke, ospf-smoke and manual

Note: There are some test failures and results aren't consistent across
runs; Daniel has resolved many of these through other fixes.
2016-04-28 22:09:17 -07:00
bgpd quagga: Fixup startup to allow consistency between sysV and systemd 2016-04-27 16:04:48 -04:00
cumulus/etc quagga: remove babel 2016-02-11 08:55:24 -08:00
debian debian: Attempt to fix parrelization 2016-04-27 16:04:59 -04:00
doc doc: Update man page for Quagga systemctl script 2016-03-10 08:38:30 -05: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 quagga: Fixup startup to allow consistency between sysV and systemd 2016-04-27 16:04:48 -04:00
m4 build: fix "pragma weak" mixups 2013-02-09 03:00:12 +01:00
ospf6d quagga: Fixup startup to allow consistency between sysV and systemd 2016-04-27 16:04:48 -04:00
ospfclient Quagga: Fixup some compile warnings 2015-11-23 13:31:11 -08:00
ospfd quagga: Fixup startup to allow consistency between sysV and systemd 2016-04-27 16:04:48 -04: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 quagga: remove babel 2016-02-11 08:55:24 -08:00
ripd quagga: Fixup startup to allow consistency between sysV and systemd 2016-04-27 16:04:48 -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: Fixup startup to allow consistency between sysV and systemd 2016-04-27 16:04:48 -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 zebra: Implement recovery for route install failure 2016-04-28 22:09:17 -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: Check for existence of IFLA_INFO_SLAVE_KIND 2016-04-15 15:07:59 -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: remove babel 2016-02-11 08:55:24 -08: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.