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

Christer Holmberg <christer.holmberg@ericsson.com> Mon, 25 January 2016 17:58 UTC

Return-Path: <christer.holmberg@ericsson.com>
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 CE7EC1B3801 for <mmusic@ietfa.amsl.com>; Mon, 25 Jan 2016 09:58:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.601
X-Spam-Level:
X-Spam-Status: No, score=-3.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, J_CHICKENPOX_14=0.6, RCVD_IN_DNSWL_MED=-2.3, 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 deOCTRp-pZNF for <mmusic@ietfa.amsl.com>; Mon, 25 Jan 2016 09:58:11 -0800 (PST)
Received: from sessmg22.ericsson.net (sessmg22.ericsson.net [193.180.251.58]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 528F41B3802 for <mmusic@ietf.org>; Mon, 25 Jan 2016 09:58:10 -0800 (PST)
X-AuditID: c1b4fb3a-f79df6d0000013b1-18-56a6622f4077
Received: from ESESSHC006.ericsson.se (Unknown_Domain [153.88.183.36]) by sessmg22.ericsson.net (Symantec Mail Security) with SMTP id 9C.3D.05041.F2266A65; Mon, 25 Jan 2016 18:58:08 +0100 (CET)
Received: from ESESSMB209.ericsson.se ([169.254.9.166]) by ESESSHC006.ericsson.se ([153.88.183.36]) with mapi id 14.03.0248.002; Mon, 25 Jan 2016 18:58:00 +0100
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: Paul Kyzivat <pkyzivat@alum.mit.edu>, Suhas Nandakumar <suhasietf@gmail.com>
Thread-Topic: [MMUSIC] Not fixing a=rtcp and rtcp-mux exclusive
Thread-Index: AQHRVH5u5HwUiLpiFk2f5BpmhdG86J8GeIug///94ICAAL0LkIAAOGowgABaTACAAV0qoIAAIcaAgAEX24CAAJvKgIAACmeAgAAMtICAAM4ZgIAAhUyAgAAi3NA=
Date: Mon, 25 Jan 2016 17:57:59 +0000
Message-ID: <7594FB04B1934943A5C02806D1A2204B37D5B5E7@ESESSMB209.ericsson.se>
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>
In-Reply-To: <56A64EFD.4000509@alum.mit.edu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [153.88.183.150]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprBIsWRmVeSWpSXmKPExsUyM2K7iq5B0rIwgwnvuSymLn/MYrFiwwFW ixkXpjJb7JzbwezA4vH3/Qcmj52z7rJ7LFnyk8nj1pSCAJYoLpuU1JzMstQifbsEroyOlpyC TS4Vjzf/YmtgvODUxcjJISFgIvF1+QQ2CFtM4sK99UA2F4eQwGFGiY7fkxghnCWMEn19X5m7 GDk42AQsJLr/aYM0iAgESZxddRWsmVnAS6Jh9nYwW1jATqL59HpmiBp7iVNrP4DNERHoYpS4 8GwFG8gcFgFViXdrdEBqeAV8Jc42vmKH2PWWTWLarjVMIDWcAjoSC29Fg9QwAh33/RRIGGSX uMStJ/OZII4WkFiy5zwzhC0q8fLxP1YIW0lixfZLjCBjmAU0Jdbv0odoVZSY0v2QHWKtoMTJ mU9YJjCKzUIydRZCxywkHbOQdCxgZFnFKFqcWlycm25kpJdalJlcXJyfp5eXWrKJERhfB7f8 ttrBePC54yFGAQ5GJR7egvClYUKsiWXFlbmHGCU4mJVEeP/zLQsT4k1JrKxKLcqPLyrNSS0+ xCjNwaIkznuQf1GYkEB6YklqdmpqQWoRTJaJg1OqgXFx+asl+7WWT/VY/X1Kn6bsH+OO+8t2 5xasKHQTOfulsH6JKGfawz3vjuwyfyu1pL3+eVZD7Mz374P//ojZ+yr2/qLqswnvOeRqK/+b dv38c6xr69FZ/3yUQqsurc+70LDvccSVZXNmyXkLhddPUnrCG8+mwfZv689Js6QuH329VtFf WjtP+8kqJZbijERDLeai4kQAKkmRlKsCAAA=
Archived-At: <http://mailarchive.ietf.org/arch/msg/mmusic/fOjOChgPjVUoOJDU0ovzGvx8j-M>
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 17:58:13 -0000

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.

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
>