Re: [rmcat] Adam Roach's Discuss on draft-ietf-rmcat-scream-cc-12: (with DISCUSS and COMMENT)

Adam Roach <adam@nostrum.com> Thu, 26 October 2017 13:19 UTC

Return-Path: <adam@nostrum.com>
X-Original-To: rmcat@ietfa.amsl.com
Delivered-To: rmcat@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AD6E613F58D; Thu, 26 Oct 2017 06:19:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.879
X-Spam-Level:
X-Spam-Status: No, score=-1.879 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_SPF_HELO_PERMERROR=0.01, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 m0mRuEb82cFn; Thu, 26 Oct 2017 06:19:26 -0700 (PDT)
Received: from nostrum.com (raven-v6.nostrum.com [IPv6:2001:470:d:1130::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AE25313F589; Thu, 26 Oct 2017 06:19:26 -0700 (PDT)
Received: from Svantevit.local (99-152-146-228.lightspeed.dllstx.sbcglobal.net [99.152.146.228]) (authenticated bits=0) by nostrum.com (8.15.2/8.15.2) with ESMTPSA id v9QDJI8Y016837 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Thu, 26 Oct 2017 08:19:21 -0500 (CDT) (envelope-from adam@nostrum.com)
X-Authentication-Warning: raven.nostrum.com: Host 99-152-146-228.lightspeed.dllstx.sbcglobal.net [99.152.146.228] claimed to be Svantevit.local
To: Ingemar Johansson S <ingemar.s.johansson@ericsson.com>, The IESG <iesg@ietf.org>
Cc: "draft-ietf-rmcat-scream-cc@ietf.org" <draft-ietf-rmcat-scream-cc@ietf.org>, "mls.ietf@gmail.com" <mls.ietf@gmail.com>, "rmcat@ietf.org" <rmcat@ietf.org>, "rmcat-chairs@ietf.org" <rmcat-chairs@ietf.org>
References: <150899711347.24114.14191696188441903068.idtracker@ietfa.amsl.com> <DB4PR07MB348B58479B6BB4D272955AFC2450@DB4PR07MB348.eurprd07.prod.outlook.com>
From: Adam Roach <adam@nostrum.com>
Message-ID: <2389dc4c-428d-7927-6914-7a409370fc24@nostrum.com>
Date: Thu, 26 Oct 2017 08:19:12 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:52.0) Gecko/20100101 Thunderbird/52.4.0
MIME-Version: 1.0
In-Reply-To: <DB4PR07MB348B58479B6BB4D272955AFC2450@DB4PR07MB348.eurprd07.prod.outlook.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/rmcat/zUcn5c8R0Pz4dRkgwgGmEANUgGk>
Subject: Re: [rmcat] Adam Roach's Discuss on draft-ietf-rmcat-scream-cc-12: (with DISCUSS and COMMENT)
X-BeenThere: rmcat@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "RTP Media Congestion Avoidance Techniques \(RMCAT\) Working Group discussion list." <rmcat.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rmcat>, <mailto:rmcat-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rmcat/>
List-Post: <mailto:rmcat@ietf.org>
List-Help: <mailto:rmcat-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rmcat>, <mailto:rmcat-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 26 Oct 2017 13:19:30 -0000

Responses below.

On 10/26/17 4:01 AM, Ingemar Johansson S wrote:
> Hi
> And thanks for the review, comments inline marked [IJ]
>
> /Ingemar
>
>> -----Original Message-----
>> From: Adam Roach [mailto:adam@nostrum.com]
>> Sent: den 26 oktober 2017 07:52
>> To: The IESG <iesg@ietf.org>
>> Cc: draft-ietf-rmcat-scream-cc@ietf.org; Martin Stiemerling
>> <mls.ietf@gmail.com>; rmcat-chairs@ietf.org; mls.ietf@gmail.com;
>> rmcat@ietf.org
>> Subject: Adam Roach's Discuss on draft-ietf-rmcat-scream-cc-12: (with
>> DISCUSS and COMMENT)
>>
>>
>>
>> ----------------------------------------------------------------------
>> DISCUSS:
>> ----------------------------------------------------------------------
>>
>> I'm confused about whether the text in this document is intended to form a
>> normative description of SCReAM. The document contains the following
>> statement:
>>
>>     Note that the pseudo code does not show all
>>     details for reasons of readability, the reader is encouraged to look
>>     into the C++ code in [SCReAM-CPP-implementation] for the details.
>>
>> This effectively states that the cited C++ code forms the normative
>> specification of the SCReAM algorithm, and that this document is a non-
>> normative companion to help understand the normative code.
>>
>> If this is the case, then:
>>
>> - The [SCReAM-CPP-implementation] reference needs to be moved from
>> "Informative References" to "Normative References",
>>
>> - The abstract and introduction need to make it much clearer that the
>> normative definition of the SCReAM algorithm is a body of C++ code rather
>> than the prose and psuedocode in this document, and
>>
>> - We need to coordinate with the RFC editor to ensure proper archival of the
>> code at [SCReAM-CPP-implementation]. At this time, github.com does not
>> meet the standards of archival quality that the RFC series is expected to
>> meet.
>>
>> If the C++ implementation is *not* the normative definition of SCReAM,
>> then the psuedocode and definitions in this document need to be complete
>> and sufficient to implement the algorithm; and, in particular, it cannot omit
>> algorithm details "for reasons of readability."
> [IJ] Understand the concern.
> The pseudocode is normative as is and the "for reasons of readability" quote is actually note needed. The C++ code reference is that as I personally like to see the real running code in order to fully understand the function, and to be able to do fast experiments.
> The C++ code contains optimizations, for instance it is not necessary to re-compute the pacing rate and the congestion window for each received ACK and that reduces complexity at very high bitrates. The code also contains optimizations for how bytes in flight is computed
> In addition there is some code to increase the stability for the cases where packets arrive in bursts at the receiving end. This occasionally happens with LTE access and the fix limits how much the congestion window can increase. The fix does not make much difference and is not critical for the function of SCReAM.
> Also there is some extra code in the congestion window update function that improves the performance at very low bitrates (less than 100kbps). Again this code is not critical for the function in SCReAM.
>
> If possible I would like to have a refence the C++ code, with the necessary changes such as removal of "for reasons of readability" and making it more clear that the pseudo code and the draft text constitute a normative specification. It is however not a MUST that the C++ code is referenced to in the draft and it cannot be completely ruled out that parts of the code can change over time, the C++ code has now also gained sufficient traction to live on its own.
>
> What do you think is the best way forward here ?

Thanks for clarifying. Assuming that the only differences between the 
psuedocode in the draft and the C++ implementation is this small list of 
optimizations, I think you'll want to replace the text I quote above 
with something more like:

"As mentioned in section 7, calculation of qdelay may benefit from 
additional optimizations for handling of very high and very low 
bitrates, and from additional damping to handle periodic packet bursts. 
Some such optimizations are implemented in [SCReAM-CPP-implementation], 
but they do not form part of the specification of SCReAM at this time."

And then add text to section 7 suggesting additional experimentation 
with qdelay calculations.

Your remaining edits look good to me. Thanks.

/a