From owner-svn-src-head@freebsd.org Wed Jan 18 22:03:24 2017 Return-Path: Delivered-To: svn-src-head@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 7EA3BCB61DA; Wed, 18 Jan 2017 22:03:24 +0000 (UTC) (envelope-from asomers@gmail.com) Received: from mail-yb0-x243.google.com (mail-yb0-x243.google.com [IPv6:2607:f8b0:4002:c09::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4EFDB1644; Wed, 18 Jan 2017 22:03:24 +0000 (UTC) (envelope-from asomers@gmail.com) Received: by mail-yb0-x243.google.com with SMTP id 123so1100402ybe.0; Wed, 18 Jan 2017 14:03:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=vPPg4l+exwR3HKT17hWmLGbKDmLRbmBsaeLhB4D8oLw=; b=FnV6QlmswxLY1QWxWRmPBSEjA/TiEZQ+fRSLALp3fMnG2reUSZvaP3UOasp0lzQ9o3 QWmikGy+HL0dfYgzy3QTQfjsUk20RDqoLfJEnwjejixdU5Jx2x3lmlXI/LSjpQJBIlBv EeqU68aNVRHLkO56K7M9JUkmEic+shonBhdXVcKDWq0167d/wOJGxP4T4HYKmZ+9c9h7 UY2gwvRSyYt/cApID9w6/kY50YLy0Li9EhdJajcjlq4g8/YHYPe8UvFo27XclBiI90iq 2zTZFRC/YUIVH3NIWibGKTqI3mUvvOJprn/VNaiDYKV04Pmn5O/sOyYWN/G8ObEFJWN9 sRnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=vPPg4l+exwR3HKT17hWmLGbKDmLRbmBsaeLhB4D8oLw=; b=E7bJzVPqfQMZgrbKQApFiEZUP+Tv7zPPB22nBRGZEsA6yk2aEyD3iQlmoBtXTVPdrn UXci25eqEyr8a/OSXHLGtZJngMpCy6UmQIPGt6U66b9IUywJ4X5NEUFcvJ64Y4sEDbQ8 Q79UPJ5N4zzsbFQKuDY/o0J308LASdp0dl8aWzfI5499qS2DVduKScouTXicLcHIWkOo KRVuNCZKR3vk+tmETngrbYyX5pnBQcRoHC6NslAnljh05XZ3JPO1vYrAo5eVGGczTs7E UCCDOWyXeUELb6xu7rDI4p0k0IIlrO7aSMbVje4JZ1Egie3cp4eCMgECVI2X5Y9d9/uN NsCQ== X-Gm-Message-State: AIkVDXKBrFNx+J4QBSp5nYIhWARmajSBr7Ov84n1h8H++eATM8fHTTOCpmwW1LrZ+VR6eiVy8jBHcBrcy9wUGg== X-Received: by 10.37.32.194 with SMTP id g185mr4216026ybg.167.1484777002784; Wed, 18 Jan 2017 14:03:22 -0800 (PST) MIME-Version: 1.0 Sender: asomers@gmail.com Received: by 10.129.38.133 with HTTP; Wed, 18 Jan 2017 14:03:22 -0800 (PST) In-Reply-To: <201508122021.t7CKL5wk016750@repo.freebsd.org> References: <201508122021.t7CKL5wk016750@repo.freebsd.org> From: Alan Somers Date: Wed, 18 Jan 2017 15:03:22 -0700 X-Google-Sender-Auth: dwjPJZd-jf0ztOJB0YjxAPUNzE4 Message-ID: Subject: Re: svn commit: r286700 - in head: sbin/ifconfig sys/net To: Hiren Panchasara Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jan 2017 22:03:24 -0000 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 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 > 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 */ >