* [Ecn-sane] BBRv3 ecn_low per-route feature and the CE confusion @ 2023-11-28 12:57 Pete Heist 2023-11-28 14:03 ` Jonathan Morton 2023-11-28 15:21 ` Sebastian Moeller 0 siblings, 2 replies; 4+ messages in thread From: Pete Heist @ 2023-11-28 12:57 UTC (permalink / raw) To: ECN-Sane [-- Attachment #1: Type: text/plain, Size: 1184 bytes --] Regarding the per-route ecn_low feature in BBRv3: https://github.com/google/bbr/blob/v3/README.md#introducing-the-ecn_low-per-route-feature When set, any incoming CE marks from an ecn_low flagged route will be treated as an L4S/RFC9331 CE, while CE marks from routes without that flag will be treated as a regular RFC3168 CE. Obviously this is problematic, as the two CE marks mean very different things, and outside of closed environments, there's no reliable way to know which type of CE you're receiving. The consequences of confusing them range from massive self-induced bloat, to driving competing traffic in the same queue down to minimum cwnd. The solution here is to just punt, so at least tests and demos can be made to work. This isn't a problem with BBR. The problem is, we've started an experiment [RFC9331] that redefines the meaning of CE in a way that's incompatible with existing RFC3168 middleboxes. This feature in BBR is just a reflection of that. CCA developers are now tasked with somehow deciding which type of CE they're seeing. Speaking of ecn "sane", does anyone else see this as not? :) and as a problem that needs solving? Pete [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 659 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Ecn-sane] BBRv3 ecn_low per-route feature and the CE confusion 2023-11-28 12:57 [Ecn-sane] BBRv3 ecn_low per-route feature and the CE confusion Pete Heist @ 2023-11-28 14:03 ` Jonathan Morton 2023-11-28 15:21 ` Sebastian Moeller 1 sibling, 0 replies; 4+ messages in thread From: Jonathan Morton @ 2023-11-28 14:03 UTC (permalink / raw) To: Pete Heist; +Cc: ECN-Sane > On 28 Nov, 2023, at 2:57 pm, Pete Heist via Ecn-sane <ecn-sane@lists.bufferbloat.net> wrote: > > This isn't a problem with BBR. The problem is, we've started an > experiment [RFC9331] that redefines the meaning of CE in a way that's > incompatible with existing RFC3168 middleboxes. This feature in BBR is > just a reflection of that. CCA developers are now tasked with somehow > deciding which type of CE they're seeing. > > Speaking of ecn "sane", does anyone else see this as not? :) and as a > problem that needs solving? Count me in the "not sane" camp, at least. This is exactly the kind of ambiguity that SCE is designed to avoid. - Jonathan Morton ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Ecn-sane] BBRv3 ecn_low per-route feature and the CE confusion 2023-11-28 12:57 [Ecn-sane] BBRv3 ecn_low per-route feature and the CE confusion Pete Heist 2023-11-28 14:03 ` Jonathan Morton @ 2023-11-28 15:21 ` Sebastian Moeller 2023-11-28 16:28 ` Pete Heist 1 sibling, 1 reply; 4+ messages in thread From: Sebastian Moeller @ 2023-11-28 15:21 UTC (permalink / raw) To: Pete Heist; +Cc: ECN-Sane Hi Pete, > On Nov 28, 2023, at 13:57, Pete Heist via Ecn-sane <ecn-sane@lists.bufferbloat.net> wrote: > > Regarding the per-route ecn_low feature in BBRv3: > https://github.com/google/bbr/blob/v3/README.md#introducing-the-ecn_low-per-route-feature > > When set, any incoming CE marks from an ecn_low flagged route will be > treated as an L4S/RFC9331 CE, while CE marks from routes without that > flag will be treated as a regular RFC3168 CE. I am probably blind, but looking at https://github.com/google/bbr/blob/v3/net/ipv4/tcp_bbr.c I do not see this fall back to a rfc3168 compliant response, as far as I read this this is DCTCP or nothing... Or did you just mean that BBRv3 will treat CE just like BBRv1 and silently ignore it? > Obviously this is > problematic, as the two CE marks mean very different things, and > outside of closed environments, there's no reliable way to know which > type of CE you're receiving. The consequences of confusing them range > from massive self-induced bloat, to driving competing traffic in the > same queue down to minimum cwnd. The solution here is to just punt, so > at least tests and demos can be made to work. The per-route feature looks like a desirable safety... as does the default 5ms rtt "low-pass", where IIUC ECN will only be evaluated if the RTT is below 5ms... > This isn't a problem with BBR. The problem is, we've started an > experiment [RFC9331] that redefines the meaning of CE in a way that's > incompatible with existing RFC3168 middleboxes. This feature in BBR is > just a reflection of that. CCA developers are now tasked with somehow > deciding which type of CE they're seeing. > > Speaking of ecn "sane", does anyone else see this as not? :) and as a > problem that needs solving? Yes, however I assume this will solve it self, as is this usage of CE is over-promising and under-delivering, so I do not see this "winning the internet" in spite of the amount of thrust is put behind it... Regards Sebastian > > Pete > > _______________________________________________ > Ecn-sane mailing list > Ecn-sane@lists.bufferbloat.net > https://lists.bufferbloat.net/listinfo/ecn-sane ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Ecn-sane] BBRv3 ecn_low per-route feature and the CE confusion 2023-11-28 15:21 ` Sebastian Moeller @ 2023-11-28 16:28 ` Pete Heist 0 siblings, 0 replies; 4+ messages in thread From: Pete Heist @ 2023-11-28 16:28 UTC (permalink / raw) To: Sebastian Moeller; +Cc: ECN-Sane [-- Attachment #1: Type: text/plain, Size: 2877 bytes --] On Tue, 2023-11-28 at 16:21 +0100, Sebastian Moeller wrote: > Hi Pete, > > > > On Nov 28, 2023, at 13:57, Pete Heist via Ecn-sane > > <ecn-sane@lists.bufferbloat.net> wrote: > > > > Regarding the per-route ecn_low feature in BBRv3: > > https://github.com/google/bbr/blob/v3/README.md#introducing-the-ecn_low-per-route-feature > > > > When set, any incoming CE marks from an ecn_low flagged route will > > be > > treated as an L4S/RFC9331 CE, while CE marks from routes without > > that > > flag will be treated as a regular RFC3168 CE. > > I am probably blind, but looking at > https://github.com/google/bbr/blob/v3/net/ipv4/tcp_bbr.c > I do not see this fall back to a rfc3168 compliant response, as far > as I read this this is DCTCP or nothing... > Or did you just mean that BBRv3 will treat CE just like BBRv1 and > silently ignore it? TBH, I hadn't read the code but I think you're right. The doc makes it sound like enabling ECN support could be done with or without the ecn_low feature, implying that it would react properly to either type of CE. It appears to still ignore CE though unless ecn_low is flagged, and other conditions are met. So yes, L4S/DCTCP response or bust. Same result though, this confusion is harmful to the ECN field. Pete > > Obviously this is > > problematic, as the two CE marks mean very different things, and > > outside of closed environments, there's no reliable way to know > > which > > type of CE you're receiving. The consequences of confusing them > > range > > from massive self-induced bloat, to driving competing traffic in > > the > > same queue down to minimum cwnd. The solution here is to just punt, > > so > > at least tests and demos can be made to work. > > The per-route feature looks like a desirable safety... as > does the default 5ms rtt "low-pass", where IIUC ECN will only be > evaluated if the RTT is below 5ms... > > > > This isn't a problem with BBR. The problem is, we've started an > > experiment [RFC9331] that redefines the meaning of CE in a way > > that's > > incompatible with existing RFC3168 middleboxes. This feature in BBR > > is > > just a reflection of that. CCA developers are now tasked with > > somehow > > deciding which type of CE they're seeing. > > > > Speaking of ecn "sane", does anyone else see this as not? :) and as > > a > > problem that needs solving? > > Yes, however I assume this will solve it self, as is this > usage of CE is over-promising and under-delivering, so I do not see > this "winning the internet" in spite of the amount of thrust is put > behind it... > > Regards > Sebastian > > > > > > Pete > > > > _______________________________________________ > > Ecn-sane mailing list > > Ecn-sane@lists.bufferbloat.net > > https://lists.bufferbloat.net/listinfo/ecn-sane > [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 659 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-11-28 16:28 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-11-28 12:57 [Ecn-sane] BBRv3 ecn_low per-route feature and the CE confusion Pete Heist 2023-11-28 14:03 ` Jonathan Morton 2023-11-28 15:21 ` Sebastian Moeller 2023-11-28 16:28 ` Pete Heist
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox