summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Guibert <philippe.guibert@6wind.com>2018-06-27 18:23:09 +0200
committerPhilippe Guibert <philippe.guibert@6wind.com>2018-08-28 16:23:50 +0200
commitfdafe17ee9b491ecc20693c1da1c96db22bc6dda (patch)
treed04016b6111bab2f135c82d9ed71f27b7c32e900
parent9a8bdf1c25180e7c00b525c6c8de26cc2f713fb2 (diff)
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 <philippe.guibert@6wind.com>
-rw-r--r--lib/vrf.c8
1 files changed, 7 insertions, 1 deletions
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)) {