Re: [AVTCORE] Spencer Dawkins' Discuss on draft-ietf-avtcore-rtp-circuit-breakers-14: (with DISCUSS)

Colin Perkins <> Tue, 26 April 2016 15:16 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 0D1B912D1E8; Tue, 26 Apr 2016 08:16:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id y3_fG1ydXrDX; Tue, 26 Apr 2016 08:16:34 -0700 (PDT)
Received: from ( [IPv6:2a00:1098:0:86:1000:0:2:1]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id EF9CB12D1E7; Tue, 26 Apr 2016 08:16:33 -0700 (PDT)
Received: from [] (port=55825 by with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.80) (envelope-from <>) id 1av4Co-0004UE-Kj; Tue, 26 Apr 2016 15:43:16 +0100
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
From: Colin Perkins <>
In-Reply-To: <>
Date: Tue, 26 Apr 2016 15:43:01 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <>
To: Spencer Dawkins <>
X-Mailer: Apple Mail (2.3124)
X-BlackCat-Spam-Score: -28
X-Mythic-Debug: Threshold = On =
Archived-At: <>
Cc:, Magnus Westerlund <>,, The IESG <>,
Subject: Re: [AVTCORE] Spencer Dawkins' Discuss on draft-ietf-avtcore-rtp-circuit-breakers-14: (with DISCUSS)
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Audio/Video Transport Core Maintenance <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 26 Apr 2016 15:16:36 -0000


> On 20 Apr 2016, at 02:20, Spencer Dawkins <> wrote:
> Spencer Dawkins has entered the following ballot position for
> draft-ietf-avtcore-rtp-circuit-breakers-14: Discuss
> When responding, please keep the subject line intact and reply to all
> email addresses included in the To and CC lines. (Feel free to cut this
> introductory paragraph, however.)
> Please refer to
> for more information about IESG DISCUSS and COMMENT positions.
> The document, along with other ballot positions, can be found here:
> ----------------------------------------------------------------------
> ----------------------------------------------------------------------
> I really like this specification, and have two questions I'd like to
> understand before balloting YES ...
> I'm looking at this text:
> 4.5.  Ceasing Transmission
>   What it means to cease transmission depends on the application.  The
>   intention is that the application will stop sending RTP data packets
>   to a particular destination 3-tuple (transport protocol, destination
>   port, IP address), until the user makes an explicit attempt to
>   restart the call.  It is important that a human user is involved in
>   the decision to try to restart the call, since that user will
>   eventually give up if the calls repeatedly trigger the circuit
>   breaker.  This will help avoid problems with automatic redial systems
>   from congesting the network.  Accordingly, RTP flows halted by the
>   circuit breaker SHOULD NOT be restarted automatically unless the
>                   ^^^^^^^^^^
>   sender has received information that the congestion has dissipated,
>   or can reasonably be expected to have dissipated. 
> and trying to understand why this is not MUST NOT. I'm trying to
> reconcile this with the RFC 2119 definition of SHOULD NOT, which is
> 4. SHOULD NOT   This phrase, or the phrase "NOT RECOMMENDED" mean that
>   there may exist valid reasons in particular circumstances when the
>   particular behavior is acceptable or even useful, but the full
>   implications should be understood and the case carefully weighed
>   before implementing any behavior described with this label.
> Could you help me understand when automatic restarts might be “acceptable or even useful”?

As stated, automatic restarts might be acceptable or even useful if the sender receives information that the congestion has dissipated, or can reasonably be expected to have dissipated. This is why it says “SHOULD NOT … unless <reasons>” rather than “MUST NOT”. 

> Reading on, I'm wondering if this text is anticipating 
>   It is recognised that the RTP implementation in some systems might
>   not be able to determine if a call set-up request was initiated by a
>   human user, or automatically by some scripted higher-level component
>   of the system.
> but definitely want to understand what you're thinking here.
> I have a similar question about this text 
>   ECN-CE marked packets SHOULD be treated as if it were lost for the
>   purposes of congestion control, when determining the optimal media
>   sending rate for an RTP flow.  If an RTP sender has negotiated ECN
>   support for an RTP session, and has successfully initiated ECN use on
>   the path to the receiver [RFC6679], then ECN-CE marked packets SHOULD
>                                                                  ^^^^^^
>   be treated as if they were lost when calculating if the congestion-
>   based RTP circuit breaker (Section 4.3) has been met.  
> Could you help me understand why an implementation wouldn't do this?

Because there are a small number of paths that misbehave when ECN marked packet are sent. I wanted to allow leeway for an end-point to not respond to ECN-CE marks on paths that spuriously mark packets, so falling back to the behaving as-if ECN was not used. I don’t believe this is harmful to the network, since the result will be the same as achieved by a non-ECN capable transport.

Colin Perkins