From: Dave Taht <dave.taht@gmail.com>
To: ECN-Sane <ecn-sane@lists.bufferbloat.net>
Subject: [Ecn-sane] Fwd: [RFC PATCH 09/28] gso: AccECN support
Date: Thu, 19 Mar 2020 16:12:27 -0700 [thread overview]
Message-ID: <CAA93jw5BOe_ef6qHcFYaj3dXcvq2WwFkFvpUs0BfWCUmMd+o+w@mail.gmail.com> (raw)
In-Reply-To: <alpine.DEB.2.20.2003192233580.5256@whs-18.cs.helsinki.fi>
---------- Forwarded message ---------
From: Ilpo Järvinen <ilpo.jarvinen@cs.helsinki.fi>
Date: Thu, Mar 19, 2020 at 3:49 PM
Subject: Re: [RFC PATCH 09/28] gso: AccECN support
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Netdev <netdev@vger.kernel.org>, Yuchung Cheng
<ycheng@google.com>, Neal Cardwell <ncardwell@google.com>, Olivier
Tilmans <olivier.tilmans@nokia-bell-labs.com>
On Wed, 18 Mar 2020, Eric Dumazet wrote:
> On 3/18/20 2:43 AM, Ilpo Järvinen wrote:
> > From: Ilpo Järvinen <ilpo.jarvinen@cs.helsinki.fi>
> >
> > Handling the CWR flag differs between RFC 3168 ECN and AccECN.
> > Take it into account in GSO by not clearing the CWR bit.
> >
> > Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@cs.helsinki.fi>
> >
>
> Does it means TCP segmentation offload is disabled on all the NIC
> around ?
On general level, yes. HW TSO should be disabled with AccECN (or when CWR
flag is set for an incoming packet). The reason is how CWR flag is handled
by RFC 3168 ECN-aware TSO. It splits the segment such that CWR is cleared
starting from the 2nd segment which is incompatible how AccECN handles the
CWR flag. With AccECN, CWR flag (or more accurately, the ACE field that
also includes ECE & AE flags) changes only when new packet(s) with CE mark
arrives so the flag should not be changed within a super-skb. The new
feature flag is necessary to prevent such TSO engines happily clearing
CWRs (if the CWR handling feature cannot be turned off).
If NIC is completely unaware of RFC3168 ECN (doesn't support
NETIF_F_TSO_ECN) or its TSO engine can be set to not touch CWR flag
despite supporting also NETIF_F_TSO_ECN, TSO could be safely used with
AccECN on such NIC. I've little expertise on TSO HW so I don't know if
some/what NICs can do it. Nonetheless, there's nothing fundamental
preventing TSO being enabled with AccECN by NICs (if either of those
conditions is met).
In the cases, where TSO would fail to keep its hands off CWR flag, it
should fallback to GSO which has always on AccECN support (similar to
always on ECN support). I think that the current GSO changes are capable
of handling AccECN skbs. For the other parts of the idea above I'm not
so sure. There is this NETIF_F_GSO_SOFTWARE with comment that seems to
indicate it's doing what I want but I'm not fully sure if adding a flag
there is enough to achieve the desired effect?
On the rx side, supporting both RFC3168 and AccECN style CWR handling
is slightly more complicated (and possibly not worth the effort given
CWRs should be relatively rare with RFC3168-style ECN).
> Why tun driver is changed and not others ?
I think I didn't really understand why tun.c plays with the TSO_ECN flag
until now (after finding a related comment from tap.c) and so that change
now doesn't make much sense for me now any more. So I'll just remove that
part.
> I believe you need to give much more details in changelog in general,
> because many changes are not that obvious.
I'll try to.
Thanks.
--
i.
--
Make Music, Not War
Dave Täht
CTO, TekLibre, LLC
http://www.teklibre.com
Tel: 1-831-435-0729
next prev parent reply other threads:[~2020-03-19 23:12 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1584524612-24470-1-git-send-email-ilpo.jarvinen@helsinki.fi>
2020-03-19 22:21 ` [Ecn-sane] Fwd: [RFC PATCH 00/28]: Accurate ECN for TCP Dave Taht
[not found] ` <1584524612-24470-10-git-send-email-ilpo.jarvinen@helsinki.fi>
[not found] ` <6940af98-7083-15c7-dcea-54eb9d040a3d@gmail.com>
[not found] ` <alpine.DEB.2.20.2003192233580.5256@whs-18.cs.helsinki.fi>
2020-03-19 23:12 ` Dave Taht [this message]
[not found] ` <1584524612-24470-29-git-send-email-ilpo.jarvinen@helsinki.fi>
[not found] ` <CAA93jw7_YG-KMns8UP-aTPHNjPG+A_rwWUWbt1+8i4+UNhALnA@mail.gmail.com>
[not found] ` <alpine.DEB.2.20.2003202348250.21767@whs-18.cs.helsinki.fi>
2020-03-21 2:46 ` [Ecn-sane] Fwd: [RFC PATCH 28/28] tcp: AccECN sysctl documentation Dave Taht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://lists.bufferbloat.net/postorius/lists/ecn-sane.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAA93jw5BOe_ef6qHcFYaj3dXcvq2WwFkFvpUs0BfWCUmMd+o+w@mail.gmail.com \
--to=dave.taht@gmail.com \
--cc=ecn-sane@lists.bufferbloat.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox