summaryrefslogtreecommitdiff
path: root/lib/vrf.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/vrf.c')
-rw-r--r--lib/vrf.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/vrf.c b/lib/vrf.c
index 1fb1b786c7..3ab830c556 100644
--- a/lib/vrf.c
+++ b/lib/vrf.c
@@ -493,9 +493,15 @@ void vrf_init(int (*create)(struct vrf *), int (*enable)(struct vrf *),
"vrf_init: failed to create the default VRF!");
exit(1);
}
- if (vrf_is_backend_netns())
+ if (vrf_is_backend_netns()) {
+ struct ns *ns;
+
strlcpy(default_vrf->data.l.netns_name,
VRF_DEFAULT_NAME, NS_NAMSIZ);
+ ns = ns_lookup(ns_get_default_id());
+ ns->vrf_ctxt = default_vrf;
+ default_vrf->ns_ctxt = ns;
+ }
/* Enable the default VRF. */
if (!vrf_enable(default_vrf)) {
@@ -711,8 +717,6 @@ int vrf_is_mapped_on_netns(struct vrf *vrf)
{
if (!vrf || vrf->data.l.netns_name[0] == '\0')
return 0;
- if (vrf->vrf_id == VRF_DEFAULT)
- return 0;
return 1;
}