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

Magnus Westerlund <magnus.westerlund@ericsson.com> Mon, 28 February 2022 08:33 UTC

Return-Path: <magnus.westerlund@ericsson.com>
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 A39CE3A0D05; Mon, 28 Feb 2022 00:33:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.111
X-Spam-Level:
X-Spam-Status: No, score=-2.111 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.com
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 tCsSreMhrAut; Mon, 28 Feb 2022 00:33:14 -0800 (PST)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2076.outbound.protection.outlook.com [40.107.21.76]) (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 6D6BF3A0BCE; Mon, 28 Feb 2022 00:33:14 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=E9kn1bNuWSSoQJ3IYTKmXkKXFEKR/rV9UjR0DePZUUcIMnuR0xbcFoqtbIAPqWhSk896a3eFSu17VYThxkgzDptAf7z0Fa8s5inwtzwPoCBqaSgaWoU7lKJ4Y94iuQX/C4r6d1m+T9W20PfbP6ij1owhaQ5axjfeV3CBY64t6FbsV0OCwsCB4Nd5+Yv69QJNGQZ9Jy/BPH3Zlek41vsW+sZbsgwsJmMKn7ZR6r+/6WLAJFJB2mLEfvrG7QiKPb1UygPhtVqNkQHmEILrMnImPWISQyntb7nZ7JSkfiwzZdAkc/d2+3XPPRU6oyo6pThCjY3qWLEt5vWCa02vWd2TZQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=HGjG+H3sc2GoA3X9Je5tUdiwSeB6eI5IuXM9yntKkXs=; b=g40IRutRF3mD2OMoK2IGurLY/d1tpuxQX6N9O/49JkaYb22pGEwmoOOfWckA4c4aSXztBwFNxyWwk28lwP0ZF+D9Y7vwQ0s+oRljjxU+LSsbKfkj5KjbTR6R9fa5b3wemGGznp/IkbporXyOz911qjxkwlaGayEEpfk021ND/uV3O3Qp2xOEP8FLsylDUn2TBPPoI8Cg4UBkZfeBhSmbbWxubvJu0apr5Y3fZDSqRPB87D/71ksjJKvRUaw7pkgZJtVNqQRpT1p8tS6X4xhTa/cpNGe0YqBZmT4wUxU+hSQmhUZ7z3yjtio0xMFdZiiFOsuAQtHPlGn7lRi65DqTiA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HGjG+H3sc2GoA3X9Je5tUdiwSeB6eI5IuXM9yntKkXs=; b=DyXdsS88yNYr6fWeyeLcZ33uj6G5e0hgcJmg//CxcOO/AAeDPW0lp028sq4XzgpVDLp/0KdAODfWV1lhO2gSjF3+Wk698s0CIVrCPB6vJ6Xcrz4bd8u2Rf/RegOcqjhr/3Polp134KHN79BwKlS9PDiTS761go6a9dGk7JzrEQY=
Received: from PA4PR07MB8414.eurprd07.prod.outlook.com (2603:10a6:102:2a2::6) by DB9PR07MB7274.eurprd07.prod.outlook.com (2603:10a6:10:1fa::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.9; Mon, 28 Feb 2022 08:33:08 +0000
Received: from PA4PR07MB8414.eurprd07.prod.outlook.com ([fe80::f154:6b1c:52f1:cba]) by PA4PR07MB8414.eurprd07.prod.outlook.com ([fe80::f154:6b1c:52f1:cba%8]) with mapi id 15.20.5038.013; Mon, 28 Feb 2022 08:33:08 +0000
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
To: "ietf@bobbriscoe.net" <ietf@bobbriscoe.net>, "g.white@CableLabs.com" <g.white@CableLabs.com>
CC: "tsv-art@ietf.org" <tsv-art@ietf.org>, "draft-briscoe-docsis-q-protection.all@ietf.org" <draft-briscoe-docsis-q-protection.all@ietf.org>, "rfc-ise@rfc-editor.org" <rfc-ise@rfc-editor.org>
Thread-Topic: [Tsv-art] Tsvart early review of draft-briscoe-docsis-q-protection-02
Thread-Index: AQHYJPm3zGLumkXGvUiYLDc4kDzWz6ybhEgAgAZNygCABt91sA==
Date: Mon, 28 Feb 2022 08:33:08 +0000
Message-ID: <PA4PR07MB8414CB29F2E7DC1E596BA2FF95019@PA4PR07MB8414.eurprd07.prod.outlook.com>
References: <164519474663.16853.11644347542089865375@ietfa.amsl.com> <72e135f883c88d382920f75132cc6aae.squirrel@www.rfc-editor.org> <f91d44a0-1e4b-54db-b485-2a165049349c@bobbriscoe.net> <2cd2ea32-1632-5e5a-3137-1995d0cb2f94@bobbriscoe.net>
In-Reply-To: <2cd2ea32-1632-5e5a-3137-1995d0cb2f94@bobbriscoe.net>
Accept-Language: en-US, sv-SE
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ericsson.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 5114fe08-2bb4-4f4b-9098-08d9fa94f30d
x-ms-traffictypediagnostic: DB9PR07MB7274:EE_
x-microsoft-antispam-prvs: <DB9PR07MB72747A6A3A414209E0BEE27595019@DB9PR07MB7274.eurprd07.prod.outlook.com>
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: dld75bUwDxd5RnOlNo8UteVdIZsTXIZBdmNSE2AdBk9hZqxSd2a6teXdHQp7nfhwe0bXCzM73br/z5qFGw8b02g6IYOQHEsrxKd9FoHGY7eJEE2wz/xu0j6wZlpXb0xngtCZDLZvlOIRmwmLwCeEfPeTn9DvTxTwxYJ6wxEH0DAa+YVjEGgZxAQInwMA1Phhxz5gfjE/cvM/BvU0XTd2X4V8c4HxY7n4UagXKh3ZWSRuD8uPIzZON4qio+mkv4EW8R7UBz0gmcRLjW523ZDojOM/xnZaXJuNp1+uo6Gm5LD+kh7+qRHJoskZ5nf5d9Kf69n7E4nQjY2bF46pIaYiRMqeNuepVMJIUqV6Hw1REQnjJJQXedQRlWzA6XTuY4Hc6GWfUXkpc7USswd9XF4LNbMmLI3NSnJQPTEvG5KXJkwrFuZcJReSkBjppx0FLY5L2K4KZYomn9V5sGHDmPNhILB+YYaitHF+M/x0OPeJxlDJkh9rKSvKwpoTMpH9boFMONFpKmRNw3LTJN17fp2G156EN51p72Vc/72dQ3jPVhFYwS2DR75RcgpXoJI10cc+I/ViCkukP9+da1MyWQtGX9bn5XClvxwxp+Us++zckdegbNCr3j3BZHl15kE8SrhHgrFRoumxYkeyP83+JS/DV0w5FO4gawolcvhFpKYvPDv3vMMMrnkQTQHhiQDf5BQ1z4aU2W5b0tEJ322hjQhiovumBc1Xfgwajs6oFvwz7wk9A3/8epxa8CTIwcJLdlN2FYQQimM/fzpv0Mdyf62cLLnOsFrCLkGNQiDxp94EWwHDPU52OA8onSQV+LuK+ElSIoqgNgQsKAwA/4Y4nZg+UjTOSmp5B6Rmfphk6L7NP1E=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PA4PR07MB8414.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(86362001)(66556008)(38070700005)(966005)(6506007)(7696005)(53546011)(66476007)(71200400001)(508600001)(76116006)(66946007)(8676002)(4326008)(110136005)(316002)(54906003)(166002)(64756008)(83380400001)(66446008)(26005)(9686003)(99936003)(186003)(38100700002)(122000001)(82960400001)(8936002)(33656002)(52536014)(2906002)(5660300002)(55016003)(44832011); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: pznc+Q+E5dT2OsOvsKHHJ5Uadfjm0pBYSCh619vB3FC/6ZEDPg3t8G2zUYzlO1pUImf8+4E7MVLPKKQi2v1vyQITw0BHiiNYphFC2GVo7QVh4/JSJMu0zgMeTaE66gAk6glsenXQ0W9X0+tzr9acli6ZIYLlPe8G8wOk+O60izNewc2uqCRt8IoTOpp4jiZ/TLIdfCexowAMFOI1kjzAtRaDbtytopCYAJE8P0sUMXngwJfmWhxZH8G2QNyufHk4K/qDVk6pHcqV5tj9anh5Cab5Lxu0PhTOLTdWDSx3z/E+JISFk0IJzJWRkux0nLAZFvHcMQX8th+c3ortpNpelqklkZ//h9Rn8Gxdn/vwnEM3pB8K79rU3kvlK4U4/pZM+sWIdkktUu6qNNhLGmCMZDTUz4Q9ZrG7cBBqIV/X8eEYTdHXmOZ7gvYgqkZqZ+hXTv4xz3i4SQUC1Be1YDaQgdFaTiqIPheazKdB6+stbUHMUCR8aGWcrje6PA+Pg7GFnTJQRj14+04WQd5vrJzn1r6CCBGdjLbqGZkat/W+3+7jbVxGa7X61Xa0pqK5VnpzNyA1oCcNpY90V8BZUEawUyfeAAidmBxUJKj8/sf7tWI4J2VZEqHWi0SbevcSAxOotRTPVXEEoNhUhJIn48/Ca5253n4oLEJEAUuiN2iDqReoBY2lqzpYueWlydbv2R9Mn6pvLfymOrwl9eJq3GtMtOGj8Pd/kn54HCHWWjSWrikzRfaFDq1S5wukzqSQpdgBcs7+XT1OsYzmj4XFVNTjGDTgZc7JRdgmL+RNTbyRrT4wHTOcyHgGCvua1lXnHn10xb034n93h1af68QZvY2TecO+BE4tZrfO6s/LZPMvaOqeuSptegLAj0jkAlfqvfsCozLOltce1ahqByAFXXqLSh5S6zuL+wJ4NqpCcQMwtR3smlsQw2DYxWmJt4h1GzIj5dDfbRUdzqCJdD9HJ3vMmVzI4ajqogj6HBMUpfECHHmvLfwJCZSPgNyocRAkJuKocD1Y7lfBbBPJreKuZb2w+buzENhlUCKy4NWt6KCOJJYsj/D5UUTz+dYNVUDDQaUmVMtXK6oqur0CuP7I8k5uUrwFjn++AsIHs5RxGoLUx3rzr1tMJS8HK9iVAcN78YwbxCV+1hXe2OE05iKHTr76Dh0TWBqq6JbigLcRwAUw+ro2R2adMcIvBlH8d066Mwj77d2q56MJjXjjbUaJFoNRdqnH02YUjvqjggG0A6NouNoItC1KHuR32X8gEapi+IQrKM4Wlw1sz7dzaVnIfSwXkPh4t3lFiBrGWSJPI0VBIobV5DjJ28I6vwsHS2E7Kpytq8QtgHjdt8nVhHLs7cdpKyZ1Wb+FnpMZPH3kJVr84ZKmEBT3VoabAg9Dp+I7Fi26TtponHrPptV+MgWrYMr5ASGtmNgXkVjmriOPhG/jRVikyLRbtYUkbu3sX0wy8B6GX9M68B3RObPGiue6SlZ35OlyzrbhnCNeKtxKN9Rm0+rRJiXWMVSgtjlAP5F2DZkkVwrbSc1YqS1DdzyFXbIwG/M6E7vC1sTXVXQcSokBR8PD2zo1/IWC63/+e9r/xC5lAK/sOT9jpYjsKZ1GAX1sVS6sWgUbMcwOhQYCT76nW9ORQDuYeszi3M60U/7bdbd5sPQco1zBapTkabFC7H9BfQ==
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="SHA1"; boundary="----=_NextPart_000_0353_01D82C86.3173EBB0"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: PA4PR07MB8414.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 5114fe08-2bb4-4f4b-9098-08d9fa94f30d
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Feb 2022 08:33:08.8242 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: zqzGaxweQNHHhtHg6/qIg9RF1fZIPwShbPQ18xlhjpugzDrRRFfnHHItWQKogmJSDZNkf8ysjyRQICay8NBanf/ZO1iz/bmSiVsGn162wiI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR07MB7274
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsv-art/DZ4qU-DKwLvaKQi88GKVr5cXgX8>
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: Mon, 28 Feb 2022 08:33:20 -0000

Hi Bob,

 

I have reviewed the diff and the changes looks okay to me and address what I raised.

 

Thanks

 

Magnus Westerlund

 

From: Bob Briscoe <ietf@bobbriscoe.net> 
Sent: den 24 februari 2022 00:35
To: Magnus Westerlund <magnus.westerlund@ericsson.com>; Greg White <g.white@CableLabs.com>
Cc: tsv-art@ietf.org; draft-briscoe-docsis-q-protection.all@ietf.org; rfc-ise@rfc-editor.org
Subject: Re: [Tsv-art] Tsvart early review of draft-briscoe-docsis-q-protection-02

 

Magnus, 
Thank you again for the review. Greg and I have now gone through it.

See [BB] inline for responses. I've also attached a diff (Greg pls also check that).
Pls let us know if you're happy or not.

(will do David Black's comments next)




On 19/02/2022 23:19, Bob Briscoe wrote:

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%. 


[BB] Yes, you've caught us being sloppy. Nonetheless, the number has considerable leeway built into it, so it doesn't need to be precise.

The default for AGING is introduced In §3 as follows:
    "AGING, which is a configured constant of the algorithm (default 2^19 B/s ~= 4.2 Mb/s)."
So we've dialled down the implied accuracy by:
    s|4.2 Mb/s|4 Mb/s|

Then in the pseudocode:
    s|// Convert units|// Convert units (approx)|

The value of AGING using the pseudocode shown is 3.9 Mb/s, which is near enough 4 Mb/s.





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? 


[BB] After the blocks defining input parameters and constants, we've added the following:

"Throughout the peudocode, most variables are integers. The only exceptions are floating point variables representing probabilities (MAX_PROB and ProbNative) and the AGING parameter. In practice, these floats would also typically be represented by integers that would be upscaled for precision. The pseudocode omits overflow checking and it would need to be made robust to non-default input parameters."

Yes, NBUCKETS and MASK are integers.  Sry, the comment against MASK will have thrown you off. We've changed it:
s|// convenient constant, filled with ones|
 |// convenient constant, with BI_SIZE LSBs set|





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. 


[BB] Sry, these were defined in other parts of the DOCSIS spec, and we used them without explaining.
Also , thx for pointing out the missing underscores in the variable names. These were copied from the DOCSIS spec. I've fixed them, and Greg has now submitted a request to correct them in the DOCSIS spec too.

Here's the diffs:

  // Input Parameters
+ MAX_RATE;          // Configured maximum sustained rate [b/s]
  QPROTECT_ON;       // Queue Protection is enabled [Default: TRUE]

+ MAX_FRAME_SIZE = 2000;  // DOCSIS-wide constant [B]
  // Minimum marking threshold of 2 MTU for slow links [ns]
  FLOOR =  2 * 8 * MAX_FRAME_SIZE * 10^9 / MAX_RATE;






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. 


[BB] Sry, these two lines should have been deleted. They were left over from when we'd left out details of qLSCORE_MAX.
Thx for spotting this.





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? 


[BB] See addition earlier of "The pseudocode omits overflow checking and it would need to be made robust to non-default input parameters."





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. 


[BB] Sry, same problem as earlier - everything after the comma deleted, 'cos this was from before we introduced qLSCORE_MAX.

Thanks for the warnings and errors from the output log of your pseudocode parser and compiler! Awesome.
I also added some missing ';'s

Cheers


Bob










 

 





-- 
________________________________________________________________
Bob Briscoe                               http://bobbriscoe.net/ <https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-b0108c2709550a3a&q=1&e=c51e3420-d3d6-4594-8345-77632b4fe895&u=http%3A%2F%2Fbobbriscoe.net%2F>