Network Working Group M. Petit-Huguenin Internet-Draft Stonyfish, Inc. Updates: 5245 (if approved) June 30, 2011 Intended status: Standards Track Expires: January 1, 2012 Media level ice-options SDP attribute draft-petithuguenin-mmusic-ice-attributes-level-01 Abstract This document redefines the ice-options SDP attribute as a session- level and media-level attribute. Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. This document may not be modified, and derivative works of it may not be created, except to format it for publication as an RFC or to translate it into languages other than English. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on January 1, 2012. Copyright Notice Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as Petit-Huguenin Expires January 1, 2012 [Page 1] Internet-Draft Media level ICE attributes June 2011 described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. The ice-options Attribute . . . . . . . . . . . . . . . . . . 3 4. Specific Aggregation Rule for the rtp+ecn ICE Option . . . . . 3 5. Security Considerations . . . . . . . . . . . . . . . . . . . 4 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 4 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 4 8.1. Normative References . . . . . . . . . . . . . . . . . . . 4 8.2. Informative References . . . . . . . . . . . . . . . . . . 4 Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 5 A.1. Aggregating media all supporting ICE . . . . . . . . . . . 5 A.2. Aggregating media partially supporting ICE . . . . . . . . 7 Appendix B. Release notes . . . . . . . . . . . . . . . . . . . . 10 B.1. Modifications between -01 and -00 . . . . . . . . . . . . 10 B.2. Design Notes . . . . . . . . . . . . . . . . . . . . . . . 11 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 11 Petit-Huguenin Expires January 1, 2012 [Page 2] Internet-Draft Media level ICE attributes June 2011 1. Introduction ICE [RFC5245] defines the ice-options SDP attribute as session-level only attribute, but when ICE is used with disaggregated media (see section 3 of [I-D.loreto-splices-disaggregated-media]), there is a possibility that different media use different ICE implementations and/or different networks, and so these different media will require different values for this attribute. As an example, the ice-options attribute value "rtp+ecn" (defined in [I-D.ietf-avtcore-ecn-for-rtp]) signals ECN capability. Two aggregated media using two different RTP implementations may want to use different values for this attribute. Note that there is a similar problem for the ice-lite attribute but unfortunately it does not seem possible to design a way to use the ice-lite attribute at the media level that is compatible with legacy implementations that recognize only the session-level attribute. 2. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. 3. The ice-options Attribute The ice-options attribute is redefined by this document as a session- level and media-level attribute. All future new ICE options MUST also define how media-level ICE options using this new value are aggregated to eventually generate the value of the session-level ICE option, so legacy implementations that only recognize session-level ICE options can interoperate with implementations that recognize ICE options at both levels. Before applying this specific aggregation rule, the session-level ice-options attribute MUST be copied as media-level attribute in each media. 4. Specific Aggregation Rule for the rtp+ecn ICE Option If all aggregated media using ICE contain a media-level "rtp+ecn" ICE option, as defined by [I-D.ietf-avtcore-ecn-for-rtp], then an "rtp+ ecn" ICE option MUST be inserted at the session-level. Petit-Huguenin Expires January 1, 2012 [Page 3] Internet-Draft Media level ICE attributes June 2011 5. Security Considerations This document does not add any security considerations beyond what is discussed in [RFC5245]. 6. IANA Considerations No IANA considerations. 7. Acknowledgements This document was written with the xml2rfc tool described in [RFC2629]. 8. References 8.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC5245] Rosenberg, J., "Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols", RFC 5245, April 2010. [I-D.ietf-avtcore-ecn-for-rtp] Westerlund, M., Johansson, I., Perkins, C., O'Hanlon, P., and K. Carlberg, "Explicit Congestion Notification (ECN) for RTP over UDP", draft-ietf-avtcore-ecn-for-rtp-02 (work in progress), May 2011. 8.2. Informative References [RFC2629] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629, June 1999. [I-D.loreto-splices-disaggregated-media] Camarillo, G., Loreto, S., and R. Shekh-Yusef, "Disaggregated Media in the Session Initiation Protocol (SIP)", draft-loreto-splices-disaggregated-media-02 (work in progress), June 2011. Petit-Huguenin Expires January 1, 2012 [Page 4] Internet-Draft Media level ICE attributes June 2011 Appendix A. Examples A.1. Aggregating media all supporting ICE In this example, we have two SDP to aggregate. The first SDP contains an ice-options attribute at the media level: v=0 o=jdoe 2890844526 2890842807 IN IP4 10.0.1.1 s= c=IN IP4 192.0.2.3 t=0 0 a=ice-options:rtp+ecn a=ice-pwd:asd88fgpdd777uzjYhagZg a=ice-ufrag:8hhY m=audio 45664 RTP/AVP 0 b=RS:0 b=RR:0 a=rtpmap:0 PCMU/8000 a=candidate:1 1 UDP 2130706431 10.0.1.1 8998 typ host a=candidate:2 1 UDP 1694498815 192.0.2.3 45664 typ srflx raddr 10.0.1.1 rport 8998 m=text 45666 RTP/AVP 98 b=RS:0 b=RR:0 a=rtpmap:98 t140/1000 a=candidate:1 1 UDP 2130706431 10.0.1.1 9000 typ host a=candidate:2 1 UDP 1694498815 192.0.2.3 45666 typ srflx raddr 10.0.1.1 rport 9000 The second SDP also have an ice-options attribute at the media level: v=0 o=jdoe 1 1 IN IP4 10.0.1.2 s= c=IN IP4 192.0.2.4 t=0 0 a=ice-options:rtp+ecn a=ice-pwd:f7sD7f7dF87s87d7da5564 a=ice-ufrag:776G m=video 10000 RTP/AVP b=RS:0 b=RR:0 a=rtpmap:0 PCMU/8000 a=candidate:1 1 UDP 2130706431 10.0.1.2 10000 typ host a=candidate:2 1 UDP 1694498815 192.0.2.4 45000 typ srflx raddr 10.0.1.1 rport 10000 Petit-Huguenin Expires January 1, 2012 [Page 5] Internet-Draft Media level ICE attributes June 2011 The first step is to copy the session-level ice-options attribute as media-level attribute. The first SDP is modified like this: v=0 o=jdoe 2890844526 2890842807 IN IP4 10.0.1.1 s= c=IN IP4 192.0.2.3 t=0 0 a=ice-options:rtp+ecn a=ice-pwd:asd88fgpdd777uzjYhagZg a=ice-ufrag:8hhY m=audio 45664 RTP/AVP 0 b=RS:0 b=RR:0 a=rtpmap:0 PCMU/8000 a=ice-options:rtp+ecn a=candidate:1 1 UDP 2130706431 10.0.1.1 8998 typ host a=candidate:2 1 UDP 1694498815 192.0.2.3 45664 typ srflx raddr 10.0.1.1 rport 8998 m=text 45666 RTP/AVP 98 b=RS:0 b=RR:0 a=rtpmap:98 t140/1000 a=ice-options:rtp+ecn a=candidate:1 1 UDP 2130706431 10.0.1.1 9000 typ host a=candidate:2 1 UDP 1694498815 192.0.2.3 45666 typ srflx raddr 10.0.1.1 rport 9000 The second SDP is modified like this: v=0 o=jdoe 1 1 IN IP4 10.0.1.2 s= c=IN IP4 192.0.2.4 t=0 0 a=ice-options:rtp+ecn a=ice-pwd:f7sD7f7dF87s87d7da5564 a=ice-ufrag:776G m=video 10000 RTP/AVP b=RS:0 b=RR:0 a=rtpmap:0 PCMU/8000 a=ice-options:rtp+ecn a=candidate:1 1 UDP 2130706431 10.0.1.2 10000 typ host a=candidate:2 1 UDP 1694498815 192.0.2.4 45000 typ srflx raddr 10.0.1.1 rport 10000 After aggregation, all the individual media keep their media-level Petit-Huguenin Expires January 1, 2012 [Page 6] Internet-Draft Media level ICE attributes June 2011 ice-options attribute, and a session-level ice-options attribute is added as per the rule in Section 3: v=0 o=- 1309452627 1309452627 IN IP4 10.0.1.1 s= t=0 0 a=ice-options:rtp+ecn m=audio 45664 RTP/AVP 0 c=IN IP4 192.168.2.3 b=RS:0 b=RR:0 a=rtpmap:0 PCMU/8000 a=ice-options:rtp+ecn a=ice-pwd:asd88fgpdd777uzjYhagZg a=ice-ufrag:8hhY a=candidate:1 1 UDP 2130706431 10.0.1.1 8998 typ host a=candidate:2 1 UDP 1694498815 192.0.2.3 45664 typ srflx raddr 10.0.1.1 rport 8998 m=text 45666 RTP/AVP 98 c=IN IP4 192.168.2.3 b=RS:0 b=RR:0 a=rtpmap:98 t140/1000 a=ice-options:rtp+ecn a=ice-pwd:asd88fgpdd777uzjYhagZg a=ice-ufrag:8hhY a=candidate:1 1 UDP 2130706431 10.0.1.1 9000 typ host a=candidate:2 1 UDP 1694498815 192.0.2.3 45666 typ srflx raddr 10.0.1.1 rport 9000 m=video 10000 RTP/AVP c=IN IP4 192.168.2.4 b=RS:0 b=RR:0 a=rtpmap:0 PCMU/8000 a=ice-options:rtp+ecn a=candidate:1 1 UDP 2130706431 10.0.1.2 10000 typ host a=candidate:2 1 UDP 1694498815 192.0.2.4 45000 typ srflx raddr 10.0.1.1 rport 10000 A.2. Aggregating media partially supporting ICE In this example, we have two SDP to aggregate, but the second one does not use ICE. The first SDP contains an ice-options attribute at the media level: Petit-Huguenin Expires January 1, 2012 [Page 7] Internet-Draft Media level ICE attributes June 2011 v=0 o=jdoe 2890844526 2890842807 IN IP4 10.0.1.1 s= c=IN IP4 192.0.2.3 t=0 0 a=ice-options:rtp+ecn a=ice-pwd:asd88fgpdd777uzjYhagZg a=ice-ufrag:8hhY m=audio 45664 RTP/AVP 0 b=RS:0 b=RR:0 a=rtpmap:0 PCMU/8000 a=candidate:1 1 UDP 2130706431 10.0.1.1 8998 typ host a=candidate:2 1 UDP 1694498815 192.0.2.3 45664 typ srflx raddr 10.0.1.1 rport 8998 m=text 45666 RTP/AVP 98 b=RS:0 b=RR:0 a=rtpmap:98 t140/1000 a=candidate:1 1 UDP 2130706431 10.0.1.1 9000 typ host a=candidate:2 1 UDP 1694498815 192.0.2.3 45666 typ srflx raddr 10.0.1.1 rport 9000 The second SDP does not contain any ice-options attribute: v=0 o=jdoe 1 1 IN IP4 10.0.1.2 s= c=IN IP4 192.0.2.4 t=0 0 m=video 10000 RTP/AVP a=rtpmap:0 PCMU/8000 The first step is to copy the session-level ice-options attribute as media-level attribute. Only the first SDP is modified in this example: Petit-Huguenin Expires January 1, 2012 [Page 8] Internet-Draft Media level ICE attributes June 2011 v=0 o=jdoe 2890844526 2890842807 IN IP4 10.0.1.1 s= c=IN IP4 192.0.2.3 t=0 0 a=ice-options:rtp+ecn a=ice-pwd:asd88fgpdd777uzjYhagZg a=ice-ufrag:8hhY m=audio 45664 RTP/AVP 0 b=RS:0 b=RR:0 a=rtpmap:0 PCMU/8000 a=ice-options:rtp+ecn a=candidate:1 1 UDP 2130706431 10.0.1.1 8998 typ host a=candidate:2 1 UDP 1694498815 192.0.2.3 45664 typ srflx raddr 10.0.1.1 rport 8998 m=text 45666 RTP/AVP 98 b=RS:0 b=RR:0 a=rtpmap:98 t140/1000 a=ice-options:rtp+ecn a=candidate:1 1 UDP 2130706431 10.0.1.1 9000 typ host a=candidate:2 1 UDP 1694498815 192.0.2.3 45666 typ srflx raddr 10.0.1.1 rport 9000 After aggregation, all the individual media keep their media-level ice-options attribute, and a session-level ice-options attribute is added as per the rule in Section 3: Petit-Huguenin Expires January 1, 2012 [Page 9] Internet-Draft Media level ICE attributes June 2011 v=0 o=- 1309452627 1309452627 IN IP4 10.0.1.1 s= t=0 0 a=ice-options:rtp+ecn m=audio 45664 RTP/AVP 0 c=IN IP4 192.168.2.3 b=RS:0 b=RR:0 a=rtpmap:0 PCMU/8000 a=ice-options:rtp+ecn a=ice-pwd:asd88fgpdd777uzjYhagZg a=ice-ufrag:8hhY a=candidate:1 1 UDP 2130706431 10.0.1.1 8998 typ host a=candidate:2 1 UDP 1694498815 192.0.2.3 45664 typ srflx raddr 10.0.1.1 rport 8998 m=text 45666 RTP/AVP 98 c=IN IP4 192.168.2.3 b=RS:0 b=RR:0 a=rtpmap:98 t140/1000 a=ice-options:rtp+ecn a=ice-pwd:asd88fgpdd777uzjYhagZg a=ice-ufrag:8hhY a=candidate:1 1 UDP 2130706431 10.0.1.1 9000 typ host a=candidate:2 1 UDP 1694498815 192.0.2.3 45666 typ srflx raddr 10.0.1.1 rport 9000 m=video 10000 RTP/AVP c=IN IP4 192.168.2.4 a=rtpmap:0 PCMU/8000 Appendix B. Release notes This section must be removed before publication as an RFC. B.1. Modifications between -01 and -00 o Changed the rtp+ecn aggregation rule so that non-ICE media are not used when aggregating. o Filled Security and IANA sections. o Added examples of aggregation. o Added a design note about using different attribute name at media level. Petit-Huguenin Expires January 1, 2012 [Page 10] Internet-Draft Media level ICE attributes June 2011 B.2. Design Notes o It has been proposed multiple times to use a different attribute name for the ice-options attribute when used at the media-level. Using a different name does not solve the aggregation problem and, in the opinion of this author, could create confusion. Author's Address Marc Petit-Huguenin Stonyfish, Inc. Email: petithug@acm.org Petit-Huguenin Expires January 1, 2012 [Page 11]