aboutsummaryrefslogtreecommitdiff
path: root/sys/net/if_lagg.c
diff options
context:
space:
mode:
authorAndrew Thompson <thompsa@FreeBSD.org>2010-01-18 20:34:00 +0000
committerAndrew Thompson <thompsa@FreeBSD.org>2010-01-18 20:34:00 +0000
commitea4ca115b7b110ada3d657044c19fab4c8766a52 (patch)
treedd7afcb5b04be71754018029b851f7d8237827cf /sys/net/if_lagg.c
parent0424a37bea49fce9ca1da4919621db242ddc52ec (diff)
downloadsrc-ea4ca115b7b110ada3d657044c19fab4c8766a52.tar.gz
src-ea4ca115b7b110ada3d657044c19fab4c8766a52.zip
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
Notes
Notes: svn path=/head/; revision=202588
Diffstat (limited to 'sys/net/if_lagg.c')
-rw-r--r--sys/net/if_lagg.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/net/if_lagg.c b/sys/net/if_lagg.c
index 0682d43c9761..c01718555170 100644
--- a/sys/net/if_lagg.c
+++ b/sys/net/if_lagg.c
@@ -305,6 +305,7 @@ lagg_lladdr(struct lagg_softc *sc, uint8_t *lladdr)
/* Let the protocol know the MAC has changed */
if (sc->sc_lladdr != NULL)
(*sc->sc_lladdr)(sc);
+ EVENTHANDLER_INVOKE(iflladdr_event, ifp);
}
static void