Dave,

As promised, here's my thoughts on what PIE (and CoDel) should do when ECN is enabled.


There's also new info in here that I think is important: CoDel uses an RTT estimate in two different places. One has to be the max expected RTT, the other should be the (harmonic) mean of expected RTTs.

The former might be 100ms, but the latter is more likely to be 15-20ms, given most traffic in the developed world these days comes from CDNs. This could make significant difference to performance.


Bob

Date: Tue, 14 Apr 2015 19:59:47 +0100
To: "Fred Baker (fred)" <[email protected]>
From: Bob Briscoe <[email protected]>
Subject: ECN AQM parameters (was: AQM Recommendation: last minute change?)
Cc: Gorry Fairhurst <[email protected]>, Richard Scheffenegger <[email protected]>, "Eddy Wesley M. [VZ]" <[email protected]>, "[email protected]" <[email protected]>

Fred,

At 22:27 13/04/2015, Fred Baker (fred) wrote:

I think w have a pregnant statement in this case. What parameters do you have in mind?

The point was simply to ensure that implementers provide sufficient flexibility so that /any or all/ of the AQM parameters for ECN traffic could be separate instances from those for drop. But they would still apply to the same queue, much like the different RED curves for different traffic classes in the WRED algo.


With RED, the parameters available to change are min-threshold, max-threshold, the limit mark/drop rate, and (IIRC) the minimum inter-mark/drop interval.

...and, importantly, the EMWA constant, which is the main parameter I would change for ECN (for ECN set ewma-const = 0, assuming the Cisco definition of ewma-const as
   EWMA weight = 2^{ema-const}
So for ECN, EWMA weight = 2^0 = 1).

See also {Note 1} about inter-mark/drop interval.

With PIE, the equation is
     p = p + alpha*(est_del-target_del) + beta*(est_del-est_del_old).
meaning that we can meaningfully tune alpha, beta, and target_del, and there is an additional 'max_burst' parameter.

Yes.
Strictly, the min data in the queue before PIE measures the rate ('dq_threshold') is a parameter as well.

With Codel, if I understand section 4, the only parameters are the "a round-trip time metric" (100 ms by default) and the Setpoint, which they set to 5 ms based on it being 5-10% of the RTT.

If it's not the target delay, which is essentially what Codel's setpoint is, I'm not sure what parameter you want to change.

There are actually two more hidden parameters in CoDel's control law, which is written in the pseudocode as :
   t + interval / sqrt(count)
but ought to have been written as:
   t + rtt_ave / (count)^b

These parameters have been hard-coded as
   rtt_ave = interval
and
   b=1/2.

'rtt_ave' in the control law is better set to a likely /average/ RTT, whereas the interval used to determine whether to enter dropping mode is better set to a likely /maximum/ RTT.

To implement an ECN variant of CoDel I would set
   interval = 0 (or very close to zero)
and I would leave 'rtt_ave' (in the control law) as an average RTT, decoupled from 'interval'.

However, the CoDel control law was designed assuming it will remove packets from the queue, so I'm not convinced that any naive approach for implementing ECN will work. I suspect a CoDel-ECN doesn't just need different parameters, it needs a different algo.

I have no interest in solving this problem, because I wouldn't start from CoDel in the first place - I would never design an AQM that switches between discrete modes, and CoDel's control law assumes that the e2e congestion control is NewReno which contravenes our AQM recommendations anyway.


In saying 'in this case you might want to mess with the parameters', I'm not sure what parameters are under discussion, and in any event we're talking about the document that says 'we should have an algorithm', not the discussion of any of them in particular.

To my mind, this begs for a new draft on your part.

Certainly. We're still doing the research and evaluation tho (see <http://www.ietf.org/proceedings/92/slides/slides-92-iccrg-5.pdf>www.ietf.org/proceedings/92/slides/slides-92-iccrg-5.pdf - I don't remember whether you were in the room for that). But, yes, we will write it up.

So far it's not based on RED, PIE or CoDel, but a new drop-based AQM that is most similar to RED but with only 2 parameters (not 4). This is because we needed the drop probability to be the square of the marking probability. So it made the implementation really simple to use a square curve through the origin for drop. It doesn't need min_thresh, because the square curve near-enough runs along the axis when it is close to the origin. For the square curve we used a probability trick - we merely had to compare the queue delay with the max of two random numbers. RED (especially gentle RED) can be thought of as a piecewise linear approximation of a square curve.

We're evaluating this as a drop AQM in its own right. The neat thing about a square curve (or any convex curve) is that the increase in delay wrt load reduces as load increases.

I've worked out how to do a similar squaring trick with PIE, but it's not a straightforward forklift of the same idea, so it needs to be tested.

It would be really hard/impossible to fork-lift the idea into CoDel, because it switches modes. As above, I have no interest in building on CoDel anyway.

Cheers


Bob

{Note 1}: The whole min inter-mark/drop interval aspect of RED is just a waste of cycles. Any attempt to alter the distribution of inter-mark/drop spacing in an aggregate just collapses into a geometric distribution again for each flow. For proof see "Are RED Markings Uniformly Distributed?" in my PhD dissertation <http://www.bobbriscoe.net/pubs.html#refb-dis>.



> On Apr 13, 2015, at 11:23 PM, Bob Briscoe <[email protected]> wrote:
>
> Gorry, Fred, Richard, Wes,
>
> [Off list, because I don't want to distract people's attention if you don't want to make this change]
>
> While replying to David Lang just now, I checked with the AQM recommendation says, and the para below raised a concern:
>
> <https://tools.ietf.org/html/draft-ietf-aqm-recommendation-04#section-4.2.1>
> "  An AQM algorithm that supports ECN needs to define the threshold and
>   algorithm for ECN-marking.  This threshold MAY differ from that used
>   for dropping packets that are not marked as ECN-capable, and SHOULD
>   be configurable.
> "
> The work Koen has done since this was written has satisfied me that the threshold has to be the same (to prevent starvation), but other parameters can be different, and ought to be. So in the second sentence I think we should say:
>
> CURRENT:    "This threshold MAY differ from that used for dropping..."
> PROPOSED:   "The parameters MAY differ from those used for dropping..."
>
> Parameters widens it to burst size, slope, etc.
>
> If it is too late for any changes, fair enough.
> If this minor change can still be accommodated, then pls do whatever process is necessary to make the change.
>
> Cheers
>
>
> Bob
>
>
> ________________________________________________________________
> Bob Briscoe,                                                  BT
________________________________________________________________
Bob Briscoe,                                                  BT

________________________________________________________________
Bob Briscoe,                                                  BT  
_______________________________________________
aqm mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/aqm

Reply via email to