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]