diff options
| -rw-r--r-- | lib/if.c | 2 | ||||
| -rw-r--r-- | lib/vrf.c | 37 | ||||
| -rw-r--r-- | lib/vrf.h | 3 | ||||
| -rw-r--r-- | zebra/interface.c | 2 | ||||
| -rw-r--r-- | zebra/zebra_rib.c | 2 |
5 files changed, 4 insertions, 42 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 *); diff --git a/zebra/interface.c b/zebra/interface.c index 9fd31aa7de..b47d03929f 100644 --- a/zebra/interface.c +++ b/zebra/interface.c @@ -757,7 +757,7 @@ vrf_delete_update (struct vrf *vrfp) while processing the deletion. Each client daemon is responsible for setting vrf-id to IFINDEX_INTERNAL after processing the interface deletion message. */ - vrfp->vrf_id = 0; + vrfp->vrf_id = VRF_UNKNOWN; } diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index 8492222ad8..5e0e8149c9 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -1284,7 +1284,7 @@ rib_process (struct route_node *rn) char buf[INET6_ADDRSTRLEN]; rib_dest_t *dest; struct zebra_vrf *zvrf = NULL; - vrf_id_t vrf_id = 0; + vrf_id_t vrf_id = VRF_UNKNOWN; assert (rn); |
