From owner-svn-src-head@freebsd.org Thu Jan 4 21:52:32 2018 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 A0CFFEBA18B for ; Thu, 4 Jan 2018 21:52:32 +0000 (UTC) (envelope-from steven@multiplay.co.uk) Received: from mail-wm0-x22c.google.com (mail-wm0-x22c.google.com [IPv6:2a00:1450:400c:c09::22c]) (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 2E16238FC for ; Thu, 4 Jan 2018 21:52:32 +0000 (UTC) (envelope-from steven@multiplay.co.uk) Received: by mail-wm0-x22c.google.com with SMTP id f140so5821166wmd.2 for ; Thu, 04 Jan 2018 13:52:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=multiplay-co-uk.20150623.gappssmtp.com; s=20150623; h=from:subject:to:references:message-id:date:user-agent:mime-version :in-reply-to:content-language; bh=10cIvXIyYLVP/Vb8E7JslgkG0CR1qFsjGIPdWSvJVDU=; b=Wj/eUGmGwIGUNMfdp+zE6cgqtc21vCwrf3KYTlOs6jJDdvr//3Yy8lY5jOyQXo1i57 iC3t/3EepXpBQWurX+4ZH88gpQG4xlDFW+mt4VmHpERAJasbCCs3ejuFr6W6rs59OFdg yBa+NF/1kNFHWIM02Te0XE5npc0ONEqbfLT7ZSWMAXGEUaZyemYV030GfNK2tzXbGDdr /Qant0FX7RHd/MsN2SUD6u9a3NrN4QRZ8TAgoq6hnO33XGGyMoewlQ4jWTGkjmMm0R62 pX4UE/oSKnZIqEn5wvMG+OPIyXZ2ue/5ghDSOlNgeOuhGAwmCJnuu9vhqsSFK9lO8SjK T9Mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:references:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=10cIvXIyYLVP/Vb8E7JslgkG0CR1qFsjGIPdWSvJVDU=; b=Zz38iMDmV1pnp9wLekenp2XOo/nucB0s++44qbhC0NaQfb41sTs1jl6+i/pjwBVIVU +RXjoC+xdLLn3c8Zvp6PNqw6DsvUYKFs727m4OtVQh28mmBGGUUm08cXtNBApD/L5xqP O9KroY7Z4bsABBUBOlKfbecWaiyjBp3K28awKTD9IOst3QBiCFXlXOTNHPSfwwTt6s5o 7pm4R0Ay0etYHw/Vu6QFH0hE86TdN7Nlge5ro3uv5jKoa6Zhi7frx2YPnGYt+Oxbnb3A qYWy6ip6flQ+dTucDWTV7y+o7d3k69E3G8hfN8ifoE8wiEvgrqBskNToajfAYQPlED9p i5DQ== X-Gm-Message-State: AKGB3mLjbWDApE6bx5RK6Y2ylCNUgAVnJMGXio4qSxo+lIgPhx6ol3eF gzXDnLHgpGHIUx7Z6KREiLOjezSYQng= X-Google-Smtp-Source: ACJfBovEFrj7XwVKhYqNzFataJTdZh7IridUtuUpk4Y8kQNLuQ0OocMRY2AHVB8s6WC+Jzqn76PAmQ== X-Received: by 10.80.231.145 with SMTP id b17mr1264052edn.190.1515102750335; Thu, 04 Jan 2018 13:52:30 -0800 (PST) Received: from [10.10.1.111] ([185.97.61.1]) by smtp.gmail.com with ESMTPSA id o42sm2694890edo.91.2018.01.04.13.52.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 Jan 2018 13:52:29 -0800 (PST) From: Steven Hartland X-Google-Original-From: Steven Hartland Subject: Re: svn commit: r327559 - in head: . sys/net To: Eugene Grosbein , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201801042005.w04K5liB049411@repo.freebsd.org> <5A4E9397.9000308@grosbein.net> Message-ID: Date: Thu, 4 Jan 2018 21:52:30 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: <5A4E9397.9000308@grosbein.net> Content-Language: en-US Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 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: Thu, 04 Jan 2018 21:52:32 -0000 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 >> >> 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. >> >> 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. >> >> This can be re-enabled by setting the following in loader.conf: >> net.link.lagg.default_use_flowid="1" >> >> Discussed with: kmacy >> Sponsored by: Multiplay > RSS by definition has meaning to received stream. What is "outbound" stream > in this context, why can the hash calculatiom method change and what exactly > does it mean "a stream being incorrectly split"? Yes RSS is indeed a received stream but that is used by lagg for lacp and loadbalance protocols to decide which port of the lagg to "send" the packet out of. As the flowid is not known when a new "output" stream is instigated the current code falls back to manual hash calculation to determine which port to send the initial packet from. Once a response is received a tx then uses the flowid. This change of hash calculation method can result in the initial packet being sent from a different port than the rest of the stream; this is what I meant by "incorrectly split". 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 > Defaults should not be changed so easily just because they are not optimal > 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 defaults should never result in broken behavior hence the change, at least for now. For reference I did look at keeping the default of 1 but only using that for protocols which weren't effected by the issue, and introducing a 2 to force those that are, but as its defined as acting on creation and we always create lagg interfaces as failover and then amend them that wasn't possible without making more invasive changes.     Regards     Steve