[Bloat] [Ecn-sane] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-22 Thread Victor Hou
On Mon Mar 18 21:06:57 EDT 2019, Bob Briscoe said:



>>>

* In summer 2017 CableLabs started work on Low Latency DOCSIS, and hired

me later in the year to help develop and specify it, along with support

for L4S

   o In Jan 2019 the Low Latency DOCSIS spec was published and is now

being implemented.

   o You can find the primary companies involved at the end of the White

Paper.

https://cablela.bs/low-latency-docsis-technology-overview-february-2019

   o Operators:

 Liberty Global

 Charter

 Rogers

 Comcast

 Shaw

 Cox Communications

o Equipment vendors

 ARRIS

 Huawei

 Broadcom

 Intel

 Casa

 Nokia

 Cisco

 Videotron

>>>



Broadcom has been deeply involved in developing the Low Latency DOCSIS
cable industry specification that Bob Briscoe mentioned.  We concur with
the L4S use of ECT(1).  L4S can be implemented either in a dual-queue or an
fq implementation. SCE cannot be implemented with a dual-queue
implementation; the only way to support it is with an fq implementation.
An fq implementation is incompatible with the Low Latency DOCSIS
specification developed within the cable industry.



Victor
___
Bloat mailing list
Bloat@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/bloat


Re: [Bloat] [Ecn-sane] [iccrg] Fwd: [tcpPrague] Implementation and experimentation of TCP Prague/L4S hackaton at IETF104

2019-03-22 Thread Bless, Roland (TM)
Hi Bob,

see inline.

Am 21.03.19 um 14:24 schrieb Bob Briscoe:
> On 21/03/2019 08:49, Bless, Roland (TM) wrote:
>> Hi,
>>
>> Am 21.03.19 um 09:02 schrieb Bob Briscoe:
>>> Just to rapidly reply,
>>>
>>>
>>> On 21/03/2019 07:46, Jonathan Morton wrote:
 The ECN field was never intended to be used as a classifier, except to
 distinguish Not-ECT flows from ECT flows (which a middlebox does need
 to know, to choose between mark and drop behaviours).  It was intended
 to be used to convey congestion information from the network to the
 receiver.  SCE adheres to that ideal.
>>> Each PHB has a forwarding behaviour a DSCP re-marking behaviour and an
>>> ECN marking behaviour. The ECN field is the claissifer for the ECN
>>> marking behaviour.
>> That's exactly the reason, why using ECT(1) as classifier for L4S
>> behavior is not the right choice. L4S should use a DSCP for
>> classification, because it is actually defining a PHB.
> 
> 1/ First Terminology
> The definition of 'PHB' includes the drop or ECN-marking behaviour. For
> instance, you see this in WRED or in PCN (Pre-Congestion Notification). 
> If you want to solely talk about scheduling, pls say the scheduling PHB.

I thought that I'm well versed with Diffserv terminology, but I'm not
aware that a Diffserv PHB requires the definition of an ECN marking
behavior. In fact ECN is orthogonal to Diffserv as both RFCs 2474 and
2475 do not even mention ECN. RFC 2475:
"A per-hop behavior (PHB) is a description of the externally
observable forwarding behavior of a DS node applied to a particular
DS behavior aggregate." and "Useful behavioral distinctions
are mainly observed when multiple behavior aggregates compete for
buffer and bandwidth resources on a node."

Usually, there are different mechanisms how to implement a PHB,
e.g., for EF one could use a tail drop queue and Simple Priority
Queueing, Weighted Fair Queueing, or Deficit Round Robin and so
on. Consequently, queueing and scheduling behavior are used to
_implement_ a PHB, i.e., IMHO it makes sense to distinguish between
the PHB as externally observable behavior and a specific _PHB
implementation_ as also pointed out in RFC2475:
   PHBs are implemented in nodes by means of some buffer management and
   packet scheduling mechanisms.  PHBs are defined in terms of behavior
   characteristics relevant to service provisioning policies, and not in
   terms of particular implementation mechanisms.


So some of the Diffserv PHBs do _not_ require using an AQM,
which is often the basis for ECN marking, e.g., for EF
tail drop should be sufficient. For other PHBs it may be
useful to say something about ECN usage (as I did for LE).

RFC 2475:

   PHBs may be specified in terms of their resource (e.g., buffer,
   bandwidth) priority relative to other PHBs, or in terms of their
   relative observable traffic characteristics (e.g., delay, loss).

I think that L4S therefore specifies such a PHB as it is defined
in relation to the default PHB (as in the L4S arch draft
"Classic service").

> 2/ The architectural intent of the ECN field
> 
> For many years (long before we thought of L4S) I have been making sure
> that ECN propagation through the layers supports the duality of ECN
> behaviours as both a classifier (on the way down from L7/L4 to L3/2) and
> as a return value (on the way back up).
> 
> The architecture of ECN is determined by the valid codepoint
> transitions. They are:

I wouldn't say that it's determined solely by the transitions.

> 1. 00->11
> 2. 10->11
> 3. 01->11
> 4. 10->01
> 
> The first three were in RFC3168, but it did not preclude the fourth.
> The fourth was first standardized in RFC6660 (which I co-authored). This
> had to be isolated from the e2e use of ECN by inclusion of a DSCP as well.
> 
> The relatively late addition of the fourth approach means that an
> attempt to mark using the SCE approach (10->01) is more likely to find
> that it gets reversed when the outer header is decapsulated, if the
> decapsulator hasn't been updated to the latest RFC that catered for this
> fourth transition (RFC6040, also co-authored by me).
> 
> L4S follows the original RFC3168 approach
> SCE uses the fourth
> 
> So, SCE proposes to use /a/ correct approach, but it might not work.

In case of nodes that implement RFC6040? I think that it would
be useful to measure how many boxes out there actually do this
(or how widespread is ECN usage actually, e.g., how many boxes
actually set CE on congestion? MAMI results anyone?).

> Whereas L4S uses the original correct approach.

Which might also not work...in case RFC3168 boxes set CE, so
the L4S receivers/senders cannot know that the CE wasn't set
by an L4S node.

> 3a/ DualQ L4S AQMs
> With the DualQ, the difference between the two queues is both in their
> ECN marking behaviour and in their forwarding/scheduling behaviour.
> However, whenever there's traffic in the classic queue the coupling
> between the AQMs overrides the network scheduler. The