| rfc8856v4.txt | rfc8856.txt | |||
|---|---|---|---|---|
| Internet Engineering Task Force (IETF) G. Camarillo | Internet Engineering Task Force (IETF) G. Camarillo | |||
| Request for Comments: 8856 Ericsson | Request for Comments: 8856 Ericsson | |||
| Obsoletes: 4583 T. Kristensen | Obsoletes: 4583 T. Kristensen | |||
| Category: Standards Track Jotron | Category: Standards Track Jotron | |||
| ISSN: 2070-1721 C. Holmberg | ISSN: 2070-1721 C. Holmberg | |||
| Ericsson | Ericsson | |||
| December 2020 | January 2021 | |||
| Session Description Protocol (SDP) Format for Binary Floor Control | Session Description Protocol (SDP) Format for Binary Floor Control | |||
| Protocol (BFCP) Streams | Protocol (BFCP) Streams | |||
| Abstract | Abstract | |||
| This document defines the Session Description Protocol (SDP) offer/ | This document defines the Session Description Protocol (SDP) offer/ | |||
| answer procedures for negotiating and establishing Binary Floor | answer procedures for negotiating and establishing Binary Floor | |||
| Control Protocol (BFCP) streams. | Control Protocol (BFCP) streams. | |||
| skipping to change at line 37 ¶ | skipping to change at line 37 ¶ | |||
| received public review and has been approved for publication by the | received public review and has been approved for publication by the | |||
| Internet Engineering Steering Group (IESG). Further information on | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | Internet Standards is available in Section 2 of RFC 7841. | |||
| Information about the current status of this document, any errata, | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | and how to provide feedback on it may be obtained at | |||
| https://www.rfc-editor.org/info/rfc8856. | https://www.rfc-editor.org/info/rfc8856. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2021 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 | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://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 | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| skipping to change at line 148 ¶ | skipping to change at line 148 ¶ | |||
| When two endpoints establish a BFCP stream, they need to determine | When two endpoints establish a BFCP stream, they need to determine | |||
| which of them acts as a floor control client and which acts as a | which of them acts as a floor control client and which acts as a | |||
| floor control server. | floor control server. | |||
| Once the roles have been determined, the roles will apply to all | Once the roles have been determined, the roles will apply to all | |||
| BFCP-controlled streams associated with the BFCP stream. | BFCP-controlled streams associated with the BFCP stream. | |||
| 4. Fields in the "m=" Line | 4. Fields in the "m=" Line | |||
| According to the SDP specification [RFC4566], the "m=" line format is | According to the SDP specification [RFC8866], the "m=" line format is | |||
| as follows: | as follows: | |||
| m=<media> <port> <proto> <fmt> ... | m=<media> <port> <proto> <fmt> ... | |||
| This section describes how to generate an "m=" line of an SDP Media | This section describes how to generate an "m=" line of an SDP Media | |||
| Description ("m=" section) describing a BFCP stream. | Description ("m=" section) describing a BFCP stream. | |||
| The media field MUST have a value of "application". | The media field MUST have a value of "application". | |||
| Depending on the value of the proto field, the port field is set as | Depending on the value of the proto field, the port field is set as | |||
| skipping to change at line 379 ¶ | skipping to change at line 379 ¶ | |||
| Charset Dependent: No | Charset Dependent: No | |||
| Mux Category: TBD | Mux Category: TBD | |||
| The Augmented BNF syntax [RFC5234] for the attribute is: | The Augmented BNF syntax [RFC5234] for the attribute is: | |||
| floor-id = 1*DIGIT SP "mstrm:" token *(SP token) | floor-id = 1*DIGIT SP "mstrm:" token *(SP token) | |||
| DIGIT = <DIGIT as defined in [RFC5234]> | DIGIT = <DIGIT as defined in [RFC5234]> | |||
| token = <token as defined in [RFC4566]> | token = <token as defined in [RFC8866]> | |||
| The maximum value of the attribute is determined by the FLOOR-ID | The maximum value of the attribute is determined by the FLOOR-ID | |||
| format [RFC8855]. | format [RFC8855]. | |||
| The floor identifier value is the integer representation of the | The floor identifier value is the integer representation of the | |||
| Floor ID field value [RFC8855] to be used in BFCP. Each media stream | Floor ID field value [RFC8855] to be used in BFCP. Each media stream | |||
| pointer value is associated with an SDP 'label' attribute [RFC4574] | pointer value is associated with an SDP 'label' attribute [RFC4574] | |||
| of a media stream. | of a media stream. | |||
| The SDP Offer/Answer procedures for the 'floorid' attribute are | The SDP Offer/Answer procedures for the 'floorid' attribute are | |||
| skipping to change at line 630 ¶ | skipping to change at line 630 ¶ | |||
| 10.2. Generating the SDP Answer | 10.2. Generating the SDP Answer | |||
| When the answerer receives an offer that contains an "m=" section | When the answerer receives an offer that contains an "m=" section | |||
| describing a BFCP stream, the answerer MUST check whether it supports | describing a BFCP stream, the answerer MUST check whether it supports | |||
| one or more of the BFCP versions supported by the offerer | one or more of the BFCP versions supported by the offerer | |||
| (Section 5.5). If the answerer does not support any of the BFCP | (Section 5.5). If the answerer does not support any of the BFCP | |||
| versions, it MUST NOT accept the "m=" section. Otherwise, if the | versions, it MUST NOT accept the "m=" section. Otherwise, if the | |||
| answerer accepts the "m=" section, the answerer | answerer accepts the "m=" section, the answerer | |||
| * MUST insert a corresponding "m=" section in the answer, with an | * MUST insert a corresponding "m=" section in the answer, with an | |||
| identical "m=" line proto value [RFC4566], | identical "m=" line proto value [RFC8866], | |||
| * MUST include a 'bfcpver' attribute in the "m=" section; the | * MUST include a 'bfcpver' attribute in the "m=" section; the | |||
| versions indicated by the answer MUST be the same or a subset of | versions indicated by the answer MUST be the same or a subset of | |||
| the versions indicated by the offerer in the corresponding offer, | the versions indicated by the offerer in the corresponding offer, | |||
| and | and | |||
| * MUST, if the offer contained an SDP 'floorctrl' attribute, include | * MUST, if the offer contained an SDP 'floorctrl' attribute, include | |||
| a 'floorctrl' attribute in the "m=" section. | a 'floorctrl' attribute in the "m=" section. | |||
| In addition, if the answerer includes an SDP 'floorctrl' attribute | In addition, if the answerer includes an SDP 'floorctrl' attribute | |||
| skipping to change at line 800 ¶ | skipping to change at line 800 ¶ | |||
| a=confid:4321 | a=confid:4321 | |||
| a=userid:1234 | a=userid:1234 | |||
| a=floorid:1 mstrm:10 | a=floorid:1 mstrm:10 | |||
| a=floorid:2 mstrm:11 | a=floorid:2 mstrm:11 | |||
| a=bfcpver:2 | a=bfcpver:2 | |||
| m=audio 55002 RTP/AVP 0 | m=audio 55002 RTP/AVP 0 | |||
| m=video 55004 RTP/AVP 31 | m=video 55004 RTP/AVP 31 | |||
| 12. Security Considerations | 12. Security Considerations | |||
| The BFCP specification [RFC8855], SDP specification [RFC4566], and | The BFCP specification [RFC8855], SDP specification [RFC8866], and | |||
| offer/answer specification [RFC3264] discuss security issues related | offer/answer specification [RFC3264] discuss security issues related | |||
| to BFCP, SDP, and offer/answer, respectively. In addition, [RFC4145] | to BFCP, SDP, and offer/answer, respectively. In addition, [RFC4145] | |||
| and [RFC8122] discuss security issues related to the establishment of | and [RFC8122] discuss security issues related to the establishment of | |||
| TCP and TLS connections using an offer/answer model. Furthermore, | TCP and TLS connections using an offer/answer model. Furthermore, | |||
| when using DTLS over UDP, the generic offer/answer considerations | when using DTLS over UDP, the generic offer/answer considerations | |||
| defined in [RFC8842] MUST be followed. | defined in [RFC8842] MUST be followed. | |||
| The usage of certain proto values in the SDP offer/answer negotiation | The usage of certain proto values in the SDP offer/answer negotiation | |||
| will result in a BFCP stream that is not protected by TLS or DTLS. | will result in a BFCP stream that is not protected by TLS or DTLS. | |||
| Operators will need to provide integrity protection and | Operators will need to provide integrity protection and | |||
| skipping to change at line 968 ¶ | skipping to change at line 968 ¶ | |||
| [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model | [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model | |||
| with Session Description Protocol (SDP)", RFC 3264, | with Session Description Protocol (SDP)", RFC 3264, | |||
| DOI 10.17487/RFC3264, June 2002, | DOI 10.17487/RFC3264, June 2002, | |||
| <https://www.rfc-editor.org/info/rfc3264>. | <https://www.rfc-editor.org/info/rfc3264>. | |||
| [RFC4145] Yon, D. and G. Camarillo, "TCP-Based Media Transport in | [RFC4145] Yon, D. and G. Camarillo, "TCP-Based Media Transport in | |||
| the Session Description Protocol (SDP)", RFC 4145, | the Session Description Protocol (SDP)", RFC 4145, | |||
| DOI 10.17487/RFC4145, September 2005, | DOI 10.17487/RFC4145, September 2005, | |||
| <https://www.rfc-editor.org/info/rfc4145>. | <https://www.rfc-editor.org/info/rfc4145>. | |||
| [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session | ||||
| Description Protocol", RFC 4566, DOI 10.17487/RFC4566, | ||||
| July 2006, <https://www.rfc-editor.org/info/rfc4566>. | ||||
| [RFC4571] Lazzaro, J., "Framing Real-time Transport Protocol (RTP) | [RFC4571] Lazzaro, J., "Framing Real-time Transport Protocol (RTP) | |||
| and RTP Control Protocol (RTCP) Packets over Connection- | and RTP Control Protocol (RTCP) Packets over Connection- | |||
| Oriented Transport", RFC 4571, DOI 10.17487/RFC4571, July | Oriented Transport", RFC 4571, DOI 10.17487/RFC4571, July | |||
| 2006, <https://www.rfc-editor.org/info/rfc4571>. | 2006, <https://www.rfc-editor.org/info/rfc4571>. | |||
| [RFC4574] Levin, O. and G. Camarillo, "The Session Description | [RFC4574] Levin, O. and G. Camarillo, "The Session Description | |||
| Protocol (SDP) Label Attribute", RFC 4574, | Protocol (SDP) Label Attribute", RFC 4574, | |||
| DOI 10.17487/RFC4574, August 2006, | DOI 10.17487/RFC4574, August 2006, | |||
| <https://www.rfc-editor.org/info/rfc4574>. | <https://www.rfc-editor.org/info/rfc4574>. | |||
| skipping to change at line 1025 ¶ | skipping to change at line 1021 ¶ | |||
| [RFC8445] Keranen, A., Holmberg, C., and J. Rosenberg, "Interactive | [RFC8445] Keranen, A., Holmberg, C., and J. Rosenberg, "Interactive | |||
| Connectivity Establishment (ICE): A Protocol for Network | Connectivity Establishment (ICE): A Protocol for Network | |||
| Address Translator (NAT) Traversal", RFC 8445, | Address Translator (NAT) Traversal", RFC 8445, | |||
| DOI 10.17487/RFC8445, July 2018, | DOI 10.17487/RFC8445, July 2018, | |||
| <https://www.rfc-editor.org/info/rfc8445>. | <https://www.rfc-editor.org/info/rfc8445>. | |||
| [RFC8839] Petit-Huguenin, M., Nandakumar, S., Holmberg, C., Keränen, | [RFC8839] Petit-Huguenin, M., Nandakumar, S., Holmberg, C., Keränen, | |||
| A., and R. Shpount, "Session Description Protocol (SDP) | A., and R. Shpount, "Session Description Protocol (SDP) | |||
| Offer/Answer Procedures for Interactive Connectivity | Offer/Answer Procedures for Interactive Connectivity | |||
| Establishment (ICE)", RFC 8839, DOI 10.17487/RFC8839, | Establishment (ICE)", RFC 8839, DOI 10.17487/RFC8839, | |||
| December 2020, <https://www.rfc-editor.org/info/rfc8839>. | January 2021, <https://www.rfc-editor.org/info/rfc8839>. | |||
| [RFC8842] Holmberg, C. and R. Shpount, "Session Description Protocol | [RFC8842] Holmberg, C. and R. Shpount, "Session Description Protocol | |||
| (SDP) Offer/Answer Considerations for Datagram Transport | (SDP) Offer/Answer Considerations for Datagram Transport | |||
| Layer Security (DTLS) and Transport Layer Security (TLS)", | Layer Security (DTLS) and Transport Layer Security (TLS)", | |||
| RFC 8842, DOI 10.17487/RFC8842, December 2020, | RFC 8842, DOI 10.17487/RFC8842, January 2021, | |||
| <https://www.rfc-editor.org/info/rfc8842>. | <https://www.rfc-editor.org/info/rfc8842>. | |||
| [RFC8855] Camarillo, G., Drage, K., Kristensen, T., Ott, J., and C. | [RFC8855] Camarillo, G., Drage, K., Kristensen, T., Ott, J., and C. | |||
| Eckel, "The Binary Floor Control Protocol (BFCP)", | Eckel, "The Binary Floor Control Protocol (BFCP)", | |||
| RFC 8855, DOI 10.17487/RFC8855, December 2020, | RFC 8855, DOI 10.17487/RFC8855, January 2021, | |||
| <https://www.rfc-editor.org/info/rfc8855>. | <https://www.rfc-editor.org/info/rfc8855>. | |||
| [RFC8859] Nandakumar, S., "A Framework for Session Description | [RFC8859] Nandakumar, S., "A Framework for Session Description | |||
| Protocol (SDP) Attributes When Multiplexing", RFC 8859, | Protocol (SDP) Attributes When Multiplexing", RFC 8859, | |||
| DOI 10.17487/RFC8859, December 2020, | DOI 10.17487/RFC8859, January 2021, | |||
| <https://www.rfc-editor.org/info/rfc8859>. | <https://www.rfc-editor.org/info/rfc8859>. | |||
| [RFC8866] Begen, A., Kyzivat, P., Perkins, C., and M. Handley, "SDP: | ||||
| Session Description Protocol", RFC 8866, | ||||
| DOI 10.17487/RFC8866, January 2021, | ||||
| <https://www.rfc-editor.org/info/rfc8866>. | ||||
| 15.2. Informative References | 15.2. Informative References | |||
| [Err712] RFC Errata, Erratum ID 712, RFC 4583, | [Err712] RFC Errata, Erratum ID 712, RFC 4583, | |||
| <https://www.rfc-editor.org/errata/eid712>. | <https://www.rfc-editor.org/errata/eid712>. | |||
| [RFC5576] Lennox, J., Ott, J., and T. Schierl, "Source-Specific | [RFC5576] Lennox, J., Ott, J., and T. Schierl, "Source-Specific | |||
| Media Attributes in the Session Description Protocol | Media Attributes in the Session Description Protocol | |||
| (SDP)", RFC 5576, DOI 10.17487/RFC5576, June 2009, | (SDP)", RFC 5576, DOI 10.17487/RFC5576, June 2009, | |||
| <https://www.rfc-editor.org/info/rfc5576>. | <https://www.rfc-editor.org/info/rfc5576>. | |||
| [RFC8843] Holmberg, C., Alvestrand, H., and C. Jennings, | [RFC8843] Holmberg, C., Alvestrand, H., and C. Jennings, | |||
| "Negotiating Media Multiplexing Using the Session | "Negotiating Media Multiplexing Using the Session | |||
| Description Protocol (SDP)", RFC 8843, | Description Protocol (SDP)", RFC 8843, | |||
| DOI 10.17487/RFC8843, December 2020, | DOI 10.17487/RFC8843, January 2021, | |||
| <https://www.rfc-editor.org/info/rfc8843>. | <https://www.rfc-editor.org/info/rfc8843>. | |||
| Acknowledgements | Acknowledgements | |||
| Jörg Ott, Keith Drage, Alan Johnston, Eric Rescorla, Roni Even, and | Jörg Ott, Keith Drage, Alan Johnston, Eric Rescorla, Roni Even, and | |||
| Oscar Novo provided useful ideas for the original [RFC4583]. The | Oscar Novo provided useful ideas for the original [RFC4583]. The | |||
| authors also acknowledge contributions to the revision of BFCP for | authors also acknowledge contributions to the revision of BFCP for | |||
| use over an unreliable transport from Geir Arne Sandbakken, Charles | use over an unreliable transport from Geir Arne Sandbakken, Charles | |||
| Eckel, Alan Ford, Eoin McLeod, and Mark Thompson. Useful and | Eckel, Alan Ford, Eoin McLeod, and Mark Thompson. Useful and | |||
| important final reviews were done by Ali C. Begen, Mary Barnes, and | important final reviews were done by Ali C. Begen, Mary Barnes, and | |||
| End of changes. 13 change blocks. | ||||
| 15 lines changed or deleted | 16 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||