Go to file
G. Paul Ziemba f46d45c17f bgpd: don't nexthop-track twice-leaked routes that came from zebra
Issue 2381: interface based routes not marked "up" when they originate
in zebra, redistributed to bgp vrf, then imported to vpn and then
imported by another vrf.

Routes that are redistributed into BGP from zebra should not get
nexthop tracking (the assumption is that the originating protocol
is responsible to export or withdraw the route according to its own
notion of nexthop status).

The vpn-vrf route-leaking code checks the source route sub_type to
decide whether to use nexthop tracking on the resulting leaked route.

A route that is redistributed from zebra into bgp will have
sub_type==BGP_ROUTE_REDISTRIBUTE. If it is leaked to the vpn RIB,
the resulting vpn RIB route will have sub_type==BGP_ROUTE_IMPORTED.
If THAT vpn route is leaked to another vrf, the original code will
examine only the leak-source route sub_type and, since it is
not BGP_ROUTE_REDISTRIBUTE, will wrongly try to use nexthop tracking
on the new route in the final vrf.

This change modifies the leak function to track back up the
parent links to the ultimate parent of the leak source route
and look at that route's sub_type instead.

Signed-off-by: G. Paul Ziemba <paulz@labn.net>
2018-06-24 13:04:05 -07:00
alpine alpine: add unit tests to build 2018-06-14 10:27:24 -07:00
babeld Merge pull request #2486 from pacovn/cppcheck_fmt_validation 2018-06-18 15:23:49 -04:00
bgpd bgpd: don't nexthop-track twice-leaked routes that came from zebra 2018-06-24 13:04:05 -07:00
debianpkg debianpkg: Add additional lintian override for Ubuntu 18.04 2018-06-12 12:06:00 -07:00
doc Merge pull request #2449 from donaldsharp/lib_delayed_read 2018-06-22 13:13:05 -04:00
docker alpine packaging: use a more standard packaging format 2018-04-09 15:34:50 -07:00
eigrpd eigrpd: null check (Coverity 1455334 and 4 alike) 2018-06-21 14:02:33 +02:00
fpm build: clean up BUILT_SOURCES 2017-08-04 11:13:55 +02:00
gdb gdb: Add a directory of files with gdb macros 2016-05-26 15:33:30 +00:00
include include: add netlink.h to our build system 2018-06-21 08:07:30 -04:00
init build: delete .cvsignore files 2011-12-13 14:27:01 +04:00
isisd Merge pull request #2501 from pacovn/infer_unused1 2018-06-21 15:12:33 -04:00
ldpd Merge pull request #2449 from donaldsharp/lib_delayed_read 2018-06-22 13:13:05 -04:00
lib Merge pull request #2520 from donaldsharp/privs_smivs 2018-06-22 14:19:13 -05:00
m4 build: non-recursive auxiliary directories 2017-07-31 23:03:30 +02:00
nhrpd nhrpd: array limit check (cppcheck) 2018-06-18 18:13:41 +02:00
ospf6d Merge pull request #2502 from pacovn/Coverity_1221459_Use_after_free 2018-06-21 14:38:47 -04:00
ospfclient *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
ospfd Merge pull request #2501 from pacovn/infer_unused1 2018-06-21 15:12:33 -04:00
pbrd pbrd: add logging messages when out of table id's 2018-06-13 20:00:58 +00:00
pimd Merge pull request #2501 from pacovn/infer_unused1 2018-06-21 15:12:33 -04:00
pkgsrc *: Remove cvs control points 2017-12-05 17:28:12 -05:00
ports pimd: merge pimd as of 2015-01-19 2016-05-25 20:38:32 -04:00
python lib, python: DEFPY_ATTR, DEFPY_HIDDEN 2018-04-10 12:19:03 -04:00
qpb *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
redhat redhat: fix else cases in spec file 2018-06-19 09:57:52 +02:00
ripd ripd: Intentionally ignore return from rip_send_packet 2018-06-05 10:42:05 -04:00
ripngd *: remove -r from daemons except zebra 2018-05-21 19:09:49 +00:00
sharpd sharpd: Does not need any special priv's 2018-06-21 11:28:16 -04:00
snapcraft snapcraft: Add PBR daemon to snap package 2018-04-30 18:53:18 -07:00
solaris gitignore: update references to FRR 2017-07-12 11:55:04 -05:00
tests Merge pull request #2408 from ajones-rvbd/ajones-issue-2403 2018-06-21 14:43:16 -04:00
tools Merge pull request #2505 from pacovn/Coverity_1143220_Argument_cannot_be_negative 2018-06-21 15:02:31 -04:00
vtysh Merge pull request #2512 from pacovn/Coverity_1399200_Unchecked_return_value_from_library 2018-06-22 14:11:09 -04:00
watchfrr *: use C99 standard fixed-width integer types 2018-03-27 15:13:34 -04:00
zebra Merge pull request #2510 from donaldsharp/extended_ack 2018-06-21 12:16:53 -03:00
.clang-format ospfd: LSDB_LOOP treat it as a loop. 2018-01-17 13:29:58 -05:00
.dir-locals.el .dir-locals.el: show trailing whitespace 2017-11-07 12:05:09 -05:00
.dockerignore alpine packaging: build packages and base image directly from git 2018-04-04 10:05:44 -07:00
.gitignore *: globally ignore clippy-generated source 2018-03-09 17:52:15 -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 config: switch a few references to say FRR 2017-07-12 11:25:33 -05:00
ChangeLog Rename: freerangerouting --> frrouting 2017-03-30 14:24:05 -04:00
common.am *: disable all sanitizers for clippy build 2018-06-08 17:22:13 +00:00
configure.ac *: disable all sanitizers for clippy build 2018-06-08 17:22:13 +00:00
COPYING *: make consistent & update GPLv2 file headers 2017-05-15 16:37:41 +02:00
COPYING-LGPLv2.1 build: remove LGPL v2.0, add LGPL v2.1 2016-11-15 17:19:38 +09:00
defaults.h *: reindent 2017-07-17 14:04:07 +02:00
Makefile.am *: disable all sanitizers for clippy build 2018-06-08 17:22:13 +00:00
NEWS release: 0.99.24 2016-06-03 15:56:44 -04:00
README frr: fix typo in README 2018-05-14 11:06:27 -04:00
stamp-h.in Initial revision 2002-12-13 20:15:29 +00:00

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

Currently FRRouting supports BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1, RIPv2, RIPng,
IS-IS, PIM-SM/MSDP, LDP and Babel as well as very early support for EIGRP and
NHRP.

See doc/user/bugs.rst for information on how to report bugs.

See doc/developer/workflow.rst for information on contributing.

See the file COPYING for copying conditions.

Public email discussion can be found at https://lists.frrouting.org/listinfo

Our public slack channel is at https://frrouting.slack.com