]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/vrf.c
lib: set default vrf name at startup
[mirror_frr.git] / lib / vrf.c
index 0bb6a65bf6358c1184cd627cdfd6304e00ff3898..8ae59f50652097f5083a616df0404c230b8a04ee 100644 (file)
--- a/lib/vrf.c
+++ b/lib/vrf.c
@@ -466,7 +466,10 @@ void vrf_init(int (*create)(struct vrf *), int (*enable)(struct vrf *),
              int ((*update)(struct vrf *)))
 {
        struct vrf *default_vrf;
+       char *local_ptr =  (char *)VRF_DEFAULT_NAME;
 
+       if (local_ptr)
+               vrf_default_name = XSTRDUP(MTYPE_VRF, local_ptr);
        /* initialise NS, in case VRF backend if NETNS */
        ns_init();
        if (debug_vrf)
@@ -480,12 +483,15 @@ void vrf_init(int (*create)(struct vrf *), int (*enable)(struct vrf *),
        vrf_master.vrf_update_name_hook = update;
 
        /* The default VRF always exists. */
-       default_vrf = vrf_get(VRF_DEFAULT, VRF_DEFAULT_NAME);
+       default_vrf = vrf_get(VRF_DEFAULT, vrf_default_name);
        if (!default_vrf) {
                flog_err(LIB_ERR_VRF_START,
                          "vrf_init: failed to create the default VRF!");
                exit(1);
        }
+       if (vrf_is_backend_netns())
+               strlcpy(default_vrf->data.l.netns_name,
+                       vrf_default_name, NS_NAMSIZ);
 
        /* Enable the default VRF. */
        if (!vrf_enable(default_vrf)) {