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

Paul Kyzivat <> Fri, 26 February 2016 17:46 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 007871B2C2C for <>; Fri, 26 Feb 2016 09:46:08 -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 KHhr9f8IKG9O for <>; Fri, 26 Feb 2016 09:46:05 -0800 (PST)
Received: from ( [IPv6:2001:558:fe21:29:69:252:207:35]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 1B90B1B2C32 for <>; Fri, 26 Feb 2016 09:46:02 -0800 (PST)
Received: from ([]) by with comcast id P5kj1s00629Cfhx015m29v; Fri, 26 Feb 2016 17:46:02 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([]) by with comcast id P5m11s00V3KdFy1015m1hd; Fri, 26 Feb 2016 17:46:02 +0000
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <>
From: Paul Kyzivat <>
Message-ID: <>
Date: Fri, 26 Feb 2016 12:46:00 -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=1456508762; bh=rxnqjW178BHn5j6kjul+wcsbV3aV7O/fuV+xs0FntHg=; h=Received:Received:Subject:To:From:Message-ID:Date:MIME-Version: Content-Type; b=FDaH1Zv6CZmOqfVGMoedYLBZtmlSZ5VU5OuwG6wdFhKdQE5AapM5jM5NMV2yfqyyz 3ktuIQGO2MtSarKlLGt5xcnRHfiT4byIXJidQhpJznSdr0YNzmdJNBmaLz/Txxph5w cRJ12JsY9FspgAg8Ft+jiaWGt71L1kixznwJ3meEEO4JBxUE2cUUg72+peufl55FHz usBqkkbQE7wSw9MEv9Q+7Hak44LKevowWjHEkDmB4bbckDCsJRme1VQeQXKnjdzDAk AyigcwH7P84ChL40FMWcKgfrqcoT8u6d/2fR4+YOh+AUcP5Pa4xHRTqSlbQKFNnlLs /QctJbtW672Ag==
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: Fri, 26 Feb 2016 17:46:08 -0000


On 2/26/16 9:17 AM, Juergen Stoetzer-Bradler wrote:
> Hello Paul, Christian,
> Would propose to add following definition of term "subprotocol" to the
> terminology section 3 of the sdpneg draft:
>        Data channel subprotocol: The application protocol which is
>        transported over a single data channel.  Data channel subprotocol
>        messages are sent as data channel payload over an established data
>        channel.  If an SDP offer/answer exchange is used as specified in
>        this document to negotiate the establishment of data channels,
>        corresponding data channel properties, associated data channel
>        subprotocols and data channel subprotocol properties, then the data
>        channel subprotocols may be identified by the values of the
>        "subprotocol" parameters of the SDP "a=dcmap" attributes as
>        described in Section  Within this document the term "data
>        channel subprotocol" is often abbreviated as just "subprotocol".
> This text could explicitly narrow down the notion of "subprotocol"
> within the data channel SDP offer/answer context and might especially be
> helpful distinguishing it from the usages of "subprotocol" in the
> Websocket RFC 6455 (where the term "subprotocol" was taken from, but
> where it does not seem to be formally defined). This text may certainly
> not be helpful in more general non-data channel contexts. But it might
> help to clarify that every occurrence of of the term "subprotocol" in
> the sdpneg draft refers to the application protocol which (typically but
> not necessarily) is identified via the a=dcmap's "subprotocol" parameter.
> Would such an explicit definition be helpful from your point of view?

It might *help*, but it doesn't get at the main problem I see.

The question is how does this sub-protocol relate the the proto field 
used in m-lines? But not to the proto of the m-line for data channel. My 
point is that many sdp attributes were designed to be used with 
particular proto fields. For instance, with RTP/AVP, RTP/AVPF, 

In general they are described as being applicable to RTP. But what is 
RTP? Is it a subprotocol (of UDP, TCP, DCCP)? Or is it a super-protocol 

If we wanted to define use of RTP over a data channel, what 
sub-protocol(s) would we have to define? I *think* we would have to 
define as many of RTP/AVP, RTP/AVPF, RTP/SAVP, RTP/SAVPF as we wanted to 
support over a data channel.

And then how would we do it, and where would we specify which attributes 
could be used with dcsa? Would we have to update the documents that 
define those attributes?

ISTM there are similar (though not so complex) issues for pretty much 
any attribute that we might want to reuse over a data channel.

Perhaps a document could be created that defined RTP/AVP, RTP/AVPF, 
RTP/SAVP, RTP/SAVPF as sub-protocols and registered them in the 
websocket/datachannel registry. And then that document might say that 
any sdp attribute designed to be used with protos */(each of these 
subprotocols) may also be used in dcsa for a channel using these protocols.


> Thanks,
> Juergen
> On 25.02.2016 22:38, EXT 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