Date: Tue, 14 Aug 2018 08:57:08 -0400 From: Andrew Gallatin <gallatin@cs.duke.edu> To: koobs@FreeBSD.org, Andrew Gallatin <gallatin@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r337709 - head/sys/net Message-ID: <1aa4cbd4-e241-1ad3-7a12-f29d536bc83a@cs.duke.edu> In-Reply-To: <ff85958f-b428-2ec1-0c65-0a3db01fd207@FreeBSD.org> References: <201808131413.w7DEDQFr049135@repo.freebsd.org> <ff85958f-b428-2ec1-0c65-0a3db01fd207@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
It could probably be MFCed if somebody could verify that it causes no harm in 11. I have no way to test lagg/lacp on 11, so I did not mark it for MFC. Drew On 8/13/18 9:58 PM, Kubilay Kocak wrote: > On 14/08/2018 12:13 am, Andrew Gallatin wrote: >> Author: gallatin >> Date: Mon Aug 13 14:13:25 2018 >> New Revision: 337709 >> URL: https://urldefense.proofpoint.com/v2/url?u=https-3A__svnweb.freebsd.org_changeset_base_337709&d=DwICaQ&c=imBPVzF25OnBgGmVOlcsiEgHoG1i6YHLR0Sj_gZ4adc&r=Ed-falealxPeqc22ehgAUCLh8zlZbibZLSMWJeZro4A&m=1cWDZxkgrPXh1V368in81GXeCx7nVoSbXY9khM0W2r0&s=psymcTlMReu-E0h72SEySpgbsxzW7KxTwtQDKS8ocBY&e= >> >> Log: >> lagg: allow lacp to manage the link state >> >> Lacp needs to manage the link state itself. Unlike other >> lagg protocols, the ability of lacp to pass traffic >> depends not only on the lagg members having link, but also >> on the lacp protocol converging to a distributing state with the >> link partner. >> >> If we prematurely mark the link as up, then we will send a >> gratuitous arp (via arp_handle_ifllchange()) before the lacp >> interface is capable of passing traffic. When this happens, >> the gratuitous arp is lost, and our link partner may cache >> a stale mac address (eg, when the base mac address for the >> lagg bundle changes, due to a BIOS change re-ordering NIC >> unit numbers) > > Hi Andrew > > Can this be MFC'd? > >> Reviewed by: jtl, hselasky >> Sponsored by: Netflix >> >> Modified: >> head/sys/net/ieee8023ad_lacp.c >> head/sys/net/if_lagg.c >> >> Modified: head/sys/net/ieee8023ad_lacp.c >> ============================================================================== >> --- head/sys/net/ieee8023ad_lacp.c Mon Aug 13 13:58:45 2018 (r337708) >> +++ head/sys/net/ieee8023ad_lacp.c Mon Aug 13 14:13:25 2018 (r337709) >> @@ -711,6 +711,8 @@ lacp_disable_distributing(struct lacp_port *lp) >> } >> >> lp->lp_state &= ~LACP_STATE_DISTRIBUTING; >> + if_link_state_change(sc->sc_ifp, >> + sc->sc_active ? LINK_STATE_UP : LINK_STATE_DOWN); >> } >> >> static void >> @@ -745,6 +747,9 @@ lacp_enable_distributing(struct lacp_port *lp) >> } else >> /* try to become the active aggregator */ >> lacp_select_active_aggregator(lsc); >> + >> + if_link_state_change(sc->sc_ifp, >> + sc->sc_active ? LINK_STATE_UP : LINK_STATE_DOWN); >> } >> >> static void >> >> Modified: head/sys/net/if_lagg.c >> ============================================================================== >> --- head/sys/net/if_lagg.c Mon Aug 13 13:58:45 2018 (r337708) >> +++ head/sys/net/if_lagg.c Mon Aug 13 14:13:25 2018 (r337709) >> @@ -1737,6 +1737,10 @@ lagg_linkstate(struct lagg_softc *sc) >> >> LAGG_XLOCK_ASSERT(sc); >> >> + /* LACP handles link state itself */ >> + if (sc->sc_proto == LAGG_PROTO_LACP) >> + return; >> + >> /* Our link is considered up if at least one of our ports is active */ >> LAGG_RLOCK(); >> CK_SLIST_FOREACH(lp, &sc->sc_ports, lp_entries) { >> _______________________________________________ >> svn-src-head@freebsd.org mailing list >> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.freebsd.org_mailman_listinfo_svn-2Dsrc-2Dhead&d=DwICaQ&c=imBPVzF25OnBgGmVOlcsiEgHoG1i6YHLR0Sj_gZ4adc&r=Ed-falealxPeqc22ehgAUCLh8zlZbibZLSMWJeZro4A&m=1cWDZxkgrPXh1V368in81GXeCx7nVoSbXY9khM0W2r0&s=SLnmQNpAX0j6HgJ5_yIcrQJAf9xCWtNqoEJ2qbOy7_E&e= >> To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org" >>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1aa4cbd4-e241-1ad3-7a12-f29d536bc83a>