Re: [MMUSIC] Query: payload type collision with offer/answer

Harald Alvestrand <harald@alvestrand.no> Fri, 11 January 2013 12:47 UTC

Return-Path: <harald@alvestrand.no>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7042121F877B for <mmusic@ietfa.amsl.com>; Fri, 11 Jan 2013 04:47:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -110.399
X-Spam-Level:
X-Spam-Status: No, score=-110.399 tagged_above=-999 required=5 tests=[AWL=0.200, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id IgZF43t6apAR for <mmusic@ietfa.amsl.com>; Fri, 11 Jan 2013 04:47:16 -0800 (PST)
Received: from eikenes.alvestrand.no (eikenes.alvestrand.no [158.38.152.233]) by ietfa.amsl.com (Postfix) with ESMTP id 2937D21F8763 for <mmusic@ietf.org>; Fri, 11 Jan 2013 04:47:16 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by eikenes.alvestrand.no (Postfix) with ESMTP id 0CAD639E2BE for <mmusic@ietf.org>; Fri, 11 Jan 2013 13:47:15 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at eikenes.alvestrand.no
Received: from eikenes.alvestrand.no ([127.0.0.1]) by localhost (eikenes.alvestrand.no [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OFO15BpRWFmG for <mmusic@ietf.org>; Fri, 11 Jan 2013 13:47:12 +0100 (CET)
Received: from hta-dell.lul.corp.google.com (unknown [IPv6:2620:0:1043:1:be30:5bff:fede:bcdc]) by eikenes.alvestrand.no (Postfix) with ESMTPSA id 5EFCC39E241 for <mmusic@ietf.org>; Fri, 11 Jan 2013 13:47:12 +0100 (CET)
Message-ID: <50F009CE.9060903@alvestrand.no>
Date: Fri, 11 Jan 2013 13:47:10 +0100
From: Harald Alvestrand <harald@alvestrand.no>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0
MIME-Version: 1.0
To: mmusic@ietf.org
References: <50EDC40F.3010501@alvestrand.no> <1.77712513fa3f074cccef@cisco.com> <50EDF490.4000101@alvestrand.no> <50EE0139.8000909@jitsi.org> <50EF0D77.9040000@alum.mit.edu>
In-Reply-To: <50EF0D77.9040000@alum.mit.edu>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Subject: Re: [MMUSIC] Query: payload type collision with offer/answer
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.12
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: <http://www.ietf.org/mail-archive/web/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: Fri, 11 Jan 2013 12:47:17 -0000

On 01/10/2013 07:50 PM, Paul Kyzivat wrote:
>
>> Well there's also section 8.3.2 in 3264. The section is about updating
>> offers but it seems like the text explicitly prohibits remapping payload
>> types in any scenarios:
>>
>>     However, in the
>>     case of RTP, the mapping from a particular dynamic payload type
>>     number to a particular codec within that media stream MUST NOT 
>> change
>>     for the duration of a session.  For example, if A generates an offer
>>     with G.711 assigned to dynamic payload type number 46, payload type
>>     number 46 MUST refer to G.711 from that point forward in any offers
>>     or answers for that media stream within the session. However, it is
>>     acceptable for multiple payload type numbers to be mapped to the 
>> same
>>     codec, so that an updated offer could also use payload type 
>> number 72
>>     for G.711.
>
> The language above is underspecified.
>
> It is my impression that the intent of this language was to ensure 
> there is no ambiguity in the meaning of a payload type. Since the 
> exchange of the SDP is not synchronized with the flow of RTP, if you 
> were to send a new SDP that changed the mapping for a payload type, 
> then the result would be almost certainly to interpret some media 
> packets according to the wrong mapping.
>
> But this argument is only about packets flowing in one direction. It 
> isn't a valid argument for requiring the payload types to be 
> consistent in the two directions. And its not clear to me that it even 
> intended that this language apply to both directions. It could be 
> clarified as follows:
>
>                               ...  For example, if A generates an offer
>    with G.711 assigned to dynamic payload type number 46, payload type
>    number 46 MUST refer to G.711 from that point forward in any offers
>    or answers ***by A*** for that media stream within the session.  ...
>
> Interpreting it to apply to both directions brings it in conflict with 
> the language elsewhere that permits it to be different in the two 
> directions.
More than one number for one codec is explicitly permitted.
More than one codec for one number in a single direction is clearly 
impossible.
More than one codec for one number in a single RTP session..... that's 
the question.

If one were to go with textual analysis, this would hinge on the meaning 
of "for that media stream" - which again hinges on whether a media 
stream is unidirectional or bidirectional.

RFC 3264's definition:

       Media Stream: From RTSP [8], a media stream is a single media
          instance, e.g., an audio stream or a video stream as well as a
          single whiteboard or shared application group.  In SDP, a media
          stream is described by an "m=" line and its associated
          attributes.

which points back to RFC 2326:

    (Media) stream:
           A single media instance, e.g., an audio stream or a video
           stream as well as a single whiteboard or shared application
           group. When using RTP, a stream consists of all RTP and RTCP
           packets created by a source within an RTP session. This is
           equivalent to the definition of a DSM-CC stream([5]).

So if we believe these definitions, there's no prohibition on reusing 
the payload type.
Definitely nice to clarify in a 3264bis.

>
> The use of different mappings in each direction has been discussed 
> over the years, though I couldn't point you to where. IIRC one of the 
> reasons had to do with gatewaying to other protocols. But I can't 
> offer any details.
>
> Bottom line: IMO, in the weird case Harald described X ought to follow 
> Postel's Law and accept the answer from Y. But for the same reason I 
> would strongly discourage implementations from acting as Y did.
>
Seems like a conclusion.