]> git.proxmox.com Git - mirror_frr.git/commit - bgpd/bgp_zebra.c
bgpd: Allow next hop recursion in zebra if any multipath is not eBGP
authorJoanne Mikkelson <jmmikkel@arista.com>
Wed, 17 Mar 2021 22:30:14 +0000 (15:30 -0700)
committerJoanne Mikkelson <jmmikkel@arista.com>
Tue, 23 Mar 2021 15:59:33 +0000 (08:59 -0700)
commit1a9cb083b755f20b63c2503e1ee81a2b723661d1
treef5d629b40f2bd7c2a35b2bd3a8f585214f06d547
parentee88563ac2ead5ca51200e611d0c4b0ef1b70554
bgpd: Allow next hop recursion in zebra if any multipath is not eBGP

When "bgp bestpath peer-type multipath-relax" is enabled, multipaths
with both eBGP and iBGP learned routes may exist. It is not desirable
for the iBGP next hops to be discarded from the FIB because they are not
directly connected. When publishing a nexthop group to zebra, the
ZEBRA_FLAG_ALLOW_RECURSION flag is normally not set when the best path
is eBGP; when "bgp bestpath aspath multipath-relax" is configured, the
flag will now be set if any paths are from iBGP peers. This leaves
all-eBGP multipaths still requiring nexthops over connected routes.

Signed-off-by: Joanne Mikkelson <jmmikkel@arista.com>
bgpd/bgp_zebra.c
tests/topotests/bgp_peer-type_multipath-relax/test_bgp_peer-type_multipath-relax.py