zebra: don't use if_lookup_by_index_all_vrf

if_lookup_by_index_all_vrf doesn't work correctly with netns VRF backend
as the same index may be used in multiple netns simultaneously.

In both case where it's used, we know the VRF in which we need to lookup
for the interface.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
This commit is contained in:
Igor Ryzhov 2021-10-14 19:11:15 +03:00
parent dbbcd51697
commit a2df495fdf
2 changed files with 6 additions and 8 deletions

View File

@ -162,7 +162,7 @@ void zebra_l2_map_slave_to_bond(struct zebra_if *zif, vrf_id_t vrf_id)
struct zebra_if *bond_zif;
struct zebra_l2info_bondslave *bond_slave = &zif->bondslave_info;
bond_if = if_lookup_by_index_all_vrf(bond_slave->bond_ifindex);
bond_if = if_lookup_by_index(bond_slave->bond_ifindex, vrf_id);
if (bond_if == bond_slave->bond_if)
return;

View File

@ -4736,13 +4736,11 @@ void zebra_vxlan_macvlan_down(struct interface *ifp)
assert(zif);
link_ifp = zif->link;
if (!link_ifp) {
if (IS_ZEBRA_DEBUG_VXLAN) {
struct interface *ifp;
ifp = if_lookup_by_index_all_vrf(zif->link_ifindex);
zlog_debug("macvlan parent link is not found. Parent index %d ifp %s",
zif->link_ifindex, ifp ? ifp->name : " ");
}
if (IS_ZEBRA_DEBUG_VXLAN)
zlog_debug(
"macvlan parent link is not found. Parent index %d ifp %s",
zif->link_ifindex,
ifindex2ifname(zif->link_ifindex, ifp->vrf_id));
return;
}
link_zif = link_ifp->info;