{
struct zebra_if *if_data;
struct zebra_ns *zns;
+ struct zebra_vrf *zvrf = vrf_info_lookup(ifp->vrf_id);
- if (vrf_is_backend_netns())
- zns = zebra_ns_lookup((ns_id_t)ifp->vrf_id);
+ /* case interface populate before vrf enabled */
+ if (zvrf->zns)
+ zns = zvrf->zns;
else
zns = zebra_ns_lookup(NS_DEFAULT);
if_link_per_ns(zns, ifp);
-
if_data = ifp->info;
assert(if_data);
inet_pton(AF_INET, buf, &ipv4_ll);
ipv6_ll_address_to_mac(address, (u_char *)mac);
+ ns_id = zvrf->zns->ns_id;
- if (!vrf_is_backend_netns())
- ns_id = NS_DEFAULT;
- else
- ns_id = (ns_id_t)(ifp->vrf_id);
/*
* Remove existed arp record for the interface as netlink
* protocol does not have update message types
struct zebra_ns *zns;
struct zebra_vrf *zvrf = vrf_info_lookup(re->vrf_id);
- if (!vrf_is_backend_netns())
- zns = zebra_ns_lookup(NS_DEFAULT);
- else
- zns = (struct zebra_ns *)ns_info_lookup(re->vrf_id);
+ zns = zvrf->zns;
memset(&req, 0, sizeof req - NL_PKT_BUF_SIZE);
bytelen = (family == AF_INET ? 4 : 16);
mroute = mr;
struct zebra_ns *zns;
- if (!vrf_is_backend_netns())
- zns = zebra_ns_lookup(NS_DEFAULT);
- else
- zns = (struct zebra_ns *)ns_info_lookup(zvrf->vrf->vrf_id);
+ zns = zvrf->zns;
memset(&req.n, 0, sizeof(req.n));
memset(&req.ndm, 0, sizeof(req.ndm));
char buf[256];
} req;
u_char dst_mac[6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
+ struct zebra_vrf *zvrf = zebra_vrf_lookup_by_id(ifp->vrf_id);
- if (!vrf_is_backend_netns())
- zns = zebra_ns_lookup(NS_DEFAULT);
- else
- zns = (struct zebra_ns *)ns_info_lookup(ifp->vrf_id);
+ zns = zvrf->zns;
memset(&req.n, 0, sizeof(req.n));
memset(&req.ndm, 0, sizeof(req.ndm));
int vid_present = 0, dst_present = 0;
char vid_buf[20];
char dst_buf[30];
+ struct zebra_vrf *zvrf = zebra_vrf_lookup_by_id(ifp->vrf_id);
- if (!vrf_is_backend_netns())
- zns = zebra_ns_lookup(NS_DEFAULT);
- else
- zns = (struct zebra_ns *)ns_info_lookup(ifp->vrf_id);
+ zns = zvrf->zns;
zif = ifp->info;
if ((br_if = zif->brslave_info.br_if) == NULL) {
zlog_warn("MAC %s on IF %s(%u) - no mapping to bridge",
struct zebra_ns *zns;
char buf[INET6_ADDRSTRLEN];
char buf2[ETHER_ADDR_STRLEN];
+ struct zebra_vrf *zvrf = zebra_vrf_lookup_by_id(ifp->vrf_id);
- if (!vrf_is_backend_netns())
- zns = zebra_ns_lookup(NS_DEFAULT);
- else
- zns = (struct zebra_ns *)ns_info_lookup(ifp->vrf_id);
+ zns = zvrf->zns;
memset(&req.n, 0, sizeof(req.n));
memset(&req.ndm, 0, sizeof(req.ndm));