From 38b3e66d0e482dcdfa25e3a105ecf1953564ffcc Mon Sep 17 00:00:00 2001 From: glebius Date: Mon, 14 Feb 2005 12:01:09 +0000 Subject: Add new netgraph control message NGM_ETHER_DETACH, which actually removes netgraph node and unwraps Ethernet interface. This gives us ability to unload ng_ether.ko, when all interfaces are detached, making ng_ether(4) developers happy. Reviewed by: ru --- sys/netgraph/ng_ether.c | 10 ++++++++++ sys/netgraph/ng_ether.h | 1 + 2 files changed, 11 insertions(+) diff --git a/sys/netgraph/ng_ether.c b/sys/netgraph/ng_ether.c index 30acdfa..f5dc793 100644 --- a/sys/netgraph/ng_ether.c +++ b/sys/netgraph/ng_ether.c @@ -186,6 +186,13 @@ static const struct ng_cmdlist ng_ether_cmdlist[] = { &ng_parse_enaddr_type, NULL }, + { + NGM_ETHER_COOKIE, + NGM_ETHER_DETACH, + "detach", + NULL, + NULL + }, { 0 } }; @@ -544,6 +551,9 @@ ng_ether_rcvmsg(node_p node, item_p item, hook_p lasthook) (struct sockaddr *)&sa_dl); break; } + case NGM_ETHER_DETACH: + ng_ether_detach(priv->ifp); + break; default: error = EINVAL; break; diff --git a/sys/netgraph/ng_ether.h b/sys/netgraph/ng_ether.h index f8ac14a..f2f0519 100644 --- a/sys/netgraph/ng_ether.h +++ b/sys/netgraph/ng_ether.h @@ -67,6 +67,7 @@ enum { NGM_ETHER_SET_AUTOSRC, /* enable/disable src addr override */ NGM_ETHER_ADD_MULTI, /* add multicast membership */ NGM_ETHER_DEL_MULTI, /* delete multicast membership */ + NGM_ETHER_DETACH, /* our way to be shut down */ }; #endif /* _NETGRAPH_NG_ETHER_H_ */ -- cgit v1.1