Re: [tsvwg] Gorry Fairhurst Individual thoughts on choosing whether/how to advance ECN work.

Bob Briscoe <ietf@bobbriscoe.net> Sun, 24 May 2020 15:54 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 D0A913A0AEC for <tsvwg@ietfa.amsl.com>; Sun, 24 May 2020 08:54:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_FAIL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 oGBYKL-T_aDo for <tsvwg@ietfa.amsl.com>; Sun, 24 May 2020 08:54:57 -0700 (PDT)
Received: from cl3.bcs-hosting.net (cl3.bcs-hosting.net [3.11.37.202]) (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 9B5DE3A0AE8 for <tsvwg@ietf.org>; Sun, 24 May 2020 08:54:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=bobbriscoe.net; s=default; h=Content-Transfer-Encoding:Content-Type: In-Reply-To:MIME-Version:Date:Message-ID:From:References:Cc:To:Subject:Sender :Reply-To: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=OPmFuCeEIV8MpPeTzaa7pR8RV405CgBpOd+WMdFplGU=; b=lS5mNJmhHBcBNcJW7A4q6WijjN stChxg0XWnCMasJWM9CPi3DDvGay9f6LDKukYqNTA5ZFn0B0PCWvLGSm+uB9ZTLaau8s9dQRQ1QYY wuDl4DqesktbyIKDz4lpv0B+VgM53eIEHSn0yylHKGyT68Aq+kdSOQyGNt9RXjkgpnL2Vh8n/+7dR c7yzedi8JEnfBHqZjjufFPj5kJz+h4wiqFPSnUUk9j8stfB2LHvh6YVyC8/ZuWPomT7sR+V2VvJkv 3MSFMdFn5db95J7k6YXqhxNEtBEuiZVKYZRMB+yLHBz5H5M/5lxaloQuFaY2yJOSuLWXqsFn4F4vr 1wXy7rlw==;
Received: from [31.185.135.128] (port=60880 helo=[192.168.0.6]) by cl3.bcs-hosting.net with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from <ietf@bobbriscoe.net>) id 1jcsxj-00GywR-Mg; Sun, 24 May 2020 16:54:55 +0100
To: Sebastian Moeller <moeller0@gmx.de>
Cc: tsvwg@ietf.org
References: <dbc71da6-70f1-7369-1d2d-f08fb3b08b69@erg.abdn.ac.uk> <21483444.sDhFMENYeD@linux-9daj> <a85600da-e69f-9190-7ca1-d23a7e7246f9@bobbriscoe.net> <3267993.nvHYsSR2bi@linux-9daj> <dd8e3896-2951-537f-e3d1-9954c93348dd@bobbriscoe.net> <2268A1D8-9E49-41DB-BB52-3BF6381025E8@gmx.de>
From: Bob Briscoe <ietf@bobbriscoe.net>
Message-ID: <53219c40-745f-c627-90cf-0098c09b8103@bobbriscoe.net>
Date: Sun, 24 May 2020 16:54:55 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <2268A1D8-9E49-41DB-BB52-3BF6381025E8@gmx.de>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Content-Language: en-GB
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - cl3.bcs-hosting.net
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: cl3.bcs-hosting.net: authenticated_id: in@bobbriscoe.net
X-Authenticated-Sender: cl3.bcs-hosting.net: in@bobbriscoe.net
X-Source:
X-Source-Args:
X-Source-Dir:
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/GYhEO_hezKbmG-GQelkpQ1DqP_0>
Subject: Re: [tsvwg] Gorry Fairhurst Individual thoughts on choosing whether/how to advance ECN work.
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: Sun, 24 May 2020 15:55:00 -0000

Sebastian,

On 23/05/2020 20:02, Sebastian Moeller wrote:
> Dear Bob,
>
>
>> On May 23, 2020, at 17:07, Bob Briscoe <ietf@bobbriscoe.net> wrote:
>> [...]
>> [BB] I don't think anyone except you is arguing that FQ_CoDel is simpler than the DualQ (because it isn't). You can compare this pseudocode yourself, which also links to the Linux code:
>> https://tools.ietf.org/html/draft-ietf-tsvwg-aqm-dualq-coupled-11#appendix-A.1
> 	I note that the fq-codel RFC contains zero lines of pseudocode, so by this measure it must be infinitely simpler than the dual queue coupled AQM, no?
>
> But joking aside, it seems like an odd choice to compare the complexity of an qdisc in the main-line kernel with an out of line qdisc under active development, but if we attempt to do this, surely 724 lines for https://github.com/L4STeam/sch_dualpi2_upstream/blob/sch_dualpi2/net/sched/sch_fq_codel.c (plus 310 lines for https://github.com/L4STeam/sch_dualpi2_upstream/blob/sch_dualpi2/net/sched/sch_codel.c) and 746 lines for https://github.com/L4STeam/sch_dualpi2_upstream/blob/sch_dualpi2/net/sched/sch_dualpi2.c do not seem to support your hypothesis, unless we want to quibble over individual lines of code here. And yes the runtime cost for fq_codel probably is a bit higher than for dualq, but I would be amazed if we would talk about an order of magnitude (base2) here...
>
> My point is, please refrain from completely unhelpful complexity comparisons by virtue of pseudeocode, especially if not both qdiscs to be compared actually exist in pseudocode in the first place....

[BB] There are a number of ways one can/should compare complexity. I was 
not suggesting anyone should count lines of code. I was suggesting Paul 
should /look/ at the pseudocode, or the code linked from it. You're the 
one that has turned this into a line counting exercise.

Code complexity (roughly related to lines of code) is important for 
minimizing bugs, and perhaps for minimizing memory footprint on 
cost-reduced devices like home gateways. However, for large-scale 
network equipment, ops per packet are particularly important, and 
minimizing run-time state is important for most hardware implementations.

>> The Coupled DualQ solely classifies at the IP layer (ECN field). It consists of two AQM instances:
> 	[SM] True, until it becomes obvious that without the optional queue protection mechanism dualq severely lacks behind fq_codel in real-world usefulness.

[BB] I think that statement needs to be tagged with "in the opinion of 
Sebastian Moeller who has not justified this statement".

> Once you add the queue protection to the requirements, your are looking at L4 headers again.

[BB] Indeed. Finding L4 headers was the most complex part of the whole 
Low Latency DOCSIS spec, because there are so many possible unusual 
cases to handle. The Linux coupled dualQ implementation handles overload 
in a much simpler way.

We shall see which turns out to be sufficient. I can understand that 
many operators will be cautious with a new approach, which is why I 
agreed to design per-flow QProt for Low Latency DOCSIS, even though I do 
not believe it will eventually prove necessary. That, to me, is one of 
the open questions that only an Internet-wide experiment can answer, so 
please refrain from giving your opinion again - we have all heard it 
many times already.


> That said, there is absolutely no reason, why fq_codel could not look only at the IP header for its hashing needs, if you really want that (and interestingly cake offers such flow-definition modes).
>
>> * one instance of an AQM for the Classic queue, with similar complexity to /one/ of the per-flow CoDel instances.
> 	[SM] +1; it just turned out in the real world that the performance of a single queue AQM simply does not deliver what the end-users actually want from an AQM so that nobody went for a single queue CODEL. I see absolutely no reason, why this should change now with L4S.

[BB] Because L4S replaces Reno-friendly congestion control, which was 
the root cause of the problem that made per-flow isolation useful.

> Now, I only talk to end-users, ISPs might see this differently (but ultimately will need to convince their users that L4S is actually an improvement).
>
>
>> * one instance of a brain-dead-simple stateless AQM for the L4S queue.
> 	[SM] Since the two AQMs are coupled, the required state is simply kept on the non-LL side, claiming that it is stateless seems a bit disingenuous, no?

[BB] The coupling uses a state variable that is already maintained for 
the non-LL AQM. But adding the LL AQM requires no additional state.

>
>>
>> I'm seeing that vendors of larger scale equipment /have/ implemented it and operators /have/ plans to adopt it, whereas they didn't adopt FQ_CoDel.
> 	[SM] Interestingly, end-users interested in low-latency and sharing their access links between, say gaming and streaming, opted for fq_codel and cake. Even though this requires post-bottleneck ingress shaping and is computationally relatively costly. So the relevant market has spoken and adopted FQ_CODEL.

[BB] You can believe that story if you want. I think you will find that 
most end-users who use FQ_CoDel today were not aware they had a choice 
of anything else. I repeatedly had to pull up people who were 
relentlessly using the word FQ_CoDel in sentences where the word AQM was 
appropriate. I gave up very early on. It continued for years after that.



Bob

>> I'm suggesting an explanation for that (based on what they've told me), not talking theoretic possibilities.
> 	[SM] Good marketing of the L4S effort? Unless you kick the tires yourself and simply believe the claims in the L4S drafts it seems like the perfect solution, optimal performance for low computational effort. It is only after you realize that this performance is neither robust nor reliable that questions will arise.
>
>
>> Another explanation is that L4S enables new interactive applications that are currently infeasible over the WAN.
> 	[SM To repeat myself, none such applications that are both unfeasible today and are suitable for being run over the best-effort internet have so far been proposed. I am not claiming that L4S might not improve upon the state of the art at all, but this specific claim of currently impossible novel interactive applications seems wishful thinking. Case in point google satia, nvidie gforce now, shadow cloud gaming, all offer interactive real-time reaction-time bound games over the existing internet. That is your market, right there, already working over the existing internet, what are you going to offer?
>
> Best Regards
> 	Sebastian
>
>
>> Regards
>>
>>
>>
>> Bob
>>
>> -- 
>> ________________________________________________________________
>> Bob Briscoe                               http://bobbriscoe.net/
>>

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