diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/if.c | 2 | ||||
| -rw-r--r-- | lib/vrf.c | 37 | ||||
| -rw-r--r-- | lib/vrf.h | 3 |
3 files changed, 2 insertions, 40 deletions
@@ -848,7 +848,7 @@ DEFUN (vrf, return CMD_WARNING; } - vrfp = vrf_get_by_name (argv[0]); + vrfp = vrf_get (VRF_UNKNOWN, argv[0]); vty->index = vrfp; vty->node = VRF_NODE; @@ -70,43 +70,6 @@ vrf_list_lookup_by_name (const char *name) return NULL; } -/* Create new vrf structure. */ -struct vrf * -vrf_create (const char *name) -{ - struct vrf *vrfp; - - vrfp = XCALLOC (MTYPE_VRF, sizeof (struct vrf)); - - assert (name); - - zlog_debug ("Vrf_create: %s", name); - strncpy (vrfp->name, name, VRF_NAMSIZ); - vrfp->name[VRF_NAMSIZ] = '\0'; - - if (vrf_list_lookup_by_name (vrfp->name) == NULL) - listnode_add_sort (vrf_list, vrfp); - else - zlog_err("vrf_create(%s): corruption detected -- vrf with this " - "name exists already with vrf-id %u!", vrfp->name, vrfp->vrf_id); - - UNSET_FLAG(vrfp->status, VRF_ACTIVE); - - if (vrf_master.vrf_new_hook) - (*vrf_master.vrf_new_hook) (0, name, &vrfp->info); - - return vrfp; -} - -struct vrf * -vrf_get_by_name (const char *name) -{ - struct vrf *vrfp; - - return ((vrfp = vrf_list_lookup_by_name (name)) != NULL) ? vrfp : - vrf_create (name); -} - /* Build the table key */ static void vrf_build_key (vrf_id_t vrf_id, struct prefix *p) @@ -30,6 +30,7 @@ /* The default VRF ID */ #define VRF_DEFAULT 0 +#define VRF_UNKNOWN UINT16_MAX /* Pending: May need to refine this. */ #ifndef IFLA_VRF_MAX @@ -109,9 +110,7 @@ typedef void * vrf_iter_t; extern struct vrf *vrf_lookup (vrf_id_t); extern struct vrf *vrf_lookup_by_name (const char *); extern struct vrf *vrf_list_lookup_by_name (const char *); -extern struct vrf *vrf_get_by_name (const char *); extern struct vrf *vrf_get (vrf_id_t, const char *); -extern struct vrf *vrf_create (const char *); extern void vrf_delete (struct vrf *); extern int vrf_enable (struct vrf *); extern vrf_id_t vrf_name_to_id (const char *); |
