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

Paul Kyzivat <pkyzivat@alum.mit.edu> Sun, 24 January 2016 20:21 UTC

Return-Path: <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 679C81B3270 for <mmusic@ietfa.amsl.com>; Sun, 24 Jan 2016 12:21:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.635
X-Spam-Level:
X-Spam-Status: No, score=-0.635 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, J_CHICKENPOX_14=0.6, SPF_SOFTFAIL=0.665] autolearn=no
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 nLcogu24enku for <mmusic@ietfa.amsl.com>; Sun, 24 Jan 2016 12:21:33 -0800 (PST)
Received: from resqmta-ch2-12v.sys.comcast.net (resqmta-ch2-12v.sys.comcast.net [IPv6:2001:558:fe21:29:69:252:207:44]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9190B1B326D for <mmusic@ietf.org>; Sun, 24 Jan 2016 12:21:31 -0800 (PST)
Received: from resomta-ch2-07v.sys.comcast.net ([69.252.207.103]) by resqmta-ch2-12v.sys.comcast.net with comcast id 9wML1s00C2EPM3101wMWxF; Sun, 24 Jan 2016 20:21:30 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([73.218.51.154]) by resomta-ch2-07v.sys.comcast.net with comcast id 9wMW1s0073KdFy101wMWX7; Sun, 24 Jan 2016 20:21:30 +0000
To: 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>
From: Paul Kyzivat <pkyzivat@alum.mit.edu>
Message-ID: <56A53249.5020709@alum.mit.edu>
Date: Sun, 24 Jan 2016 15:21:29 -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: <CAMRcRGRD_XedYjVfBxfwXFdxAmm_wTZ5HhK5S+iSrJXwOZogMw@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20140121; t=1453666890; bh=YMUk5mfXIbSku2TdrhEq3ohVJNzLXPiRtjDBnZpFShk=; h=Received:Received:Subject:To:From:Message-ID:Date:MIME-Version: Content-Type; b=H38O38bM7RUYy9QBNK1y5B2Q1E+9eNd4eHkZuCocjNVCK11W/ec0a+04n1Nwui28r uJhRhY/lpXHnBClbtBRFi4pr35FbfpciaHrlkcEqx+s3hkn/CQXpVC1rTjShCL1qgW GVkENYlf2WgAAFXuOCZ7kgnESbBMnzZRJgtZ5A4TYvVnIj0Kbun3i2nQe7OUguq59e AB4BY3Wgjte2jcP5ECwxHFQkr+WUT8OrI2noM158NPbeKQCLJvK9vYR4FapHQu2jxx 21IA/oUamDSYWwkZOGTs74Kc00xfnVgIlFgil1/Uz/8mQ5MfCcEi+vLGI+9sEQMTYB 0V8SNwWlD7asw==
Archived-At: <http://mailarchive.ietf.org/arch/msg/mmusic/aXS0PhG5D-cok563tZRV3RVFvQc>
Cc: "mmusic@ietf.org" <mmusic@ietf.org>, Christer Holmberg <christer.holmberg@ericsson.com>
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: Sun, 24 Jan 2016 20:21:35 -0000

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