lagg: don't update link layer addresses on destroy

When the lagg is being destroyed it is not necessary update the
lladdr of all the lagg members every time we update the primary
interface.

Reviewed by:	scottl
Obtained from:	pfSense
MFC after:	1 week
Sponsored by:	Rubicon Communications, LLC ("Netgate")
Differential Revision:	https://reviews.freebsd.org/D31586
This commit is contained in:
Luiz Otavio O Souza 2021-08-17 16:23:50 +02:00 committed by Kristof Provost
parent 20ffd88ed5
commit c138424148

View File

@ -969,14 +969,16 @@ lagg_port_destroy(struct lagg_port *lp, int rundelport)
bcopy(lladdr, IF_LLADDR(sc->sc_ifp), sc->sc_ifp->if_addrlen);
lagg_proto_lladdr(sc);
EVENTHANDLER_INVOKE(iflladdr_event, sc->sc_ifp);
}
/*
* Update lladdr for each port (new primary needs update
* as well, to switch from old lladdr to its 'real' one)
*/
CK_SLIST_FOREACH(lp_ptr, &sc->sc_ports, lp_entries)
if_setlladdr(lp_ptr->lp_ifp, lladdr, lp_ptr->lp_ifp->if_addrlen);
/*
* Update lladdr for each port (new primary needs update
* as well, to switch from old lladdr to its 'real' one).
* We can skip this if the lagg is being destroyed.
*/
CK_SLIST_FOREACH(lp_ptr, &sc->sc_ports, lp_entries)
if_setlladdr(lp_ptr->lp_ifp, lladdr,
lp_ptr->lp_ifp->if_addrlen);
}
}
if (lp->lp_ifflags)