Re: [tsvwg] normative text in draft-ietf-tsvwg-aqm-dualq-coupled-06

Bob Briscoe <ietf@bobbriscoe.net> Mon, 22 October 2018 23:21 UTC

Return-Path: <ietf@bobbriscoe.net>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C0DB21292AD for <tsvwg@ietfa.amsl.com>; Mon, 22 Oct 2018 16:21:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=bobbriscoe.net
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id INykoEtkD_WR for <tsvwg@ietfa.amsl.com>; Mon, 22 Oct 2018 16:21:15 -0700 (PDT)
Received: from server.dnsblock1.com (server.dnsblock1.com [85.13.236.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8CA17126BED for <tsvwg@ietf.org>; Mon, 22 Oct 2018 16:21:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=bobbriscoe.net; s=default; h=Content-Type:In-Reply-To:MIME-Version:Date: Message-ID:Cc:From:References:To:Subject:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=m/b4JMkZVP0pvZS/9jMy9YQyvEsPpYg1xpT5jn5mbd4=; b=n+uQovSbJR1ksbVwo3+kQh39r UBK/7EotbhTA8EllYbRROQsL3xRptM75vX22C0FCx71XpnneSfm5G8lyFt3N6ATlv08QqYc87PF+x IJc7aMTu7XxpJmvZDvxfkJb9tLH8Tz98buEHtxn6lmr1HQtLbJCmfPjuRXjYkAhwdDMS8if3vPbrT qZ9w1CEEQ0Q2o+eVtl98gzAQzQOhf536J0zYvUrI48S8tdm13eWGDa67u7RDvIh00T2jNZFaos/uk iamQJrcwVBzaszMGobd5PvF46w1oBeFg3L1V3c4xLhmgF0y/XJSnXJ6l03t67FT67Ah6iYRh2oRLA Aml+a+wWA==;
Received: from 106.0.208.46.dyn.plus.net ([46.208.0.106]:46658 helo=[192.168.0.3]) by server.dnsblock1.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.91) (envelope-from <ietf@bobbriscoe.net>) id 1gEjVX-0004yy-Jj; Tue, 23 Oct 2018 00:21:12 +0100
To: Greg White <g.white@CableLabs.com>, "De Schepper, Koen (Nokia - BE/Antwerp)" <koen.de_schepper@nokia-bell-labs.com>
References: <7CE5D435-A5B0-4AF8-921F-55FAF5DBAD6D@cablelabs.com> <DB6PR0701MB2247C2834077A309FB9D2775B9FE0@DB6PR0701MB2247.eurprd07.prod.outlook.com> <48A4FD87-0398-46A8-8CB3-B05260516A7D@cablelabs.com> <DB6PR0701MB2247E6CF91B5F258E652ADFEB9F80@DB6PR0701MB2247.eurprd07.prod.outlook.com> <74EB8F0A-1FA7-4050-A4C9-1D32644C4587@cablelabs.com>
From: Bob Briscoe <ietf@bobbriscoe.net>
Cc: "tsvwg@ietf.org" <tsvwg@ietf.org>
Message-ID: <90fd3b1e-d5dd-9404-24bd-c952b938bd0a@bobbriscoe.net>
Date: Tue, 23 Oct 2018 00:21:10 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1
MIME-Version: 1.0
In-Reply-To: <74EB8F0A-1FA7-4050-A4C9-1D32644C4587@cablelabs.com>
Content-Type: multipart/alternative; boundary="------------3DD3680AAA4DD27B93E9BF76"
Content-Language: en-GB
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server.dnsblock1.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - bobbriscoe.net
X-Get-Message-Sender-Via: server.dnsblock1.com: authenticated_id: in@bobbriscoe.net
X-Authenticated-Sender: server.dnsblock1.com: in@bobbriscoe.net
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/gN9AWt_SZlWV4XTKjZviZLB_jFY>
Subject: Re: [tsvwg] normative text in draft-ietf-tsvwg-aqm-dualq-coupled-06
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 22 Oct 2018 23:21:19 -0000

Koen, Greg,

Here's how I propose to derive this in a more rigorous way...

For roughly equal flow rates we shouldn't equate slowly changing p_C 
with rapidly changing p_L. So instead of
p_C = ( p_L / k )^2                  (1)
we need
     p_C = ( p_CL / k )^2                  (1)
where p_CL is a /variable/ that represents an input to p_L that changes 
as slowly as p_C.

[So, rather than /define/ p_CL as k*p', we /derive/ p_CL as follows.]

It has been proved [PI2] that it is preferable to control TCP with a 
linear PI controller, then square its output before applying it to TCP 
as a drop probability. If we call the base AQM's output p', that means:
     p_C = (p')^2                                  (2)
Substituting for p_C in Eqn (1) gives:
     p' = p_CL / k,
So we get our slow-moving input to p_L as:
     p_CL = p' * k                                  (3)

The actual probability p_L that we apply to the L queue needs to track 
the immediate L queue delay, as well as track p_CL under stationary 
conditions.
So we create an AQM that calculates a marking probability p'L as a 
function of the instantaneous L queue.
And, given the L queue has conditional strict priority over the C queue, 
whenever the L queue grows, we should apply marking probability p'_L, 
but p_L should not fall below p_CL. This suggests:
      p_L = max(p'L, p_CL)
which has also been found to work in practice.

It's a little more rigorous, but the max() function is still plucked out 
of the air.

Thoughts?


Bob

On 22/10/2018 18:17, Greg White wrote:
>
> Thanks Koen, I will look forward to reviewing the next version.
>
> -Greg
>
> *From: *"De Schepper, Koen (Nokia - BE/Antwerp)" 
> <koen.de_schepper@nokia-bell-labs.com>
> *Date: *Thursday, October 18, 2018 at 6:04 AM
> *To: *Greg White <g.white@CableLabs.com>, "tsvwg@ietf.org" 
> <tsvwg@ietf.org>
> *Cc: *"ietf@bobbriscoe.net" <ietf@bobbriscoe.net>
> *Subject: *RE: normative text in draft-ietf-tsvwg-aqm-dualq-coupled-06
>
> Greg,
>
> Part of the confusion is due to the naming scheme evolutions leaving 
> small inconsistencies in the draft. Initially we started with just p’, 
> p_L and p_C. But then trying to better name and explain all parts we 
> introduced the other names.
>
> >> My understanding is that the implementation enforces coupling only one way (from C to L) and 
> not the other, but counterbalances this by requiring that the L queue 
> get higher scheduler priority.
>
> Yes, correct. With a strict priority scheduler, a one way coupling is 
> sufficient and theoretically if there would be always sufficient 
> classic traffic, we would even not need an L4S AQM. Only when there is 
> insufficient or no classic traffic, the L4S AQM is needed. BUT as low 
> latency is important for L4S traffic, the L4S AQM is needed also to 
> immediately correct rate/latency bursts. These bursts are also 
> rippling through to the Classic queue (being not scheduled for short 
> times) but the Classic AQM is responding too slow to prevent temporary 
> queue build up in the L4S queue.
>
> >> The rationale being that p’L is expected to be much more dynamic than p_C, and that spikes in 
> p’L would negatively impact the throughput in the C queue if 
> bi-directional coupling were utilized.  Is this true?
>
> Correct, but not only the spikes would be negative. They could be 
> smoothed to compensate. But from our experiments we actually see that 
> extra L4S AQM marking has limited impact, and the possibly lower L4S 
> throughput is only required for guaranteeing low L4S latency under 
> heavy dynamic L4S traffic patterns. If there is no classic traffic, it 
> results in required underutilization, and if there is Classic traffic, 
> it benefits from the small extra available link capacity which cannot 
> be utilized by the L4S traffic. Coupling back the higher L4S 
> probability will result only in lower classic traffic throughput, 
> which removes the Classic queue, which finally will result in link 
> underutilization, which you don’t want for Classic traffic (a 
> controlled target delay is tolerated for high throughput/ full link 
> utilization).
>
> Good points, we will try to additionally clarify in the next version 
> of the draft.
>
> Thanks,
>
> Koen.
>
> *From:*Greg White <g.white@CableLabs.com>
> *Sent:* Thursday, October 18, 2018 2:04 AM
> *To:* De Schepper, Koen (Nokia - BE/Antwerp) 
> <koen.de_schepper@nokia-bell-labs.com>; tsvwg@ietf.org
> *Cc:* ietf@bobbriscoe.net
> *Subject:* Re: normative text in draft-ietf-tsvwg-aqm-dualq-coupled-06
>
> Koen,
>
> I don’t think that you necessarily need to repeat the equations in the 
> normative section.  It would be ok IMO to simply say something to the 
> effect of  “A DualQ Coupled AQM implementation MUST implement equation 
> X.” in the normative section.
>
> On the p_L vs. p_CL question (or “=” vs “<=”), I think some further 
> explanation is needed.  Both the ECN-L4S-ID draft and the background 
> in this one use “=” in comparing p_L to p_C, and I didn’t see much 
> justification given as to why this draft switches to “<=” in the 
> implementation.  The only justification I noticed was the following:
>
>    The actual L4S marking probability p_L is the maximum of the coupled
>
>    output (p_CL) and the output of a native L4S AQM (p'L), shown as
>
>    '(MAX)' in the schematic. While the output of the Native L4S AQM is
>
>    high (p'L > p_CL) it will dominate the way L traffic is marked.  When
>
>    the native L4S AQM output is lower, the way L traffic is marked will
>
>    be driven by the coupling, that is p_L = p_CL.  So, whenever the
>
>    coupling is needed, as required from equation (1):
>
>       p_C = ( p_L / k )^2.
>
> Which implies that the coupling is only needed when p’L <= p_CL, but I 
> didn’t see any further explanation for this assertion.  My 
> understanding is that the implementation enforces coupling only one 
> way (from C to L) and not the other, but counterbalances this by 
> requiring that the L queue get higher scheduler priority. The 
> rationale being that p’L is expected to be much more dynamic than p_C, 
> and that spikes in p’L would negatively impact the throughput in the C 
> queue if bi-directional coupling were utilized.  Is this true?
>
> -Greg
>
> *From: *"De Schepper, Koen (Nokia - BE/Antwerp)" 
> <koen.de_schepper@nokia-bell-labs.com 
> <mailto:koen.de_schepper@nokia-bell-labs.com>>
> *Date: *Tuesday, October 16, 2018 at 10:33 AM
> *To: *Greg White <g.white@CableLabs.com 
> <mailto:g.white@CableLabs.com>>, "tsvwg@ietf.org 
> <mailto:tsvwg@ietf.org>" <tsvwg@ietf.org <mailto:tsvwg@ietf.org>>
> *Cc: *"ietf@bobbriscoe.net <mailto:ietf@bobbriscoe.net>" 
> <ietf@bobbriscoe.net <mailto:ietf@bobbriscoe.net>>
> *Subject: *RE: normative text in draft-ietf-tsvwg-aqm-dualq-coupled-06
>
> Greg,
>
> Thanks for this detailed review and catching these improvements. I 
> agree that these properties should be specified explicitly and formally.
>
> Related to the  first 2 topics we should be careful to not limit 
> flexibility when mapping DualQ in a bigger picture. Probably for this 
> draft we can stick to the basic DualQ operation, and cover other uses 
> in the draft-briscoe-tsvwg-l4s-diffserv-00, so unless others 
> objecting, for me these requirements can be MUST formalized in this draft.
>
> Related to the third topic the text you quoted was indeed meant to be 
> the formal MUST specification, but I see your point. We should clearly 
> specify that the coupling equation requirement is only applicable for 
> feedback from the classic AQM to the L4S queue and does not 
> incorporate potential additional marking due to the L4S AQM. A 
> possible solution could be referring to the untagged equation 
> following equation 3: p_C = ( p_CL / k )^2 or even better to replace 
> p_L by p_CL in equation 1, right?
>
> Do you also mean that we need to repeat these equations (and figures) 
> in the normative section to give them the normative “weight”?
>
> Koen.
>
> *From:*Greg White <g.white@CableLabs.com <mailto:g.white@CableLabs.com>>
> *Sent:* Friday, October 12, 2018 7:36 PM
> *To:* tsvwg@ietf.org <mailto:tsvwg@ietf.org>
> *Cc:* De Schepper, Koen (Nokia - BE/Antwerp) 
> <koen.de_schepper@nokia-bell-labs.com 
> <mailto:koen.de_schepper@nokia-bell-labs.com>>; ietf@bobbriscoe.net 
> <mailto:ietf@bobbriscoe.net>
> *Subject:* normative text in draft-ietf-tsvwg-aqm-dualq-coupled-06
>
> Koen, et al.,
>
> It seems that the draft on dual-queue coupled AQM could use some 
> improvements in terms of normative language.    I would think that 
> you’d want to have requirements to cover:
>
> ·The implementation MUST utilize two queues each with an AQM algorithm
>
> ·The AQM algorithm on the L queue MUST utilize ECN marking
>
> ·The two AQMs MUST implement drop/mark frequencies that are coupled 
> together according to a square function and coupling factor
>
> Without implementing these, it would seem to be hard to say that that 
> an implementation complies with the draft.
>
> On the third point, the text of the draft provides:
>
>    Whatever identifier is used for L4S experiments,
>
>    [I-D.ietf-tsvwg-ecn-l4s-id] defines the meaning of an ECN marking on
>
>    L4S traffic, relative to drop of Classic traffic.  In order to
>
>    prevent starvation of Classic traffic by scalable L4S traffic, it
>
>    says, "The likelihood that an AQM drops a Not-ECT Classic packet
>
>    (p_C) MUST be roughly proportional to the square of the likelihood
>
>    that it would have marked it if it had been an L4S packet (p_L)."  In
>
>    other words, in any DualQ Coupled AQM, the power to which p_L is
>
>    raised in Eqn. (1) MUST be 2. The term 'likelihood' is used to allow
>
>    for marking and dropping to be either probabilistic or deterministic.
>
> It isn’t clear whether that first MUST is considered a requirement, or 
> is simply an informative quote of a requirement from the other draft 
> (I presume the latter).  Also the second MUST refers to Eqn (1) which 
> is just an informative equation that provides background justification 
> for the coupled AQM.  I don’t see any requirement that states that it 
> is something that an implementer needs to actually do.  Further, it 
> seems that the schematic in Figure 1 doesn’t actually comply with that 
> expression either.  Instead it implements p_C <= ( p_L / k )^2, which 
> is not explained.
>
> -Greg
>

-- 
________________________________________________________________
Bob Briscoe                               http://bobbriscoe.net/