Re: [MMUSIC] Not fixing a=rtcp and rtcp-mux exclusive

Paul Kyzivat <pkyzivat@alum.mit.edu> Mon, 25 January 2016 19:38 UTC

Return-Path: <prvs=1832bb6091=pkyzivat@alum.mit.edu>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 96A9B1A0035 for <mmusic@ietfa.amsl.com>; Mon, 25 Jan 2016 11:38:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.602
X-Spam-Level:
X-Spam-Status: No, score=-3.602 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, J_CHICKENPOX_14=0.6, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, 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 Kyp_AhJ4OISu for <mmusic@ietfa.amsl.com>; Mon, 25 Jan 2016 11:38:05 -0800 (PST)
Received: from alum-mailsec-scanner-8.mit.edu (alum-mailsec-scanner-8.mit.edu [18.7.68.20]) by ietfa.amsl.com (Postfix) with ESMTP id CF69E1A0033 for <mmusic@ietf.org>; Mon, 25 Jan 2016 11:38:04 -0800 (PST)
X-AuditID: 12074414-f794f6d000007852-1b-56a6799b7333
Received: from outgoing-alum.mit.edu (OUTGOING-ALUM.MIT.EDU [18.7.68.33]) by alum-mailsec-scanner-8.mit.edu (Symantec Messaging Gateway) with SMTP id 8B.7E.30802.B9976A65; Mon, 25 Jan 2016 14:38:04 -0500 (EST)
Received: from Paul-Kyzivats-MacBook-Pro.local (c-73-218-51-154.hsd1.ma.comcast.net [73.218.51.154]) (authenticated bits=0) (User authenticated as pkyzivat@ALUM.MIT.EDU) by outgoing-alum.mit.edu (8.13.8/8.12.4) with ESMTP id u0PJc26f029119 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Mon, 25 Jan 2016 14:38:03 -0500
To: Christer Holmberg <christer.holmberg@ericsson.com>, Suhas Nandakumar <suhasietf@gmail.com>
References: <CAD5OKxvMdsdkYaJWB5UdvCTNj3a+pheXV+_1viyLrH_UOWBTpA@mail.gmail.com> <7594FB04B1934943A5C02806D1A2204B37D5509D@ESESSMB209.ericsson.se> <CAD5OKxum=E84NVTtWtSwYowDmyJ=sQifx6Na9wt0pUhYH1j_PA@mail.gmail.com> <7594FB04B1934943A5C02806D1A2204B37D557C6@ESESSMB209.ericsson.se> <7594FB04B1934943A5C02806D1A2204B37D55EAA@ESESSMB209.ericsson.se> <CAD5OKxvaUi25TbOa48mKwkEJMnJqde_TQNfe1Cagdgj+jTbJ3g@mail.gmail.com> <7594FB04B1934943A5C02806D1A2204B37D57EFC@ESESSMB209.ericsson.se> <CAD5OKxuRwgs0w0iUorivK6BV_8bZNNN1D9w9ot4CVJ7CV-6xpw@mail.gmail.com> <CAMRcRGTDpXMdk9SqQtRCc+LyQff26-5NiV6er6dkbdJzJLEwAQ@mail.gmail.com> <56A51EE7.8060406@alum.mit.edu> <CAMRcRGRD_XedYjVfBxfwXFdxAmm_wTZ5HhK5S+iSrJXwOZogMw@mail.gmail.com> <56A53249.5020709@alum.mit.edu> <7594FB04B1934943A5C02806D1A2204B37D59613@ESESSMB209.ericsson.se> <56A64EFD.4000509@alum.mit.edu> <7594FB04B1934943A5C02806D1A2204B37D5B5E7@ESESSMB209.ericsson.se>
From: Paul Kyzivat <pkyzivat@alum.mit.edu>
Message-ID: <56A67995.4040309@alum.mit.edu>
Date: Mon, 25 Jan 2016 14:37:57 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: <7594FB04B1934943A5C02806D1A2204B37D5B5E7@ESESSMB209.ericsson.se>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprJKsWRmVeSWpSXmKPExsUixO6iqDunclmYwYZgiwszDzNaTF3+mMVi xoWpzBY753YwO7B4/Pp6lc1j56y77B5Llvxk8rg1pSCAJYrbJimxpCw4Mz1P3y6BO6N/lUrB ctOKU9u5GxhXaHYxcnBICJhIfFyr2sXICWSKSVy4t56ti5GLQ0jgMqPE0yWPWSCcp0wSXa/a mECqhAXsJFav3sUKYosIpEsc+LuaGaJoI7vE8jcPGEESzAJeEmf/XGAHsdkEtCTmHPrPAmLz CmhLbFl6FWwQi4CqxMbm42A1ogJpEvtn/2aCqBGUODnzCVg9p4CfxKPb39ggZppJzNv8kBnC lpfY/nYO8wRGgVlIWmYhKZuFpGwBI/MqRrnEnNJc3dzEzJzi1GTd4uTEvLzUIl0LvdzMEr3U lNJNjJBgFtnBeOSk3CFGAQ5GJR7eDQXLwoRYE8uKK3MPMUpyMCmJ8s7SAwrxJeWnVGYkFmfE F5XmpBYfYpTgYFYS4f3PB5TjTUmsrEotyodJSXOwKInzflus7ickkJ5YkpqdmlqQWgSTleHg UJLgTa0AahQsSk1PrUjLzClBSDNxcIIM55ISKU7NS0ktSiwtyYgHxWl8MTBSQVI8QHvTQNp5 iwsSc4GiEK2nGBWlxHk/lgMlBEASGaV5cGNhKeoVozjQl8K880DaeYDpDa77FdBgJqDBfzUX gwwuSURISTUwWlz/+8XweNhZe7u6QNlFOwrFfax0cy9tTDx5yuu33VsXNbP4DddvHlWfb75+ kmPK6pi8N/e75a+uy2E3TNp4gmv1WmOlFm/GqzeLl7dqySv8mei+dDPHUbkuLtUErczWHanP Xv9/9NVU/9O7LUutNh+3X96Rr935dF5+X+2FsDWGm0/lCl7XUGIpzkg01GIuKk4EAIx1Wjws AwAA
Archived-At: <http://mailarchive.ietf.org/arch/msg/mmusic/MaVh6sy28tg8ZV9zqA-MbSLKGjs>
Cc: "mmusic@ietf.org" <mmusic@ietf.org>
Subject: Re: [MMUSIC] Not fixing a=rtcp and rtcp-mux exclusive
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <mmusic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mmusic>, <mailto:mmusic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mmusic/>
List-Post: <mailto:mmusic@ietf.org>
List-Help: <mailto:mmusic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mmusic>, <mailto:mmusic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 25 Jan 2016 19:38:07 -0000

On 1/25/16 12:57 PM, Christer Holmberg wrote:
> Hi,
>
>>> I don't know whether it would be worth the effort to "replace" a=rtcp, and whether it would really change anything.
>>>
>>> I still claim that we should assume that deployments DO support a=rtcp.
>>
>> My point is that *if* we need to introduce *something* new (e.g.
>> rtcp-mux-only), then a replacement for rtcp would be a better solution, because
>> it would fix more problems, and be no more trouble to implement.
>
> We need to ask ourselves FOR WHAT we would need something new.
>
> Do we need something new in order to indicate an non-RTP+1 RTCP port number? Some people say we don't: as ICE becomes more and more deployed, you will use candidates to indicate the RTCP port number. The a=rtcp value won't even work in many cases - no matter if entities can indicate support for the attribute or not.
>
> Do we need something new in order to indicate exclusive-mux? My opinion is that we do, because e.g. in trickle ICE cases you will not be able to indicate exclusive-mux using candidates.
>
> The launch customers of exclusive-mux are WebRTC enabled browsers, and any entity that wants to communicate with such browsers needs to support ICE.

But, if we need to implement something new anyway, why not have it be 
something, that in addition to specifying exclusive-mux in this case can 
*also* provide a fix to the problems of a=rtcp in other cases?

	Thanks,
	Paul

> Regards,
>
> Christer
>
>
>
>> -----Original Message-----
>> From: Paul Kyzivat [mailto:pkyzivat@alum.mit.edu]
>> Sent: 24. tammikuuta 2016 22:21
>> To: Suhas Nandakumar
>> Cc: Roman Shpount; Christer Holmberg; mmusic@ietf.org
>> Subject: Re: [MMUSIC] Not fixing a=rtcp and rtcp-mux exclusive
>>
>> On 1/24/16 2:36 PM, Suhas Nandakumar wrote:
>>>
>>>
>>> On Sun, Jan 24, 2016 at 10:58 AM, Paul Kyzivat <pkyzivat@alum.mit.edu
>>> <mailto:pkyzivat@alum.mit.edu>> wrote:
>>>
>>>       On 1/24/16 4:41 AM, Suhas Nandakumar wrote:
>>>
>>>           I might be repeating some discussions already made. So please
>>>           forgive me
>>>           if all of the below suggestions is beaten to death
>>>
>>>           *Use-case: Explicitly indicate RTCP Muxing and possibly backward
>>>           compatibility*
>>>
>>>           I support a new attribute along with some rules for existing
>>>           attributes
>>>           which allows backward compatibility (Strong goal of SDP) and also
>>>           exclusiveness of RTCP multiplexing
>>>
>>>           Define a new attribute *"a=rtcp-mux-only" , which *in a offer
>>>           indicates
>>>           that the end-point can't receive rtcp on separate port than rtp.
>>>
>>>
>>>       It is *essential* to indicate the answerer behavior too. For this to
>>>       provide backward support, the answerer who supports must also
>>>       include this attribute in the answer. If it isn't present in the
>>>       answer, then the offerer knows that it hasn't been supported. I
>>>       think, in that case it must reoffer and either provide a port pair,
>>>       or else drop the media stream, to prevent RTCP from going to an
>>>       uncontrolled port.
>>>
>>>
>>> [Suhas] - Agreed Paul. I see backward compatibility in 2 ways. One
>>> where the agent understands a=rtcp-mux but not the a=rtcp-mux-only
>>> and second where the agent doesn't understand either. Let's think the
>>> answerer behavior in both the cases
>>>
>>> Case 1: Agent supports RFC5761 but not mux-only
>>>       In this scenario we mandate that the offer includes RFC5761
>>> a=rtcp-mux as well whenever he offers with mux-only. Thus the
>>> answerer will still MUX the RTCP to RTP port following RFC5761 rules.
>>>
>>> Case 2: Agent doesn't support RFC5761 and mux-only as well This is
>>> the case where the answerer can process just the RFC3605 a=rtcp
>>> attribute and can either :
>>>           2a) send the rtcp to the port indicated in a=rtcp attribute
>>> , thus effectively muxing
>>>           2b) will think rtcp port specified as being error since it
>>> matches the RTP port and reject the m=line. [[ note: this isn't
>>> defined as an error in RFC3605 ]]
>>>
>>> Case 3: Answerer supports RFC5761, Mux-exclusive
>>>       In this successful scenario, the answerer can just include
>>> a=rtcp-mux and a=rtcp-mux-exclusive in its answer and that is good
>>> enough for the Offerer to know that Answerer is able to mux the rtcp
>>> traffic towards the offerer and also wishes to receive muxed (no
>>> fallback) rtcp traffic from the offerer
>>>
>>> These seems to convert most of all the cases right
>>
>> Agree.
>>
>>>       I think this ought to be viewed as an update to 3605.
>>
>> Maybe that isn't quite right, but it ought to be an update to *something*.
>>
>> It is mostly a=rtcp that is broken, because it isn't acknowledged. Any plausible use of it ends up being broken if the answerer doesn't support it, but the offerer has no way of telling that.
>>
>> a=rtcp-mux is negotiated. So the offerer can tell when the answerer doesn't support it. In that case it can take remedial action. There may be some stray rtcp packets until that happens. So a=rtcp-mux-only isn't really *needed*. What it does is prevent those few stray packets.
>>
>> But a=rtcp-mux-only isn't the best answer for fixing a=rtcp, because
>> it doesn't solve cases when the offerer wants separate rtcp, but not
>> on
>> port+1, and the answerer doesn't support that.
>>
>> Perhaps the right solution is to introduce a new attribute to
>> *replace* a=rtcp. It would have similar semantics, but require
>> negotiation. It could in principle also replace a=rtcp-mux, since if
>> you use the same address/port for both rtp and rtcp you are obviously
>> requesting mux. You could still use a=rtcp and/or a=rtcp-mux for
>> backward compatibility, but if you need rtcp-mux-only semantics, then
>> you could just use this new attribute. If it isn't ack'ed, then take remedial action.
>>
>> This new attribute would have same syntax as a=rtcp, except for the
>> name. New rules for it would be:
>>
>> - if in offer, must also be in answer. The answer gives the port(/addr)
>>      for the answerer. If the answerer wants port+1 it needs to compute
>>      what that is and put it in.
>> - if it is *not* in the offer, it can't be used in the answer. If the
>>      answerer can't do rtcp on port+1 then it needs to refuse the media
>>      stream. It could try sending a subsequent offer for what it can do.
>>
>> - we *could* explicitly allow the port to be set to zero, and/or the
>>      address to be set to 0.0.0.0, to indicate that rtcp is not desired.
>>      (Don't know if it is a good idea.)
>>
>> 	Thanks,
>> 	Paul
>>
>