Re: [MMUSIC] Comments on draft-alvestrand-mmusic-msid-01

Harald Alvestrand <harald@alvestrand.no> Sun, 21 October 2012 19:54 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 14B0521F8894 for <mmusic@ietfa.amsl.com>; Sun, 21 Oct 2012 12:54:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -110.149
X-Spam-Level:
X-Spam-Status: No, score=-110.149 tagged_above=-999 required=5 tests=[AWL=-0.150, BAYES_00=-2.599, J_CHICKENPOX_15=0.6, 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 4k1kRfPGfyCW for <mmusic@ietfa.amsl.com>; Sun, 21 Oct 2012 12:54:55 -0700 (PDT)
Received: from eikenes.alvestrand.no (eikenes.alvestrand.no [158.38.152.233]) by ietfa.amsl.com (Postfix) with ESMTP id A5E6221F887A for <mmusic@ietf.org>; Sun, 21 Oct 2012 12:54:54 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by eikenes.alvestrand.no (Postfix) with ESMTP id 664D239E13F for <mmusic@ietf.org>; Sun, 21 Oct 2012 21:54:53 +0200 (CEST)
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 i3qQHYzycXUc for <mmusic@ietf.org>; Sun, 21 Oct 2012 21:54:51 +0200 (CEST)
Received: from [192.168.1.107] (unknown [188.113.88.47]) by eikenes.alvestrand.no (Postfix) with ESMTPSA id CB40D39E0E6 for <mmusic@ietf.org>; Sun, 21 Oct 2012 21:54:51 +0200 (CEST)
Message-ID: <50845309.6000907@alvestrand.no>
Date: Sun, 21 Oct 2012 21:54:49 +0200
From: Harald Alvestrand <harald@alvestrand.no>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121011 Thunderbird/16.0.1
MIME-Version: 1.0
To: mmusic@ietf.org
References: <507C7AA4.1010405@alum.mit.edu>
In-Reply-To: <507C7AA4.1010405@alum.mit.edu>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Subject: Re: [MMUSIC] Comments on draft-alvestrand-mmusic-msid-01
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: Sun, 21 Oct 2012 19:54:56 -0000

Thanks for the review!


On 10/15/2012 11:05 PM, Paul Kyzivat wrote:
> Harald,
>
> I looked this over, and have a few observations:
>
> Section 2, 1st paragraph
>
> OLD:
>
>    This document extends the Source-Specific Media Attributes framework
>    [RFC5576] by adding a new "msid" attribute that can be used with the
>    "a=ssrc" SDP attribute.  This new attribute allows endpoints to
>    associate RTP media streams that are carried in different RTP
>    sessions, as well as allowing application-specific information to the
>    association.
>
> The above suggests the mechanism is only for associating media streams 
> in *different* sessions. But they can also be in the *same* session. 
> So I would suggest:
>
> NEW:
>
>    This document extends the Source-Specific Media Attributes framework
>    [RFC5576] by adding a new "msid" attribute that can be used with the
>    "a=ssrc" SDP attribute.  This new attribute allows endpoints to
>    associate RTP media streams that are carried in the same or
>    different RTP sessions, as well as allowing application-specific
>    information to the association.

Thanks, I'll change that. (Needed in the abstract too).

>
> Syntax:
>
>      ; "attribute" is defined in RFC 4566.
>      ; This attribute should be used with the ssrc-attr from RFC 5576.
>      attribute =/ msid-attr
>      msid-attr = "msid:" identifier [ " " appdata ]
>      identifier = 1*64 ("0".."9" / "a".."z" / "-")
>      appdata = 1*64 ("0".."9" / "a".."z" / "-")
>
> Do you *really* want to allow identifiers like "-----", "---abc--" and 
> "0---0--0-0"??? If these seem silly and error prone then the syntax 
> could be made more restrictive.
>
> If you *do* want to be this flexible, why not go further, and use 
> <token> as defined in 4566 for both <identifier> and <appdata>?

The list of "token" characters is

    token-char =          %x21 / %x23-27 / %x2A-2B / %x2D-2E / %x30-39
                          / %x41-5A / %x5E-7E

or !#$%&'*+-./^_`{|}~ in addition to A-Za-z0-9.

Some of these are metacharacters in Javascript.
However, metacharacter exploits was the only reason I could see for 
restricting the syntax - "allows stuff that looks silly" doesn't seem to 
merit extra constraints.
Your mileage may vary; to some degree, it's a matter of taste.

>
> Since it is recommended to generate the identifier via a random number 
> generator, then why not define a representation that is a common 
> encoding of an integer, such as hex or base64?
The reason for this particular pick was that I couldn't see a reason to 
disallow either hex or UUIDs.
There's a few characters missing for Base64 (+ and /), so I obviously 
wasn't thinking of Base64 whenI wrote this text - if people want base64, 
we can add them.
> The examples are obviously not generated this way. So maybe 
> RECOMMENDED is too strong for use of random numbers. (It was offered 
> as a possibility, but not recommended, in the prior version. Why the 
> change?)
Because the more I thought about it, the more it seemed that collisions 
were a bad idea, and collisions are more likely for non-random IDs than 
for randomly generated IDs (for reasonable quality random number 
generators).

>
> Section 3 - Msid-Semantic:
>
>    The ABNF of msid-semantic is:
>
>      attribute =/ msid-semantic-attr
>      msid-semantic-attr = "msid-semantic:" " " identifier token
>      token = <as defined in RFC 4566>
>
> Above appears broken - there is no separator between identifier and 
> token. Presumably you meant:
>
>      attribute =/ msid-semantic-attr
>      msid-semantic-attr = "msid-semantic:" " " identifier " " token
>      token = <as defined in RFC 4566>
Thanks - I missed that.
>
> Also, the text isn't clear on the relationship between
> a=msid-semantic:
> a=ssrc-group:
> a=group:
>
> Are these all just *analogous* but independent mechanisms for 
> grouping? Or is it intended that these can be used together to group 
> things of all these types together?
That's because I'm not clear on what it should be.

There's a good reason to say that one can generate an SDP offer with 
both a=msid-semantic and  a=ssrc-group for the same semantic in the same 
offer, because this offers one-round-trip negotiation with both 
endpoints that understand a=msid-semantic and endpoints that only 
understand a=group, but since msid-semantic is able to express the 
semantics of a=ssrc-group, I don't see why a response should reply with 
both ssrc-group and msid-semantic for the same semantic.
>
> RFC 5576 makes it clear that ssrc-group and group are analogous but 
> independent with independent registries.
>
> I find in the iana considerations section that msid-semantic is 
> reusing the "Semantics for the "ssrc-group" SDP Attribute" registry, 
> and registers "WMS" in that registry. So apparently one can use WMS 
> with a=ssrc-group. That suggests it is intended that can be used 
> together.
>
> BUT, ssrc-group is a media level attribute. That implies that the 
> namespace for ssrc-group tokens is independent for each media section 
> in the SDP. But msid-semantic is session-wide. Using it would couple 
> the namespaces of different media sections.
I'm not clear what you want to say here. What namespaces would be 
coupled by msid-semantic?
Since ssrc-group doesn't have tokens (it's just ssrcs), it doesn't seem 
to define a namespace.
>
> I don't know the answer here, but it at least needs clarification and 
> may require some changes.

At least some clarification.
>
> Section 4:
>
> This section feels like it belongs in a separate draft. If it were 
> non-normative then it might be ok as an example. But it is normative. 
> The following clearly is:
It was the original purpose of the draft - the split into a general 
mechanism and a specific usage was done at the behest of MMUSIC. So yes, 
it's definitely intended to be normative.
>
>    When an SDP description is updated, a specific msid continues to
>    refer to the same media stream; an msid value MUST NOT be reused for
>    another media stream within a PeerConnection's lifetime.
>
> It isn't clear if that is intended only for WebRTC media streams. 
> Hopefully so, since it is in a section scoped that way, and might not 
> be desirable for all uses.
The limitation is defined in terms of WebRTC MediaStreams, not RTP media 
streams, so yes. I'll make sure to make the casing right, and add the 
qualifier.
>
> Even for this use that limitation is problematic. Anything that 
> requires the generation of new SDP in a session to be aware of all the 
> historical SDP in that session is problematic. It is easy to get 
> situations (transfer, federation) where contributors to the SDP come 
> and go without knowledge of history prior to their joining.

I don't think that it requires one to be aware of history in practice. 
It just requires that you either record history, or that the identifier 
contains enough randomness, and that the random number generator is run 
once for every new MediaStream.

>
> (This is already a problem in SDP with the requirement that a payload 
> number can never be reused for a different codec within an RTP 
> session. It is my impression that this is often violated, usually 
> without problem.)

I don't know the rules for that - can one renegotiate the codec 
parameters for a payload type, or are those too supposed to be locked down?

Of course this is much more problematic in multiparty sessions than in 
offer/answer negotiated sessions....
>
>     Thanks,
>     Paul
> _______________________________________________
> mmusic mailing list
> mmusic@ietf.org
> https://www.ietf.org/mailman/listinfo/mmusic