summaryrefslogtreecommitdiffstats
path: root/sys/netgraph/ng_eiface.c
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2005-04-20 14:22:13 +0000
committerglebius <glebius@FreeBSD.org>2005-04-20 14:22:13 +0000
commit8c3fdbd4cfed5fb09ed8bc0309838554309d6d32 (patch)
tree77e4cb199bc575e4bff56519448bff19092c7670 /sys/netgraph/ng_eiface.c
parent8669186b104629a947f6555d29f3433e6ab1c648 (diff)
downloadFreeBSD-src-8c3fdbd4cfed5fb09ed8bc0309838554309d6d32.zip
FreeBSD-src-8c3fdbd4cfed5fb09ed8bc0309838554309d6d32.tar.gz
- Initialize interface as UP when hook is connected.
- Call if_link_state_change() when netgraph flow control messages are received. Sponsored by: Rambler
Diffstat (limited to 'sys/netgraph/ng_eiface.c')
-rw-r--r--sys/netgraph/ng_eiface.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/netgraph/ng_eiface.c b/sys/netgraph/ng_eiface.c
index c27dc93..0a0aad1 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;
OpenPOWER on IntegriCloud