]> git.puffer.fish Git - matthieu/frr.git/commit
zebra: nhg resolution handler for d-vni
authorStephen Worley <sworley@nvidia.com>
Mon, 5 Apr 2021 21:16:38 +0000 (17:16 -0400)
committerStephen Worley <sworley@nvidia.com>
Mon, 13 Feb 2023 23:12:05 +0000 (18:12 -0500)
commitb991a37262539cda53b6828f1ce993b74f1f9817
treea588c43d82ac7c838566fb1a07a0507c27c9c634
parentb260197de92914bcabe2c560ce7f05127d242061
zebra: nhg resolution handler for d-vni

Add code in the nhg resolution path for determining if Downstream
VNI is in play. This is the only place in all of zebra where
we should be arbitrarily setting the ifindex/labels since
this is where new nhgs are created/destroyed. If something
changes, it must happen here.

We determine if D-VNI is being used by matching the carried
label (VNI) on the nexthop with the vrf VNI from the route.
If they do not match, we can assume this is a D-VNI labeled
nexthop.

We loop through all of the group to see if any are D-VNI. If even
one is, we must treat them all as such. Otherwise, fallback to
traditional EVPN route handling and remove all the labels.

If they are going to be treated as D-VNI we retain the labels and
verify the underlying VRF vxlan interface is a Single VXlan Device.
If it is not, we cannot use D-VNI. If it is, continue on. The VNI label
will encapped via LWTUNNEL and sent to the kernel.

Signed-off-by: Stephen Worley <sworley@nvidia.com>
zebra/zebra_nhg.c