Re: [AVTCORE] Review of draft-ietf-avtcore-rtp-circuit-breakers-10

Simon Perreault <sperreault@jive.com> Tue, 19 May 2015 21:53 UTC

Return-Path: <sperreault@jive.com>
X-Original-To: avt@ietfa.amsl.com
Delivered-To: avt@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A5EEC1B33EF for <avt@ietfa.amsl.com>; Tue, 19 May 2015 14:53:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.201
X-Spam-Level:
X-Spam-Status: No, score=-1.201 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
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 wnQ5SZC0bpsT for <avt@ietfa.amsl.com>; Tue, 19 May 2015 14:53:10 -0700 (PDT)
Received: from mail-qk0-f176.google.com (mail-qk0-f176.google.com [209.85.220.176]) (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 6D1E81B33F1 for <avt@ietf.org>; Tue, 19 May 2015 14:53:10 -0700 (PDT)
Received: by qkgv12 with SMTP id v12so19918020qkg.0 for <avt@ietf.org>; Tue, 19 May 2015 14:53:09 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :cc:subject:references:in-reply-to:content-type :content-transfer-encoding; bh=Ldnmaqh/zHB6GbxOP+JlMHgvM6u7pD1n6xPNbaTp4hs=; b=PPfaooQ7dGgZvjzs+zyy16xpNdb92x3Zp9PUh1DrASndSJ74mz1lxcsZ6tIKdqyVQu hdtLtaTq9xI2eQZug4+v1SveLpoSTxBl8NjUR1ni2WsVs69C12HZ/PBKGo2QmRJeTHqp WRZgu0S5XCT1z3tHYAiegvgHN+J/WQFvnT/bydBi429VE3doSHiD770CoBgbaqZM3Qtj u12rAZIxei+aP38OzxyN8vdhWSpwy757UQXn32eE6A38ftcYHPffJPuHrtIzsmNhD/sX d7mHvxN4pD8GBTJbO7MK+Y+1IHA/j0cy92EOARVOL92IYhJqBOLFWev8kfEN7J+2Gs6t 9P4A==
X-Gm-Message-State: ALoCoQmnVqu4+1rm9zogkk+C4xFJi4p27+WKTBKbz2NWP2fmhkxqb7VUAWfuwrYNEinUlT2+7SzD
X-Received: by 10.140.85.101 with SMTP id m92mr39516812qgd.37.1432072389757; Tue, 19 May 2015 14:53:09 -0700 (PDT)
Received: from [192.168.1.131] ([24.53.47.130]) by mx.google.com with ESMTPSA id f4sm8995171qki.1.2015.05.19.14.53.07 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 May 2015 14:53:08 -0700 (PDT)
Message-ID: <555BB0C2.8000807@jive.com>
Date: Tue, 19 May 2015 17:53:06 -0400
From: Simon Perreault <sperreault@jive.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.6.0
MIME-Version: 1.0
To: Colin Perkins <csp@csperkins.org>
References: <554CE893.7050006@jive.com> <EDB68650-CDE1-4557-943A-6F89AB925F1C@csperkins.org>
In-Reply-To: <EDB68650-CDE1-4557-943A-6F89AB925F1C@csperkins.org>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/avt/GLkwQXGCQgJvcRCgwKJm0SC3nVw>
Cc: "draft-ietf-avtcore-rtp-circuit-breakers@tools.ietf.org" <draft-ietf-avtcore-rtp-circuit-breakers@tools.ietf.org>, "avt@ietf.org" <avt@ietf.org>
Subject: Re: [AVTCORE] Review of draft-ietf-avtcore-rtp-circuit-breakers-10
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Audio/Video Transport Core Maintenance <avt.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/avt>, <mailto:avt-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/avt/>
List-Post: <mailto:avt@ietf.org>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 19 May 2015 21:53:12 -0000

Le 2015-05-17 09:36, Colin Perkins a écrit :
>> In section "4.  RTP Circuit Breakers for Systems Using the RTP/AVP Profile":
>>
>>>   RTCP is a fundamental part of the RTP protocol, and the mechanisms
>>>   described here rely on the implementation of RTCP.  Implementations
>>>   that claim to support RTP, but that do not implement RTCP, cannot use
>>>   the circuit breaker mechanisms described in this memo.  Such
>>>   implementations SHOULD NOT be used on networks that might be subject
>>>   to congestion unless equivalent mechanisms are defined using some
>>>   non-RTCP feedback channel to report congestion and signal circuit
>>>   breaker conditions.
>>
>> Ok, fine, but how should *my* supposedly well-behaving implementation
>> deal with those bad implementations? Status quo (i.e., no circuit breaker)?
> 
> If you want to interwork with those implementations, then you have no choice but to operate without a circuit breaker. I'd encourage you to use at least some form of consent check, to indicate that the remote end system still wants to receive your traffic, in such cases. I can add some words about this to the draft.

I think that would be helpful!

>> Absent a priori knowledge of the remote endpoint's RTCP capabilities,
>> would it be OK to arm circuit breakers upon reception of a first RTCP
>> packet?
> 
> I'm not sure that's something I'd want to standardise, but it seems a reasonable practical solution. I'd have thought RTCP was signalled most times, anyway?

Good point. When RTCP is signalled then one can arm circuit breakers
immediately. Otherwise one would arm them on receipt of a first RTCP packet.

I think it would be useful to non-normatively describe such a heuristic.
I can provide text if you'd like.

>> In section "4.1.  RTP/AVP Circuit Breaker #1: Media Timeout":
>>
>>>   The extended highest sequence number received field is non-increasing
>>>   if the sender receives at least CB_INTERVAL consecutive RTCP SR or RR
>>>   packets that report the same value for this field, but it has sent
>>>   RTP data packets, at a rate of at least one per RTT, that would have
>>>   caused an increase in the reported value if they had reached the
>>>   receiver.
>>
>> How would "at a rate of at least one per RTT" be implemented in
>> practical terms, keeping in mind that both the sending rate and the RTT
>> vary during a session? Must the condition be satisfied all of the time
>> or only part of the time? For example, what should happen when the
>> condition is satisfied for all but one of the CB_INTERVAL RTCP reports?
>> As an implementer, I need more guidance here.
> 
> The "at least one per RTT" bound is intended to be an approximate, long-term, average. Like much in the draft, it doesn't need to be too precise. I'm open to suggestions how best to phrase this in the text, but will try to add something. 

Right, ok, but I still wouldn't know how to implement that...

Simon