[Ecn-sane] [PATCH net-next] tcp: avoid negotitating ECN for BBR

Sebastian Moeller moeller0 at gmx.de
Tue Nov 28 04:14:11 EST 2023


Hi Pete,


> On Nov 28, 2023, at 09:43, Pete Heist via Ecn-sane <ecn-sane at lists.bufferbloat.net> wrote:
> 
> It doesn't look like the patch to set TCP_CONG_DONT_USE_ECN in BBRv1
> was ever applied, but it also doesn't look like v1 was ever modified to
> react to CE, whereas BBRv3 appears to:
> 
> https://github.com/google/bbr/blob/v3/README.md#enabling-ecn-support
> 
> I'll post something about ecn_low separately.

	The way I read this is that BBR still does ignore rfc3168 ECN, but allows to use DCTCP style ECN on a route by route base... this at least seems to acknowledge that currently no randomly selected path is likely to support DCTCP style ECN... this seems far more cautious than I had feared. I still think that BBR did itself a disservice to ignore rfc3168 style ECN, but that is water down the bridge...

Regards
	Sebastian



> 
> Pete
> 
> On Mon, 2023-11-27 at 19:12 -0500, Dave Taht via Ecn-sane wrote:
>> Was this ever resolved?
>> 
>> ---------- Forwarded message ---------
>> From: David Miller <davem at davemloft.net>
>> Date: Fri, Jan 19, 2018 at 2:33 PM
>> Subject: Re: [PATCH net-next] tcp: avoid negotitating ECN for BBR
>> To: <ycheng at google.com>
>> Cc: <netdev at vger.kernel.org>, <edumazet at google.com>,
>> <ysseung at google.com>, <ncardwell at google.com>
>> 
>> 
>> From: Yuchung Cheng <ycheng at google.com>
>> Date: Tue, 16 Jan 2018 17:57:26 -0800
>> 
>>> This patch keeps BBR from negotiating ECN if sysctl ECN is
>>> set. Prior to this patch, BBR negotiates ECN if enabled, sends
>>> CWR upon receiving ECE ACKs but does not react to them. This can
>>> cause confusion from the protocol perspective. Therefore this
>>> patch prevents the connection from negotiating ECN if BBR is the
>>> congestion control during the handshake.
>>> 
>>> Note that after the handshake, the user can still switch to a
>>> different congestion control that supports or even requires ECN
>>> (e.g. DCTCP).  In that case, the connection can not re-negotiate
>>> ECN and has to go with the ECN-free mode in that congestion
>>> control.
>>> 
>>> There are other cases BBR would still respond to ECE ACKs with CWR
>>> but does not react to it like the behavior before this patch.
>>> First,
>>> when the user switches to BBR congestion control but the connection
>>> has already negotiated ECN before. Second, the system has
>>> configured
>>> the ip route and/or uses eBPF to enable ECN on the connection that
>>> uses BBR congestion control.
>>> 
>>> Signed-off-by: Yuchung Cheng <ycheng at google.com>
>>> Signed-off-by: Neal Cardwell <ncardwell at google.com>
>>> Acked-by: Yousuk Seung <ysseung at google.com>
>>> Acked-by: Eric Dumazet <edumazet at google.com>
>> 
>> Well, this is a bit disappointing.  I'm having trouble justifying
>> applying this.
>> 
>> Why doesn't BBR react to ECN notifications?  Is it because BBR's
>> idea of congestion differs from the one ECN is likely indicating?
>> 
>> This is really unfortunate, because if BBR does become quite
>> prominent
>> (that's what you want right? :-) then what little success there has
>> been deploying working ECN will be for almost nothing, and there
>> will be little incentive for further ECN deployment.
>> 
>> And the weird behavior you list in your last paragraph, about how if
>> the user switches to BBR then ECN will be active, is just a red flag
>> that shows perhaps this is a bad idea overall.
>> 
>> ECN behavior should not be so tightly bound to the congestion control
>> algorithm like this, it's a connection property independant of
>> congestion control algorithm.
>> 
>> I'm not applying this for now, sorry.  Maybe if you significantly
>> enhance the commit message and try to do something sane with the
>> algorithm switching case it is work a respin.
>> 
>> Thanks.
>> 
>> 
> 
> _______________________________________________
> Ecn-sane mailing list
> Ecn-sane at lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/ecn-sane



More information about the Ecn-sane mailing list