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

Paul Kyzivat <pkyzivat@alum.mit.edu> Mon, 25 January 2016 16:38 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 143B31B2D15 for <mmusic@ietfa.amsl.com>; Mon, 25 Jan 2016 08:38:42 -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 10lTsDomZssP for <mmusic@ietfa.amsl.com>; Mon, 25 Jan 2016 08:38:40 -0800 (PST)
Received: from resqmta-po-01v.sys.comcast.net (resqmta-po-01v.sys.comcast.net [IPv6:2001:558:fe16:19:96:114:154:160]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 990191B2D14 for <mmusic@ietf.org>; Mon, 25 Jan 2016 08:38:40 -0800 (PST)
Received: from resomta-po-09v.sys.comcast.net ([96.114.154.233]) by resqmta-po-01v.sys.comcast.net with comcast id AGdC1s00B52QWKC01GegD2; Mon, 25 Jan 2016 16:38:40 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([73.218.51.154]) by resomta-po-09v.sys.comcast.net with comcast id AGef1s0013KdFy101GefCf; Mon, 25 Jan 2016 16:38:39 +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> <56A53249.5020709@alum.mit.edu> <CAMRcRGQxUHxk1QxUodCC=orpzyrhGXE2wwAQWqhpYsm0b_ZCdQ@mail.gmail.com>
From: Paul Kyzivat <pkyzivat@alum.mit.edu>
Message-ID: <56A64F8A.5030708@alum.mit.edu>
Date: Mon, 25 Jan 2016 11:38:34 -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: <CAMRcRGQxUHxk1QxUodCC=orpzyrhGXE2wwAQWqhpYsm0b_ZCdQ@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=1453739920; bh=M6vRnrMhdlYepDNQZVxJ0DZBAlIP5HKOXPrYCHRrcjE=; h=Received:Received:Subject:To:From:Message-ID:Date:MIME-Version: Content-Type; b=GrcWSl5cu9+WmFAySHelO7JlE2ySLJNyiqCQpKl3Bt6N/HFrKuIxqZiBbkJeX3kyQ F9h2AzwVlwlp12tKW2xeZG1m3Y9trz7lr3Tm7SYhjO+MsG16nKEemVTRN0ouBcaalg CZJpZkyNapEJ88hP5SiwXObAO9FtXv4Yt7eojzD+y5i3aiUXXgFeb1Uy+wZ8t0sm1x p7fBQrlU0WC0g090oCdSbSjtS/euaOe7g3m6DywJjfW+7xI0zri5NgXACO+6vcVRiM EZER0FbMIWQQzyzVuFtd3SKpctggX1Zhwrs3xsX3dhBoGzwEQYNzRHKis5ctfDOfJN /uFicg7jX/jfw==
Archived-At: <http://mailarchive.ietf.org/arch/msg/mmusic/O6t3GxpXkCzvNSQkw1IdRKTWpWg>
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: Mon, 25 Jan 2016 16:38:42 -0000

On 1/24/16 4:58 PM, Suhas Nandakumar wrote:
>
>
> On Sun, Jan 24, 2016 at 12:21 PM, Paul Kyzivat <pkyzivat@alum.mit.edu
> <mailto:pkyzivat@alum.mit.edu>> wrote:
>
>     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>
>         <mailto: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*.
>
>
> [Suhas] .. If i am not wrong, the above proposal doesn't need updates to
> RFC3605 and when used in combination with a=rtcp-mux-only the intent is
> clear.

My point is that introducing a new replacement for a=rtcp solves the 
problem that rtcp-mux-only solves, but also solves other problems.

	Thanks,
	Paul

>     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
>
>