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

Bob Briscoe ietf at bobbriscoe.net
Thu Mar 21 09:24:04 EDT 2019


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.

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:
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.
Whereas L4S uses the original correct approach.

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 coupling is solely 
ECN behaviour not scheduling behaviour. So the primary difference 
between the queues is in their ECN-marking behaviour.

What do I mean by "the coupling overrides the network scheduler"? The 
network scheduler certainly does give priority to L4S packets whenever 
they arrive, but the coupling makes the L4S sources control how often 
packets arrive. It's tough to reason about, because we haven't had a 
mechanism like this before.

2b/ FQ L4S AQMs
If the AQM is implemented with per flow queues, the picture is clearer. 
The only difference between the queues is in the ECN marking behaviour 
of the different AQMs.


> Regards
>   Roland

Bob Briscoe                               http://bobbriscoe.net/

More information about the Bloat mailing list