Internet Engineering Task Force                 Sean Olson
Internet draft                                  Adam Roach
                                                Gonzalo Camarillo
                                                Ericsson
                                                December 2001
                                                Expires May 2002
                                      <draft-olson-sdp-ipv6-03.txt>

                   Support for IPv6 in SDP


Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups. Note that
   other groups may also distribute working documents as Internet-
   Drafts. 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."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt
   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

Abstract

   This document describes the use of IPv6 addresses [1] in conjunction
   with the Session Description Protocol (SDP) [2]. Specifically, this
   document clarifies existing text in SDP with regards to the syntax of
   IPv6 addresses.

1. Introduction

   SDP is intended for describing multimedia sessions for the purposes of
   session announcement, session invitation, and other forms of multimedia
   session initiation. It is a text format description that provides
   many details of a multimedia session including: the originator of the
   session, a URL related to the session, the connection address for the
   session media(s), and optional attributes for the session media(s).
   Each of these pieces of information may involve one or more IPv6
   addresses. The ABNF for IP addresses in SDP currently leaves the syntax
   for IPv6 addresses undefined. This Internet-Draft attempts to complete
   the ABNF to include IPv6 addresses.

   Accordingly, the address type "IP6" indicating an IPv6 address, should
   be allowed in the connection field, "c=", of the SDP. The ABNF already
   reflects this, though the "Connection Data" text under section 6 of
   RFC2328 currently only defines the "IP4" address type.

Olson, et. al.                                         [Page 1]


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
   RFC 2119.

3. Syntax

   RFC2373 [1] gives an ABNF for the text representation of IPv6 addresses in
   Appendix B. RFC2732 [3] covers the text representation of IPv6 addresses
   when used within a URL. Using the ABNF described in these documents, the
   following updated ABNF for SDP is proposed.

   uri =                 ; defined in RFC1630 and RFC2732

   multicast-address =   IP4-multicast | IP6-multicast

   IP4-multicast =       m1 3*( "." decimal-uchar ) "/" ttl [ "/" integer ]
                         ; IPv4 multicast addresses may be in the range
                         ; 224.0.0.0 to 239.255.255.255

   m1 =                  ("22" ("4"|"5"|"6"|"7"|"8"|"9")) | ("23" DIGIT ))


   IP6-multicast =       hexpart [ ":" IP4-multicast ]
                         "/" ttl [ "/" integer ]
                         ; IPv6 address starting with FF00

   addr =                FQDN | unicast-address

   FQDN =                4*(alpha-numeric|"-"|".")
                         ; fully qualified domain name as specified in
                         ; RFC1035

   unicast-address =     IP4-address | IP6-address

   IP4-address =         b1 "." decimal-uchar "." decimal-uchar "." b4
                         | "0.0.0.0"

   b1 =                  decimal-uchar
                         ; less than "224"; not "0" or "127"

   b4 =                  decimal-uchar
                         ; not "0"

   IP6-address =         *( HEXDIGIT | "." | ":" )
                         ; As defined in the IPv6 addressing architecture

Olson, et. al.                                         [Page 2]


4. Additional IPv6 Issues in SDP

4.1 IPv6 Addresses with Embedded IPv4 Addresses

   RFC2373 defines two ways in which an IPv4 address may be
   encoded in an IPv6 address. In both forms, the lower 32 bits
   of the IPv6 address contain the IPv4 address. The first form is an
   "IPv4 compatible IPv6 address" and it has the format:

   |                80 bits               | 16 |      32 bits        |
   +--------------------------------------+--------------------------+
   |0000..............................0000|0000|    IPv4 address     |
   +--------------------------------------+----+---------------------+

   The second form of address is used to represent the addresses of
   IPv4-only nodes (those that *do not* support IPv6) as IPv6 addresses.
   This type of address is termed an "IPv4-mapped IPv6 address" and has
   the format:

   |                80 bits               | 16 |      32 bits        |
   +--------------------------------------+--------------------------+
   |0000..............................0000|FFFF|    IPv4 address     |
   +--------------------------------------+----+---------------------+

   The difference in format is significant and MAY be treated
   differently in SDP implementations.

5. Example SDP description with IPv6 addresses

   The following is an example SDP description using the above ABNF
   for IPv6 addresses. In particular, the origin, URI, and connection
   fields contain IPv6 addresses. The URI contains an IPv4 compatible
   IPv6 address.

   v=0
   o=nasa1 971731711378798081 0 IN IP6 2201:056D::112E:144A:1E24
   s=(Almost) live video feed from Mars-II sattelite
   u=http://[::FFFF:10.2.12.126]/marsII
   p=+1 713 555 1234
   c=IN IP6 FF00:03AD::7F2E:172A:1E24
   t=3338481189 3370017201
   m=audio 6000 RTP/AVP 2
   a=rtpmap:2 G726-32/8000
   m=video 6024 RTP/AVP 107
   a=rtpmap:107 H263-1998/90000

6. Backward compatibility

   An implementation that does not understand or wish to accept
   the IPv6 extensions to the SDP grammar MUST reject the SDP.

7. IANA Considerations

   This document updates the definition of the IP6 addrtype parameter
   found in RFC2327.

8. Security Considerations

   No additional considerations above what is stated in section 7 of
   RFC2327.

Olson, et. al.                                         [Page 3]


9. References

   [1] R. Hinden and S. Deering, "IP Version 6 Addressing Architecture",
   RFC2373, IETF.

   [2] M. Handley and V. Jacobson, "Session Description Protocol",
   RFC2327, IETF.

   [3] R. Hinden, et. al., "Format for Literal IPv6 Addresses in URL's",
   RFC2732, IETF.

   [4] D. Crocker and P. Overell,
   "Augmented BNF for Syntax Specifications: ABNF",
   RFC2234, IETF.

   [5] S. Bradner, "Key words for use in RFCs to Indicate Requirement
   Levels", RFC2119, IETF.

10. Author's Addresses

   Sean Olson
   Richardson, Texas
   USA

   Email: seancolson AT yahoo.com

   Gonzalo Camarillo
   Ericsson
   Advanced Signalling Research Lab.
   FIN-02420 Jorvas
   Finland

   Phone: +358 9 299 3371
   Fax: +358 9 299 3118
   Email: Gonzalo.Camarillo@ericsson.com

   Adam Roach
   Ericsson
   Richardson, Texas
   USA

   Phone: +1 972 583 7594
   Fax: +1 972 669 0154
   Email: Adam.Roach@ericsson.com

Olson, et. al.                                           [Page 4]