From: Philippe Guibert Date: Wed, 27 Jun 2018 16:23:09 +0000 (+0200) Subject: lib: set default vrf name at startup X-Git-Tag: frr-6.1-dev~10^2~5 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=fdafe17ee9b491ecc20693c1da1c96db22bc6dda;p=matthieu%2Ffrr.git lib: set default vrf name at startup For the daemons that do not use vrf_init(), the call to the define will return a default vrf if no other values has been overriden. Signed-off-by: Philippe Guibert --- diff --git a/lib/vrf.c b/lib/vrf.c index 0bb6a65bf6..8ae59f5065 100644 --- 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)) {