Re: [MMUSIC] WGLC for draft-ietf-mmusic-data-channel-sdpneg

Paul Kyzivat <> Thu, 25 February 2016 21:39 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id BAFC81B353D for <>; Thu, 25 Feb 2016 13:39:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: 1.165
X-Spam-Level: *
X-Spam-Status: No, score=1.165 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, J_CHICKENPOX_111=0.6, J_CHICKENPOX_12=0.6, J_CHICKENPOX_15=0.6, J_CHICKENPOX_17=0.6, SPF_SOFTFAIL=0.665] autolearn=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id yXgy-7WKGfgF for <>; Thu, 25 Feb 2016 13:38:58 -0800 (PST)
Received: from ( [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 (Postfix) with ESMTPS id D35991B35BC for <>; Thu, 25 Feb 2016 13:38:57 -0800 (PST)
Received: from ([]) by with comcast id NleE1s0042S2Q5R01lex9t; Thu, 25 Feb 2016 21:38:57 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([]) by with comcast id Nlew1s00F3KdFy101lewCv; Thu, 25 Feb 2016 21:38:57 +0000
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <>
From: Paul Kyzivat <>
Message-ID: <>
Date: Thu, 25 Feb 2016 16:38:56 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Thunderbird/38.6.0
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 7bit
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=q20140121; t=1456436337; bh=x0wlSwoTaV17I6MQBcx5eQ2d73P4lmsg/vekMwRWFGk=; h=Received:Received:Subject:To:From:Message-ID:Date:MIME-Version: Content-Type; b=LtJHfoZZJZuZqBXkPXuoc9XgtguEYtsMgZKiaDN89zZ5LFTU97Lh26KNG5zJ2xVn4 MkDqEJabpMHN+uzoxDbzFhFqksc6aXqZ4s1eVZPiBWgk+2jQUA2ZoZdadJzhCUVv0q LADNLXF1FJknpW/OTzYPBxUXTOT9GHgVKsfcK8PmEry13Yt5dtQ9grZNleQd1i1aNl 8jgsniKkzoBP+fLt9hYi5+/fXnEz+bo5VYh9tek2ZAd9aMmYZeqCyZpuC6COhlq1Gx dgmhh0BxN2S6s8mc47ZVAU+SzstTtSo2ArNuQXEmhAJR16CSkhLBhXJqnJMGV662th HglG1mSem/EhA==
Archived-At: <>
Subject: Re: [MMUSIC] WGLC for draft-ietf-mmusic-data-channel-sdpneg
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 25 Feb 2016 21:39:00 -0000

On 2/24/16 7:24 PM, Christian Groves wrote:
> Hello Juergen and Paul,
> Please see at end.
> Regards, Christian
> On 24/02/2016 8:26 AM, Paul Kyzivat wrote:
>> ..snip..
>>> On 19.02.2016 17:42, EXT Paul Kyzivat wrote:
>>>> On 2/17/16 8:12 AM, Juergen Stoetzer-Bradler wrote:
>>>>> Hi Paul, Christian, Flemming, Bo,
>>>>> Have just submitted version 08 of
>>>>> draft-ietf-mmusic-data-channel-sdpneg.
>>>>> The changes compared to version 07 are essentially as follows.
>>>>> *   Two new paragraphs in section (dcsa Attribute)
>>>>> regarding the
>>>>> relationship of subprotocols and their attributes.
>>>>> *   Two new SDP offer/answer considerations in section 5.2.5 (Various
>>>>> SDP Offer/Answer Scenarios and Considerations)  regarding unknown
>>>>> subprotocol attributes or known subprotocol attributes, whose data
>>>>> channel transport specific semantic is not known.
>>>>> *   A new paragraph in section 8.1 (IANA Considerations / Subprotocol
>>>>> Identifiers) related to cases, where a subprotocol is defined for data
>>>>> channel and Websocket transport.
>>>>> These changes should address the points discussed in this email
>>>>> thread.
>>>> This is an improvement. But I think things could still be made clearer.
>>>> Consider the following addition to
>>>>    It is assumed that in general the usages of subprotocol related
>>>> media
>>>>    level attributes are independent from the subprotocol's transport
>>>>    protocol.  Such transport protocol independent subprotocol related
>>>>    attributes are used in the same way as defined in the original
>>>>    subprotocol specification, also if the subprotocol is transported
>>>>    over a data channel and if the attribute is correspondingly embedded
>>>>    in a "a=dcsa" attribute.
>>>>    There may be cases, where the usage of a subprotocol related media
>>>>    level attribute depends on the subprotocol's transport protocol.  In
>>>>    such cases the subprotocol related usage of the attribute is
>>>> expected
>>>>    to be described for the data channel transport.  A data channel
>>>>    specific usage of a subprotocol attribute is expected to be
>>>> specified
>>>>    in the same document, which registers the subprotocol's identifier
>>>>    for data channel usage as described in Section 8.1.
>>>> This text makes sense when there is a clear distinction between
>>>> subprotocol and protocol. Unfortunately, the way SDP has evolved there
>>>> is no such clear distinction in many cases, such as RTP over UDP or
>>>> TCP, etc. Those are combined into a single protocol value. While that
>>>> can usually be parsed apart at slashes, there isn't good terminology
>>>> for it.
>>>> My point is that when I read the above, I don't know how it applies
>>>> to, say, RTP attributes. Or does it only apply for attributes that are
>>>> clearly defined for a *sub*protocol?
>>>> I think this is primarily that we lack well defined vocabulary for all
>>>> of this. But I think it would be too much to expect this draft to
>>>> *solve* the vocabulary problem. In lieu of doing so, maybe it would be
>>>> sufficient to give some concrete examples, even if they have to be
>>>> hypothetical ones.
>>> [Juergen] Agree that it would be helpful to have more precise
>>> definitions of the differences of the terms protocol and subprotocol,
>>> especially when those terms are used outside the scope of data channels
>>> (or Websockets). When only focusing on data channels the notion of a
>>> "subprotocol" seems to be clearer - at least
>>> draft-ietf-rtcweb-data-protocol explicitly refers to the "WebSocket
>>> Subprotocol Name Registry" when specifying DCEP's "Protocol" parameter.
>>> (But draft-ietf-rtcweb-data-channel does not define what a data
>>> channel's "subprotocol" is.) So far the sdpneg draft relatively
>>> informally starts using the term "subprotocol" in the introduction and
>>> there refers to Websocket "subprotocols". Perhaps we should add the term
>>> "subprotocol" to the list of used terminology in section 3.
>>> The sdpneg document, together with the data channel subprotocol specific
>>> document (which defines the value of the a=dcmap attribute's
>>> "subprotocol" parameter), should certainly give clear guidance on how to
>>> interpret SDP offers or answers like e.g.:
>>>       m=application 10001 UDP/DTLS/SCTP webrtc-datachannel
>>>       c=IN IP4
>>>       a=max-message-size:100000
>>>       a=sctp-port:5000
>>>       ...
>>>       a=dcmap:0 subprotocol="MSRP"
>>>       a=dcsa:0 accept-types:message/cpim text/plain
>>>       a=dcsa:0 framerate:...
>>>       a=dcsa:0 lang:...
>>> An implementation receiving such an offer would need to decide what to
>>> do with the dcsa embedded framerate and lang attributes. Or, someone
>>> implementing MSRP over data channel based services may need to decide
>>> whether or not to use these attributes, and if yes, how.
>>> (I am using these two attributes just as hypothetical examples - don't
>>> want to suggest that those may indeed be used for MSRP over data channel
>>> transport).
>>> The msrp-usage-data-channel document doesn't mention these two
>>> attributes. When looking at the IANA SDP attribute registry tables, I
>>> would find both attributes specified in RFC 4566. There, "framerate" is
>>> explicitly said to be defined only "for video media". Just to be sure I
>>> could additionally have a look at the MSRP specifying documents, RFC
>>> 4975 and RFC 4976, but there would not find any text at all related to
>>> "framerate". So this case seems pretty clear and I would therefore
>>> conclude that the "framerate" attribute should not be used for MSRP, and
>>> that a receiver of such an offer or answer should ignore it.
>>> When looking at the definition of the "lang" attribute in RFC 4566 I
>>> would not see any explicit hint of what protocols this attribute might
>>> be used with, especially if "lang" could be used when negotiating an
>>> MSRP session. When then looking at RFC 4975 I would indeed find "lang" -
>>> but not as SDP attribute, rather as XML tag parameter within an example
>>> MSRP message payload. Thus, the case of the "lang" attribute might not
>>> be as unambiguous as the one with the "framerate" attribute, but here
>>> too I think the typical choice would be to ignore that attribute when
>>> receiving such an offer or answer.
>>> It seems to me that the two new "ignore" rules in section 5.2.5 of
>>> sdpneg-08 may also be applied in these cases.
>>> Admittedly, these examples may seem a bit far-fetched, but would those
>>> go into the direction you had in mind?
>> Yes. Note that using examples is just me grasping at straws, since a
>> real solution looks like to big a problem for this draft to tackle by
>> itself. I am entirely open to other ideas for how to deal with this.
> [CNG] I don't see what the example buys? I don't see that the behaviour
> is any different between using additional attributes in the datachannel
> vs. the non data channel case. E.g. for
>      c=IN IP4
>      m=message 7394 TCP/MSRP *
>      a=accept-types:message/cpim text/plain text/html
>      a=lang:....
>      a=framerate:...
> The ignore behaviour would be the same.
> In the above example the attributes are scoped by the m= line. In the
> data channel case the attributes are scoped by the relevant a=dcmap: line.

My concern is that SDP has no notion of subprotocol, even though in 
practice it shows up lots of places. It only has a notion of the 
protocol field in the m-line. Beyond that a *convention* has developed 
to denote a layering within the protocol through use of "/". AFAIK this 
isn't formally written down anywhere.

So, in principle we could define an RTP sub-protocol for use over a data 
channel. And then we could talk about using the attributes that apply to 
RTP in dcsa for a channel using RTP. But note there is no formal 
definition of the *protocol*s where RTP attributes are relevant.

A lot of the very old stuff was just sloppy. To be fair, it was probably 
good enough for the cases in front of them at the time, and they weren't 
yet in a position to foresee how things would evolve. It is just another 
example of how old stuff rots and has to be refreshed from time to time.

But I don't think *this* draft is the place to fix it. So, in lieu of 
doing that I'm just looking for some way to clarify things.