diff options
| author | Philippe Guibert <philippe.guibert@6wind.com> | 2018-06-27 18:23:09 +0200 | 
|---|---|---|
| committer | Philippe Guibert <philippe.guibert@6wind.com> | 2018-08-28 16:23:50 +0200 | 
| commit | fdafe17ee9b491ecc20693c1da1c96db22bc6dda (patch) | |
| tree | d04016b6111bab2f135c82d9ed71f27b7c32e900 | |
| parent | 9a8bdf1c25180e7c00b525c6c8de26cc2f713fb2 (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.c | 8 | 
1 files changed, 7 insertions, 1 deletions
@@ -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)) {  | 
