Re: [Tsv-art] Tsvart early review of draft-briscoe-docsis-q-protection-02

Bob Briscoe <ietf@bobbriscoe.net> Sat, 19 February 2022 23:19 UTC

Return-Path: <ietf@bobbriscoe.net>
X-Original-To: tsv-art@ietfa.amsl.com
Delivered-To: tsv-art@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9BC423A06E7; Sat, 19 Feb 2022 15:19:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.814
X-Spam-Level:
X-Spam-Status: No, score=-2.814 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, NICE_REPLY_A=-0.714, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=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 9Nxlulr2ewk7; Sat, 19 Feb 2022 15:19:24 -0800 (PST)
Received: from mail-ssdrsserver2.hostinginterface.eu (mail-ssdrsserver2.hostinginterface.eu [185.185.85.90]) (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 8076D3A05C7; Sat, 19 Feb 2022 15:19:21 -0800 (PST)
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:From:References:Cc:To:Subject:MIME-Version:Date:Message-ID: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=uYkk2DxnmI9fi3aaV2PmcFtCmmmk9yTu/HkpIl5Nd9M=; b=xs0m10CWldkmkkuvi/pb92/Nyg NY+TzmVlh3zo7+y5SlQdf9vzY8YwvvMZWl0xtY7iKZS1cwQUI5z8KoN4A7wlc6LPGnpnSaXo2ggri 3pPYuciUMdzY+/MXL7gjNaqlX+zbK59noQN680yW2THPqkwyPI7RpjEMGu3PNOAGtFnOth+PRRmK1 cQ3qpEAyxtPYFOF2P4LR765tW0nglGgFej4PMiZj+pOgpjCerLKyrtfx8/yEZUy01LYJRrE/ae2Oi 7RdmTELc/mViBXrOn4ts4xBwzwNEnLu25EXbqpRRylASUezLBx6gLEE8B7azIHHpVRzx18pnhl+4S rG6qLvaA==;
Received: from 67.153.238.178.in-addr.arpa ([178.238.153.67]:55522 helo=[192.168.1.11]) by ssdrsserver2.hostinginterface.eu with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from <ietf@bobbriscoe.net>) id 1nLZ0k-0004KO-NX; Sat, 19 Feb 2022 23:19:18 +0000
Message-ID: <f91d44a0-1e4b-54db-b485-2a165049349c@bobbriscoe.net>
Date: Sat, 19 Feb 2022 23:19:18 +0000
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0
Content-Language: en-GB
To: Magnus Westerlund <magnus.westerlund@ericsson.com>
Cc: tsv-art@ietf.org, draft-briscoe-docsis-q-protection.all@ietf.org, rfc-ise@rfc-editor.org
References: <164519474663.16853.11644347542089865375@ietfa.amsl.com> <72e135f883c88d382920f75132cc6aae.squirrel@www.rfc-editor.org>
From: Bob Briscoe <ietf@bobbriscoe.net>
In-Reply-To: <72e135f883c88d382920f75132cc6aae.squirrel@www.rfc-editor.org>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - ssdrsserver2.hostinginterface.eu
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: ssdrsserver2.hostinginterface.eu: authenticated_id: in@bobbriscoe.net
X-Authenticated-Sender: ssdrsserver2.hostinginterface.eu: in@bobbriscoe.net
X-Source:
X-Source-Args:
X-Source-Dir:
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsv-art/MkDfU24EJuWcmVZGXrKq-fPlHGc>
Subject: Re: [Tsv-art] Tsvart early review of draft-briscoe-docsis-q-protection-02
X-BeenThere: tsv-art@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Transport Area Review Team <tsv-art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsv-art>, <mailto:tsv-art-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsv-art/>
List-Post: <mailto:tsv-art@ietf.org>
List-Help: <mailto:tsv-art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsv-art>, <mailto:tsv-art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 19 Feb 2022 23:19:30 -0000

Magnus,

Thank you for your thorough and detailed review. I scanned it yesterday, 
but realized that I need to sit down and go through it with a clear 
head. So a response will appear in a few days.

Thanks again.

Bob

On 18/02/2022 18:59, RFC ISE (Adrian Farrel) wrote:
> Magnus,
>
> Very many thanks for a helpful and clear review.
>
> Cheers,
> Adrian
>
>
>
> Magnus Westerlund via Datatracker wrote:
>> Reviewer: Magnus Westerlund
>> Review result: Ready with Issues
>>
>> To first attempt to answer the review request questions.
>>
>> The Independent Stream Editor is keen to receive a review with two
>> aspects:
>> "- Does this document overlap with or otherwise infringe upon any IETF
>> work?"
>>
>> It is clearly related to the L4S work in TSVWG. However, as it describes a
>> particular implementation of an queue protection algorithm by DOCSIS I
>> don't
>> see it infringing upon any IETF work.
>>
>> "- Does this document read well to someone with Transport and Congestion
>> control background?"
>>
>> It is understandable with a few exception that I will comment on below
>> when
>> clarity can be improved. In general I think it is close to being ready for
>> publication. Just some issues that needs to be addressed.
>>
>> 1. Section 4.1:
>>
>> AGING = pow(2, (LG_AGING-30) ) * T_RES    // lg([B/s]) to [B/T_RES]
>>
>> So the -30 is here is instead of dividing by 1E9? How much does the
>> rounding
>> error of ~7% impact? To my understanding the aging value will be smaller
>> than
>> intended with those 7%.
>>
>> 2. Section 4.1:
>>
>> NBUCKETS = pow(2, BI_SIZE);  // No. of non-default buckets
>> MASK = NBUCKETS-1;           // convenient constant, filled with ones
>>
>> This appears to be a calculation that is based on that NBUCKETS and MASK
>> are
>> int and not floating point values? I would also note that MASK will not be
>> filled with 1, only have NBUCKETS of ones at the lower bits using integer
>> arithmetic. Does this document need clear conventions for when floating
>> point
>> is used versus integer arithmetic?
>>
>> 3. Section 4.1:
>>
>> // Minimum marking threshold of 2 MTU for slow links [ns]
>> FLOOR =  2 * 8 * MAX FRAME SIZE * 10^9 / MAX RATE;
>>
>> Should not MAX FRAME SIZE and MAX RATE be an input parameters although
>> implementation specific ones? I would also note that they are not written
>> as
>> parameters or constants here for any programming language I know of.
>>
>> 4. Section 4.2.1
>>
>>     // if (bckt_id->t_exp risks overflow)    // Details not shown
>>     //    return EXIT_SANCTION;
>>
>> I don't understand this. If the issue that one attempts to protect against
>> is
>> that t_exp becomes larger than what the variable supports? What I can see
>> of
>> how t_exp is used it must not wrap and is carrying the devices
>> understanding of
>> time progression in T_RES ticks. So what overflow is intended here? And I
>> would
>> note that fill_bucket prevents t_exp from never being more that
>> qLSCORE_MAX
>> further into the future than now.
>>
>> 5. Section 4.2.2:
>>
>> What happens when ATTEMPTS * BI_SIZE > 32? The lack of handling of this
>> case,
>> is it assumed that one would never configure this algorithm so that
>> (ATTEMPTS -
>> N)* BI_SIZE > 32 would be true for N=2 or larger where h32 would be zeros
>> and
>> empty for multiple attempts. It appears like there will be no significant
>> failure, only hash collisions which reduces the actual attempts to fewer
>> than
>> ATTEMPTS. Should there be a warning here that if (ATTEMPTS - 1) * BI_SIZE
>> is
>> larger than 32 bit a larger hash size should be used?
>>
>> 6. Section 5.5:
>> This might be detected when the bucket expiry time t_exp exceeds a
>> threshold,
>> which could also conveniently prevent overflow of the t_exp variable (see
>> the
>> qprotect() function in Section 4.2.1).
>>
>> In relation to earlier comment. It is not clear what is overload here.
>>
>>
>>
>>
>

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