Go to file
Don Slice 659b52a845 zebra: send ipv4 singlepath delete messages to kernel without nexthop
Problem reported was stale routes left in the kernel in certain cases
when overlapping static routes were used and links were bounced.  The
problem was determined to be an issue where the nexthop was changed
due to recursion as the link is going down, and the next-hop at the
time of deletion doesn't match what was previously installed by the
kernel.  This caused the kernel to reject the deletion and the route
stuck around.

It was pointed out that the kernel doesn't actually require a next-hop
value on the netlink deletion call.  In this fix, we are eliminating
the nexthop for RTM_DELROUTE messages to the kernel in the ipv4 singlepath
case.  This approach could also be valid for other cases but the fix
as is resolved the reported failure case.  More testing should be
performed before similar changes are made for other cases.

Testing included manual testing for the failure condition as well as
complete bgp-smoke and ospf-smoke tests with no new failures.

Ticket: CM-13328
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
Reviewed-by: CCR-5562
2017-01-30 13:40:53 -05:00
bgpd bgpd: timers config is accepted but not recorded in running config 2017-01-30 13:40:53 -05:00
cumulus *: Add source of route as protocol string in ip route pushed into kernel 2017-01-30 13:40:53 -05:00
debian *: Add source of route as protocol string in ip route pushed into kernel 2017-01-30 13:40:53 -05:00
doc Doc: Update URL to freerangerouting.org 2017-01-20 00:34:03 +07:00
fpm Use only the ISC license for .proto files. 2016-09-23 12:12:16 -04:00
gdb gdb: Add a directory of files with gdb macros 2016-05-26 15:33:30 +00:00
init build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
isisd isisd: Add vty_socket cli option to override the compiled-in location for the VTY Socket 2017-01-26 00:41:25 +07:00
ldpd ldpd: add ctl_socket cli option to override the compiled-in location for the control socket 2017-01-26 00:44:42 +07:00
lib lib: Don't change uid/gid if we are already the correct uid/gid 2017-01-26 00:45:05 +07:00
m4 build: fix "pragma weak" mixups 2013-02-09 03:00:12 +01:00
ospf6d ospf6d: Add vty_socket cli option to override the compiled-in location for the VTY Socket 2017-01-26 00:41:32 +07:00
ospfclient lib: migrate to new memory-type handling 2016-09-19 18:35:50 +02:00
ospfd ospfd: Add vty_socket cli option to override the compiled-in location for the VTY Socket and add instance number for multi-instance ospf 2017-01-26 00:41:40 +07:00
pimd pimd: Add vty_socket cli option to override the compiled-in location for the VTY Socket 2017-01-26 00:41:46 +07:00
pkgsrc build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
ports pimd: merge pimd as of 2015-01-19 2016-05-25 20:38:32 -04:00
qpb Protobuf: Update library name to reflect name change to FRR 2017-01-20 02:59:10 +07:00
redhat redhat: Fix spec file changelog to use automatic version for last entry 2017-01-20 00:10:48 +07:00
ripd ripd: Add vty_socket cli option to override the compiled-in location for the VTY Socket 2017-01-26 00:42:06 +07:00
ripngd ripngd: Add vty_socket cli option to override the compiled-in location for the VTY Socket 2017-01-26 00:42:14 +07:00
snapcraft snapcraft: Add snapcraft build and definition files 2017-01-26 04:23:43 +07:00
solaris Solaris Package files: Rename Quagga to FRR 2017-01-20 00:07:02 +07:00
tests tests: fix mis-fixed format string 2017-01-13 11:51:45 +01:00
tools *: Add source of route as protocol string in ip route pushed into kernel 2017-01-30 13:40:53 -05:00
vtysh vtysh: Add --config_dir option to override compiled in location for vtysh.conf and Quagga.conf 2017-01-26 00:44:55 +07:00
watchfrr watchfrr: Rename watchquagga -> watchfrr 2017-01-03 20:13:02 -05:00
zebra zebra: send ipv4 singlepath delete messages to kernel without nexthop 2017-01-30 13:40:53 -05:00
.gitignore FRR: Add various TAGS format files to be ignored by git. 2017-01-30 13:40:53 -05: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 buildtest.sh: Change name from quagga to frr 2017-01-20 00:36:29 +07:00
ChangeLog Doc: Update URL to freerangerouting.org 2017-01-20 00:34:03 +07:00
common.am Protobuf: Update library name to reflect name change to FRR 2017-01-20 02:59:10 +07:00
COMMUNITY.md frr: Modify doc to talk about cli 2016-12-16 15:35:14 -05:00
configure.ac snapcraft: Add snapcraft build and definition files 2017-01-26 04:23:43 +07:00
COPYING *: nuke ^L (page feed) 2014-06-04 06:58:02 +02:00
COPYING-LGPLv2.1 build: remove LGPL v2.0, add LGPL v2.1 2016-11-15 17:19:38 +09:00
Makefile.am snapcraft: Add snapcraft build and definition files 2017-01-26 04:23:43 +07:00
NEWS release: 0.99.24 2016-06-03 15:56:44 -04:00
README build: remove INSTALL.quagga.txt 2016-12-20 18:00:22 +01:00
README.NetBSD build: remove $Format tags 2016-12-20 17:54:03 +01:00
render_md.py build: number sections in COMMUNITY.md HTML 2016-12-05 19:08:00 +01:00
REPORTING-BUGS Doc: Update Bug Reporting instructions to FreeRangeRouting and Github Issue Tracker 2017-01-20 00:31:01 +07:00
SERVICES doc: add the ldpd vty port to the SERVICES file 2016-12-23 13:27:40 +07:00
stamp-h.in Initial revision 2002-12-13 20:15:29 +00: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, RIPng, PIM-SSM and LDP as well as very early support for IS-IS.

See the file REPORTING-BUGS to report bugs.

Quagga is free software. See the file COPYING for copying conditions.