]> git.puffer.fish Git - mirror/frr.git/commit
bgpd: imported vpn entries get appropriate distance 12584/head
authorPhilippe Guibert <philippe.guibert@6wind.com>
Mon, 2 Jan 2023 14:11:31 +0000 (15:11 +0100)
committerPhilippe Guibert <philippe.guibert@6wind.com>
Tue, 17 Jan 2023 12:24:33 +0000 (13:24 +0100)
commita04f1c42ebe1c0824962dbaa507491ec9b269f5e
tree9cf977c52f593db7d485c81fcf2644b423c0f687
parent2273550f04a8255ea6df76c0aa8952eb85a01a84
bgpd: imported vpn entries get appropriate distance

MPLS VPN networks can either peer with iBGP or eBGP. When
calculating the distance to send to zebra, the imported prefix
is never sent with distance information, even if the vty
command is used under the ipv4 unicast address family:

router bgp 65505 vrf vrf1
 address-family ipv4 unicast
  distance bgp 26 27 28
  [vpn config]

The observation is that the distance sent to zebra for an
imported prefix is still 20:

[..]
VRF vrf1:
B>  192.168.0.0/24 [20/0] via 2.2.2.2 (vrf default) (recursive), label 20, weight 1, 00:00:12
  *                          via 10.125.0.6, ntfp3 (vrf default), label implicit-null/20, weight 1, 00:00:12

The expectation is that the incoming prefix has to follow the
distance that is configured, or the distance derived from the peer
relationship established by the parent prefix.

In the case, an iBGP relationship is done, and no distance
configuration is done, the below show is expected:

   [..]
   VRF vrf1:
   B*>  192.168.0.0/24 [200/0] via 192.168.0.2, r1-gre0 (vrf default), label 20, weight 1, 00:00:12

In the case an iBGP relationship is done, and distance configuration
is performed as below:
   [..]
   distance bgp 21 201 41
   [..]

Then the below show is expected:

   [..]
   VRF vrf1:
   B*>  192.168.0.0/24 [201/0] via 192.168.0.2, r1-gre0 (vrf default), label 20, weight 1, 00:00:12

To get this behaviour, get the peer origin where the prefix is coming
from.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
bgpd/bgp_route.c
tests/topotests/bgp_vpnv4_gre/r1/bgpd.conf
tests/topotests/bgp_vpnv4_gre/r1/ipv4_routes.json