diff options
author | Gleb Smirnoff <glebius@FreeBSD.org> | 2005-04-20 14:22:13 +0000 |
---|---|---|
committer | Gleb Smirnoff <glebius@FreeBSD.org> | 2005-04-20 14:22:13 +0000 |
commit | 15749e57aa2813f28a6731c57115edfdfd772a86 (patch) | |
tree | 77e4cb199bc575e4bff56519448bff19092c7670 /sys/netgraph/ng_eiface.c | |
parent | 3b1c41c548ec210752bfa8db8559aae3ea47b55f (diff) | |
download | src-15749e57aa2813f28a6731c57115edfdfd772a86.tar.gz src-15749e57aa2813f28a6731c57115edfdfd772a86.zip |
- Initialize interface as UP when hook is connected.
- Call if_link_state_change() when netgraph flow control
messages are received.
Sponsored by: Rambler
Notes
Notes:
svn path=/head/; revision=145331
Diffstat (limited to 'sys/netgraph/ng_eiface.c')
-rw-r--r-- | sys/netgraph/ng_eiface.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/netgraph/ng_eiface.c b/sys/netgraph/ng_eiface.c index c27dc939dbb9..0a0aad1bb427 100644 --- a/sys/netgraph/ng_eiface.c +++ b/sys/netgraph/ng_eiface.c @@ -378,6 +378,7 @@ static int ng_eiface_newhook(node_p node, hook_p hook, const char *name) { priv_p priv = NG_NODE_PRIVATE(node); + struct ifnet *ifp = &priv->sc_ifp; if (strcmp(name, NG_EIFACE_HOOK_ETHER)) return (EPFNOSUPPORT); @@ -386,6 +387,8 @@ ng_eiface_newhook(node_p node, hook_p hook, const char *name) priv->ether = hook; NG_HOOK_SET_PRIVATE(hook, &priv->ether); + if_link_state_change(ifp, LINK_STATE_UP); + return (0); } @@ -484,10 +487,10 @@ ng_eiface_rcvmsg(node_p node, item_p item, hook_p lasthook) case NGM_FLOW_COOKIE: switch (msg->header.cmd) { case NGM_LINK_IS_UP: - ifp->if_flags |= IFF_RUNNING; + if_link_state_change(ifp, LINK_STATE_UP); break; case NGM_LINK_IS_DOWN: - ifp->if_flags &= ~IFF_RUNNING; + if_link_state_change(ifp, LINK_STATE_DOWN); break; default: break; |