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>
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;
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;