diff options
author | thompsa <thompsa@FreeBSD.org> | 2010-01-18 20:34:00 +0000 |
---|---|---|
committer | thompsa <thompsa@FreeBSD.org> | 2010-01-18 20:34:00 +0000 |
commit | 5056e27c2d94cd3dce26860a82a784814b55b3e9 (patch) | |
tree | dd7afcb5b04be71754018029b851f7d8237827cf /sys/netgraph/ng_eiface.c | |
parent | 49b1f6fa86c80625bf72859d7b5c716fab6d1233 (diff) | |
download | FreeBSD-src-5056e27c2d94cd3dce26860a82a784814b55b3e9.zip FreeBSD-src-5056e27c2d94cd3dce26860a82a784814b55b3e9.tar.gz |
Declare a new EVENTHANDLER called iflladdr_event which signals that the L2
address on an interface has changed. This lets stacked interfaces such as
vlan(4) detect that their lower interface has changed and adjust things in
order to keep working. Previously this situation broke at least vlan(4) and
lagg(4) configurations.
The EVENTHANDLER_INVOKE call was not placed within if_setlladdr() due to the
risk of a loop.
PR: kern/142927
Submitted by: Nikolay Denev
Diffstat (limited to 'sys/netgraph/ng_eiface.c')
-rw-r--r-- | sys/netgraph/ng_eiface.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/netgraph/ng_eiface.c b/sys/netgraph/ng_eiface.c index 5c91b81..72cc55c 100644 --- a/sys/netgraph/ng_eiface.c +++ b/sys/netgraph/ng_eiface.c @@ -431,6 +431,7 @@ ng_eiface_rcvmsg(node_p node, item_p item, hook_p lasthook) } error = if_setlladdr(priv->ifp, (u_char *)msg->data, ETHER_ADDR_LEN); + EVENTHANDLER_INVOKE(iflladdr_event, priv->ifp); break; } |