Re: [rmcat] I-D Action: draft-ietf-rmcat-coupled-cc-05.txt

Michael Welzl <> Thu, 23 March 2017 13:47 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 5E70B129721 for <>; Thu, 23 Mar 2017 06:47:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id GoYgjnBBABPv for <>; Thu, 23 Mar 2017 06:47:28 -0700 (PDT)
Received: from ( [IPv6:2001:700:100:8210::71]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 171C2129704 for <>; Thu, 23 Mar 2017 06:47:28 -0700 (PDT)
Received: from ([]) by with esmtp (Exim 4.82_1-5b7a7c0-XX) (envelope-from <>) id 1cr35J-0007qi-Mw; Thu, 23 Mar 2017 14:47:25 +0100
Received: from ([]) by with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) user michawe (Exim 4.82_1-5b7a7c0-XX) (envelope-from <>) id 1cr35F-000GcV-W3; Thu, 23 Mar 2017 14:47:25 +0100
Content-Type: multipart/mixed; boundary="Apple-Mail=_87383AA4-BFA4-45C1-9A7D-AD3DE4914708"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Michael Welzl <>
In-Reply-To: <>
Date: Thu, 23 Mar 2017 14:47:19 +0100
Cc: rmcat WG <>,
Message-Id: <>
References: <> <> <> <>
To: Colin Perkins <>
X-Mailer: Apple Mail (2.2104)
X-UiO-SPF-Received: Received-SPF: neutral ( is neither permitted nor denied by domain of client-ip=;;;
X-UiO-Ratelimit-Test: rcpts/h 3 msgs/h 1 sum rcpts/h 5 sum msgs/h 3 total rcpts 53106 max rcpts/h 54 ratelimit 0
X-UiO-Spam-info: not spam, SpamAssassin (score=-5.0, required=5.0, autolearn=disabled, AWL=0.011, RP_MATCHES_RCVD=-0.001, UIO_MAIL_IS_INTERNAL=-5, uiobl=NO, uiouri=NO)
X-UiO-Scanned: 9B6999B90224AAEE1BB7CB8A7B603C765CD0EE8A
X-UiO-SPAM-Test: remote_host: spam_score: -49 maxlevel 80 minaction 2 bait 0 mail/h: 1 total 12780 max/h 21 blacklist 0 greylist 0 ratelimit 0
Archived-At: <>
Subject: Re: [rmcat] I-D Action: draft-ietf-rmcat-coupled-cc-05.txt
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "RTP Media Congestion Avoidance Techniques \(RMCAT\) Working Group discussion list." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 23 Mar 2017 13:47:34 -0000

Dear Colin,

Thanks a lot, this was very helpful !    We incorporated your comments and attach the updated draft to this email, as right now submission is closed.
Some answers in line:

> On 23 Mar 2017, at 00:33, Colin Perkins <> wrote:
> Authors,
> I’ve reviewed this draft while preparing the IESG write-up and request for publication. I have a number of minor questions and comments:
> - Section 2 defines a Flow and gives an example as “an RTP session, or a sub-session that is multiplexed onto a single RTP session”. I believe this example is incorrect, and what is intended is “an RTP Stream [RFC7656], or a group of RTP Streams multiplexed onto a single RTP session” (Section 2.1.10 of RFC 7656 defines the term RTP Stream carefully, so I think a reference is useful; it also defines the term RTP Session in Section 2.2.2). Can you please check and update are necessary.

Thanks a lot - of course you're right! We changed the definition of a flow as follows:
"A flow is the entity that congestion control is operating on. It could, for example, be a transport layer connection, or an RTP  stream <xref target="RFC7656"/>, whether or not this RTP stream is multiplexed onto an RTP session with other RTP streams."

> - Section 3 discusses limitations of the proposed algorithms. Would it be appropriate to add a brief applicability statement either here, or in the Introduction, stating that the described mechanisms are believed safe to use, but are experimental and are presented for wider review and operational evaluation?

OK, done, at the end of the introduction.

> - Section 5.1, bullet 1, notes that flows share a bottleneck if they’re sent on the same 5-tuple and have the same DSCP value. Should this also note that they need the same ECT mark? With the proposed L4S ECN experiments, we’re likely to see quite different behaviour between flows with NotECT/ECT(0) and those with ECT(1) marking. 

Good catch! Done

> - Section 5.2 defines the priority in the range 0.1 to 1. Assuming 0.1 is correct, it might be worth adding a brief note to explain this choice, since readers might think it a typo for the more typical range of 0 to 1. 
> - Section 5.2, in the paragraph following the bullet points, the draft suggests mapping priority levels from RTCWEB using the values 1, 2, 4, and 8 – how do these relate to the 0.1 to 1 range?

Another good catch! The value range really doesn't matter for our algorithm, but 0 is not allowed (it might lead to a division by 0).

To clarify all of this, we have removed the "0.1 to 1" example in the priority definition, and changed the text talking about 1, 2, 4 and 8 levels to the following:

   Note that the absolute range of priorities does not matter: the
   algorithm works with a flow's priority portion of the sum of all
   priority values.  For example, if there are two flows, flow 1 with
   priority 1 and flow 2 with priority 2, the sum of the priorities is
   3.  Then, flow 1 will be assigned 1/3 of the aggregate sending rate
   and flow 2 will be assigned 2/3 of the aggregate sending rate.
   Priorities can be mapped to the "very-low", "low", "medium" or "high"
   priority levels described in [I-D.ietf-rtcweb-transports] by simply
   using the values 1, 2, 4 and 8, respectively.

> - Section 5.3 defines terminology and describes the two algorithms. The terminology used is inconsistent, sometimes using FSE_R and sometimes FSE_R(f). If the intent is that these are the same variable, the terminology should be aligned (I assume to FSE_R(f) since they’re per-flow values, but the important point is that it’s consistent). If there’s intended to be a difference between the overall and per-flow values, can you please check that they’re used consistently, and add a sentence to clarify the meanings of the terms. 
> - Section 5.3 also uses P and P(i) in a manner that suggests they’re referring to the same parameter. Similarly for CC_R – should it be CC_R(i)?

Fixed everywhere.

> - Appendix C: similar terminology comments apply.

Fixed everywhere (here it also applies to the variables DR, new_DR and Rate).

> - Appendix C: “highly experimental” – It might be useful to add a brief applicability statement for implementors so they know whether this is safe to deploy outside of testbed environments.

done  (we added "and not safe to deploy outside of testbed environments" after "highly experimental").