summaryrefslogtreecommitdiff
path: root/lib/ns.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ns.c')
-rw-r--r--lib/ns.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/lib/ns.c b/lib/ns.c
index 694a6dab9d..1929104eeb 100644
--- a/lib/ns.c
+++ b/lib/ns.c
@@ -96,10 +96,10 @@ static int have_netns(void)
/* Holding NS hooks */
struct ns_master {
- int (*ns_new_hook)(ns_id_t, void **);
- int (*ns_delete_hook)(ns_id_t, void **);
- int (*ns_enable_hook)(ns_id_t, void **);
- int (*ns_disable_hook)(ns_id_t, void **);
+ int (*ns_new_hook)(struct ns *ns);
+ int (*ns_delete_hook)(struct ns *ns);
+ int (*ns_enable_hook)(struct ns *ns);
+ int (*ns_disable_hook)(struct ns *ns);
} ns_master = {
0,
};
@@ -129,7 +129,8 @@ static void ns_get_created(struct ns *ns)
else
zlog_info("NS %s is created.", ns->name);
if (ns_master.ns_new_hook)
- (*ns_master.ns_new_hook)(ns->ns_id, &ns->info);
+ (*ns_master.ns_new_hook) (ns);
+ return;
}
/* Get a NS. If not found, create one. */
@@ -177,7 +178,7 @@ static void ns_delete(struct ns *ns)
ns_disable(ns);
if (ns_master.ns_delete_hook)
- (*ns_master.ns_delete_hook)(ns->ns_id, &ns->info);
+ (*ns_master.ns_delete_hook)(ns);
/*
* I'm not entirely sure if the vrf->iflist
@@ -270,7 +271,7 @@ static int ns_enable(struct ns *ns)
* then VRF enable event
*/
if (ns_master.ns_enable_hook)
- (*ns_master.ns_enable_hook)(ns->ns_id, &ns->info);
+ (*ns_master.ns_enable_hook)(ns);
if (vrf_on == 1)
vrf_enable((struct vrf *)ns->vrf_ctxt);
}
@@ -289,7 +290,7 @@ static void ns_disable(struct ns *ns)
zlog_info("NS %u is to be disabled.", ns->ns_id);
if (ns_master.ns_disable_hook)
- (*ns_master.ns_disable_hook)(ns->ns_id, &ns->info);
+ (*ns_master.ns_disable_hook)(ns);
if (have_netns())
close(ns->fd);
@@ -300,7 +301,7 @@ static void ns_disable(struct ns *ns)
/* Add a NS hook. Please add hooks before calling ns_init(). */
-void ns_add_hook(int type, int (*func)(ns_id_t, void **))
+void ns_add_hook(int type, int (*func)(struct ns *))
{
switch (type) {
case NS_NEW_HOOK:
@@ -564,7 +565,7 @@ DEFUN (no_ns_netns,
}
/* Initialize NS module. */
-void ns_init(void)
+void ns_init_zebra(void)
{
struct ns *default_ns;