From owner-svn-src-all@freebsd.org Thu Jan 4 22:42:17 2018 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 C1775EBD1A1; Thu, 4 Jan 2018 22:42:17 +0000 (UTC) (envelope-from hiren@strugglingcoder.info) Received: from mail.strugglingcoder.info (strugglingcoder.info [104.236.146.68]) by mx1.freebsd.org (Postfix) with ESMTP id 9EA0B6510A; Thu, 4 Jan 2018 22:42:17 +0000 (UTC) (envelope-from hiren@strugglingcoder.info) Received: from localhost (unknown [10.1.1.3]) (Authenticated sender: hiren@strugglingcoder.info) by mail.strugglingcoder.info (Postfix) with ESMTPA id 70E3C179A6; Thu, 4 Jan 2018 14:42:14 -0800 (PST) Date: Thu, 4 Jan 2018 14:42:14 -0800 From: hiren panchasara To: Steven Hartland Cc: Eugene Grosbein , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r327559 - in head: . sys/net Message-ID: <20180104224214.GD18879@strugglingcoder.info> References: <201801042005.w04K5liB049411@repo.freebsd.org> <5A4E9397.9000308@grosbein.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="zaRBsRFn0XYhEU69" 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.25 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: Thu, 04 Jan 2018 22:42:17 -0000 --zaRBsRFn0XYhEU69 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On 01/04/18 at 09:52P, Steven Hartland wrote: > On 04/01/2018 20:50, Eugene Grosbein wrote: > > 05.01.2018 3:05, Steven Hartland wrote: > > > >> Author: smh > >> Date: Thu Jan 4 20:05:47 2018 > >> New Revision: 327559 > >> URL: https://svnweb.freebsd.org/changeset/base/327559 > >> > >> Log: > >> Disabled the use of flowid for lagg by default > >> =20 > >> Disabled the use of RSS hash from the network card aka flowid for > >> lagg(4) interfaces by default as it's currently incompatible with > >> the lacp and loadbalance protocols. > >> =20 > >> The incompatibility is due to the fact that the flowid isn't know > >> for the first packet of a new outbound stream which can result in > >> the hash calculation method changing and hence a stream being > >> incorrectly split across multiple interfaces during normal > >> operation. > >> =20 > >> This can be re-enabled by setting the following in loader.conf: > >> net.link.lagg.default_use_flowid=3D"1" > >> =20 > >> Discussed with: kmacy > >> Sponsored by: Multiplay > > RSS by definition has meaning to received stream. What is "outbound" st= ream > > in this context, why can the hash calculatiom method change and what ex= actly > > does it mean "a stream being incorrectly split"? > Yes RSS is indeed a received stream but that is used by lagg for lacp=20 > and loadbalance protocols to decide which port of the lagg to "send" the= =20 > packet out of. As the flowid is not known when a new "output" stream is= =20 > instigated the current code falls back to manual hash calculation to=20 > determine which port to send the initial packet from. Once a response is= =20 > received a tx then uses the flowid. This change of hash calculation=20 > method can result in the initial packet being sent from a different port= =20 > than the rest of the stream; this is what I meant by "incorrectly split". For my understanding, is this just an issue for the first packet when we originate the flow? Once we have a response and if flowid is there, we'd use it, right? OR am I missing something?=20 And with this change, we'd always go and do manual calculation even when we have a valid flowid (i.e. we didn't initiate a connection)? Thanks, Hiren >=20 > See the following: > https://github.com/freebsd/freebsd/blob/master/sys/net/if_lagg.c#L2066 > https://github.com/freebsd/freebsd/blob/master/sys/net/ieee8023ad_lacp.c#= L846 >=20 > > Defaults should not be changed so easily just because they are not opti= mal > > for some specific case. Each lagg has its own setting for flowid usage > > and why one cannot just use "ifconfig lagg0 -use_flowid" for such cases? > > > Yes we're already using -use_flowid to mitigate the problem, but the=20 > defaults should never result in broken behavior hence the change, at=20 > least for now. >=20 > For reference I did look at keeping the default of 1 but only using that= =20 > for protocols which weren't effected by the issue, and introducing a 2=20 > to force those that are, but as its defined as acting on creation and we= =20 > always create lagg interfaces as failover and then amend them that=20 > wasn't possible without making more invasive changes. >=20 > ??? Regards > ??? Steve --zaRBsRFn0XYhEU69 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQF8BAABCgBmBQJaTq3DXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRBNEUyMEZBMUQ4Nzg4RjNGMTdFNjZGMDI4 QjkyNTBFMTU2M0VERkU1AAoJEIuSUOFWPt/lO7IIAIttys/MHCicyyy/Ioi6f9Xa tWlZldwa/x4pR6pjt+/k79edyjagzDWPnNUlPL449iY8HIqk62/y3AEZasge5SGs XlIn9I3zadhMXDOp4zDmv2MIFbQJEEc2FmkqOziddFZP1rrLFIQhivlE5wvoGQkj MIQCzwByT/QlKbDCXt5PiMwk6OTzxbU/oMHCcIAN/uHomfiafZ+iWOFsjnGqm0MH NGG8u8os9Cl5IlvYfENod7RSi1abkkAjrBtTlvF+Ke6dycP37lOnNPy7ALvatFlb LSoQzfE+YDAsoCOyS5i8j581sQLuJZKCX4OVVrYVL0+j/Tjq2KNXZop5BQ8beqY= =Irfa -----END PGP SIGNATURE----- --zaRBsRFn0XYhEU69--