Discussion of explicit congestion notification's impact on the Internet
 help / color / mirror / Atom feed
From: Sebastian Moeller <moeller0@gmx.de>
To: "Black, David" <David.Black@dell.com>
Cc: Bob Briscoe <ietf@bobbriscoe.net>,
	"ecn-sane@lists.bufferbloat.net" <ecn-sane@lists.bufferbloat.net>,
	"tsvwg@ietf.org" <tsvwg@ietf.org>, Dave Taht <dave@taht.net>,
	"De Schepper,
	Koen (Nokia - BE/Antwerp)" <koen.de_schepper@nokia-bell-labs.com>
Subject: Re: [Ecn-sane] [tsvwg] Compatibility with singlw queue RFC3168 AQMs
Date: Fri, 26 Jul 2019 18:06:52 +0200	[thread overview]
Message-ID: <1485F800-CFA5-40D6-8A49-CED09971911C@gmx.de> (raw)
In-Reply-To: <CE03DB3D7B45C245BCA0D243277949363063EA1C@MX307CL04.corp.emc.com>

Dear David,

thanks for your clearing things up. I see, I should have read deeper into the relevant "web" of RFCs before asking.

Am I correct in interpreting the following  sentence from RFC 8311:
"ECN experiments are expected to coexist with deployed ECN
   functionality, with the responsibility for that coexistence falling
   primarily upon designers of experimental changes to ECN."
as meaning, that L4S will need to implement the long discussed fall-back to RFC3168 compliant responses to CE marks, if a RFC3168 AQM is detected as being active on a path, and that L4S endpoint need to closely monitor for signs of RFC3168 behavior? I ask because section 4.1 fails to put in those safe-guard clauses explicitly (in my reading this effectively says anything goes, as long as it is defined in its own RFC)

Now looking at the L4S RFC I see (https://tools.ietf.org/html/draft-ietf-tsvwg-l4s-arch-04#page-21 (assuming that this is one of the RFCs required to allow the exemption according to RFC8311)):

"Classic ECN support is starting to materialize on the Internet as an
   increased level of CE marking.  Given some of this Classic ECN might
   be due to single-queue ECN deployment, an L4S sender will have to
   fall back to a classic ('TCP-Friendly') behaviour if it detects that
   ECN marking is accompanied by greater queuing delay or greater delay
   variation than would be expected with L4S (see Appendix A.1.4 of [I-D.ietf-tsvwg-ecn-l4s-id]).  
   It is hard to detect whether this is
   all due to the addition of support for ECN in the Linux
   implementation of FQ-CoDel, which would not require fall-back to
   Classic behaviour, because FQ inherently forces the throughput of
   each flow to be equal irrespective of its aggressiveness."

Which I believe to be problematic, as it conflates issues. The problem with L4S-CE response on non L4S-AQMs is that it will give L4S flows an unfair and unexpected advantage, so L4S endpoints should aim at detecting non-L4S AQMs on the path and not (just) "that ECN marking is accompanied by greater queuing delay or greater delay variation than would be expected with L4S". Sure delay variations can be a eans of trying to detect such an AQM, but this text basically gives L4S the license to just look at RTT variations and declare victory if these stay below an arbitrary threshold.
	Also I voiced concerns about the rationale for excluding RFC3168 FQ-AQMs from this fall-back treatment, and gave an explicit example of a system in use (post-true bottleneck ingress shaping) that I would like to see to be tested first. This should be easy to test (and as far as I know these tests are planned if not already done) so that the RFC can either be amended with a link to the data showing that this is harmless, or changed ot indicate that the fall-back might also be required for FQ-AQMs under certain conditions.


Now if I look at https://tools.ietf.org/html/draft-ietf-tsvwg-ecn-l4s-id-07#page-25, I see the following:

"A.1.4.  Fall back to Reno-friendly congestion control on classic ECN bottlenecks

   Description: A scalable congestion control needs to react to ECN
   marking from a non-L4S but ECN-capable bottleneck in a way that will
   coexist with a TCP Reno congestion control [RFC5681].

   Motivation: Similarly to the requirement in Appendix A.1.3, this
   requirement is a safety condition to ensure a scalable congestion
   control behaves properly when it builds a queue at a network
   bottleneck that has not been upgraded to support L4S.  On detecting
   classic ECN marking (see below), a scalable congestion control will
   need to fall back to classic congestion control behaviour.  If it
   does not comply with this requirement it could starve classic
   traffic.

   It would take time for endpoints to distinguish classic and L4S ECN
   marking.  An increase in queuing delay or in delay variation would be
   a tell-tale sign, but it is not yet clear where a line would be drawn
   between the two behaviours.  It might be possible to cache what was
   learned about the path to help subsequent attempts to detect the type
   of marking."

Here, the special casing of FQ-AQMs does not seem to be present, which L4S RFC will have precedence here?


Anyway, am I correct in interpreting all of the above as a clear an unambiguous requirement for L4S components like TCP-Prague to implement RFC3168-AQM detection and fall-back to appropriate behavior before being given the permission for usage on the wider internet?


Best Regards
	Sebastian

> On Jul 26, 2019, at 16:10, Black, David <David.Black@dell.com> wrote:
> 
> Inline comment on "IETF's official stance":
> 
>> The first option seems highly undesirable to me, as a) (TCP-friendly) single queue
>> RFC3168 AQM are standards compliant and will be for the foreseeable future, so
>> ms making them ineffective seems like a no-go to me (could someone clarify
>> what the IETF's official stance is on this matter, please?),
> 
> The IETF expects that all relevant technical concerns such as this one will be raised by participants and will be carefully considered by the WG in determining what to do.
> 
> That was the technical answer, now for the official [officious? :-) ] answer ... the current L4S drafts do not modify RFC 3168 beyond the modifications already made by RFC 8311.  If anyone believes that to be incorrect, i.e., believes at least one of the L4S drafts has to further modify RFC 3168, please bring that up with a specific reference to the text in "RFC 3168 as modified by RFC 8311" that needs further modification.
> 
> Thanks, --David
> 
>> -----Original Message-----
>> From: Sebastian Moeller <moeller0@gmx.de>
>> Sent: Friday, July 26, 2019 6:20 AM
>> To: Bob Briscoe
>> Cc: Black, David; ecn-sane@lists.bufferbloat.net; tsvwg@ietf.org; Dave Taht; De
>> Schepper, Koen (Nokia - BE/Antwerp)
>> Subject: [Ecn-sane] [tsvwg] Compatibility with singlw queue RFC3168 AQMs
>> 
>> 
>> [EXTERNAL EMAIL]
>> 
>> Dear Bob,
>> 
>> we have been going through the consequences and side effects of re-defining
>> the meaning of a CE-mark for L4S-flows and using ECT(1) as a flllow-classifying
>> heuristic.
>> One of the side-effects is that  a single queue ecn-enabled AQM will CE-marl L4S
>> packets, expecting a strong reduction in sending rate, while the L4S endpoints
>> will only respond to that signal with a mild rate-reduction. One of the
>> consequences of this behaviour is that L4S flows will crowd out RFC3168 and
>> non-ECN flows, because these flows half their rates on drop or CE-mark
>> (approximately) making congestion go away with the end result that the L4S
>> flows gain an undesired advantage, at least that is my interpretation of the
>> discussion so far.
>> Now there are two options to deal with this issue, one is to declare it
>> insignificant and just ignore it, or to make L4S endpoints detect that condition
>> and revert back to RFC3168 behaviour.
>> The first option seems highly undesirable to me, as a) (TCP-friendly) single queue
>> RFC3168 AQM are standards compliant and will be for the foreseeable future, so
>> ms making them ineffective seems like a no-go to me (could someone clarify
>> what the IETF's official stance is on this matter, please?), b) I would expect most
>> of such AQMs to be instantiated close to/at the consu,er's edge of the internet,
>> making it really hard to ameasure their prevalence.
>> In short, I believe the only sane way forward is to teach L4S endpoints to to the
>> right thing under such conditions, I believe this would not be too onerous an ask,
>> given that the configuration is easy to set up for testing and development and a
>> number of ideas have already been theoretically discussed here. As far as I can
>> see these ideas mostly riff on the idea that such anAQM will, under congesation
>> conditions, increase each ftraversing flow's RTT and that should be quickly and
>> robustly detectable. I would love to learn more about these ideas and the state
>> of development and testing.
>> 
>> Best Regards & many thanks in advance
>> 	Sebastian Moeller


  reply	other threads:[~2019-07-26 16:07 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-05  0:01 [Ecn-sane] Comments on L4S drafts Holland, Jake
2019-06-07 18:07 ` Bob Briscoe
2019-06-14 17:39   ` Holland, Jake
2019-06-19 14:11     ` Bob Briscoe
2019-07-10 13:55       ` Holland, Jake
2019-06-14 20:10   ` [Ecn-sane] [tsvwg] " Luca Muscariello
2019-06-14 21:44     ` Dave Taht
2019-06-15 20:26       ` [Ecn-sane] [tsvwg] CoIt'smments " David P. Reed
2019-06-19  1:15     ` [Ecn-sane] [tsvwg] Comments " Bob Briscoe
2019-06-19  1:33       ` Dave Taht
2019-06-19  4:24       ` Holland, Jake
2019-06-19 13:02         ` Luca Muscariello
2019-07-04 11:54           ` Bob Briscoe
2019-07-04 12:24             ` Jonathan Morton
2019-07-04 13:43               ` De Schepper, Koen (Nokia - BE/Antwerp)
2019-07-04 14:03                 ` Jonathan Morton
2019-07-04 17:54                   ` Bob Briscoe
2019-07-05  8:26                     ` Jonathan Morton
2019-07-05  6:46                   ` De Schepper, Koen (Nokia - BE/Antwerp)
2019-07-05  8:51                     ` Jonathan Morton
2019-07-08 10:26                       ` De Schepper, Koen (Nokia - BE/Antwerp)
2019-07-08 20:55                         ` Holland, Jake
2019-07-10  0:10                           ` Jonathan Morton
2019-07-10  9:00                           ` De Schepper, Koen (Nokia - BE/Antwerp)
2019-07-10 13:14                             ` Dave Taht
2019-07-10 17:32                               ` De Schepper, Koen (Nokia - BE/Antwerp)
2019-07-17 22:40                             ` Sebastian Moeller
2019-07-19  9:06                               ` De Schepper, Koen (Nokia - BE/Antwerp)
2019-07-19 15:37                                 ` Dave Taht
2019-07-19 18:33                                   ` Wesley Eddy
2019-07-19 20:03                                     ` Dave Taht
2019-07-19 22:09                                       ` Wesley Eddy
2019-07-19 23:42                                         ` Dave Taht
2019-07-24 16:21                                           ` Dave Taht
2019-07-19 20:06                                     ` Black, David
2019-07-19 20:44                                       ` Jonathan Morton
2019-07-19 22:03                                         ` Sebastian Moeller
2019-07-20 21:02                                           ` Dave Taht
2019-07-21 11:53                                           ` Bob Briscoe
2019-07-21 15:30                                             ` [Ecn-sane] Hackathon tests Dave Taht
2019-07-21 15:33                                             ` [Ecn-sane] [tsvwg] Comments on L4S drafts Sebastian Moeller
2019-07-21 16:00                                             ` Jonathan Morton
2019-07-21 16:12                                               ` Sebastian Moeller
2019-07-22 18:15                                               ` De Schepper, Koen (Nokia - BE/Antwerp)
2019-07-22 18:33                                                 ` Dave Taht
2019-07-22 19:48                                                 ` Pete Heist
2019-07-25 16:14                                                   ` De Schepper, Koen (Nokia - BE/Antwerp)
2019-07-26 13:10                                                     ` Pete Heist
2019-07-26 15:05                                                       ` [Ecn-sane] The state of l4s, bbrv2, sce? Dave Taht
2019-07-26 15:32                                                         ` Dave Taht
2019-07-26 15:37                                                         ` Neal Cardwell
2019-07-26 15:45                                                           ` Dave Taht
2019-07-23 10:33                                                 ` [Ecn-sane] [tsvwg] Comments on L4S drafts Sebastian Moeller
2019-07-21 12:30                                       ` Bob Briscoe
2019-07-21 16:08                                         ` Sebastian Moeller
2019-07-21 19:14                                           ` Bob Briscoe
2019-07-21 20:48                                             ` Sebastian Moeller
2019-07-25 20:51                                               ` Bob Briscoe
2019-07-25 21:17                                                 ` Bob Briscoe
2019-07-25 22:00                                                   ` Sebastian Moeller
2019-07-26 10:20                                                     ` [Ecn-sane] [tsvwg] Compatibility with singlw queue RFC3168 AQMs Sebastian Moeller
2019-07-26 14:10                                                       ` Black, David
2019-07-26 16:06                                                         ` Sebastian Moeller [this message]
2019-07-26 19:58                                                           ` Black, David
2019-07-26 21:34                                                             ` Sebastian Moeller
2019-07-26 16:15                                                         ` Holland, Jake
2019-07-26 20:07                                                           ` Black, David
2019-07-26 23:40                                                             ` Jonathan Morton
2019-08-07  8:41                                                               ` Mikael Abrahamsson
2019-08-07 10:06                                                                 ` Mikael Abrahamsson
2019-08-07 11:57                                                                   ` Jeremy Harris
2019-08-07 12:03                                                                     ` Mikael Abrahamsson
2019-08-07 12:14                                                                       ` Sebastian Moeller
2019-08-07 12:25                                                                         ` Mikael Abrahamsson
2019-08-07 12:34                                                                       ` Jeremy Harris
2019-08-07 12:49                                                                         ` Mikael Abrahamsson
     [not found]                                         ` <5D34803D.50501@erg.abdn.ac.uk>
2019-07-21 16:43                                           ` [Ecn-sane] [tsvwg] Comments on L4S drafts Black, David
2019-07-21 12:30                                       ` Scharf, Michael
2019-07-19 21:49                                     ` Sebastian Moeller
2019-07-22 16:28                                   ` Bless, Roland (TM)
2019-07-19 17:59                                 ` Sebastian Moeller
2019-07-05  9:48             ` Luca Muscariello
2019-07-04 13:45         ` Bob Briscoe
2019-07-10 17:03           ` Holland, Jake

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=1485F800-CFA5-40D6-8A49-CED09971911C@gmx.de \
    --to=moeller0@gmx.de \
    --cc=David.Black@dell.com \
    --cc=dave@taht.net \
    --cc=ecn-sane@lists.bufferbloat.net \
    --cc=ietf@bobbriscoe.net \
    --cc=koen.de_schepper@nokia-bell-labs.com \
    --cc=tsvwg@ietf.org \
    /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