zebra: Use the routes vrf not the vrf of the nexthop for route-map application

When a end operator is doing cross vrf imports in bgp:

router bgp 3239 vrf FOO
  address-family ipv4 uni
    import vrf BAR
!

and zebra has this configuration:

vrf FOO
  ip protocol bgp route-map EVA
!

The current code in zebra_nhg.c was looking up the vrf of the
nexthop and attempting to apply the ip protocol route-map.

For most people the nexthop vrf and the re vrf are one and the
same so they never see a problem.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit 45dafca86c)
This commit is contained in:
Donald Sharp 2022-02-28 13:08:01 -05:00 committed by mergify-bot
parent efcfceb05c
commit 456fc8cf22

View File

@ -2475,7 +2475,7 @@ skip_check:
memset(&nexthop->rmap_src.ipv6, 0, sizeof(union g_addr));
zvrf = zebra_vrf_lookup_by_id(nexthop->vrf_id);
zvrf = zebra_vrf_lookup_by_id(re->vrf_id);
if (!zvrf) {
if (IS_ZEBRA_DEBUG_RIB_DETAILED)
zlog_debug(" %s: zvrf is NULL", __func__);