draft-ietf-mmusic-data-channel-sdpneg-11.txt | draft-ietf-mmusic-data-channel-sdpneg-12.txt | |||
---|---|---|---|---|
MMUSIC K. Drage, Ed. | MMUSIC K. Drage, Ed. | |||
Internet-Draft M. Makaraju | Internet-Draft M. Makaraju | |||
Intended status: Standards Track Nokia | Intended status: Standards Track Nokia | |||
Expires: July 19, 2017 J. Stoetzer-Bradler | Expires: September 19, 2017 J. Stoetzer-Bradler | |||
R. Ejzak | R. Ejzak | |||
J. Marcon | J. Marcon | |||
Unaffiliated | Unaffiliated | |||
January 15, 2017 | March 27, 2017 | |||
SDP-based Data Channel Negotiation | SDP-based Data Channel Negotiation | |||
draft-ietf-mmusic-data-channel-sdpneg-11 | draft-ietf-mmusic-data-channel-sdpneg-12 | |||
Abstract | Abstract | |||
The Real-Time Communication in WEB-browsers (RTCWeb) working group is | The Real-Time Communication in WEB-browsers (RTCWeb) working group is | |||
charged to provide protocols to support direct interactive rich | charged to provide protocols to support direct interactive rich | |||
communications using audio, video, and data between two peers' web- | communications using audio, video, and data between two peers' web- | |||
browsers. For the support of data communication, the RTCWeb working | browsers. For the support of data communication, the RTCWeb working | |||
group has in particular defined the concept of bi-directional data | group has in particular defined the concept of bi-directional data | |||
channels over SCTP (Stream Control Transmission Protocol), where each | channels over SCTP (Stream Control Transmission Protocol), where each | |||
data channel might be used to transport other protocols, called | data channel might be used to transport other protocols, called | |||
skipping to change at page 2, line 4 ¶ | skipping to change at page 2, line 4 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on July 12, 2017. | This Internet-Draft will expire on September 19, 2017. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 49 ¶ | skipping to change at page 2, line 49 ¶ | |||
5.1.2. Other Media Level Attributes . . . . . . . . . . . . 10 | 5.1.2. Other Media Level Attributes . . . . . . . . . . . . 10 | |||
5.1.2.1. dcsa Attribute . . . . . . . . . . . . . . . . . 10 | 5.1.2.1. dcsa Attribute . . . . . . . . . . . . . . . . . 10 | |||
5.1.2.2. dcsa Multiplexing Category . . . . . . . . . . . 12 | 5.1.2.2. dcsa Multiplexing Category . . . . . . . . . . . 12 | |||
5.2. Procedures . . . . . . . . . . . . . . . . . . . . . . . 12 | 5.2. Procedures . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
5.2.1. Managing Stream Identifiers . . . . . . . . . . . . . 12 | 5.2.1. Managing Stream Identifiers . . . . . . . . . . . . . 12 | |||
5.2.2. Negotiating Data Channel Parameters . . . . . . . . . 13 | 5.2.2. Negotiating Data Channel Parameters . . . . . . . . . 13 | |||
5.2.3. Opening a Data Channel . . . . . . . . . . . . . . . 14 | 5.2.3. Opening a Data Channel . . . . . . . . . . . . . . . 14 | |||
5.2.4. Closing a Data Channel . . . . . . . . . . . . . . . 16 | 5.2.4. Closing a Data Channel . . . . . . . . . . . . . . . 16 | |||
5.2.5. Various SDP Offer/Answer Scenarios and Considerations 17 | 5.2.5. Various SDP Offer/Answer Scenarios and Considerations 17 | |||
6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 18 | 6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 21 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 20 | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 | |||
8.1. Subprotocol Identifiers . . . . . . . . . . . . . . . . . 22 | 8.1. Subprotocol Identifiers . . . . . . . . . . . . . . . . . 21 | |||
8.2. New SDP Attributes . . . . . . . . . . . . . . . . . . . 22 | 8.2. New SDP Attributes . . . . . . . . . . . . . . . . . . . 21 | |||
8.2.1. dcmap . . . . . . . . . . . . . . . . . . . . . . . . 22 | 8.2.1. dcmap . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
8.2.2. dcsa . . . . . . . . . . . . . . . . . . . . . . . . 23 | 8.2.2. dcsa . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
8.3. New Usage Level . . . . . . . . . . . . . . . . . . . . . 23 | 8.3. New Usage Level . . . . . . . . . . . . . . . . . . . . . 22 | |||
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 24 | 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
10. CHANGE LOG . . . . . . . . . . . . . . . . . . . . . . . . . 24 | 10. CHANGE LOG . . . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
10.1. Changes against 'draft-ietf-mmusic-data-channel- | 10.1. Changes against 'draft-ietf-mmusic-data-channel- | |||
sdpneg-10' . . . . . . . . . . . . . . . . . . . . . . . 24 | sdpneg-11' . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
10.2. Changes against 'draft-ietf-mmusic-data-channel- | 10.2. Changes against 'draft-ietf-mmusic-data-channel- | |||
sdpneg-09' . . . . . . . . . . . . . . . . . . . . . . . 24 | sdpneg-10' . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
10.3. Changes against 'draft-ietf-mmusic-data-channel- | 10.3. Changes against 'draft-ietf-mmusic-data-channel- | |||
sdpneg-08' . . . . . . . . . . . . . . . . . . . . . . . 25 | sdpneg-09' . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
10.4. Changes against 'draft-ietf-mmusic-data-channel- | 10.4. Changes against 'draft-ietf-mmusic-data-channel- | |||
sdpneg-07' . . . . . . . . . . . . . . . . . . . . . . . 25 | sdpneg-08' . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
10.5. Changes against 'draft-ietf-mmusic-data-channel- | 10.5. Changes against 'draft-ietf-mmusic-data-channel- | |||
sdpneg-06' . . . . . . . . . . . . . . . . . . . . . . . 26 | sdpneg-07' . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
10.6. Changes against 'draft-ietf-mmusic-data-channel- | 10.6. Changes against 'draft-ietf-mmusic-data-channel- | |||
sdpneg-05' . . . . . . . . . . . . . . . . . . . . . . . 26 | sdpneg-06' . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
10.7. Changes against 'draft-ietf-mmusic-data-channel- | 10.7. Changes against 'draft-ietf-mmusic-data-channel- | |||
sdpneg-04' . . . . . . . . . . . . . . . . . . . . . . . 27 | sdpneg-05' . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
10.8. Changes against 'draft-ietf-mmusic-data-channel- | 10.8. Changes against 'draft-ietf-mmusic-data-channel- | |||
sdpneg-03' . . . . . . . . . . . . . . . . . . . . . . . 27 | sdpneg-04' . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
10.9. Changes against 'draft-ietf-mmusic-data-channel- | 10.9. Changes against 'draft-ietf-mmusic-data-channel- | |||
sdpneg-02' . . . . . . . . . . . . . . . . . . . . . . . 29 | sdpneg-03' . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
10.10. Changes against 'draft-ietf-mmusic-data-channel- | 10.10. Changes against 'draft-ietf-mmusic-data-channel- | |||
sdpneg-01' . . . . . . . . . . . . . . . . . . . . . . . 30 | sdpneg-02' . . . . . . . . . . . . . . . . . . . . . . . 28 | |||
10.11. Changes against 'draft-ietf-mmusic-data-channel- | 10.11. Changes against 'draft-ietf-mmusic-data-channel- | |||
sdpneg-00' . . . . . . . . . . . . . . . . . . . . . . . 32 | sdpneg-01' . . . . . . . . . . . . . . . . . . . . . . . 29 | |||
10.12. Changes against 'draft-ejzak-mmusic-data-channel- | 10.12. Changes against 'draft-ietf-mmusic-data-channel- | |||
sdpneg-02' . . . . . . . . . . . . . . . . . . . . . . . 35 | sdpneg-00' . . . . . . . . . . . . . . . . . . . . . . . 31 | |||
10.13. Changes against '-01' . . . . . . . . . . . . . . . . . 36 | 10.13. Changes against 'draft-ejzak-mmusic-data-channel- | |||
10.14. Changes against '-00' . . . . . . . . . . . . . . . . . 36 | sdpneg-02' . . . . . . . . . . . . . . . . . . . . . . . 34 | |||
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 36 | 10.14. Changes against '-01' . . . . . . . . . . . . . . . . . 35 | |||
11.1. Normative References . . . . . . . . . . . . . . . . . . 36 | 10.15. Changes against '-00' . . . . . . . . . . . . . . . . . 35 | |||
11.2. Informative References . . . . . . . . . . . . . . . . . 37 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 35 | |||
11.1. Normative References . . . . . . . . . . . . . . . . . . 35 | ||||
11.2. Informative References . . . . . . . . . . . . . . . . . 36 | ||||
Appendix A. Generic Data Channel Negotiation Aspects When Not | Appendix A. Generic Data Channel Negotiation Aspects When Not | |||
Using DCEP . . . . . . . . . . . . . . . . . . . . . 38 | Using DCEP . . . . . . . . . . . . . . . . . . . . . 37 | |||
A.1. Stream Identifier Numbering . . . . . . . . . . . . . . . 39 | A.1. Stream Identifier Numbering . . . . . . . . . . . . . . . 38 | |||
A.2. Generic Data Channel Negotiation Not Using DCEP . . . . . 39 | A.2. Generic Data Channel Negotiation Not Using DCEP . . . . . 38 | |||
A.2.1. Overview . . . . . . . . . . . . . . . . . . . . . . 39 | A.2.1. Overview . . . . . . . . . . . . . . . . . . . . . . 38 | |||
A.2.2. Opening a Data Channel . . . . . . . . . . . . . . . 39 | A.2.2. Opening a Data Channel . . . . . . . . . . . . . . . 39 | |||
A.2.3. Closing a Data Channel . . . . . . . . . . . . . . . 40 | A.2.3. Closing a Data Channel . . . . . . . . . . . . . . . 40 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 41 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 40 | |||
1. Introduction | 1. Introduction | |||
The RTCWeb working group has defined the concept of bi-directional | The RTCWeb working group has defined the concept of bi-directional | |||
data channels running on top of the Stream Control Transmission | data channels running on top of the Stream Control Transmission | |||
Protocol (SCTP). RTCWeb allows applications to use data channels. | Protocol (SCTP). RTCWeb allows applications to use data channels. | |||
RTCWeb defines an in-band Data Channel Establishment Protocol (DCEP), | RTCWeb defines an in-band Data Channel Establishment Protocol (DCEP), | |||
however other in-band or out-of-band protocols may be used for | however other in-band or out-of-band protocols may be used for | |||
establishing data channels. Each data channel consists of paired | establishing data channels. Each data channel consists of paired | |||
SCTP streams sharing the same SCTP Stream Identifier. Data channels | SCTP streams sharing the same SCTP Stream Identifier. Data channels | |||
skipping to change at page 4, line 32 ¶ | skipping to change at page 4, line 32 ¶ | |||
data channel, and whether it is signaled in-band using DCEP or out- | data channel, and whether it is signaled in-band using DCEP or out- | |||
of-band using a non-DCEP protocol (or both). In particular, the SDP | of-band using a non-DCEP protocol (or both). In particular, the SDP | |||
offer generated by the RTCweb data channel stack includes no channel- | offer generated by the RTCweb data channel stack includes no channel- | |||
specific information. | specific information. | |||
This document defines SDP offer/answer negotiation procedures to | This document defines SDP offer/answer negotiation procedures to | |||
establish data channels for transport of well-defined subprotocols, | establish data channels for transport of well-defined subprotocols, | |||
to enable out-of-band negotiation. These procedures are based on | to enable out-of-band negotiation. These procedures are based on | |||
generic SDP offer/answer negotiation rules for SCTP based media | generic SDP offer/answer negotiation rules for SCTP based media | |||
transport as specified in [I-D.ietf-mmusic-sctp-sdp] for the SDP "m" | transport as specified in [I-D.ietf-mmusic-sctp-sdp] for the SDP "m" | |||
line proto values UDP/DTLS/SCTP and TCP/DTLS/SCTP. In future data | line proto values UDP/DTLS/SCTP and TCP/DTLS/SCTP. In the future, | |||
channels could be defined over other SCTP based protocols, such as | data channels could be defined over other SCTP based protocols, such | |||
SCTP over IP. However, corresponding potential other "m" line proto | as SCTP over IP. However, corresponding potential other "m" line | |||
values are not considered in this document. | proto values are not considered in this document. | |||
This document makes use of MSRP (Message Session Relay Protocol) in | This document makes use of MSRP (Message Session Relay Protocol) and | |||
many of the examples. It does not provide a complete specification | BFCP (Binary Floor Control Protocol) in many of the examples. It | |||
of how to negotiate the use of a data channel to transport MSRP. | does not provide a complete specification of how to negotiate the use | |||
Procedures specific to each subprotocol such as MSRP are documented | of a data channel to transport MSRP. Procedures specific to each | |||
elsewhere. The use of MSRP in some examples is only to show how the | subprotocol such as MSRP are documented elsewhere. The use of MSRP | |||
generic procedures described herein might apply to a specific | in some examples is only to show how the generic procedures described | |||
subprotocol. | herein might apply to a specific subprotocol. | |||
2. Conventions | 2. Conventions | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
3. Terminology | 3. Terminology | |||
This document uses the following terms: | This document uses the following terms: | |||
Data channel: A WebRTC data channel as specified in | Data channel: A WebRTC data channel as specified in | |||
[I-D.ietf-rtcweb-data-channel]. | [I-D.ietf-rtcweb-data-channel]. | |||
Data channel stack: An entity which, upon application request, | Data channel stack: An entity which, upon application request, | |||
runs the data channel protocol to keep track of states, sending | runs the data channel protocol to keep track of states, sending | |||
and receive data. If the application is a browser based | and receiving data. If the application is a browser based | |||
JavaScript application then this stack resides in the browser. If | JavaScript application then this stack resides in the browser. If | |||
the application is a native application then this stack resides in | the application is a native application then this stack resides in | |||
the application and is accessible via some sort of APIs. | the application and is accessible via some sort of APIs. | |||
Data channel properties: Fixed properties assigned to a data | Data channel properties: Fixed properties assigned to a data | |||
channel at the time of its creation. Some of these properties | channel at the time of its creation. Some of these properties | |||
determine the way the data channel stack transmits data on this | determine the way the data channel stack transmits data on this | |||
channel (e.g., stream identifier, reliability, order of | channel (e.g., stream identifier, reliability, order of | |||
delivery...). | delivery...). | |||
skipping to change at page 7, line 29 ¶ | skipping to change at page 7, line 29 ¶ | |||
Syntax: | Syntax: | |||
dcmap-value = dcmap-stream-id | dcmap-value = dcmap-stream-id | |||
[ SP dcmap-opt *(";" dcmap-opt) ] | [ SP dcmap-opt *(";" dcmap-opt) ] | |||
dcmap-opt = ordering-opt / subprotocol-opt / label-opt | dcmap-opt = ordering-opt / subprotocol-opt / label-opt | |||
/ maxretr-opt / maxtime-opt / priority-opt | / maxretr-opt / maxtime-opt / priority-opt | |||
; Either only maxretr-opt or maxtime-opt | ; Either only maxretr-opt or maxtime-opt | |||
; is present. | ; is present. | |||
dcmap-stream-id = 1*DIGIT | dcmap-stream-id = 1*5DIGIT | |||
ordering-opt = "ordered=" ordering-value | ordering-opt = "ordered=" ordering-value | |||
ordering-value = "true" / "false" | ordering-value = "true" / "false" | |||
subprotocol-opt = "subprotocol=" quoted-string | subprotocol-opt = "subprotocol=" quoted-string | |||
label-opt = "label=" quoted-string | label-opt = "label=" quoted-string | |||
maxretr-opt = "max-retr=" maxretr-value | maxretr-opt = "max-retr=" maxretr-value | |||
maxretr-value = "0" / integer | maxretr-value = "0" / integer | |||
; number of retransmissions, | ; number of retransmissions, | |||
; less than 2^32, | ; less than 2^32, | |||
; derived from 'Reliability Parameter' of | ; derived from 'Reliability Parameter' of | |||
; [I-D.ietf-rtcweb-data-protocol] | ; [I-D.ietf-rtcweb-data-protocol] | |||
skipping to change at page 8, line 7 ¶ | skipping to change at page 8, line 7 ¶ | |||
priority-opt = "priority=" priority-value | priority-opt = "priority=" priority-value | |||
priority-value = "0" / integer | priority-value = "0" / integer | |||
; unsigned integer value indicating the priority of | ; unsigned integer value indicating the priority of | |||
; the data channel, | ; the data channel, | |||
; less than 2^16, | ; less than 2^16, | |||
; derived from 'Priority' of | ; derived from 'Priority' of | |||
; [I-D.ietf-rtcweb-data-protocol] | ; [I-D.ietf-rtcweb-data-protocol] | |||
quoted-string = DQUOTE *(quoted-char / escaped-char) DQUOTE | quoted-string = DQUOTE *(quoted-char / escaped-char) DQUOTE | |||
quoted-char = SP / quoted-visible | quoted-char = SP / quoted-visible | |||
quoted-visible = %21 / %23-24 / %26-7E ; VCHAR without " or % | quoted-visible = %x21 / %x23-24 / %x26-7E ; VCHAR without " or % | |||
escaped-char = "%" HEXDIG HEXDIG | escaped-char = "%" HEXDIG HEXDIG | |||
DQUOTE = <from-RFC5234> | DQUOTE = <from-RFC5234> | |||
integer = <from-RFC4566> | integer = <from-RFC4566> | |||
Examples: | Examples: | |||
a=dcmap:0 | a=dcmap:0 | |||
a=dcmap:1 subprotocol="BFCP";max-time=60000;priority=512 | a=dcmap:1 subprotocol="BFCP";max-time=60000;priority=512 | |||
a=dcmap:2 subprotocol="MSRP";ordered=true;label="MSRP" | a=dcmap:2 subprotocol="MSRP";ordered=true;label="MSRP" | |||
a=dcmap:3 label="Label 1";ordered=false;max-retr=5;priority=128 | a=dcmap:3 label="Label 1";ordered=false;max-retr=5;priority=128 | |||
skipping to change at page 11, line 23 ¶ | skipping to change at page 11, line 23 ¶ | |||
Usage Level: media | Usage Level: media | |||
Charset Dependent: no | Charset Dependent: no | |||
Syntax: | Syntax: | |||
dcsa-value = stream-id SP attribute | dcsa-value = stream-id SP attribute | |||
attribute = <from-RFC4566> | attribute = <from-RFC4566> | |||
Example: | Example (other MSRP related SDP attributes are omitted for brevity): | |||
a=dcsa:2 accept-types:text/plain | a=dcsa:2 accept-types:text/plain | |||
Note that the above reference to [RFC4566] defines where the | Note that the above reference to [RFC4566] defines where the | |||
attribute definition can be found; it does not provide any limitation | attribute definition can be found; it does not provide any limitation | |||
on support of attributes defined in other documents in accordance | on support of attributes defined in other documents in accordance | |||
with this attribute definition. Note however that not all SDP | with this attribute definition. Note however that not all SDP | |||
attributes are suitable as a "a=dcsa:" parameter. | attributes are suitable as a "a=dcsa:" parameter. | |||
[IANA-SDP-Parameters] contains the lists of IANA (Internet Assigned | [IANA-SDP-Parameters] contains the lists of IANA (Internet Assigned | |||
Numbers Authority) registered session and media level or media level | Numbers Authority) registered session and media level or media level | |||
skipping to change at page 12, line 10 ¶ | skipping to change at page 12, line 10 ¶ | |||
attributes are used in the same way as defined in the original | attributes are used in the same way as defined in the original | |||
subprotocol specification, also if the subprotocol is transported | subprotocol specification, also if the subprotocol is transported | |||
over a data channel and if the attribute is correspondingly embedded | over a data channel and if the attribute is correspondingly embedded | |||
in a "a=dcsa" attribute. | in a "a=dcsa" attribute. | |||
There may be cases, where the usage of a subprotocol related media | There may be cases, where the usage of a subprotocol related media | |||
level attribute depends on the subprotocol's transport protocol. In | level attribute depends on the subprotocol's transport protocol. In | |||
such cases the subprotocol related usage of the attribute is expected | such cases the subprotocol related usage of the attribute is expected | |||
to be described for the data channel transport. A data channel | to be described for the data channel transport. A data channel | |||
specific usage of a subprotocol attribute is expected to be specified | specific usage of a subprotocol attribute is expected to be specified | |||
in the same document, which registers the subprotocol's identifier | in the same document, that registers the subprotocol's identifier for | |||
for data channel usage as described in Section 8.1. | data channel usage as described in Section 8.1. | |||
5.1.2.2. dcsa Multiplexing Category | 5.1.2.2. dcsa Multiplexing Category | |||
The multiplexing category of the "a=dcsa:" attribute is SPECIAL. | The multiplexing category of the "a=dcsa:" attribute is SPECIAL. | |||
As the usage of multiple SCTP associations on top of a single DTLS | As the usage of multiple SCTP associations on top of a single DTLS | |||
association is outside the scope of [I-D.ietf-mmusic-sctp-sdp], no | association is outside the scope of [I-D.ietf-mmusic-sctp-sdp], no | |||
"a=dcsa:" attribute multiplexing rules are specified for the | "a=dcsa:" attribute multiplexing rules are specified for the | |||
UDP/DTLS/SCTP and TCP/DTLS/SCTP proto values. If future extensions | UDP/DTLS/SCTP and TCP/DTLS/SCTP proto values. If future extensions | |||
of [I-D.ietf-mmusic-sctp-sdp] define how to negotiate multiplexing of | of [I-D.ietf-mmusic-sctp-sdp] define how to negotiate multiplexing of | |||
skipping to change at page 13, line 21 ¶ | skipping to change at page 13, line 21 ¶ | |||
5.2.2. Negotiating Data Channel Parameters | 5.2.2. Negotiating Data Channel Parameters | |||
Conveying a reliable data channel is achieved by including neither | Conveying a reliable data channel is achieved by including neither | |||
'max-retr' nor 'max-time' in corresponding SDP offer's or answer's | 'max-retr' nor 'max-time' in corresponding SDP offer's or answer's | |||
"a=dcmap:" attribute line. Conveying a partially reliable data | "a=dcmap:" attribute line. Conveying a partially reliable data | |||
channel is achieved by including only one of 'max-retr' or 'max- | channel is achieved by including only one of 'max-retr' or 'max- | |||
time'. By definition max-retr and max-time are mutually exclusive, | time'. By definition max-retr and max-time are mutually exclusive, | |||
so at most one of them MAY be present in the "a=dcmap:" attribute | so at most one of them MAY be present in the "a=dcmap:" attribute | |||
line. If a SDP offer contains both of these parameters then the | line. If a SDP offer contains both of these parameters then the | |||
receiver of such an SDP offer MUST reject the SDP offer. If a SDP | receiver of such an SDP offer MUST reject the SDP offer. If a SDP | |||
answer contains both of these parameters then the offerer MAY treat | answer contains both of these parameters then the offerer MUST treat | |||
it as an error and MAY assume the associated SDP offer/answer failed | the associated SDP offer/answer failed and take appropriate recovery | |||
and MAY take appropriate recovery actions. These recovery options | actions. These recovery options are outside the scope of this | |||
are outside the scope of this document. | document. | |||
The SDP answer SHALL echo the same subprotocol, max-retr, max-time, | The SDP answer SHALL echo the same subprotocol, max-retr, max-time, | |||
ordered parameters, if those were present in the offer, and MAY | ordered parameters, if those were present in the offer, and MAY | |||
include a label parameter. They MAY appear in any order, which could | include a label parameter. They MAY appear in any order, which could | |||
be different from the SDP offer, in the SDP answer. | be different from the SDP offer, in the SDP answer. | |||
When sending a subsequent offer or an answer, and for as long as the | When sending a subsequent offer or an answer, and for as long as the | |||
data channel is still open, the sender MUST replicate the same | data channel is still open, the sender MUST replicate the same | |||
information. | information. | |||
skipping to change at page 15, line 13 ¶ | skipping to change at page 15, line 13 ¶ | |||
o Sends the SDP offer. | o Sends the SDP offer. | |||
The peer receiving such an SDP offer performs the following: | The peer receiving such an SDP offer performs the following: | |||
o Parses and applies the SDP offer, taking into account the | o Parses and applies the SDP offer, taking into account the | |||
considerations discussed in Section 5.2.5. | considerations discussed in Section 5.2.5. | |||
o Analyzes the channel parameters and subprotocol attributes to | o Analyzes the channel parameters and subprotocol attributes to | |||
determine whether to accept each offered data channel. | determine whether to accept each offered data channel. | |||
o For accepted data channels, it creates peer instances for the data | o For accepted data channels, the agent MUST create peer instances | |||
channels with the agent using the channel parameters described in | for the data channels using the SCTP stream identifiers and | |||
the SDP offer. Note that the agent is asked to create data | channel parameters contained in the SDP offer. | |||
channels with SCTP stream identifiers contained in the SDP offer | ||||
if the SDP offer is accepted. | ||||
o Generates an SDP answer. | o Generates an SDP answer. | |||
o Completes the SDP answer with the "a=dcmap:" and optional | o Completes the SDP answer with the "a=dcmap:" and optional | |||
"a=dcsa:" attributes needed for each SDP offer/answer negotiated | "a=dcsa:" attributes needed for each SDP offer/answer negotiated | |||
data channel, as described in Section 5.1 and in Section 5.2.2. | data channel, as described in Section 5.1 and in Section 5.2.2. | |||
o Sends the SDP answer. | o Sends the SDP answer. | |||
The agent receiving such an SDP answer performs the following: | The agent receiving such an SDP answer performs the following: | |||
skipping to change at page 16, line 33 ¶ | skipping to change at page 16, line 31 ¶ | |||
(unless all data channels are being closed and the SCTP association | (unless all data channels are being closed and the SCTP association | |||
is no longer needed), since this would close the SCTP association and | is no longer needed), since this would close the SCTP association and | |||
impact all of the data channels. If the answerer accepts the SDP | impact all of the data channels. If the answerer accepts the SDP | |||
offer then the answerer MUST close those data channels whose | offer then the answerer MUST close those data channels whose | |||
"a=dcmap:" and "a=dcsa:" attribute lines were excluded from the | "a=dcmap:" and "a=dcsa:" attribute lines were excluded from the | |||
received SDP offer, unless those data channels were already closed, | received SDP offer, unless those data channels were already closed, | |||
and the answerer MUST also exclude the corresponding attribute lines | and the answerer MUST also exclude the corresponding attribute lines | |||
in the answer. In addition to that, the SDP answerer MAY exclude | in the answer. In addition to that, the SDP answerer MAY exclude | |||
other data channels which were closed but not yet communicated to the | other data channels which were closed but not yet communicated to the | |||
peer. So, the offerer MUST inspect the answer to see if it has to | peer. So, the offerer MUST inspect the answer to see if it has to | |||
close other data channels which are now not included in the answer. | close other data channels that are now not included in the answer. | |||
If a new SDP offer/answer is used to close data channels then the | If a new SDP offer/answer is used to close data channels then the | |||
data channel(s) SHOULD only be closed by the answerer/offerer after a | data channel(s) SHOULD only be closed by the answerer/offerer after a | |||
successful SDP answer is sent/received. | successful SDP answer is sent/received. | |||
This delayed closure is RECOMMENDED in order to handle cases where | This delayed closure is RECOMMENDED in order to handle cases where | |||
a successful SDP answer is not received, in which case the state | a successful SDP answer is not received, in which case the state | |||
of the session SHOULD be kept per the last successful SDP offer/ | of the session SHOULD be kept per the last successful SDP offer/ | |||
answer. | answer. | |||
skipping to change at page 17, line 24 ¶ | skipping to change at page 17, line 21 ¶ | |||
5.2.5. Various SDP Offer/Answer Scenarios and Considerations | 5.2.5. Various SDP Offer/Answer Scenarios and Considerations | |||
SDP offer has no "a=dcmap:" attributes. | SDP offer has no "a=dcmap:" attributes. | |||
* Initial SDP offer: No data channel is negotiated yet. The DTLS | * Initial SDP offer: No data channel is negotiated yet. The DTLS | |||
association and SCTP association is negotiated and, if agreed, | association and SCTP association is negotiated and, if agreed, | |||
established as per [I-D.ietf-mmusic-sctp-sdp]. | established as per [I-D.ietf-mmusic-sctp-sdp]. | |||
* Subsequent SDP offer: All the SDP offer/answer negotiated data | * Subsequent SDP offer: All the SDP offer/answer negotiated data | |||
channels are expected be closed now. The DTLS/SCTP association | channels are expected to be closed now. The DTLS/SCTP | |||
remains open for SDP offer/answer or DCEP negotiation of data | association remains open for SDP offer/answer or DCEP | |||
channels. | negotiation of data channels. | |||
SDP answer has no "a=dcmap:" attributes. | SDP answer has no "a=dcmap:" attributes. | |||
* Initial SDP answer: Either the peer does not support "a=dcmap:" | * Initial SDP answer: Either the peer does not support "a=dcmap:" | |||
attributes or it rejected all the data channels. In either | attributes or it rejected all the data channels. In either | |||
case the offerer closes all the SDP offer/answer negotiated | case the offerer closes all the SDP offer/answer negotiated | |||
data channels that were open at the time of initial offer. The | data channels that were open at the time of initial offer. The | |||
DTLS association and SCTP association will still be setup. | DTLS association and SCTP association will still be setup. | |||
* Subsequent SDP answer: All the SDP offer/answer negotiated data | * Subsequent SDP answer: All the SDP offer/answer negotiated data | |||
channels are expected be closed now. The SCTP association | channels are expected to be closed now. The SCTP association | |||
remains open for future SDP offer/answer or DCEP negotiation of | remains open for future SDP offer/answer or DCEP negotiation of | |||
data channels. | data channels. | |||
SDP offer or answer has no "a=dcmap:" attributes but has "a=dcsa:" | SDP offer or answer has no "a=dcmap:" attributes but has "a=dcsa:" | |||
attributes. | attributes. | |||
* This is considered an error case. In this case the receiver of | * This is considered an error case. In this case the receiver of | |||
such an SDP offer or answer SHOULD ignore the "a=dcsa:" | such an SDP offer or answer SHOULD ignore the "a=dcsa:" | |||
attributes and SHOULD process the SDP offer or answer as per | attributes and SHOULD process the SDP offer or answer as per | |||
above case 'SDP offer has no "a=dcmap:" attributes' or case | above case 'SDP offer has no "a=dcmap:" attributes' or case | |||
skipping to change at page 19, line 4 ¶ | skipping to change at page 18, line 26 ¶ | |||
entire "a=dcsa" attribute line. | entire "a=dcsa" attribute line. | |||
SDP offer or answer has an "a=dcsa" attribute, whose subprotocol | SDP offer or answer has an "a=dcsa" attribute, whose subprotocol | |||
attribute is known, but whose subprotocol attribute semantic is | attribute is known, but whose subprotocol attribute semantic is | |||
not known for the data channel transport case. | not known for the data channel transport case. | |||
* The receiver of such an SDP offer or answer SHOULD ignore this | * The receiver of such an SDP offer or answer SHOULD ignore this | |||
entire "a=dcsa" attribute line. | entire "a=dcsa" attribute line. | |||
6. Examples | 6. Examples | |||
SDP offer: | SDP offer: | |||
m=application 10001 UDP/DTLS/SCTP webrtc-datachannel | m=application 10001 UDP/DTLS/SCTP webrtc-datachannel | |||
c=IN IP4 10.10.10.1 | c=IN IP4 192.0.2.1 | |||
a=max-message-size:100000 | a=max-message-size:100000 | |||
a=sctp-port:5000 | a=sctp-port:5000 | |||
a=setup:actpass | a=setup:actpass | |||
a=fingerprint:SHA-1 \ | a=fingerprint:SHA-1 \ | |||
4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB | 4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB | |||
a=dtls-id:4a7565 | a=dtls-id:4a7565 | |||
a=dcmap:0 subprotocol="BFCP";label="BFCP" | a=dcmap:0 subprotocol="BFCP";label="BFCP" | |||
SDP answer: | SDP answer: | |||
m=application 10002 UDP/DTLS/SCTP webrtc-datachannel | m=application 10002 UDP/DTLS/SCTP webrtc-datachannel | |||
c=IN IP4 10.10.10.2 | c=IN IP4 192.0.2.2 | |||
a=max-message-size:100000 | a=max-message-size:100000 | |||
a=sctp-port:5002 | a=sctp-port:5002 | |||
a=setup:passive | a=setup:passive | |||
a=fingerprint:SHA-1 \ | a=fingerprint:SHA-1 \ | |||
5B:AD:67:B1:3E:82:AC:3B:90:02:B1:DF:12:5D:CA:6B:3F:E5:54:FA | 5B:AD:67:B1:3E:82:AC:3B:90:02:B1:DF:12:5D:CA:6B:3F:E5:54:FA | |||
a=dtls-id:532d42 | a=dtls-id:532d42 | |||
Figure 1: Example 1 | Figure 1: Example 1 | |||
In the above example the SDP answerer rejected the data channel with | In the above example the SDP answerer rejected the data channel with | |||
stream id 0 either for explicit reasons or because it does not | stream id 0 either for explicit reasons or because it does not | |||
understand the "a=dcmap:" attribute. As a result the offerer will | understand the "a=dcmap:" attribute. As a result the offerer will | |||
close the data channel created with the SDP offer/answer negotiation | close the data channel created with the SDP offer/answer negotiation | |||
option. The SCTP association will still be setup over DTLS. At this | option. The SCTP association will still be setup over DTLS. At this | |||
point the offerer or the answerer may use DCEP negotiation to open | point the offerer or the answerer may use DCEP negotiation to open | |||
data channels. | data channels. | |||
SDP offer: | SDP offer: | |||
m=application 10001 UDP/DTLS/SCTP webrtc-datachannel | m=application 10001 UDP/DTLS/SCTP webrtc-datachannel | |||
c=IN IP4 10.10.10.1 | c=IN IP4 192.0.2.1 | |||
a=max-message-size:100000 | a=max-message-size:100000 | |||
a=sctp-port:5000 | a=sctp-port:5000 | |||
a=setup:actpass | a=setup:actpass | |||
a=fingerprint:SHA-1 \ | a=fingerprint:SHA-1 \ | |||
4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB | 4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB | |||
a=dtls-id:4a7565 | a=dtls-id:4a7565 | |||
a=dcmap:0 subprotocol="BFCP";label="BFCP" | a=dcmap:0 subprotocol="BFCP";label="BFCP" | |||
a=dcmap:2 subprotocol="MSRP";label="MSRP" | a=dcmap:2 subprotocol="MSRP";label="MSRP" | |||
a=dcsa:2 accept-types:message/cpim text/plain | a=dcsa:2 accept-types:message/cpim text/plain | |||
a=dcsa:2 path:msrp://alice.example.com:10001/2s93i93idj;dc | a=dcsa:2 path:msrp://alice.example.com:10001/2s93i93idj;dc | |||
SDP answer: | SDP answer: | |||
m=application 10002 UDP/DTLS/SCTP webrtc-datachannel | m=application 10002 UDP/DTLS/SCTP webrtc-datachannel | |||
c=IN IP4 10.10.10.2 | c=IN IP4 192.0.2.2 | |||
a=max-message-size:100000 | a=max-message-size:100000 | |||
a=sctp-port:5002 | a=sctp-port:5002 | |||
a=setup:passive | a=setup:passive | |||
a=fingerprint:SHA-1 \ | a=fingerprint:SHA-1 \ | |||
5B:AD:67:B1:3E:82:AC:3B:90:02:B1:DF:12:5D:CA:6B:3F:E5:54:FA | 5B:AD:67:B1:3E:82:AC:3B:90:02:B1:DF:12:5D:CA:6B:3F:E5:54:FA | |||
a=dtls-id:532d42 | a=dtls-id:532d42 | |||
a=dcmap:2 subprotocol="MSRP";label="MSRP" | a=dcmap:2 subprotocol="MSRP";label="MSRP" | |||
a=dcsa:2 accept-types:message/cpim text/plain | a=dcsa:2 accept-types:message/cpim text/plain | |||
a=dcsa:2 path:msrp://bob.example.com:10002/si438dsaodes;dc | a=dcsa:2 path:msrp://bob.example.com:10002/si438dsaodes;dc | |||
skipping to change at page 21, line 8 ¶ | skipping to change at page 20, line 8 ¶ | |||
data channel for BFCP and both offerer and answerer may start using | data channel for BFCP and both offerer and answerer may start using | |||
the MSRP data channel (after the SCTP association is set up). The | the MSRP data channel (after the SCTP association is set up). The | |||
data channel with stream id 0 is free and can be used for future DCEP | data channel with stream id 0 is free and can be used for future DCEP | |||
or SDP offer/answer negotiation. | or SDP offer/answer negotiation. | |||
Continuing the example in Figure 2. | Continuing the example in Figure 2. | |||
Subsequent SDP offer: | Subsequent SDP offer: | |||
m=application 10001 UDP/DTLS/SCTP webrtc-datachannel | m=application 10001 UDP/DTLS/SCTP webrtc-datachannel | |||
c=IN IP4 10.10.10.1 | c=IN IP4 192.0.2.1 | |||
a=max-message-size:100000 | a=max-message-size:100000 | |||
a=sctp-port:5000 | a=sctp-port:5000 | |||
a=setup:actpass | a=setup:actpass | |||
a=fingerprint:SHA-1 \ | a=fingerprint:SHA-1 \ | |||
4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB | 4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB | |||
a=dtls-id:4a7565 | a=dtls-id:4a7565 | |||
a=dcmap:4 subprotocol="MSRP";label="MSRP" | a=dcmap:4 subprotocol="MSRP";label="MSRP" | |||
a=dcsa:4 accept-types:message/cpim text/plain | a=dcsa:4 accept-types:message/cpim text/plain | |||
a=dcsa:4 path:msrp://alice.example.com:10001/2s93i93idj;dc | a=dcsa:4 path:msrp://alice.example.com:10001/2s93i93idj;dc | |||
Subsequent SDP answer: | Subsequent SDP answer: | |||
m=application 10002 UDP/DTLS/SCTP webrtc-datachannel | m=application 10002 UDP/DTLS/SCTP webrtc-datachannel | |||
c=IN IP4 10.10.10.2 | c=IN IP4 192.0.2.2 | |||
a=max-message-size:100000 | a=max-message-size:100000 | |||
a=sctp-port:5002 | a=sctp-port:5002 | |||
a=setup:passive | a=setup:passive | |||
a=fingerprint:SHA-1 \ | a=fingerprint:SHA-1 \ | |||
5B:AD:67:B1:3E:82:AC:3B:90:02:B1:DF:12:5D:CA:6B:3F:E5:54:FA | 5B:AD:67:B1:3E:82:AC:3B:90:02:B1:DF:12:5D:CA:6B:3F:E5:54:FA | |||
a=dtls-id:532d42 | a=dtls-id:532d42 | |||
a=dcmap:4 subprotocol="MSRP";label="MSRP" | a=dcmap:4 subprotocol="MSRP";label="MSRP" | |||
a=dcsa:4 accept-types:message/cpim text/plain | a=dcsa:4 accept-types:message/cpim text/plain | |||
a=dcsa:4 path:msrp://bob.example.com:10002/si438dsaodes;dc | a=dcsa:4 path:msrp://bob.example.com:10002/si438dsaodes;dc | |||
skipping to change at page 23, line 49 ¶ | skipping to change at page 22, line 49 ¶ | |||
| O/A procedures: | As per Section 5.2 | | | O/A procedures: | As per Section 5.2 | | |||
| Mux category: | SPECIAL. See Section 5.1.2.2 | | | Mux category: | SPECIAL. See Section 5.1.2.2 | | |||
| Reference: | RFCXXXX | | | Reference: | RFCXXXX | | |||
+-----------------------+-------------------------------------------+ | +-----------------------+-------------------------------------------+ | |||
8.3. New Usage Level | 8.3. New Usage Level | |||
This document introduces a new "Data Channel Subprotocol Attribute" | This document introduces a new "Data Channel Subprotocol Attribute" | |||
(dcsa) usage level to the SDP to the IANA SDP att-field registry. | (dcsa) usage level to the SDP to the IANA SDP att-field registry. | |||
SDP attributes that are defined for use at the dcsa usage level only | SDP attributes that are defined for use at the dcsa usage level only | |||
shall use the dcsa usage level when registering the attribute. If | SHALL use the dcsa usage level when registering the attribute. If | |||
existing media attributes are used in a datachannel subprotocol | existing media attributes are used in a datachannel subprotocol | |||
specific way (Section 5.1.2.1), then a new dcsa usage level MUST be | specific way (Section 5.1.2.1), then a new dcsa usage level MUST be | |||
defined for the existing media attribute. Where the SDP attribute is | defined for the existing media attribute. Where the SDP attribute is | |||
applicable to a particular subprotocol/s this SHALL also be | applicable to a particular subprotocol/s this SHALL also be | |||
registered by indicating the applicable subprotocol identifiers (see | registered by indicating the applicable subprotocol identifiers (see | |||
Section 8.1) along with the dcsa usage level. E.g. | Section 8.1) along with the dcsa usage level. E.g. | |||
+-----------------------+-------------------------------------------+ | +-----------------------+-------------------------------------------+ | |||
| ... | ... | | | ... | ... | | |||
| Usage level: | dcsa(MSRP) | | | Usage level: | dcsa(MSRP) | | |||
skipping to change at page 24, line 25 ¶ | skipping to change at page 23, line 25 ¶ | |||
The authors wish to acknowledge the borrowing of ideas from other | The authors wish to acknowledge the borrowing of ideas from other | |||
internet drafts by Salvatore Loreto, Gonzalo Camarillo, Peter Dunkley | internet drafts by Salvatore Loreto, Gonzalo Camarillo, Peter Dunkley | |||
and Gavin Llewellyn, and to thank Flemming Andreasen, Roni Even, | and Gavin Llewellyn, and to thank Flemming Andreasen, Roni Even, | |||
Christian Groves, Gunnar Hellstrom, Christer Holmberg, Paul Kyzivat, | Christian Groves, Gunnar Hellstrom, Christer Holmberg, Paul Kyzivat, | |||
Jonathan Lennox, Uwe Rauschenbach and Roman Shpount for their | Jonathan Lennox, Uwe Rauschenbach and Roman Shpount for their | |||
invaluable comments. | invaluable comments. | |||
10. CHANGE LOG | 10. CHANGE LOG | |||
10.1. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-10' | 10.1. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-11' | |||
o dcmap-stream-id syntax change to limit size to 5 digits. | ||||
o Add missing 'x' prefix to quoted-visible syntax. | ||||
o Align SDP offerer and answerer handling when both max-retr and | ||||
max-time are present. | ||||
o Use of TEST-NET-1 ip addresses in examples. | ||||
o Add missing a=dtls-id in one example. | ||||
10.2. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-10' | ||||
o Removal of the "a=connection" attribute lines from all SDP | o Removal of the "a=connection" attribute lines from all SDP | |||
examples. | examples. | |||
10.2. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-09' | 10.3. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-09' | |||
o In the introduction: | o In the introduction: | |||
* Replacement of the sentence "The RTCWeb working group has | * Replacement of the sentence "The RTCWeb working group has | |||
defined the concept of bi-directional data channels running on | defined the concept of bi-directional data channels running on | |||
top of SCTP/DTLS (SCTP over the Datagram Transport Layer | top of SCTP/DTLS (SCTP over the Datagram Transport Layer | |||
Security protocol)" with "The RTCWeb working group has defined | Security protocol)" with "The RTCWeb working group has defined | |||
the concept of bi-directional data channels running on top of | the concept of bi-directional data channels running on top of | |||
the Stream Control Transmission Protocol (SCTP)". | the Stream Control Transmission Protocol (SCTP)". | |||
* Addition of following sentences to the second paragraph: "These | * Addition of following sentences to the second paragraph: "These | |||
procedures are based on generic SDP offer/answer negotiation | procedures are based on generic SDP offer/answer negotiation | |||
rules for SCTP based media transport as specified in | rules for SCTP based media transport as specified in | |||
[I-D.ietf-mmusic-sctp-sdp] for the SDP "m" line proto values | [I-D.ietf-mmusic-sctp-sdp] for the SDP "m" line proto values | |||
UDP/DTLS/SCTP and TCP/DTLS/SCTP. In future data channels could | UDP/DTLS/SCTP and TCP/DTLS/SCTP. In the future, data channels | |||
be defined over other SCTP based protocols, such as SCTP over | could be defined over other SCTP based protocols, such as SCTP | |||
IP. However, corresponding potential other "m" line proto | over IP. However, corresponding potential other "m" line proto | |||
values are not considered in this document." | values are not considered in this document." | |||
o Replacement of "DTLS connection" with "DTLS association" | o Replacement of "DTLS connection" with "DTLS association" | |||
throughout the document. | throughout the document. | |||
o In sections Section 5.1.1.2 and Section 5.1.2.2 removal of the | o In sections Section 5.1.1.2 and Section 5.1.2.2 removal of the | |||
sentences "This document also does not specify multiplexing rules | sentences "This document also does not specify multiplexing rules | |||
for this attribute for SCTP or SCTP/DTLS proto values". | for this attribute for SCTP or SCTP/DTLS proto values". | |||
o In the text related to "Subsequent SDP answer" in section | o In the text related to "Subsequent SDP answer" in section | |||
skipping to change at page 25, line 23 ¶ | skipping to change at page 24, line 37 ¶ | |||
o In the text after the second SDP answer in section Section 6 | o In the text after the second SDP answer in section Section 6 | |||
replacement of "... (after SCTP/DTLS association is setup)" with | replacement of "... (after SCTP/DTLS association is setup)" with | |||
"... (after the SCTP association is set up)". | "... (after the SCTP association is set up)". | |||
o Addition of [I-D.ietf-mmusic-dtls-sdp] to the list of informative | o Addition of [I-D.ietf-mmusic-dtls-sdp] to the list of informative | |||
references. | references. | |||
o Addition of "a=dtls-id" attribute lines to the SDP offer/answer | o Addition of "a=dtls-id" attribute lines to the SDP offer/answer | |||
examples in Section 6. | examples in Section 6. | |||
10.3. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-08' | 10.4. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-08' | |||
o Addition of definition of "data channel subprotocol" to Section 3 | o Addition of definition of "data channel subprotocol" to Section 3 | |||
as proposed on the MMUSIC list, https://www.ietf.org/mail- | as proposed on the MMUSIC list, https://www.ietf.org/mail- | |||
archive/web/mmusic/current/msg15827.html. | archive/web/mmusic/current/msg15827.html. | |||
o Addition of [I-D.ietf-mmusic-rfc4566bis] to list of normative | o Addition of [I-D.ietf-mmusic-rfc4566bis] to list of normative | |||
references. | references. | |||
o Updates of tables in Section 8.2.1 and Section 8.2.2 as per | o Updates of tables in Section 8.2.1 and Section 8.2.2 as per | |||
section 8.2.4 of [I-D.ietf-mmusic-rfc4566bis]. | section 8.2.4 of [I-D.ietf-mmusic-rfc4566bis]. | |||
o Addition of new Section 8.3. | o Addition of new Section 8.3. | |||
10.4. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-07' | 10.5. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-07' | |||
o Addition of two new paragraphs to Section 5.1.2.1 regarding | o Addition of two new paragraphs to Section 5.1.2.1 regarding | |||
subprotocol attribute relationship with transport protocol. | subprotocol attribute relationship with transport protocol. | |||
o Addition of a note to Section 8.1 regarding subprotocols | o Addition of a note to Section 8.1 regarding subprotocols | |||
simultaneously defined for data channel and Websocket usage. | simultaneously defined for data channel and Websocket usage. | |||
o Addition of two further SDP offer/answer considerations to | o Addition of two further SDP offer/answer considerations to | |||
Section 5.2.5 regarding unknown subprotocol attributes and known | Section 5.2.5 regarding unknown subprotocol attributes and known | |||
subprotocol attributes with unknown data channel transport related | subprotocol attributes with unknown data channel transport related | |||
semantic. | semantic. | |||
10.5. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-06' | 10.6. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-06' | |||
o Changes addressing Christian Groves's WGLC review comments raised | o Changes addressing Christian Groves's WGLC review comments raised | |||
in http://www.ietf.org/mail-archive/web/mmusic/current/ | in http://www.ietf.org/mail-archive/web/mmusic/current/ | |||
msg15357.html and http://www.ietf.org/mail- | msg15357.html and http://www.ietf.org/mail- | |||
archive/web/mmusic/current/msg15359.html. | archive/web/mmusic/current/msg15359.html. | |||
10.6. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-05' | 10.7. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-05' | |||
o In IANA registration Section 8.2.1 and Section 8.2.2 replacement | o In IANA registration Section 8.2.1 and Section 8.2.2 replacement | |||
of contact name and e-mail address with "MMUSIC Chairs" and | of contact name and e-mail address with "MMUSIC Chairs" and | |||
"mmusic-chairs@ietf.org". | "mmusic-chairs@ietf.org". | |||
o In Section 5.1.2.1 replacement of "Thus in the example above, the | o In Section 5.1.2.1 replacement of "Thus in the example above, the | |||
original attribute line "a=accept- types:text/plain" is | original attribute line "a=accept- types:text/plain" is | |||
represented by the attribute line "a=dcsa:2 accept-types:text/ | represented by the attribute line "a=dcsa:2 accept-types:text/ | |||
plain", which specifies that this instance of MSRP being | plain", which specifies that this instance of MSRP being | |||
transported on the SCTP association using the data channel with | transported on the SCTP association using the data channel with | |||
skipping to change at page 27, line 5 ¶ | skipping to change at page 26, line 14 ¶ | |||
o Move of the last but one paragraph of Section 5.1.2.1 starting | o Move of the last but one paragraph of Section 5.1.2.1 starting | |||
with "The same syntax applies to ..." right in front of the formal | with "The same syntax applies to ..." right in front of the formal | |||
syntax definition of the "dcsa" attribute. | syntax definition of the "dcsa" attribute. | |||
o Modifications of the text in Section 5.1.1.2 and Section 5.1.2.2 | o Modifications of the text in Section 5.1.1.2 and Section 5.1.2.2 | |||
in order not to explicitly restrict usage of the "a=dcmap:" and | in order not to explicitly restrict usage of the "a=dcmap:" and | |||
"a=dcsa:" attributes to "m" lines with proto values "UDP/DTLS/ | "a=dcsa:" attributes to "m" lines with proto values "UDP/DTLS/ | |||
SCTP" or "TCP/DTLS/SCTP". | SCTP" or "TCP/DTLS/SCTP". | |||
10.7. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-04' | 10.8. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-04' | |||
o In Section 5.1.1.5 the first (and only) paragraph was "The | o In Section 5.1.1.5 the first (and only) paragraph was "The | |||
'subprotocol' parameter indicates which protocol the client | 'subprotocol' parameter indicates which protocol the client | |||
expects to exchange via the channel. 'Subprotocol' is an optional | expects to exchange via the channel. 'Subprotocol' is an optional | |||
parameter. If the 'subprotocol' parameter is not present, then | parameter. If the 'subprotocol' parameter is not present, then | |||
its value defaults to the empty string." Replacement of this | its value defaults to the empty string." Replacement of this | |||
paragraph with following two paragraphs: | paragraph with following two paragraphs: | |||
* The 'subprotocol' parameter indicates which protocol the client | * The 'subprotocol' parameter indicates which protocol the client | |||
expects to exchange via the channel. This parameter maps to | expects to exchange via the channel. This parameter maps to | |||
skipping to change at page 27, line 46 ¶ | skipping to change at page 27, line 8 ¶ | |||
o Addition of new Section 5.1.1.2 describing the mux category of the | o Addition of new Section 5.1.1.2 describing the mux category of the | |||
dcmap SDP attribute. This section and the new "a=dcsa:" attribute | dcmap SDP attribute. This section and the new "a=dcsa:" attribute | |||
related mux category section are similar to the "Mux Category" | related mux category section are similar to the "Mux Category" | |||
sections of the "a=sctp-port:" and "a=max-message-size:" | sections of the "a=sctp-port:" and "a=max-message-size:" | |||
attributes in [I-D.ietf-mmusic-sctp-sdp]. | attributes in [I-D.ietf-mmusic-sctp-sdp]. | |||
o Addition of new Section 5.1.2.2 describing the mux category of the | o Addition of new Section 5.1.2.2 describing the mux category of the | |||
dcsa SDP attribute. | dcsa SDP attribute. | |||
10.8. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-03' | 10.9. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-03' | |||
o In Section 1 replacement of "RTCWeb leaves it open for other | o In Section 1 replacement of "RTCWeb leaves it open for other | |||
applications to use data channels and its in-band DCEP or out-of- | applications to use data channels and its in-band DCEP or out-of- | |||
band non-DCEP protocols for creating them" with "... to use data | band non-DCEP protocols for creating them" with "... to use data | |||
channels and its in-band DCEP or other in-band or out-of-band | channels and its in-band DCEP or other in-band or out-of-band | |||
protocols for creating them". Additionally replacement of "In | protocols for creating them". Additionally replacement of "In | |||
particular, the SDP offer generated by the application includes no | particular, the SDP offer generated by the application includes no | |||
channel-specific information" with "... generated by the RTCweb | channel-specific information" with "... generated by the RTCweb | |||
data channel stack includes no channel-specific information". | data channel stack includes no channel-specific information". | |||
skipping to change at page 29, line 8 ¶ | skipping to change at page 28, line 17 ¶ | |||
o In Section 5.2.1 replacement of "However, an SDP offer/answer | o In Section 5.2.1 replacement of "However, an SDP offer/answer | |||
exchange MUST NOT be initiated if the associated SCTP stream is | exchange MUST NOT be initiated if the associated SCTP stream is | |||
already negotiated via DCEP" with "However, an SCTP stream MUST | already negotiated via DCEP" with "However, an SCTP stream MUST | |||
NOT be referenced in a dcmap or dcsa attribute of an SDP offer/ | NOT be referenced in a dcmap or dcsa attribute of an SDP offer/ | |||
answer exchange if the associated SCTP stream has already been | answer exchange if the associated SCTP stream has already been | |||
negotiated via DCEP". | negotiated via DCEP". | |||
o In the examples in Section 6 addition of the previously missing | o In the examples in Section 6 addition of the previously missing | |||
colons to the "a=sctp-port" attribute lines. | colons to the "a=sctp-port" attribute lines. | |||
10.9. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-02' | 10.10. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-02' | |||
o Move of reference [I-D.ietf-rtcweb-jsep] from the list of | o Move of reference [I-D.ietf-rtcweb-jsep] from the list of | |||
normative references to the list of informative references. | normative references to the list of informative references. | |||
o Addition of [IANA-SDP-Parameters] to the list of informative | o Addition of [IANA-SDP-Parameters] to the list of informative | |||
references and addition of following two sentences to the first | references and addition of following two sentences to the first | |||
paragraph after the ABNF definition: "Note however that not all | paragraph after the ABNF definition: "Note however that not all | |||
SDP attributes are suitable as "a=dcsa:" parameter. | SDP attributes are suitable as "a=dcsa:" parameter. | |||
[IANA-SDP-Parameters] contains the lists of IANA registered | [IANA-SDP-Parameters] contains the lists of IANA registered | |||
session and media level or media level only SDP attributes." | session and media level or media level only SDP attributes." | |||
skipping to change at page 30, line 10 ¶ | skipping to change at page 29, line 19 ¶ | |||
a=dcmap". | a=dcmap". | |||
o Move of reference [WebRtcAPI] from list of normative references to | o Move of reference [WebRtcAPI] from list of normative references to | |||
list of informative references. | list of informative references. | |||
o Removal of almost all text parts, which discussed JavaScript or | o Removal of almost all text parts, which discussed JavaScript or | |||
other API specific aspects. Such API specific aspects were mainly | other API specific aspects. Such API specific aspects were mainly | |||
discussed in sub-sections of Section 5 and Section 5 of draft- | discussed in sub-sections of Section 5 and Section 5 of draft- | |||
ietf-mmusic-data-channel-sdpneg-02. | ietf-mmusic-data-channel-sdpneg-02. | |||
10.10. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-01' | 10.11. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-01' | |||
o New Section 4 regarding applicability to SDP offer/answer only. | o New Section 4 regarding applicability to SDP offer/answer only. | |||
o Addition of new Section 8.1 "Subprotocol identifiers" as | o Addition of new Section 8.1 "Subprotocol identifiers" as | |||
subsection of the "IANA Considerations" related Section 8. Also | subsection of the "IANA Considerations" related Section 8. Also | |||
removal of the temporary note "To be completed. As [I-D.ietf- | removal of the temporary note "To be completed. As [I-D.ietf- | |||
rtcweb-data-protocol] this document should refer to IANA's | rtcweb-data-protocol] this document should refer to IANA's | |||
WebSocket Subprotocol Name Registry defined in [RFC6455]." | WebSocket Subprotocol Name Registry defined in [RFC6455]." | |||
o In Section 5.2.2: | o In Section 5.2.2: | |||
skipping to change at page 31, line 11 ¶ | skipping to change at page 30, line 22 ¶ | |||
o In Section 5.2.5 the description of bullet point "SDP offer has no | o In Section 5.2.5 the description of bullet point "SDP offer has no | |||
a=dcmap attributes - Initial SDP offer:" was "Initial SDP offer: | a=dcmap attributes - Initial SDP offer:" was "Initial SDP offer: | |||
No data channel negotiated yet." Replacement of this description | No data channel negotiated yet." Replacement of this description | |||
with "Initial SDP offer: No data channel is negotiated yet. The | with "Initial SDP offer: No data channel is negotiated yet. The | |||
DTLS connection and SCTP association is negotiated and, if agreed, | DTLS connection and SCTP association is negotiated and, if agreed, | |||
established as per [I-D.ietf-mmusic-sctp-sdp]." | established as per [I-D.ietf-mmusic-sctp-sdp]." | |||
o In Section 5.2.5 in both bullet points related to "Subsequent SDP | o In Section 5.2.5 in both bullet points related to "Subsequent SDP | |||
offer" and "Subsequent SDP answer" replacement of "All the | offer" and "Subsequent SDP answer" replacement of "All the | |||
externally negotiated data channels must be closed now." with "All | externally negotiated data channels must be closed now." with "All | |||
the externally negotiated data channels are expected be closed | the externally negotiated data channels are expected to be closed | |||
now.". | now.". | |||
o In Appendix A.2.2's sixth paragraph beginning with "[ASSUMPTION]" | o In Appendix A.2.2's sixth paragraph beginning with "[ASSUMPTION]" | |||
replacement of the two occurrences of "must" with "MUST". | replacement of the two occurrences of "must" with "MUST". | |||
o In Section 5.1.1.1 in the definition of the ABNF rule "dcmap-opt" | o In Section 5.1.1.1 in the definition of the ABNF rule "dcmap-opt" | |||
there was a comment saying that "Either only maxretr-opt or | there was a comment saying that "Either only maxretr-opt or | |||
maxtime-opt is present. Both MUST not be present." Removal of | maxtime-opt is present. Both MUST not be present." Removal of | |||
the second normative sentence and instead addition of following | the second normative sentence and instead addition of following | |||
new paragraph to the end of this section: "Within an 'a=dcmap' | new paragraph to the end of this section: "Within an 'a=dcmap' | |||
skipping to change at page 32, line 15 ¶ | skipping to change at page 31, line 26 ¶ | |||
* In the last but one paragraph replacement of "must" with "The | * In the last but one paragraph replacement of "must" with "The | |||
application MUST also close...". | application MUST also close...". | |||
o In Section 5.1.2 addition of following note after the formal | o In Section 5.1.2 addition of following note after the formal | |||
definition of the 'a=dcsa' attribute: "Note that the above | definition of the 'a=dcsa' attribute: "Note that the above | |||
reference to RFC 4566 defines were the attribute definition can be | reference to RFC 4566 defines were the attribute definition can be | |||
found; it does not provide any limitation on support of attributes | found; it does not provide any limitation on support of attributes | |||
defined in other documents in accordance with this attribute | defined in other documents in accordance with this attribute | |||
definition." | definition." | |||
10.11. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-00' | 10.12. Changes against 'draft-ietf-mmusic-data-channel-sdpneg-00' | |||
o In Section 3 "WebRTC data channel" was defined as "A bidirectional | o In Section 3 "WebRTC data channel" was defined as "A bidirectional | |||
channel consisting of paired SCTP outbound and inbound streams." | channel consisting of paired SCTP outbound and inbound streams." | |||
Replacement of this definition with "Data channel: A WebRTC data | Replacement of this definition with "Data channel: A WebRTC data | |||
channel as specified in [I-D.ietf-rtcweb-data-channel]", and | channel as specified in [I-D.ietf-rtcweb-data-channel]", and | |||
consistent usage of "data channel" in the remainder of the | consistent usage of "data channel" in the remainder of the | |||
document including the document's headline." | document including the document's headline." | |||
o In Section 5 removal of following note: 'OPEN ISSUE: The syntax in | o In Section 5 removal of following note: 'OPEN ISSUE: The syntax in | |||
[I-D.ietf-mmusic-sctp-sdp] may change as that document progresses. | [I-D.ietf-mmusic-sctp-sdp] may change as that document progresses. | |||
skipping to change at page 35, line 5 ¶ | skipping to change at page 34, line 11 ¶ | |||
to handle cases where a successful SDP answer is not received, in | to handle cases where a successful SDP answer is not received, in | |||
which case the state of the session SHOULD be kept per the last | which case the state of the session SHOULD be kept per the last | |||
successful SDP offer/answer." | successful SDP offer/answer." | |||
o Although dedicated to "a=dcmap" and "a=dcsa" SDP syntax aspects | o Although dedicated to "a=dcmap" and "a=dcsa" SDP syntax aspects | |||
Section 5.1.1 contained already procedural descriptions related to | Section 5.1.1 contained already procedural descriptions related to | |||
data channel reliability negotiation. Creation of new | data channel reliability negotiation. Creation of new | |||
Section 5.2.2 and moval of reliability negotiation related text to | Section 5.2.2 and moval of reliability negotiation related text to | |||
this new section. | this new section. | |||
10.12. Changes against 'draft-ejzak-mmusic-data-channel-sdpneg-02' | 10.13. Changes against 'draft-ejzak-mmusic-data-channel-sdpneg-02' | |||
o Removal of note "[ACTION ITEM]" from section "subprotocol | o Removal of note "[ACTION ITEM]" from section "subprotocol | |||
parameter". As [I-D.ietf-rtcweb-data-protocol] this document | parameter". As [I-D.ietf-rtcweb-data-protocol] this document | |||
should refer to IANA's WebSocket Subprotocol Name Registry defined | should refer to IANA's WebSocket Subprotocol Name Registry defined | |||
in [RFC6455]. | in [RFC6455]. | |||
o In whole document, replacement of "unreliable" with "partially | o In whole document, replacement of "unreliable" with "partially | |||
reliable", which is used in [I-D.ietf-rtcweb-data-channel] and in | reliable", which is used in [I-D.ietf-rtcweb-data-channel] and in | |||
[I-D.ietf-rtcweb-data-protocol] in most places. | [I-D.ietf-rtcweb-data-protocol] in most places. | |||
skipping to change at page 36, line 7 ¶ | skipping to change at page 35, line 14 ¶ | |||
o In the "Examples" section, in the first two SDP offer examples in | o In the "Examples" section, in the first two SDP offer examples in | |||
the a=dcmap attribute lines 'label="BGCP"' was replaced with | the a=dcmap attribute lines 'label="BGCP"' was replaced with | |||
'label="BFCP"'. | 'label="BFCP"'. | |||
o In all examples, the "m" line proto value "DTLS/SCTP" was replaced | o In all examples, the "m" line proto value "DTLS/SCTP" was replaced | |||
with "UDP/DTLS/SCTP" and the "a=fmtp" attribute lines were | with "UDP/DTLS/SCTP" and the "a=fmtp" attribute lines were | |||
replaced with "a=max-message-size" attribute lines, as per draft- | replaced with "a=max-message-size" attribute lines, as per draft- | |||
ietf-mmusic-sctp-sdp-12. | ietf-mmusic-sctp-sdp-12. | |||
10.13. Changes against '-01' | 10.14. Changes against '-01' | |||
o Formal syntax for dcmap and dcsa attribute lines. | o Formal syntax for dcmap and dcsa attribute lines. | |||
o Making subprotocol as an optional parameter in dcmap. | o Making subprotocol as an optional parameter in dcmap. | |||
o Specifying disallowed parameter combinations for max-time and max- | o Specifying disallowed parameter combinations for max-time and max- | |||
retr. | retr. | |||
o Clarifications on WebRTC data channel close procedures. | o Clarifications on WebRTC data channel close procedures. | |||
10.14. Changes against '-00' | 10.15. Changes against '-00' | |||
o Revisions to identify difference between internal and external | o Revisions to identify difference between internal and external | |||
negotiation and their usage. | negotiation and their usage. | |||
o Introduction of more generic terminology, e.g. "application" | o Introduction of more generic terminology, e.g. "application" | |||
instead of "browser". | instead of "browser". | |||
o Clarification of how "max-retr and max-time affect the usage of | o Clarification of how "max-retr and max-time affect the usage of | |||
unreliable and reliable WebRTC data channels. | unreliable and reliable WebRTC data channels. | |||
skipping to change at page 37, line 30 ¶ | skipping to change at page 36, line 34 ¶ | |||
[I-D.ietf-rtcweb-data-channel] | [I-D.ietf-rtcweb-data-channel] | |||
Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data | Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data | |||
Channels", draft-ietf-rtcweb-data-channel-13 (work in | Channels", draft-ietf-rtcweb-data-channel-13 (work in | |||
progress), January 2015. | progress), January 2015. | |||
[I-D.ietf-mmusic-sctp-sdp] | [I-D.ietf-mmusic-sctp-sdp] | |||
Holmberg, C., Shpount, R., Loreto, S., and G. Camarillo, | Holmberg, C., Shpount, R., Loreto, S., and G. Camarillo, | |||
"Session Description Protocol (SDP) Offer/Answer | "Session Description Protocol (SDP) Offer/Answer | |||
Procedures For Stream Control Transmission Protocol (SCTP) | Procedures For Stream Control Transmission Protocol (SCTP) | |||
over Datagram Transport Layer Security (DTLS) Transport.", | over Datagram Transport Layer Security (DTLS) Transport.", | |||
draft-ietf-mmusic-sctp-sdp-20 (work in progress), December | draft-ietf-mmusic-sctp-sdp-25 (work in progress), March | |||
2016. | 2017. | |||
[I-D.ietf-mmusic-sdp-mux-attributes] | [I-D.ietf-mmusic-sdp-mux-attributes] | |||
Nandakumar, S., "A Framework for SDP Attributes when | Nandakumar, S., "A Framework for SDP Attributes when | |||
Multiplexing", draft-ietf-mmusic-sdp-mux-attributes-16 | Multiplexing", draft-ietf-mmusic-sdp-mux-attributes-16 | |||
(work in progress), December 2016. | (work in progress), December 2016. | |||
11.2. Informative References | 11.2. Informative References | |||
[I-D.ietf-rtcweb-data-protocol] | [I-D.ietf-rtcweb-data-protocol] | |||
Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data Channel | Jesup, R., Loreto, S., and M. Tuexen, "WebRTC Data Channel | |||
Establishment Protocol", draft-ietf-rtcweb-data- | Establishment Protocol", draft-ietf-rtcweb-data- | |||
protocol-09 (work in progress), January 2015. | protocol-09 (work in progress), January 2015. | |||
[I-D.ietf-mmusic-dtls-sdp] | [I-D.ietf-mmusic-dtls-sdp] | |||
Holmberg, C. and R. Shpount, "Using the SDP Offer/Answer | Holmberg, C. and R. Shpount, "Using the SDP Offer/Answer | |||
Mechanism for DTLS", draft-ietf-mmusic-dtls-sdp-15 (work | Mechanism for DTLS", draft-ietf-mmusic-dtls-sdp-22 (work | |||
in progress), October 2016. | in progress), March 2017. | |||
[RFC4960] Stewart, R., Ed., "Stream Control Transmission Protocol", | [RFC4960] Stewart, R., Ed., "Stream Control Transmission Protocol", | |||
RFC 4960, DOI 10.17487/RFC4960, September 2007, | RFC 4960, DOI 10.17487/RFC4960, September 2007, | |||
<http://www.rfc-editor.org/info/rfc4960>. | <http://www.rfc-editor.org/info/rfc4960>. | |||
[IANA-SDP-Parameters] | [IANA-SDP-Parameters] | |||
"Session Description Protocol (SDP) Parameters", Internet | "Session Description Protocol (SDP) Parameters", Internet | |||
Assigned Numbers Authority Protocol Assignments Session | Assigned Numbers Authority Protocol Assignments Session | |||
Description Protocol (SDP) Parameters, | Description Protocol (SDP) Parameters, | |||
<http://www.iana.org/assignments/sdp-parameters/ | <http://www.iana.org/assignments/sdp-parameters/ | |||
skipping to change at page 38, line 39 ¶ | skipping to change at page 37, line 43 ¶ | |||
priority). The application also specifies if it wants to make use of | priority). The application also specifies if it wants to make use of | |||
the negotiation using the DCEP [I-D.ietf-rtcweb-data-protocol], or if | the negotiation using the DCEP [I-D.ietf-rtcweb-data-protocol], or if | |||
the application intends to negotiate data channels using the SDP | the application intends to negotiate data channels using the SDP | |||
offer/answer protocol. | offer/answer protocol. | |||
In any case, the SDP offer generated by the application is per | In any case, the SDP offer generated by the application is per | |||
[I-D.ietf-mmusic-sctp-sdp]. In brief, it contains one "m" line for | [I-D.ietf-mmusic-sctp-sdp]. In brief, it contains one "m" line for | |||
the SCTP association on top of which data channels will run: | the SCTP association on top of which data channels will run: | |||
m=application 54111 UDP/DTLS/SCTP webrtc-datachannel | m=application 54111 UDP/DTLS/SCTP webrtc-datachannel | |||
c=IN IP4 79.97.215.79 | c=IN IP4 10.10.10.1 | |||
a=max-message-size:100000 | a=max-message-size:100000 | |||
a=sctp-port:5000 | a=sctp-port:5000 | |||
a=dtls-id:abcdef1234567 | ||||
a=setup:actpass | a=setup:actpass | |||
a=fingerprint:SHA-1 \ | a=fingerprint:SHA-1 \ | |||
4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB | 4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB | |||
Note: A WebRTC application will only use "m" line format "webrtc- | Note: A WebRTC application will only use "m" line format "webrtc- | |||
datachannel", and will not use other formats in the "m" line for | datachannel", and will not use other formats in the "m" line for | |||
other protocols such as t38. [I-D.ietf-mmusic-sctp-sdp] supports | other protocols such as t38. [I-D.ietf-mmusic-sctp-sdp] supports | |||
only one SCTP association to be established on top of a DTLS | only one SCTP association to be established on top of a DTLS | |||
association. | association. | |||
Note: The above SDP media description does not contain any channel- | Note: The above SDP media description does not contain any channel- | |||
specific information. | specific information. | |||
A.1. Stream Identifier Numbering | A.1. Stream Identifier Numbering | |||
Independently from the requested type of negotiation, the application | Independently from the requested type of negotiation, the application | |||
creating a data channel can either pass to the data channel stack the | creating a data channel can either pass the stream identifier to the | |||
stream identifier to assign to the data channel or else let the data | data channel stack to assign to the data channel or else let the data | |||
channel stack pick one identifier from the unused ones. | channel stack pick one identifier from the unused ones. | |||
To avoid glare situations, each endpoint can moreover own an | To avoid glare situations, each endpoint can moreover own an | |||
exclusive set of stream identifiers, in which case an endpoint can | exclusive set of stream identifiers, in which case an endpoint can | |||
only create a data channel with a stream identifier it owns. | only create a data channel with a stream identifier it owns. | |||
Which set of stream identifiers is owned by which endpoint is | Which set of stream identifiers is owned by which endpoint is | |||
determined by convention or other means. | determined by convention or other means. | |||
For data channels negotiated with the DCEP, one endpoint owns by | Note:For data channels negotiated with the DCEP, one endpoint owns | |||
convention the even stream identifiers, whereas the other owns the | by convention the even stream identifiers, whereas the other owns | |||
odd stream identifiers, as defined in | the odd stream identifiers, as defined in | |||
[I-D.ietf-rtcweb-data-protocol]. | [I-D.ietf-rtcweb-data-protocol]. | |||
For data channels negotiated via some protocol different from | Note:For data channels negotiated via some protocol different from | |||
DCEP, no convention is defined by default. | DCEP, no convention is defined by default. | |||
A.2. Generic Data Channel Negotiation Not Using DCEP | A.2. Generic Data Channel Negotiation Not Using DCEP | |||
A.2.1. Overview | A.2.1. Overview | |||
DCEP negotiation only provides for negotiation of data channel | DCEP negotiation only provides for negotiation of data channel | |||
transport parameters and does not provide for negotiation of | transport parameters and does not provide for negotiation of | |||
subprotocol specific parameters. DCEP-less data channel negotiation | subprotocol specific parameters. DCEP-less data channel negotiation | |||
can be defined to allow negotiation of parameters beyond those | can be defined to allow negotiation of parameters beyond those | |||
End of changes. 61 change blocks. | ||||
103 lines changed or deleted | 118 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |