diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/if.c | 13 | ||||
| -rw-r--r-- | lib/if.h | 7 | ||||
| -rw-r--r-- | lib/netns_linux.c | 38 | ||||
| -rw-r--r-- | lib/ns.h | 16 | ||||
| -rw-r--r-- | lib/vrf.c | 8 | ||||
| -rw-r--r-- | lib/vrf.h | 2 |
6 files changed, 15 insertions, 69 deletions
@@ -217,16 +217,14 @@ struct interface *if_create_name(const char *name, vrf_id_t vrf_id) return ifp; } -struct interface *if_create_ifindex(ifindex_t ifindex, vrf_id_t vrf_id, - char *optional_name) +struct interface *if_create_ifindex(ifindex_t ifindex, vrf_id_t vrf_id) { struct interface *ifp; ifp = if_new(vrf_id); if_set_index(ifp, ifindex); - if (optional_name) - if_set_name(ifp, optional_name); + hook_call(if_add, ifp); return ifp; } @@ -573,8 +571,7 @@ struct interface *if_get_by_name(const char *name, vrf_id_t vrf_id) return NULL; } -struct interface *if_get_by_ifindex(ifindex_t ifindex, vrf_id_t vrf_id, - char *optional_name) +struct interface *if_get_by_ifindex(ifindex_t ifindex, vrf_id_t vrf_id) { struct interface *ifp; @@ -584,7 +581,7 @@ struct interface *if_get_by_ifindex(ifindex_t ifindex, vrf_id_t vrf_id, ifp = if_lookup_by_ifindex(ifindex, vrf_id); if (ifp) return ifp; - return if_create_ifindex(ifindex, vrf_id, optional_name); + return if_create_ifindex(ifindex, vrf_id); case VRF_BACKEND_VRF_LITE: ifp = if_lookup_by_index_all_vrf(ifindex); if (ifp) { @@ -596,7 +593,7 @@ struct interface *if_get_by_ifindex(ifindex_t ifindex, vrf_id_t vrf_id, if_update_to_new_vrf(ifp, vrf_id); return ifp; } - return if_create_ifindex(ifindex, vrf_id, optional_name); + return if_create_ifindex(ifindex, vrf_id); } return NULL; @@ -509,8 +509,7 @@ extern void if_update_to_new_vrf(struct interface *, vrf_id_t vrf_id); extern struct interface *if_create_name(const char *name, vrf_id_t vrf_id); /* Create new interface, adds to index list only */ -extern struct interface *if_create_ifindex(ifindex_t ifindex, vrf_id_t vrf_id, - char *name); +extern struct interface *if_create_ifindex(ifindex_t ifindex, vrf_id_t vrf_id); extern struct interface *if_lookup_by_index(ifindex_t, vrf_id_t vrf_id); extern struct interface *if_lookup_by_index_all_vrf(ifindex_t); extern struct interface *if_lookup_exact_address(const void *matchaddr, @@ -527,8 +526,8 @@ extern struct interface *if_lookup_by_name_all_vrf(const char *ifname); extern struct interface *if_lookup_by_name_vrf(const char *name, struct vrf *vrf); extern struct interface *if_lookup_by_name(const char *ifname, vrf_id_t vrf_id); extern struct interface *if_get_by_name(const char *ifname, vrf_id_t vrf_id); -extern struct interface *if_get_by_ifindex(ifindex_t ifindex, vrf_id_t vrf_id, - char *optional_name); +extern struct interface *if_get_by_ifindex(ifindex_t ifindex, vrf_id_t vrf_id); + /* Sets the index and adds to index list */ extern int if_set_index(struct interface *ifp, ifindex_t ifindex); /* Sets the name and adds to name list */ diff --git a/lib/netns_linux.c b/lib/netns_linux.c index e1c0159fc5..98f359401e 100644 --- a/lib/netns_linux.c +++ b/lib/netns_linux.c @@ -379,20 +379,12 @@ struct ns *ns_lookup(ns_id_t ns_id) return ns_lookup_internal(ns_id); } -void ns_walk_func(int (*func)(struct ns *, - void *param_in, - void **param_out), - void *param_in, - void **param_out) +void ns_walk_func(int (*func)(struct ns *)) { struct ns *ns = NULL; - int ret; - RB_FOREACH (ns, ns_head, &ns_tree) { - ret = func(ns, param_in, param_out); - if (ret == NS_WALK_STOP) - return; - } + RB_FOREACH (ns, ns_head, &ns_tree) + func(ns); } const char *ns_get_name(struct ns *ns) @@ -592,33 +584,9 @@ int ns_socket(int domain, int type, int protocol, ns_id_t ns_id) return ret; } -/* if relative link_nsid matches default netns, - * then return default absolute netns value - * otherwise, return NS_UNKNOWN - */ -ns_id_t ns_id_get_absolute(ns_id_t ns_id_reference, ns_id_t link_nsid) -{ - struct ns *ns; - - ns = ns_lookup(ns_id_reference); - if (!ns) - return NS_UNKNOWN; - if (ns->relative_default_ns != link_nsid) - return NS_UNKNOWN; - ns = ns_get_default(); - assert(ns); - return ns->ns_id; -} - ns_id_t ns_get_default_id(void) { if (default_ns) return default_ns->ns_id; return NS_DEFAULT_INTERNAL; } - -struct ns *ns_get_default(void) -{ - return default_ns; -} - @@ -53,11 +53,6 @@ struct ns { /* Identifier, mapped on the NSID value */ ns_id_t internal_ns_id; - /* Identifier, value of NSID of default netns, - * relative value in that local netns - */ - ns_id_t relative_default_ns; - /* Name */ char *name; @@ -125,14 +120,7 @@ int ns_socket(int domain, int type, int protocol, ns_id_t ns_id); extern char *ns_netns_pathname(struct vty *vty, const char *name); /* Parse and execute a function on all the NETNS */ -#define NS_WALK_CONTINUE 0 -#define NS_WALK_STOP 1 - -extern void ns_walk_func(int (*func)(struct ns *, - void *, - void **), - void *param_in, - void **param_out); +extern void ns_walk_func(int (*func)(struct ns *)); /* API to get the NETNS name, from the ns pointer */ extern const char *ns_get_name(struct ns *ns); @@ -186,9 +174,7 @@ extern struct ns *ns_lookup_name(const char *name); */ extern int ns_enable(struct ns *ns, void (*func)(ns_id_t, void *)); extern struct ns *ns_get_created(struct ns *ns, char *name, ns_id_t ns_id); -extern ns_id_t ns_id_get_absolute(ns_id_t ns_id_reference, ns_id_t link_nsid); extern void ns_disable(struct ns *ns); -extern struct ns *ns_get_default(void); #ifdef __cplusplus } @@ -653,8 +653,7 @@ int vrf_handler_create(struct vty *vty, const char *vrfname, } int vrf_netns_handler_create(struct vty *vty, struct vrf *vrf, char *pathname, - ns_id_t ns_id, ns_id_t internal_ns_id, - ns_id_t rel_def_ns_id) + ns_id_t ns_id, ns_id_t internal_ns_id) { struct ns *ns = NULL; @@ -701,7 +700,6 @@ int vrf_netns_handler_create(struct vty *vty, struct vrf *vrf, char *pathname, } ns = ns_get_created(ns, pathname, ns_id); ns->internal_ns_id = internal_ns_id; - ns->relative_default_ns = rel_def_ns_id; ns->vrf_ctxt = (void *)vrf; vrf->ns_ctxt = (void *)ns; /* update VRF netns NAME */ @@ -797,9 +795,7 @@ DEFUN_NOSH (vrf_netns, frr_with_privs(vrf_daemon_privs) { ret = vrf_netns_handler_create(vty, vrf, pathname, - NS_UNKNOWN, - NS_UNKNOWN, - NS_UNKNOWN); + NS_UNKNOWN, NS_UNKNOWN); } return ret; } @@ -315,7 +315,7 @@ extern int vrf_handler_create(struct vty *vty, const char *name, */ extern int vrf_netns_handler_create(struct vty *vty, struct vrf *vrf, char *pathname, ns_id_t ext_ns_id, - ns_id_t ns_id, ns_id_t rel_def_ns_id); + ns_id_t ns_id); /* used internally to enable or disable VRF. * Notify a change in the VRF ID of the VRF |
