svn commit: r286700 - in head: sbin/ifconfig sys/net
Hiren Panchasara
hiren at freebsd.org
Wed Jan 18 22:38:37 UTC 2017
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).
>
> CID: 1305734
> CID: 1305692
>
> -Alan
>
> On Wed, Aug 12, 2015 at 2:21 PM, Hiren Panchasara <hiren at freebsd.org> wrote:
> > 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 <lakshmi.n at msystechnologies>
> > 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
> > ==============================================================================
> > --- 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
> > ==============================================================================
> > --- head/sbin/ifconfig/iflagg.c Wed Aug 12 20:16:13 2015 (r286699)
> > +++ head/sbin/ifconfig/iflagg.c Wed Aug 12 20:21:04 2015 (r286700)
> > @@ -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[] = {
> > 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, setlaggsetopt),
> > + DEF_CMD("-lacp_fast_timeout", -LAGG_OPT_LACP_TIMEOUT, setlaggsetopt),
> > DEF_CMD_ARG("flowid_shift", setlaggflowidshift),
> > };
> > static struct afswtch af_lagg = {
> >
> > Modified: head/sys/net/ieee8023ad_lacp.c
> > ==============================================================================
> > --- 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 = TRUE; /* XXX should be configurable */
> > - boolean_t fast = FALSE; /* XXX should be configurable */
> > + boolean_t fast = FALSE; /* Configurable via ioctl */
> >
> > link_init_sdl(ifp, (struct sockaddr *)&sdl, IFT_ETHER);
> > sdl.sdl_alen = ETHER_ADDR_LEN;
> >
> > Modified: head/sys/net/ieee8023ad_lacp.h
> > ==============================================================================
> > --- 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 timeout */
> > };
> >
> > #define LACP_TYPE_ACTORINFO 1
> >
> > Modified: head/sys/net/if_lagg.c
> > ==============================================================================
> > --- head/sys/net/if_lagg.c Wed Aug 12 20:16:13 2015 (r286699)
> > +++ head/sys/net/if_lagg.c Wed Aug 12 20:21:04 2015 (r286700)
> > @@ -1257,6 +1257,8 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd
> > ro->ro_opts |= LAGG_OPT_LACP_RXTEST;
> > if (lsc->lsc_strict_mode != 0)
> > ro->ro_opts |= LAGG_OPT_LACP_STRICT;
> > + if (lsc->lsc_fast_timeout != 0)
> > + ro->ro_opts |= LAGG_OPT_LACP_TIMEOUT;
> >
> > ro->ro_active = 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 = lacp = 1;
> > break;
> > default:
> > @@ -1320,6 +1324,7 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd
> > sc->sc_opts &= ~ro->ro_opts;
> > } else {
> > struct lacp_softc *lsc;
> > + struct lacp_port *lp;
> >
> > lsc = (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 = 0;
> > break;
> > + case LAGG_OPT_LACP_TIMEOUT:
> > + LACP_LOCK(lsc);
> > + LIST_FOREACH(lp, &lsc->lsc_ports, lp_next)
> > + lp->lp_state |= LACP_STATE_TIMEOUT;
> > + LACP_UNLOCK(lsc);
> > + lsc->lsc_fast_timeout = 1;
> > + break;
> > + case -LAGG_OPT_LACP_TIMEOUT:
> > + LACP_LOCK(lsc);
> > + LIST_FOREACH(lp, &lsc->lsc_ports, lp_next)
> > + lp->lp_state &= ~LACP_STATE_TIMEOUT;
> > + LACP_UNLOCK(lsc);
> > + lsc->lsc_fast_timeout = 0;
> > + break;
> > }
> > }
> > LAGG_WUNLOCK(sc);
> >
> > Modified: head/sys/net/if_lagg.h
> > ==============================================================================
> > --- head/sys/net/if_lagg.h Wed Aug 12 20:16:13 2015 (r286699)
> > +++ head/sys/net/if_lagg.h Wed Aug 12 20:21:04 2015 (r286700)
> > @@ -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 ports */
> > u_int ro_active; /* active port count */
> > u_int ro_flapping; /* number of flapping */
> >
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 603 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/svn-src-all/attachments/20170118/b2e8dc69/attachment.sig>
More information about the svn-src-all
mailing list