diff options
-rw-r--r-- | sys/netgraph/ng_ether.c | 10 | ||||
-rw-r--r-- | sys/netgraph/ng_ether.h | 1 |
2 files changed, 11 insertions, 0 deletions
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_ */ |