From owner-svn-src-all@freebsd.org Wed Jan 18 22:38:37 2017 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A78D7CB6CF5; Wed, 18 Jan 2017 22:38:37 +0000 (UTC) (envelope-from hiren@freebsd.org) Received: from mail.strugglingcoder.info (strugglingcoder.info [104.236.146.68]) by mx1.freebsd.org (Postfix) with ESMTP id 8FCDA1939; Wed, 18 Jan 2017 22:38:34 +0000 (UTC) (envelope-from hiren@freebsd.org) Received: from localhost (unknown [10.1.1.3]) (Authenticated sender: hiren@strugglingcoder.info) by mail.strugglingcoder.info (Postfix) with ESMTPA id A684017386; Wed, 18 Jan 2017 14:38:27 -0800 (PST) Date: Wed, 18 Jan 2017 14:38:27 -0800 From: Hiren Panchasara To: Alan Somers , lakshmi.n@msystechnologies.com, rpokala@FreeBSD.org, smh@FreeBSD.org Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Subject: Re: svn commit: r286700 - in head: sbin/ifconfig sys/net Message-ID: <20170118223827.GJ86256@strugglingcoder.info> References: <201508122021.t7CKL5wk016750@repo.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="EVh9lyqKgK19OcEf" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jan 2017 22:38:37 -0000 --EVh9lyqKgK19OcEf Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Adding the submitter and other reviewers for their comments. On 01/18/17 at 03:03P, Alan Somers wrote: > Is the change to lacp_port_create correct? The comment indicates that > fast is configurable, but it's actually constant. Later on, there's > some dead code that depends on the value of fast (it was dead before > this commit, too). >=20 > CID: 1305734 > CID: 1305692 >=20 > -Alan >=20 > On Wed, Aug 12, 2015 at 2:21 PM, Hiren Panchasara wro= te: > > Author: hiren > > Date: Wed Aug 12 20:21:04 2015 > > New Revision: 286700 > > URL: https://svnweb.freebsd.org/changeset/base/286700 > > > > Log: > > Make LAG LACP fast timeout tunable through IOCTL. > > > > Differential Revision: D3300 > > Submitted by: LN Sundararajan > > Reviewed by: wblock, smh, gnn, hiren, rpokala at panasas > > MFC after: 2 weeks > > Sponsored by: Panasas > > > > Modified: > > head/sbin/ifconfig/ifconfig.8 > > head/sbin/ifconfig/iflagg.c > > head/sys/net/ieee8023ad_lacp.c > > head/sys/net/ieee8023ad_lacp.h > > head/sys/net/if_lagg.c > > head/sys/net/if_lagg.h > > > > Modified: head/sbin/ifconfig/ifconfig.8 > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > > --- head/sbin/ifconfig/ifconfig.8 Wed Aug 12 20:16:13 2015 = (r286699) > > +++ head/sbin/ifconfig/ifconfig.8 Wed Aug 12 20:21:04 2015 = (r286700) > > @@ -28,7 +28,7 @@ > > .\" From: @(#)ifconfig.8 8.3 (Berkeley) 1/5/94 > > .\" $FreeBSD$ > > .\" > > -.Dd May 15, 2015 > > +.Dd Aug 12, 2015 > > .Dt IFCONFIG 8 > > .Os > > .Sh NAME > > @@ -2396,6 +2396,10 @@ Disable local hash computation for RSS h > > Set a shift parameter for RSS local hash computation. > > Hash is calculated by using flowid bits in a packet header mbuf > > which are shifted by the number of this parameter. > > +.It Cm lacp_fast_timeout > > +Enable lacp fast-timeout on the interface. > > +.It Cm -lacp_fast_timeout > > +Disable lacp fast-timeout on the interface. > > .El > > .Pp > > The following parameters are specific to IP tunnel interfaces, > > > > Modified: head/sbin/ifconfig/iflagg.c > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > > --- head/sbin/ifconfig/iflagg.c Wed Aug 12 20:16:13 2015 (r28669= 9) > > +++ head/sbin/ifconfig/iflagg.c Wed Aug 12 20:21:04 2015 (r28670= 0) > > @@ -115,6 +115,8 @@ setlaggsetopt(const char *val, int d, in > > case -LAGG_OPT_LACP_TXTEST: > > case LAGG_OPT_LACP_RXTEST: > > case -LAGG_OPT_LACP_RXTEST: > > + case LAGG_OPT_LACP_TIMEOUT: > > + case -LAGG_OPT_LACP_TIMEOUT: > > break; > > default: > > err(1, "Invalid lagg option"); > > @@ -293,6 +295,8 @@ static struct cmd lagg_cmds[] =3D { > > DEF_CMD("-lacp_txtest", -LAGG_OPT_LACP_TXTEST, setlaggsetopt), > > DEF_CMD("lacp_rxtest", LAGG_OPT_LACP_RXTEST, setlaggsetopt), > > DEF_CMD("-lacp_rxtest", -LAGG_OPT_LACP_RXTEST, setlaggsetopt), > > + DEF_CMD("lacp_fast_timeout", LAGG_OPT_LACP_TIMEOUT, setlagg= setopt), > > + DEF_CMD("-lacp_fast_timeout", -LAGG_OPT_LACP_TIMEOUT, setlagg= setopt), > > DEF_CMD_ARG("flowid_shift", setlaggflowidshift), > > }; > > static struct afswtch af_lagg =3D { > > > > Modified: head/sys/net/ieee8023ad_lacp.c > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > > --- head/sys/net/ieee8023ad_lacp.c Wed Aug 12 20:16:13 2015 = (r286699) > > +++ head/sys/net/ieee8023ad_lacp.c Wed Aug 12 20:21:04 2015 = (r286700) > > @@ -522,7 +522,7 @@ lacp_port_create(struct lagg_port *lgp) > > int error; > > > > boolean_t active =3D TRUE; /* XXX should be configurable */ > > - boolean_t fast =3D FALSE; /* XXX should be configurable */ > > + boolean_t fast =3D FALSE; /* Configurable via ioctl */ > > > > link_init_sdl(ifp, (struct sockaddr *)&sdl, IFT_ETHER); > > sdl.sdl_alen =3D ETHER_ADDR_LEN; > > > > Modified: head/sys/net/ieee8023ad_lacp.h > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > > --- head/sys/net/ieee8023ad_lacp.h Wed Aug 12 20:16:13 2015 = (r286699) > > +++ head/sys/net/ieee8023ad_lacp.h Wed Aug 12 20:21:04 2015 = (r286700) > > @@ -251,6 +251,7 @@ struct lacp_softc { > > u_int32_t lsc_tx_test; > > } lsc_debug; > > u_int32_t lsc_strict_mode; > > + boolean_t lsc_fast_timeout; /* if set, fast timeo= ut */ > > }; > > > > #define LACP_TYPE_ACTORINFO 1 > > > > Modified: head/sys/net/if_lagg.c > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > > --- head/sys/net/if_lagg.c Wed Aug 12 20:16:13 2015 (r28669= 9) > > +++ head/sys/net/if_lagg.c Wed Aug 12 20:21:04 2015 (r28670= 0) > > @@ -1257,6 +1257,8 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd > > ro->ro_opts |=3D LAGG_OPT_LACP_RXTEST; > > if (lsc->lsc_strict_mode !=3D 0) > > ro->ro_opts |=3D LAGG_OPT_LACP_STRICT; > > + if (lsc->lsc_fast_timeout !=3D 0) > > + ro->ro_opts |=3D LAGG_OPT_LACP_TIMEOUT; > > > > ro->ro_active =3D sc->sc_active; > > } else { > > @@ -1292,6 +1294,8 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd > > case -LAGG_OPT_LACP_RXTEST: > > case LAGG_OPT_LACP_STRICT: > > case -LAGG_OPT_LACP_STRICT: > > + case LAGG_OPT_LACP_TIMEOUT: > > + case -LAGG_OPT_LACP_TIMEOUT: > > valid =3D lacp =3D 1; > > break; > > default: > > @@ -1320,6 +1324,7 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd > > sc->sc_opts &=3D ~ro->ro_opts; > > } else { > > struct lacp_softc *lsc; > > + struct lacp_port *lp; > > > > lsc =3D (struct lacp_softc *)sc->sc_psc; > > > > @@ -1342,6 +1347,20 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd > > case -LAGG_OPT_LACP_STRICT: > > lsc->lsc_strict_mode =3D 0; > > break; > > + case LAGG_OPT_LACP_TIMEOUT: > > + LACP_LOCK(lsc); > > + LIST_FOREACH(lp, &lsc->lsc_ports, lp_ne= xt) > > + lp->lp_state |=3D LACP_STATE_TI= MEOUT; > > + LACP_UNLOCK(lsc); > > + lsc->lsc_fast_timeout =3D 1; > > + break; > > + case -LAGG_OPT_LACP_TIMEOUT: > > + LACP_LOCK(lsc); > > + LIST_FOREACH(lp, &lsc->lsc_ports, lp_ne= xt) > > + lp->lp_state &=3D ~LACP_STATE_T= IMEOUT; > > + LACP_UNLOCK(lsc); > > + lsc->lsc_fast_timeout =3D 0; > > + break; > > } > > } > > LAGG_WUNLOCK(sc); > > > > Modified: head/sys/net/if_lagg.h > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > > --- head/sys/net/if_lagg.h Wed Aug 12 20:16:13 2015 (r28669= 9) > > +++ head/sys/net/if_lagg.h Wed Aug 12 20:21:04 2015 (r28670= 0) > > @@ -150,6 +150,7 @@ struct lagg_reqopts { > > #define LAGG_OPT_LACP_STRICT 0x10 /* LACP= strict mode */ > > #define LAGG_OPT_LACP_TXTEST 0x20 /* LACP= debug: txtest */ > > #define LAGG_OPT_LACP_RXTEST 0x40 /* LACP= debug: rxtest */ > > +#define LAGG_OPT_LACP_TIMEOUT 0x80 /* LACP= timeout */ > > u_int ro_count; /* number of po= rts */ > > u_int ro_active; /* active port = count */ > > u_int ro_flapping; /* number of fl= apping */ > > >=20 --EVh9lyqKgK19OcEf Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQF8BAABCgBmBQJYf+5dXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRBNEUyMEZBMUQ4Nzg4RjNGMTdFNjZGMDI4 QjkyNTBFMTU2M0VERkU1AAoJEIuSUOFWPt/lKAEH/3vpOnIjPuMagrPSCsYRx1oQ vQdpXEvWu8soXJTJuvs7k6v1mLoeUPSZkQotzKdLyuHpY/pGx+7/4lpf/BnGxq9F oHncnr7pL6cB3E8Sriyj91TeKIy0Qm6p9WB3nXvGY1oQuwQxB2Z/Md19VWmGLn0t 23jbBPBJeB81LpPqSFwZagy3lkW4TTZ69deboKoK6mLMegTknJa0p7lfXAbdVUOy Y232ZJk12G1rex0JQcDrQH5L0l3C+lUWA+QVL6aJsFNsVoKXIu88hEedixqtWoU+ br996on9xRrFWnAbnJOtTGFgXyrksbijVRizwarzyJGOh2mEUsjeQ8mEaOLkxSM= =mDTP -----END PGP SIGNATURE----- --EVh9lyqKgK19OcEf--