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

Paul Kyzivat <> Thu, 25 February 2016 23:44 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 002B61B37D7 for <>; Thu, 25 Feb 2016 15:44:28 -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 QZT8JBTR1d4y for <>; Thu, 25 Feb 2016 15:44:25 -0800 (PST)
Received: from ( [IPv6:2001:558:fe21:29:69:252:207:33]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 74FB71B37DA for <>; Thu, 25 Feb 2016 15:44:25 -0800 (PST)
Received: from ([]) by with comcast id Nnju1s0092D5gil01nkQSF; Thu, 25 Feb 2016 23:44:24 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([]) by with comcast id NnkQ1s0013KdFy101nkQKu; Thu, 25 Feb 2016 23:44:24 +0000
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <>
From: Paul Kyzivat <>
Message-ID: <>
Date: Thu, 25 Feb 2016 18:44:22 -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=1456443864; bh=2VOX6Wt5Frl62K4FRlA2W1ErIy1AagHVHHu2yRQJz6s=; h=Received:Received:Subject:To:From:Message-ID:Date:MIME-Version: Content-Type; b=YLVmGm1va2uY5aCb1HUQKjmzCFr1TEPsemxCFqPFKclRDRcoAc4jlNRppZpQ68rDy nAYyw+TKHYDq4IbUsrGvNq5HT/qXYPmLkTxlpXzy03Lk2X92Q8DuIbwNmP+UKmfUFR U/qLAKe1lyKUUcMwH2ey3z3JaTZvGgWSGoisa7q2xIX1trhiMMrCejjcpnTurtoi+W lNs9AZE7uZp25uO8seD4J2dmBfh19XmUGG0bqmQbXeHaX13CFTe0GPly7VHxdaGDpK xuQcCE7RV61IW0suGV0g91UUOe76v+cT5N6WfX9NyirzKrRahAK1QlAaGjwFA9wqGu e46xNVvlVv7mw==
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 23:44:28 -0000

On 2/25/16 6:09 PM, Christian Groves wrote:
> Hello Paul,
> How about an update to draft-ietf-mmusic-rfc4566bis clause 5.14 (or
> 8.2.2)? This is the document that defines the PROTO field in the first
> place.

That would be good, and possible since the bis is still in progress.

The hard part is figuring out what it should say!

For instance, consider UDP/DTLS/SCTP:

what is the sub-protocol? Is it SCTP, or DTLS/SCTP? Or both? Is DTLS a 

And note that this is somewhat confusing, since in typical protocol 
stack diagrams the sub-protocol is at the *top* and is considered to run 
at a higher level in the "stack".

Of course this is all just a matter of definition. But I expect there 
might be a lot of opinions on it.


> Regards, Christian
> On 26/02/2016 8:38 AM, Paul Kyzivat wrote:
>> 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.
>>     Thanks,
>>     Paul
>> _______________________________________________
>> mmusic mailing list
> _______________________________________________
> mmusic mailing list