Re: [ippm] Magnus Westerlund's Discuss on draft-ietf-ippm-capacity-metric-method-06: (with DISCUSS)

Magnus Westerlund <magnus.westerlund@ericsson.com> Tue, 02 March 2021 10:27 UTC

Return-Path: <magnus.westerlund@ericsson.com>
X-Original-To: ippm@ietfa.amsl.com
Delivered-To: ippm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 538783A1531; Tue, 2 Mar 2021 02:27:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.349
X-Spam-Level:
X-Spam-Status: No, score=-2.349 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.248, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, 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 BZ3pX1qaTKcS; Tue, 2 Mar 2021 02:26:57 -0800 (PST)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2087.outbound.protection.outlook.com [40.107.22.87]) (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 F287E3A1530; Tue, 2 Mar 2021 02:26:56 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FLaA6BPTUe0FHouObp0UYnBRWIkrbNkJYcexqiuTdAEJpXy4TLx411mTfLtpt8LhTo6skToRpJxbN50JVQum4799N/96/y0iGV4FPVwdA5H5I6VHrXBldPb+SM1JNUQ09DTCOEKBr24PsdUUWjQFYl7DXBBR5EOL1ybjIqW5m7BGBOxM4w1A46GjLybW6Lw0JwU5PvVupn/0U0B91tlAPt28LcPXXJ46mBuDJe2tYQtTZGRfA/HK4zsghk7UwOKqniGgPwv9Ro7Nzv7tQTV+ohI3cGiJd4vzge5sa0kH16R5RdDwXrcFXGUgz4+Veom9ZiBy6qL/DaMztPfl9BTLHg==
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-SenderADCheck; bh=WmTQxY5FeAKVSmbNekXHmP5IKhDELs4L7JDPONdAjbY=; b=iRqnbleyjAHQFdkSuja5FFsWAjLonQKqDhNuWTFI3gCL8YxGrr3ZQjn2J/6GS0rrHopPnup8r9n/gpZjPrdPHpmTwPZa8QG1Od6ouG1f/a8GBso0VhobqT93HOPEOCUsr9Ijmd6Fk2lBblbeTyGhcUFXx6V7KATy0EIMMv//tszuKqwB8TWSmbc/Vx7GIcAl3xrZYoJi0CtTAPh0N2lIdJV6VyjE4LZK+DZmka/6ZnyictXAHvZ4NMT6hErfQraQqHvJqgfUx1klOmZW72eqjZGYjI6bEOt+pXqb0dN10bKnBwtb0qabxSBowx8N7h1tMe1jMmok8XbhV8pvNya/qg==
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=WmTQxY5FeAKVSmbNekXHmP5IKhDELs4L7JDPONdAjbY=; b=D6YEdre68b1G05b1+/sysnAhuvj7f/OhdCO8vdfcPEEPjv5L55WHZ0ZTwOa6lH8hS6Y9Ng1W5V3YZQX4gzdylwLEB8NxXX24IsrwEB6KLRNbxGswOgATop13ZxnYn74tVgUrEy1gDeISzBe8XFBjMwRDtWGcrGhkKaQebAOIYLk=
Received: from HE1PR0702MB3772.eurprd07.prod.outlook.com (2603:10a6:7:8e::14) by HE1PR0701MB2890.eurprd07.prod.outlook.com (2603:10a6:3:4c::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.9; Tue, 2 Mar 2021 10:26:52 +0000
Received: from HE1PR0702MB3772.eurprd07.prod.outlook.com ([fe80::350a:7431:a670:a5b5]) by HE1PR0702MB3772.eurprd07.prod.outlook.com ([fe80::350a:7431:a670:a5b5%5]) with mapi id 15.20.3912.016; Tue, 2 Mar 2021 10:26:52 +0000
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
To: "acm@research.att.com" <acm@research.att.com>, "iesg@ietf.org" <iesg@ietf.org>
CC: "tpauly@apple.com" <tpauly@apple.com>, "ianswett@google.com" <ianswett@google.com>, "draft-ietf-ippm-capacity-metric-method@ietf.org" <draft-ietf-ippm-capacity-metric-method@ietf.org>, "ippm-chairs@ietf.org" <ippm-chairs@ietf.org>, "ippm@ietf.org" <ippm@ietf.org>
Thread-Topic: Magnus Westerlund's Discuss on draft-ietf-ippm-capacity-metric-method-06: (with DISCUSS)
Thread-Index: AQHXC4ErlwkM1aTuAkuUi6wN9U4nLapp866AgABO1QCAAhpUgIAEDDCg
Date: Tue, 2 Mar 2021 10:26:52 +0000
Message-ID: <HE1PR0702MB3772A66E2C0409F5A69DC7DA95999@HE1PR0702MB3772.eurprd07.prod.outlook.com>
References: <161426272345.2083.7668347127672505809@ietfa.amsl.com> <4D7F4AD313D3FC43A053B309F97543CF01476A0C0E@njmtexg5.research.att.com> <66f367953ae838c8ba7505c60e51367843117787.camel@ericsson.com> <4D7F4AD313D3FC43A053B309F97543CF01476A0FE3@njmtexg5.research.att.com>
In-Reply-To: <4D7F4AD313D3FC43A053B309F97543CF01476A0FE3@njmtexg5.research.att.com>
Accept-Language: sv-SE, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
authentication-results: research.att.com; dkim=none (message not signed) header.d=none;research.att.com; dmarc=none action=none header.from=ericsson.com;
x-originating-ip: [158.174.130.243]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 281ba96e-67ad-4ea1-d2f5-08d8dd65b26a
x-ms-traffictypediagnostic: HE1PR0701MB2890:
x-ms-exchange-minimumurldomainage: itu.int#0
x-microsoft-antispam-prvs: <HE1PR0701MB289063310207BA74D66E628595999@HE1PR0701MB2890.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:4303;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: OGh+UJctQ2qpKIegW9wDu9o/5YCTt9g+1VDeL+42IGg/AYIqiG/pyi9WWXGTAwBN3Dcp69GYPpMOCbKe7qtBA53AEplxSfPZB8XFxUUZg6kTjcoTIGVaJsoiF18vg9/Mxd/BYsru7A/BYrsbkUihOxOBxXwl6T7TEMdjZFs1z0a4/C+XC0v1kDU2pwl8WEC1JNJ+BOdgRBzIIVvn0q/blp4T71frk69cwW1xEdRvD4CfbJ912dXDjZFTvdceNqLk3r5aNJc6fW7dNXYRByEx+g47BFCm6mhbKAu3qDN/YPNyqq3xJC4CGHvdiO5okA6+Hbij2suTa48ikV8mjH8d4bJ8yEfDOeP2pXTPqzIEKj+Xmar/dsib94/Py4KQOWvD5TqbIWS/j9QqWeCicv/srmp+O0ZuPB4CjxpcGAVzo5cgzMaPzEKku+vSnUFLAyS9VtCowSxB9k2RE0pJrlJdNSg6jHNoyg3thKjLWqR0BIgJrpA4Uitq4+2vELP6iPSYPd8qMDeaet2OXv2ajpS5FEzoml8btWTpWJE/xmdEDU+IINNZCgnh1fCwXabEFCA7WDhkXQdqAzzMU6cyNBQHUPezhlVHq0+8kYlvYpx0YRI=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:HE1PR0702MB3772.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(366004)(346002)(396003)(376002)(136003)(4326008)(26005)(52536014)(16799955002)(66574015)(99936003)(966005)(71200400001)(86362001)(30864003)(478600001)(44832011)(83380400001)(2906002)(316002)(54906003)(76116006)(5660300002)(66556008)(66946007)(9686003)(8676002)(64756008)(66616009)(66446008)(55016002)(110136005)(33656002)(7696005)(8936002)(6506007)(186003)(66476007)(579004)(559001); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata: =?utf-8?B?RUxueCswQlN6cFVOSTN4bDVSTTRGT0dLaEhEUUgyMTFSNEUzV2FKdHZQaFRJ?= =?utf-8?B?czV3R2xhcWZ0MUJPMFNHSWVHVERBVkluQy8rd3JSdXBXdGtveWx3UTdZWTIv?= =?utf-8?B?SGhHd0hZLzZIdVowV2dSMjhLYWJPWUV3VzVQNWJiaFRab2FHWk1LUmxScUxQ?= =?utf-8?B?MnEyWHpBY2d4SGZobjd4NVRVWm1wOFVHS3BTeSt5ZXlvaHJMcXNVc0Q0L2Rh?= =?utf-8?B?akluVGlGMzZ3RmZLcEgzRGZpWDI3clA0amx0dGVVbE8veEFBNW9IQzgwR2dV?= =?utf-8?B?NENXMEhTSWdtYiswdXVnd1BFcm8rdXBQSTBBWVUwLzJSWHQwOHpRb3V3SjdL?= =?utf-8?B?emFCN2hqdWRlZ1BYSktQdk9CYi8xcWZtVGtiTHRiN2RVZXRtd3RCbXhxVExx?= =?utf-8?B?bUMxNFVRV0R1Y3JWa0dEbnNxV0RJM3lyRWwvL2JBN3dBUkxydUs1ZG5HVll2?= =?utf-8?B?dDd4VHhEUWZtdnhXRFVIODdub2pJVzdOKzRTNXBFMm0wTS85UThQa04vUXRh?= =?utf-8?B?cVl4NlRwWXNBVllRMng5RzFZTXhDS3dweHZNOFFRMFkxbXVRWHBkY1pTeUcw?= =?utf-8?B?S2h2U0E3ejVvT2hSQzExZlI0aGVieUhDS1JrMU9oQkUrTmEweHllbnA5aDJq?= =?utf-8?B?cEFvcWVyK1JHcHkwTXZYVXhzMFMzc3BVd1FDNkMvWnkrVTZ1c3lINlBOVFRp?= =?utf-8?B?c2QyeVdnUU80b0hVbWFQcEc3Ync1d1lIWUNYUzRMZ3VRT0ZUWUNaUzkzNVdz?= =?utf-8?B?bzIzQlNtRS9EaFloQzFnQjlSMHM0Wm00b05jL0Y3L2NWamdKSkRycDd4NFlJ?= =?utf-8?B?MUVNbm5JTDRjOWlNa05tY1NYNTk1WkRMb2U0cmowdEoxcDIwY2dhYnN6RnRz?= =?utf-8?B?RjVPQy9QQU9zL1p1YnJiWUxwanlrNUlwb2d3UmdsLzJTUVdaSytXR0JlaXlx?= =?utf-8?B?VTFnZGRXcGhZQzc1cU9xOUt4RjhZOEpjWHFSN09vaTlOcTQ0cDBnVWNkdUlZ?= =?utf-8?B?bDJ0N1hmeHpiWVZlM0hhelg4a1NCQjdLVnJxcE1UZmlIdDFyWWxkbE4xbE9L?= =?utf-8?B?bHg1ZGdPQ1pSamJiYUc2Mjc3cmx2T2JqMWJDQTRTVTRKRCtOaDdiSUVleUVw?= =?utf-8?B?Uk9IRXQ5Vmw2MlM1a2ZpZU1vb0daVFQ2WkRLNGJIUmV1MFZaYlBIcFZFOVR0?= =?utf-8?B?WGg2NjJlc1R2Ukg0U29oeDJKV3ZTUmtmSk82VktLTWtaeVRCL3RvM0gxemd6?= =?utf-8?B?Q3ErbEd3WXZuNUZ1bno0SnZHWE16dnE1QjZBUVpJQjVCanBLbGRCVmdlbVV4?= =?utf-8?B?R1Rua3pFQzU0QWx2OUNDQXI4SWc5bXhVQW5SVGJSbURIT2JndXMxKzBYcTZN?= =?utf-8?B?L3BpZ01lTm14K25qWXBmSkovNy9PUzRabGgxQzFjdHFSeFdQNW9IL0pjNW9q?= =?utf-8?B?WW1rZ0JvV0VhTEFtRUhxa1ZMZ280bzlNQ25tNXptUnlRbXg3MkJLZVFZTy9y?= =?utf-8?B?YVRmanl5RW5NdEhDSGY0WEVoMzdmMzVhY2lRbW9kNmg1aFZ6ZzBHMjZLcGJx?= =?utf-8?B?clBocVZlK24ySzZaM3lWSGJHVkorNnZUUk1MZG8vVlc0ek9JZDdORldhdXFV?= =?utf-8?B?eHU3S2loNnFjZlo1akovT1RtalM3NEsxNFFKTUcxSWYzY3NCd2U1eDBaMVo3?= =?utf-8?B?b3lXZlRtaU1EeExOSXJ4TjBxK3JFUzU0TzJJL0xLVis5T0c2RU9adG90amww?= =?utf-8?Q?m24cD0blma+OuFCPi5Yb7DAA3QvCnqQ6hfBnbgM?=
x-ms-exchange-transport-forked: True
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=SHA1; boundary="----=_NextPart_000_00FA_01D70F56.F0D230F0"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: HE1PR0702MB3772.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 281ba96e-67ad-4ea1-d2f5-08d8dd65b26a
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Mar 2021 10:26:52.5420 (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: 2L9ITIqyj4AIsf8lZEZlaj+n5oivmM5Byk3KnNDHM/AdsQYkDsPwZpip9ZmMSgzrsZgLPDFQzr+bC2rsxa32aUofHZQZb/+189XpfRzr+oQ=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0701MB2890
Archived-At: <https://mailarchive.ietf.org/arch/msg/ippm/25JQwGpZMRkzE25md8dnsZCDytg>
Subject: Re: [ippm] Magnus Westerlund's Discuss on draft-ietf-ippm-capacity-metric-method-06: (with DISCUSS)
X-BeenThere: ippm@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF IP Performance Metrics Working Group <ippm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ippm>, <mailto:ippm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ippm/>
List-Post: <mailto:ippm@ietf.org>
List-Help: <mailto:ippm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ippm>, <mailto:ippm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 02 Mar 2021 10:27:01 -0000

Hi Al,

Would it be possible for you and your co-authors to call in tomorrow Wednesday at 16:30 CET to the TSV-Office hours to discuss this document?  

Meeting link:
    https://ietf.webex.com/ietf/j.php?MTID=m689aa12ae4b319f4e371988b8330a863 
Meeting number:
    185 768 2828
Password:
    PNvNTuQm823


Please see inline. 

> > > >
> > > > ------------------------------------------------------------------
> > > > ----
> > > > DISCUSS:
> > > > ------------------------------------------------------------------
> > > > ----
> > > >
> > > > A) Section 8. Method of Measurement
> > > >
> > > > I think the metrics are fine, what makes me quite worried here is
> > > > the measurement method. My concerns with it are the following.
> > > >
> > > > 1. The application of this measurement method is not clearly scoped.
> <snip>
> [acm] we agreed on text adding "access" applicability to the scope section.
> 
> > > > However in
> > > > that context I think the definition and protection against severe
> > > > congestion has significant short comings. The main reason is that
> > > > the during a configurable time period (default 1 s) the sender
> > > > will attempt to send at a specified rate by a table independently
> > > > on what happens during that second.
> > >
> > > [acm]
> > > Not quite, 1 second is the default measurement interval for
> > > Capacity, but sender rate adjustments occur much faster (and we add
> > > a default at 50ms). This is a an important point (and one that Ben
> > > also noticed, regarding variable F in section 8.1). So, I have added FT as a
> parameter in section 4:
> > >
> > > o FT, the feedback time interval between status feedback messages
> > > communicating measurement results, sent from the receiver to control
> > > the sender. The results are evaluated to determine how to adjust the
> > > current offered load rate at the sender (default 50ms)
> > >
> > > -=-=-=-=-=-=-=-
> > > Note that variable F in section 8.1 is redundant with parameter F in
> > Section
> > > 4,
> > > the number of flows (in-06). So we changed the section 8.1 variable
> > > F to
> > FT
> > > in the working text.
> >
> > Okay, that makes things clearer. With all the equal intervals in the
> > metrics I had missinterpreted that also the transmission would be
> > uniform during the measurement intervals.
> >
> > However, when rereading Section 8.1 I do have to wonder if the
> > non-cumaltive feedback actually creates two issues. First, it appears
> > to loose information for reordering that crosses the time when the FT timer
> fires, due to reset.
> [acm]
> I don't understand how the sequence error counting "loses information"
> when reordered packets cross a measurement feedback boundary. I'm not
> sure what aspect of measurement you are "resetting", but I assume it is
>     "The accumulated statistics are then
>      reset by the receiver for the next feedback interval."
> 
> Suppose I have two measurement intervals and I receive:
> 
> ||  1  2  3  5  6 || 4  7  8  9 ...||
> 
> where || is the measurement feedback boundary.
> 
> Packet 4 arrives late enough from its original position to span the boundary.
> The 3->5 sequence is one sequence error, and the 4->7 sequence is another
> error.
> This example produces two sequence errors in different feedback intervals,
> but that's a typical measurement boundary problem. We can't get rid of
> measurement boundaries, and they affect many measurements.
> 
> Note that a reordered packet contributes to IP-Layer Capacity, by definition.
> 
> Perhaps you had some other scenario in mind?
> 

It was the above type of cases I was considering. I was worried that you don't detect some cases of issues if you reset and have no memory of last received packets. I think one obvious case that doesn't report as out of order for really short ones are this case when zero or single packets are delivered. Then a reordering could look like this.

|| 1   || 3 || 2 || and without a memory of the last received this would not be an out of order event. Nor would a packet loss like this

|| 1 ||     ||  3 || 

So when FB is on the same magnitude as the sent packet interval this measurement method appear to have issues. I have not analyzed if a single last seen packet number memory would solve most or all issues. 

At least it would also solve the issue of this

|| 1 2  3 4 || 6 7 8 || that I am also uncertain if that is detected. 

So, I think more details are needed to what is required on the feedback mechanism to detect these type of issues. 

> 
> > In addition if the feedback is not reliable it looses the information
> > for that interval.
> [acm]
> That's right, and:
> 1. the sending rate does not increase or decrease without feedback 2. the
> feedback is traveling the reverse path that the test do not congest with
>    test traffic
> 3. the running code has watchdog time-outs that *terminate the
> connection* if
>    either the sender or receiver go quiet
> 
> In essence, the test method is not reliable byte stream transfer like TCP.
> We can shut-down the test traffic very quickly if something is wrong and
> useful measurement is in question.
> 
> 

Al, I hope you understand that my concern here is that the documents description of the control algorithm is incomplete and are missing important protection aspects. As well as its behavior to different parameterizations in various conditions. 

> > And making feedback reliabel could cause worse HOL issues for
> > reacting to later feedback that are recived prior to the lost one.
> >
> [acm]
> So the alternative to un-reliable feedback can be worse?
> Good thing it's not planned.

So lets assume that receiver measures two feedback intervals in a row that there where reordering events etc. So in case the first report is lost, then from the senders perspective would there be an advantage to know that both intervals indicated issues at this rate? It at least indicates that the measurement that one is over capacity is consistent. 

Also, will the sender know that feedback is missing. This is all depending on the protocol used for the measurements. 

So I think there are two exiting protocols that I could reasonably easily implement this capacity measurement into. These two are QUIC and RTP/UDP. By taking of the shelf implementations I would have frameworks that would contain a number of features that appear needed to be able to do this measurement and receive feedback needed.


> 
> >
> > >
> > >
> > > >
> > > > 2. The algorithm for adjusting rate is table driven but give no guidance
> on
> > > > how
> > > > to construct the table and limitations on value changes in the table. In
> > > > addition the algorithm discusses larger steps in the table without any
> > > > reflection of what theses steps sides may represent in offered load.
> > >
> > > [acm]
> > > We can add (Len suggested the following text addition):
> > > OLD
> > > 8.1. Load Rate Adjustment Algorithm
> > >
> > > A table SHALL be pre-built defining all the offered load rates that
> > > will be supported (R1 through Rn, in ascending order, corresponding
> > > to indexed rows in the table). Each rate is defined as datagrams of...
> > >
> > > NEW
> > > 8.1. Load Rate Adjustment Algorithm
> > >
> > > A table SHALL be pre-built defining all the offered load rates that
> > > will be supported (R1 through Rn, in ascending order, corresponding
> > > to indexed rows in the table). It is RECOMMENDED that rates begin with
> > > 0.5 Mbps at index zero, use 1 Mbps at index one, and then continue in
> > > 1 Mbps increments to 1 Gbps. Above 1 Gbps, and up to 10 Gbps, it is
> > > RECOMMENDED that 100 Mbps increments be used. Above 10 Gbps,
> > > increments of 1 Gbps are RECOMMENDED. Each rate is defined as...
> >
> > Is this what you actually used in your test implementation?
> [acm]
> Yes, except that the current table stops at 10Gbps. We haven't had the
> opportunity to test >10Gbps.
> 
> > At my first glance
> > this recommendation looks to suffer from rather severe step effects and
> also
> > make the respond to losses behave strange around the transitions.
> Wouldn't some
> > type of logarithmic progression be more appropriate here for initial
> > probing?
> [acm]
> Len and I considered various algorithms for the search.
> 
> Logarithmic increase typically means more rate overshoot than Linear
> increases.
> Unfortunately, a large rate overshoot means that the queues will fill and
> need
> a longer time to bleed-off, meaning that rate reductions will take you far
> from
> the "right neighborhood" again.
> 
> Our experience is that we avoid large overshoot with fast or slow linear
> increases.
> It means we've taken some care to keep the network running. We haven't
> broken
> any test path yet, and we bail-out quickly and completely if something goes
> wrong.

I understand that there are several considerations here that are contradicting.

1. Quickly finding roughly the existing capacity
2. Avoid significant overshoot that build up to much queue if that is possible
3. Have sufficient fine grained control around the capacity so that adjustment step finds the capacity.

For example the last I am worried when you define the step size as 1 GBPS above 10 GBPS. My fear is that one 1 GBPS more traffic will increase the buffer occupancy so quickly that one alternates between not filled, and over filled between stepping up and receiving the feedback in the control cycle. We have to remember that with a FB of 50 ms the delay in the control cycle will be up to RTT + 50 ms.  

So I am speculating and you haven't tested. So if you put in table construction recommendations, then I do think you should be very clear that these are untested. 


> 
> >
> > If I have 1 GBPS line rate, there is a 1000 steps in the table to this value.
> > Even if I increase with the suggested 10 steps until first congestion seen, it
> > will take 100 steps, and with 50 ms feedback interval that is 5 seconds
> before
> > it is in the right ball park.
> [acm]
> Your math is correct.
> 
> Remember that the only assumption we made when building the table of
> sending rates
> is that the maximum *somewhere between 500kbps and 10Gbps*. Our lab
> tests used
> unknown rates between 50Mbps and 10Gbps, as the "ground truth" that we
> asked UDP
> and TCP-based methods to measure correctly. Measurements on production
> networks
> encountered many different technologies. Some subscriber rates were 5 to
> 10 Mbps
> on upstream.
> 
> > And I get one random loss at 10 mbps, then its 990
> > steps, In such a situation the whole measurement period (10 s) would be
> over
> > before one has reached actual capacity.
> [acm]
> I'm sorry, that's not quite correct, assuming delay range meets the criteria
> below, which would be consistent with "one random loss".
> 

Yes, my mistake, but let me replace one random loss with one congestion event due to a single intermittent transaction. So harder to trigger if the capacity is large, easier if it is low and then it matters less. So this reduced the issue significantly.

> The text says:
>   If the feedback indicates that sequence number anomalies were detected
> OR
>   the delay range was above the upper threshold, the offered load rate is
>   decreased.  (by one step)
> 
> But when the next feedback message arrives with no loss, and the
> "congestion"
> state has not been declared, the relevant text is:
> 
>   If the feedback indicates that no sequence number anomalies were
> detected AND
>   the delay range was below the lower threshold, the offered load rate is
> increased.
>   If congestion has not been confirmed up to this point, the offered load rate
> is
>   increased by more than one rate (e.g., Rx+10).
> 
> and we return to the high speed increases, because:
> 
>   Lastly, the method for inferring congestion is that there were sequence
>   number anomalies AND/OR the delay range was above the upper threshold
> for
>   *two* consecutive feedback intervals.
> 
> So, there is a single step back for the single random loss, but then
> immediately
> back to Rx+10 increases.
> 
> 

Ok. Good that this is less than a issue then I thought. 

> >
> > To me it appears that the probing (slow start) equivalent do need
> logarithmic
> > increase to reach likely capacity quickly. Then how big the adjustment is
> > actually dependent on what extra delay one consider the target for the
> test.
> [acm]
> Our delay variation values are low, but need to accommodate the relatively
> high
> delay variation of some access technologies. We learned this during our
> testing
> on production networks.
> 
> > Having a step size of 1 GBPS if probing a 2.5 GBPS path would likely make it
> > very hard to keep the delay in the intended interval when it would
> fluxtuate
> > between 500 mbps to much traffic and then 500 mbps to little. Sure with
> > sufficiently short FT it will likely work in this algorithm. However, I wonder
> > about regulation stability here for differnet RTT, FTs and buffer depth
> > fluxtuations.
> [acm]
> I'm sorry, that's not quite correct, the text we proposed to add says:
> 
>    It is RECOMMENDED that rates begin with 0.5 Mbps at index zero,
>    use 1 Mbps at index one, and then continue in 1 Mbps increments to 1
> Gbps.
>    Above 1 Gbps, and up to 10 Gbps, it is RECOMMENDED that 100 Mbps
> increments be used.
> and                                                        ^^^^^^^^
>    Above 10 Gbps, increments of 1 Gbps are RECOMMENDED.
> 
> Your example falls in the 1Gbps to 10Gbps range, where table increments are
> 100Mbps.
> 
> >
> > From my perspective I think this is a indication that the load rate
> adjustment
> > algorithm is not ready to be a standards track specification.
> [acm]
> Given several corrections above, the authors ask that you reconsider your
> position.
> Please read on.
> 
> >
> > I would recommend that you actually take out the control algorithm and
> write a
> > high level functional description of what needs to happen when measuring
> this
> > capacity.
> [acm]
> We worked for several weeks in December to make the current high-level
> description
> an accurate one. The IESG review has resulted added some useful details
> that
> I have shared along the way.
> 
> >
> > If I understand this correctly the requirements on the measurement are
> the
> > following.
> >
> > - Need to seek the available capacity so that several measurement period
> are
> > likely to be done at capacity
> > - Must not create persistent congestion as the capacity measurement
> should be
> > based on traffic capacity that doesn't cause more standing queue that X,
> where X
> > is some additiona delay in ms compared to minimal one way delay. And X is
> > actually something that is configurable for a measurement campagin as
> capacity
> > for a given one way delay and delay variation can be highly relevant to
> > know.
> [acm]
> These are not identical to our requirements.  For example:
>  - Both the metric and method consider a number of measurement intervals,
> and the Maximum IP-Layer Capacity is determined from one (or more) of the
> intervals.



> 
> 
> >
> > What else is needed?
> >
> > Are synchronized clocks needed or just relative delay changes necessary?
> [acm]
> Just delay variation, and the safest is RT delay variation.

So sender side transmission timestamping and the receiver measure delay variations based on these transmission times would suffice. 

Good. 

> 
> >
> > >
> > > -=-=-=-=-=-=-=-
> > >
> > > >
> > > > 3. Third the algorithms reaction to any sequence number gaps is
> dependent on
> > > > delay and how it is related to unspecified delay thresholds. Also no text
> > > > discussion how these thresholds should be configured for safe
> operation.
> > >
> > > [acm]
> > > We can add some details in the paragraph below:
> > > OLD
> > > If the feedback indicates that sequence number anomalies were
> detected OR
> > > the delay range was above the upper threshold, the offered load rate is
> > > decreased.
> > > Also, if congestion is now ...
> > > NEW
> > > If the feedback indicates that sequence number anomalies were
> detected OR
> > > the delay range was above the upper threshold, the offered load rate is
> decreased.
> > > The RECOMMENDED values are 0 for sequence number gaps and 30-90
> ms for lower
> > > and upper delay thresholds. Also, if congestion is now ...
> >
> > Ok, but the delay values as I noted before highly dependent of what my
> goal with
> > the capacity metric is. If I want to figure out the capacity for like say XR or
> > cloud gaming applications that maybe have much lower OWD variances and
> absolute
> > values so maybe my values are 10-25 ms.
> [acm]
> We intend to measure the limit of the access technology, with a set of
> parameters
> that work well for all technologies we have tested so far.
> 
> Notice that I didn't type the word "application" above. Or "user experience".
> 
> Sure, there is sensitivity to the parameters chosen, and we supplied our
> well-tested defaults to maximize results comparability and technology
> coverage
> (with no twiddling).
> 
> 
> >
> > How much explaration have you done of the control stability over a range
> > of parameters? Do you have any material about that?
> [acm]
> Yes. There are several parameter ranges we examined.
> 
> If we set the delay thresholds high enough, we see the RTT grow as the
> queues
> fill to max and tail-drop finally restricts the rate. We can measure the
> extent of buffer bloat this way (if it is present). It's Not our goal.
> 
> We have used lower thresholds of delay variation, which work fine on the
> PON 1Gbps access services.
> 
> In the collaborative testing of the Open Broadband Open Source project,
> one participant contributed tests with a 5G system that exhibited systematic
> low-level loss and reordering in his lab. For this unusual case, Len added
> the features to set a loss threshold above zero, and to tolerate reordered
> and duplicate packets with no penalty in rate adjustment.
> 
> We have tried a range of test durations (I=20, 30 for example).
> 
> We have tried different steep-ness of ramp-up slope. Rate += 10 steps
> works well, even when measuring rates separated by 3 orders of magnitude.
> 
> 
> But for the co-authors, it was more important that the load adjustment
> search
> produce the correct Maximum IP-Layer Capacity for each of the lab
> conditions
> we created (including challenging conditions with competing traffic, long
> delay
> etc.), and the many access technologies we tested in production use
> (where again we encountered similar challenging conditions).
> 
> 

Thanks for the clarifications. 

> >
> >
> > >
> > > -=-=-=-=-=-=-=-
> > >
> > > Please also note many requirements for safe operation in Section 10,
> > > Security Considerations.
> > >
> > > >
> > > > B) Section 8. Method of Measurement
> > > >
> > > > There are no specification of the measurement protocol here that
> provides
> > > > sequence numbers, and the feedback channel as well as the control
> channel.
> > >
> > > [acm]
> > > That is correct. The Scope does not include protocol development.
> > >
> > > > Is this intended to use TWAMP?
> > >
> > > [acm]
> > > Maybe, but a lot of extensions would be involved.
> >
> >
> >
> > >
> > > >
> > > > From my perspective this document defines the metrics on standards
> track
> > > > level. However, the method for actually running the measurements are
> not
> > > > specified on a standards track level.
> > >
> > > [acm]
> > > In IPPM work, the methods of measurement are described more broadly
> than
> > > the metrics, as actions and operations the Src and Dst hosts perform to
> > > send and receive, and calculate the results.
> > >
> > > IPPM Methods of Measurement have not included protocol
> requirements in
> > > the past, in any of our Standards Track Metrics RFCs.  In fact, we
> developed
> > > a measurement-specific criteria for moving our RFCs along the standards
> track
> > > that has nothing to do with protocols or interoperability.
> > > See BCP 176 aka RFC 6576:
> https://protect2.fireeye.com/v1/url?k=65acc415-3a37fcc7-65ac848e-
> 866132fe445e-b4323cb4b6e4206f&q=1&e=5fe1792c-f641-4903-9a32-
> 317350790872&u=https%3A%2F%2Furldefense.com%2Fv3%2F__https%3A%
> 2F%2Ftools.ietf.org%2Fhtml%2Frfc6576__%3B%21%21BhdT%213
> RMQMZOAFloQ1FvtC_LIrUsDqBGxQeJZ1F4GFt8TpbQ60w841wT54sLLoKS9-
> Yc$
> > > IP Performance Metrics (IPPM) Standard Advancement Testing
> > >
> > > > No one can build implementation.
> > >
> > > [acm]
> > > I'm sorry, but that is not correct.  Please see Section 8.4.
> >
> > Sorry, that was poorly formulated. I mean that you can't give this
> specification
> > to a guy on a island without external communication and have them
> > implemented it and it will work with someone else implementation.
> [acm]
> But then you are asking for protocol-level interoperability, Magnus.
> That is not our scope, or the scope of any IPPM Metric and Method RFCs.
> The procedures of BCP 176 tell us when independent implementations
> produce
> equivalent results, which is IETF's definition of "works with" for metrics
> and methods.
> 
> 
> > You have clearly
> > implemented a solutiont that works for some set of parameters. And I am
> asking how
> > much of the reasonable parameter space you have tested.
> [acm]
> Right. I answered this question qualitatively above, but the co-authors
> claim that an equally important question is the breadth of access
> technologies
> we have tested.
> 
> The tests conducted over 2+ years used the following production access
> types:
> 
> 1. Fixed: DOCSIS 3.0 cable modem with "triple-play" capability and embedded
> WiFi and
> Wired GigE switch (two manufacturers).
> 2. Mobile: LTE cellular phone with a Cat 12 modem (600 Mbps Downlink, 50
> Mbps uplink).
> 3. Fixed: passive optical network (PON) "F", 1 Gbps service.
> 4. Fixed: PON "T", 1000 Mbps Service.
> 5. Fixed: VDSL, service, at various rates <100 Mbps.
> 6. Fixed: ADSL, 1.5 Mbps.
> 7. Mobile: LTE enabled router with ETH LAN to client host
> 8. Fixed: DOCSIS 3.1 cable modem with "triple-play" capability and embedded
> WiFi and
> Wired GigE switch (two other manufacturers).
> 
> 
> >
> > Based on this discussion I don't think I can build an implementation that
> > fulfills the measurement goals, becasue I have questions about them. And I
> > suspect it would take substantial amount of experimentation to get it to
> > work correctly over a broader range of input parameters.
> [acm]
> Now we refer you to the references in the memo, particularly Appendix X
> of Y.1540:
> 
>    [Y.1540]   Y.1540, I. R., "Internet protocol data communication
>               service - IP packet transfer and availability performance
>               parameters", December 2019,
>               <https://www.itu.int/rec/T-REC-Y.1540-201912-I/en>.
> 
>    [Y.Sup60]  Morton, A., Rapporteur, "Recommendation Y.Sup60,
> Interpreting
>               ITU-T Y.1540 maximum IP-layer capacity measurements", June
>               2020, <https://www.itu.int/rec/T-REC-Y.Sup60/en>.
> 
> and Liaisons, were many of the experimental results are summarized:
> 
>    [LS-SG12-A]
>               12, I. S., "LS - Harmonization of IP Capacity and Latency
>               Parameters: Revision of Draft Rec. Y.1540 on IP packet
>               transfer performance parameters and New Annex A with Lab
>               Evaluation Plan", May 2019,
>               <https://datatracker.ietf.org/liaison/1632/>.
> 
>    [LS-SG12-B]
>               12, I. S., "LS on harmonization of IP Capacity and Latency
>               Parameters: Consent of Draft Rec. Y.1540 on IP packet
>               transfer performance parameters and New Annex A with Lab &
>               Field Evaluation Plans", March 2019,
>               <https://datatracker.ietf.org/liaison/1645/>.
> 
> Also, see our slides from the Hackathons at IETF 105 and 106, and the
> IPPM WG sessions slides beginning with IETF-105, July 2019.
> You might also look into the discussions on the mailing list.
> Some other results are available to those with ITU-TIES accounts.
> 
> The load adjustment algorithm itself was improved after experimentation,
> adding the fast ramp-up with rate += 10 when feedback indicates no
> impairments. The original/current algorithms appear in Y.1540 Annexes A
> and B, respectively.
> 
> 
> >
> >
> >
> > >
> > > > And if the section is
> > > > intended to provide requirements on a protocol that performs these
> > > > measurements
> > > > I think several aspects are missing. There appear several ways forward
> here
> > > > to
> > > > resolve this; one is to split out the method of measurement and define
> it
> > > > separately to standard tracks level using a particular protocol, another
> > > > is to write it purely as requirements on a measurement protocols.
> > >
> > > [acm]
> > > As stated above, connecting a method with a single protocol is not IPPM's
> way.
> >
> > That is fine. However, I find the attempt to specify a specific load regulator
> > in the method of measurement to take this specification beyond a general
> method
> > of measurment. The high level requirement appear to be that to correctly
> find
> > the capacity, and that requires that one load to the point where buffers are
> > filled sufficiently to introduce extra delay or where AQM starts dropping or
> > marking some of the load. Thus, I am questioning if the described algorithm
> will
> > adqueately solve that issue over a wider range of parameters.
> >
> > So if you have more information to show at least which range it has been
> proven
> > to do its work and with what input parameters?
> [acm]
> Yes. See ~10 references  and replies above.
> 
> > I hope you understand that I
> > expect this load control algorithm to get simularly scrutinized to congestion
> > control algorithms that we standardize in IETF.
> [acm]
> Yes, although it is a surprising at this point, we certainly understand your
> current position.
> 
> However, Rüdiger made a relevant point in our discussions (why our
> algorithm's
> role is different from Transport Area congestion control algorithms,
> and need not be subjected to the same scrutiny):
> 
>     This is a measurement method designed for infrequent and sensible
> maximum
>     capacity assessment, instantiated only in an OAM or diagnostic tool.
> 
>     It is not a blueprint for a congestion control algorithm (CCA) in a bulk
>     transfer protocol that runs by default and is globally deployed by
>     commodity stacks.
> 
> We don't want to re-create any TCP CCA: they weren't designed for accurate
> measurement of maximum rate (as the referenced measurements show).
> 
> It appears that the most recent (2018) standardized and widely used
> CCA is Cubic (RFC 8312 https://tools.ietf.org/html/rfc8312 ).
> 
> The great TCP CCA Census (2019)
> https://datatracker.ietf.org/meeting/109/materials/slides-109-iccrg-the-
> great-internet-tcp-congestion-control-census-00
> 
> finds that BBR versions account for greater popularity on Alexa-250 sites
> (25.2%) than CUBIC, and more than 40% of downstream traffic on the
> Internet
> (slide 14). I found some references to BBR in ICCRG drafts, but no RFC.
> I would guess that BBR has already provided CCA for more traffic than the
> test traffic complying to this memo ever will.
> 
> Our overall method works similar to BBR: Received rate per RTT is the
> feedback to the sender.
> 
> We added Applicability to the access portion, not the global Internet
> where standardized transport protocol CCAs must operate.
> 
> We are not specifying a transport CCA that must support many applications.
> Measurement is the *only* application (for an IP-layer metric).
> 
> Early impressions have been formed on several erroneous assumptions
> regarding algorithm stability (operation above 1Gbps) and
> suitability for purpose (one random loss case).

I agree to misunderstandings and misinterpretation of what was defined. And I do have to say that some of these assumptions or guesses are due to the lack of clarity of the specification. Which from my perspective strengthens my position that this is not yet standards track quality around the load algorithm. 

> 
> Ad-hoc methods resulting in TCP-based under-estimates of Internet Speed
> are the problem we attack here! Implementation of harmonized industry
> standards are the solution.
> 
> We believe in rough consensus and running code.
> 

So BBR is frequently discussed in ICCRG, and the BBR v1 was found to have some truly horrible stable state. Like one where it was running on at 30% packet loss without reacting as it only contained delay. BBRv2 has addressed this so it will react to higher degrees of packet loss. 

So I do believe in running code to and as long as you are monitoring your impact I think experimentation is the right way here. However, if we put the label IETF proposed standard on the load algorithm people will assume that it is safe to use. That is my issue here and I don't think we can give that recommendation even with a limited applicability statement in the current form. 


> 
> We also ask that you understand our position, that tests with many different
> access technologies in production, and careful comparison of ad-hoc
> methods
> claiming to make the similar measurements in the lab and the field are
> equally,
> if not more important than even more parameter investigations at this point.
> I have personally been running lab tests since September 2018 with various
> tools.
> Len released his first version of the code in Feb 2019,
> and we immediately focused on tests with his utility instead of UDP packet
> blasters like iPerf, and Trex with my own Binary Search with Loss verification
> algorithm that we use in device benchmarking (cross-over with BMWG).
> 
> 
> >
> > I would very much prefer to take out the load algorithm and place it in a
> > seperate document where it can have a tighter scope description and more
> > discussion about about that it does its job.
> >
> > I hope this clarifies what my concerns are with this document in its
> > current form.
> [acm]
> Yes, and we have rather exhaustively argued to go ahead here, especially
> since a much less-frequently-used testing-only algorithm is a different
> situation
> than specifying a CCA for global TCP deployment: transport area's usual role.
> 
> We hope you can now appreciate the years of study, experimentation and
> running code that you apparently first encountered last Thursday,
> and will look into some more of the supporting background material.
> 

I do appreciate your work. However, I still don't think the load control algorithm description is sufficiently well specified and parameterized to be published in a standards track document. Maybe it can be made into that. However, I think this would make an excellent experimental specification with some additional clarifications on parameters ranges and defined responses when feedback is not received in a timely fashion. Also I think you can clarify the protocol requirements for the measurement methodology. Then a crystal clear applicability statement for the load algorithm. 

Here I think we can see another point in actually splitting out the load algorithm and that is related to the applicability statement. Does the metric and the load algorithm have the same applicability? As a metric it is not truly restricted, it is just a question of the impact of measuring the metric across the internet. 

Also, I think we should consider somewhat the update and evolution path that hopefully will occur here. I think the load algorithm is likely to benefit from further clarification in its specification in the future. Thus, having it in a separate specification makes it easier to update and maintain. 


Cheers

Magnus Westerlund