Network Working Group Yiqun Cai Internet Draft Eric C. Rosen (Editor) Intended Status: Proposed Standard IJsbrand Wijnands Expires: August 1, 2010 Cisco Systems, Inc. February 1, 2010 MVPN: S-PMSI Join Extensions and PIM/IPv6 over PIM/IPv4 Tunnels draft-rosen-l3vpn-mvpn-spmsi-joins-00.txt Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. 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. Copyright and License Notice Copyright (c) 2010 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 Rosen, et al. [Page 1] Internet Draft draft-rosen-l3vpn-mvpn-spmsi-joins-00.txt February 2010 described in the Simplified BSD License. Abstract "S-PMSI Join" messages are used in PIM-based MVPN procedures to bind particular multicast flows to particular tunnels through a core network. This document specifies extensions to the S-PMSI Join mechanism that allow S-PMSI Join messages to specify IPv6 multicast flows, that allow S-PMSI Join messages to specify MPLS tunnels, and that allow a single UDP datagram to contain multiple S-PMSI Join messages. It also specifies how to send PIM IPv6 control messages over a PIM/IPv4 tunnel. Table of Contents 1 Specification of requirements ......................... 3 2 Introduction .......................................... 3 3 S-PMSI Join Extensions ................................ 3 3.1 mLDP P2MP P-Tunnels ................................... 3 3.2 IPv6 (S,G) with GRE/IPv4 P-tunnels .................... 5 3.3 Encapsulation of S-PMSI Joins in UDP Datagrams ........ 6 4 PE-PE PIM/IPv6 over IPv4 P-Tunnel ..................... 6 5 IANA Considerations ................................... 6 6 Security Considerations ............................... 7 7 Acknowledgments ....................................... 7 8 Authors' Addresses .................................... 7 9 Normative References .................................. 8 Rosen, et al. [Page 2] Internet Draft draft-rosen-l3vpn-mvpn-spmsi-joins-00.txt February 2010 1. Specification of requirements 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]. 2. Introduction "S-PMSI Join" messages [MVPN] are used in PIM-based MVPN procedures to bind particular multicast flows to particular tunnels through a core network. This document specifies extensions to the S-PMSI Join mechanism that are that allow S-PMSI Join messages to specify IPv6 multicast flows, that allow S-PMSI Join messages to specify MPLS tunnels, that to allow a single UDP datagram to contain multiple S-PMSI Join messages. This document also specifies how to send PIM IPv6 control messages over a PIM/IPv4 tunnel. This document uses terminology defined in [MVPN]: C-Source, C-Group, C-flow, P-Group. 3. S-PMSI Join Extensions The S-PMSI Join message is defined in section 7.4.2.2 of [MVPN]. In this specification, we define the "type 2" and "type 3" S-PMSI Joins, which are used when the S-PMSI tunnel is a P2MP LSP created by mLDP, and the tunnel is to carry C-flows of, respectively, IPv4 or IPv6 multicast traffic. The use of these messages with "wild card" addresses is specified in [MVPN_WILD]. 3.1. mLDP P2MP P-Tunnels Rosen, et al. [Page 3] Internet Draft draft-rosen-l3vpn-mvpn-spmsi-joins-00.txt February 2010 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | C-Source +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+....... | C-Group +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+....... | FEC Element +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+....... | Padding +-+-+-+-+-+-+-+....... Type (8 bits): - 2 if C-Source and C-Group are IPv4 addresses, - 3 if C-Source and C-Group are IPv6 addresses. Length (16 bits): the total number of octets in the Type, Length, Reserved and Value fields combined, rounded up to the next multiple of 4, encoded as an unsigned binary integer. Reserved (8 bits): This field SHOULD be zero when transmitted, and MUST be ignored when received. C-Source: address of the traffic source in the VPN - for type 2, a 32-bit IPv4 address - for type 3, a 128-bit IPv6 address C-Group: address of the traffic destination in the VPN - for type 2, a 32-bit IPv4 address - for type 3, a 128-bit IPv6 address FEC Element: this variable length field is a P2MP FEC element, encoded as a TLV as specified in [MLDP]. Padding: 0-3 bytes, as needed for 32-bit alignment. The padding bytes SHOULD be zero on transmission and MUST be ignored on reception. Rosen, et al. [Page 4] Internet Draft draft-rosen-l3vpn-mvpn-spmsi-joins-00.txt February 2010 3.2. IPv6 (S,G) with GRE/IPv4 P-tunnels MVPN defines the S-PMSI Join type (type 1) used when assigning IPv4 (S,G) to a GRE/IPv4 P-tunnel. When assigning IPv6 (S,G) to a GRE/IPv4 P-tunnel, S-PMSI Join type 4 is used, and the C-Source and C-Group are IPv6 addresses. The P-Group address is an IPv4 address. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | C-Source | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | C-Group | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | P-Group | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type (8 bits): 4 Length (16 bits): 40 Reserved (8 bits): This field SHOULD be zero when transmitted, and MUST be ignored when received. C-Source (128 bits): the IPv6 address of the traffic source in the VPN. C-Group (128 bits): the IPv6 address of the multicast traffic destination address in the VPN. P-Group (32 bits): the IPv4 group address that the PE router is going to use to encapsulate the flow (C-Source, C-Group). Rosen, et al. [Page 5] Internet Draft draft-rosen-l3vpn-mvpn-spmsi-joins-00.txt February 2010 3.3. Encapsulation of S-PMSI Joins in UDP Datagrams All S-PMSI Joins are encapsulated in UDP datagrams. If a UDP datagram contains a type 1 or type 2 S-PMSI Join, it MUST be sent in an IPv4 datagram. If a UDP datagram contains a type 3 or type 4 S-PMSI Join, it MUST be sent in an IPv6 datagram. If an IPv4-based protocol is being used to create the P-tunnels, then the IPv6 Source Address field of the UDP datagram SHOULD be the IPv4-mapped IPv6 address [RFC4291] that corresponds to the IPv4 address that the originating PE router uses when participating in the protocol used to build the P-tunnels. A single UDP datagram MAY carry multiple S-PMSI Join Messages, as many as can fit entirely within it. If there are multiple S-PMSI Joins in a UDP datagram, they MUST be of the same S-PMSI Join type. The end of the last S-PMSI Join (as determined by the S-PMSI Join length field) MUST coincide with the end of the UDP datagram, as determined by the UDP length field. When processing a received UDP datagram that contains one or more S-PMSI Joins, a router MUST be able to process all the S-PMSI Joins that fit into the datagram. 4. PE-PE PIM/IPv6 over IPv4 P-Tunnel If a VPN customer is using PIM over IPv6, but the SP is using an IPv4 infrastructure (i.e., is using an IPv4-based control protocol to construct its P-tunnels), then the PE routers will need to originate PIM control messages in IPv6 form, and send such messages through the P-tunnels. The IPv6 Source Address field of any such IPv6 packet SHOULD be the IPv4-mapped IPv6 address [RFC4291] that corresponds to the IPv4 address that the originating PE router uses when participating in the protocol used to build the P-tunnels. If the IPv6 Destination Address field is the multicast address ALL-PIM- ROUTERS, the IPv6 form of the address (ff02::d) is used. 5. IANA Considerations [MVPN] creates an IANA registry for the "S-PMSI Join Message Type Field". This document requires three new values: - The value 2 should be registered, and its description should read "mLDP P2MP S-PMSI for IPv4 traffic (unaggregated)". Rosen, et al. [Page 6] Internet Draft draft-rosen-l3vpn-mvpn-spmsi-joins-00.txt February 2010 - The value 3 should be registered, and its description should read "mLDP P2MP S-PMSI for IPv6 traffic (unaggregated)". - The value 4 should be registered, and its description should read "GRE S-PMSI for IPv6 traffic (unaggregated)". 6. Security Considerations There are no additional security considerations beyond those of [MVPN]. 7. Acknowledgments The authors wish to thank DP Ayadevara, Arjen Boers, Rayen Mohanty, Rajesh Sharma, and Karthik Subramanian. 8. Authors' Addresses Yiqun Cai Cisco Systems, Inc. 170 Tasman Drive San Jose, CA, 95134 E-mail: ycai@cisco.com Eric C. Rosen Cisco Systems, Inc. 1414 Massachusetts Avenue Boxborough, MA, 01719 E-mail: erosen@cisco.com IJsbrand Wijnands Cisco Systems, Inc. De kleetlaan 6a Diegem 1831 Belgium E-mail: ice@cisco.com Rosen, et al. [Page 7] Internet Draft draft-rosen-l3vpn-mvpn-spmsi-joins-00.txt February 2010 9. Normative References [MLDP] "Label Distribution Protocol Extensions for Point-to-Multipoint and Multipoint-to-Multipoint Label Switched Paths", Minei, Kompella, Wijnands, Thomas, draft-ietf-mpls-ldp-p2mp-08.txt, October 2009 [MVPN] "Multicast in MPLS/BGP IP VPNs", Rosen, Aggarwal, et. al., draft-ietf-l3vpn-2547bis-mcast-10.txt, January 2010 [MVPN_WILD] "MVPN: S-PMSI Wild Card Selectors", Cai, Rosen, Wijnands, draft-rosen-l3vpn-mvpn-wildcards-00.txt, February 2010 [RFC2119] "Key words for use in RFCs to Indicate Requirement Levels.", Bradner, March 1997 [RFC4291] "IPv6 Addressing Architecture", Hinden, Deering, February 2006 Rosen, et al. [Page 8]