<?xml version="1.0" encoding="US-ASCII"?>
<!-- Based on template at http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- Get references from the online citation libraries -->

<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3031 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3031.xml">
<!ENTITY RFC4379 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4379.xml">
<!ENTITY RFC5036 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5036.xml">
<!ENTITY RFC5561 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5561.xml">
<!ENTITY RFC5918 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5918.xml">
<!ENTITY RFC5919 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5919.xml">
<!ENTITY RFC5920 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5920.xml">
<!ENTITY RFC6388 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6388.xml">

]>

<!--************************* PROCESSING INSTRUCTIONS ***********************-->
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- See http://xml.resource.org/authoring/README.html. -->
<?rfc strict="yes" ?>    <!-- give errors on ID-nits and DTD validation -->
<?rfc toc="yes"?>        <!-- generate a ToC -->
<?rfc tocdepth="4"?>     <!-- the number of levels of subsections in ToC -->
<?rfc symrefs="yes"?>    <!-- use symbolic references tags -->
<?rfc sortrefs="yes" ?>  <!-- sort the reference entries alphabetically -->
<?rfc compact="yes" ?>   <!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?> <!-- keep one blank line between list items -->


<!--*************************** BEGINNING OF DOCUMENT ***********************-->
<rfc category="std" docName="draft-alvarez-mpls-ldp-color-lsp-00" ipr="trust200902">

  <!--**************************** FRONT MATTER *****************************-->
  <front>
    <title abbrev="LDP Color LSP Signaling">
        Signaling Color Label Switched Paths Using LDP
    </title>

    <!--***************************** AUTHORS *******************************-->
    <author fullname="Santiago Alvarez" initials="S." surname="Alvarez">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>170 West Tasman Drive</street>
          <city>San Jose</city>
          <region>CA</region>
          <code>95134</code>
          <country>USA</country>
        </postal>
        <email>saalvare@cisco.com</email>
      </address>
    </author>
         
    <author fullname="Kamran Raza" initials="K." surname="Raza">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>2000 Innovation Drive</street>
          <city>Kanata</city>
          <region>ON</region>
          <code>K2K-3E8</code>
          <country>Canada</country>
        </postal>
        <email>skraza@cisco.com</email>
      </address>
    </author>
    
    <author fullname="Sami Boutros" initials="S." surname="Boutros">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>170 West Tasman Drive</street>
          <city>San Jose</city>
          <region>CA</region>
          <code>95134</code>
          <country>USA</country>
        </postal>
        <email>sboutros@cisco.com</email>
      </address>
    </author>
    
    <date year="2013" />
    <area>General</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <keyword>RFC</keyword>
    <keyword>Request for Comments</keyword>
    <keyword>I-D</keyword>
    <keyword>Internet-Draft</keyword>
    <keyword>XML</keyword>
    <keyword>Extensible Markup Language</keyword>

    <!--****************************** ABSTRACT *****************************-->
    <abstract>
      <t>This document describes extensions to the Label Distribution Protocol (LDP) to signal a switching preference in the presence of multiple paths.  A label switched router (LSR) can associate locally a color with one or more downstream paths or links, and signal a label path per color to upstream LSRs.  Based on local policy, LSRs can select between these color LSPs to implement a forwarding preference on a downstream LSR.  An egress LSR may influence the signaling decision of other LSRs by signaling interest in specific colors.
      </t>
    </abstract>
  </front>

  <!--***************************** MIDDLE MATTER ***************************-->
  <middle>
  
    <!--************************ INTRODUCTION SECTION ***********************-->
    <section title="Introduction">
      <t>The extensions in this document allow LSRs to implement a forwarding preference between different paths available to downstream LSRs.  While multiple paths between two LSR may have the same cost from an routing perspective, individual paths may have intrinsic characteristics that an LSR may prefer. As an example, some paths may have a significant difference in terms of latency, reliability, protection, bandwidth or path diversity among other characteristics.  An LSR may want to allow upstream LSRs to determine what traffic is forwarded down specific paths.
      </t>
      <t>A sample deployment scenario for color LSPs involves an LDP network using targeted LDP over RSVP-TE LSPs.  A given head-end provider (P) device can establish multiple TE LSPs to another tail-end P device.  One TE LSP can be engineered for low latency while the other TE LSPs can be engineered for high bandwidth.  The head-end P device can associate locally the low-latency TE LSP with one color and the other TE LSPs with a second color.  This device can signal two paths (one per color) to upstream LDP peers.  With these two paths, a provider edge (PE) device can implement local policies to implement a forwarding preference for low latency or high bandwidth at the downstream P device. 
      </t>
      <section title="Requirements Language">
        <t>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 <xref target="RFC2119">RFC 2119</xref>.
        </t>
      </section>
    </section>

    <!--*********************** APPLICABILITY SECTION **************************-->
    <section anchor="sec_app" title="Applicability of Colors to FEC Elements">
      <t>A color LSP can be defined for the following types of LDP FEC elements:
         <list style="">
         <t>Prefix (0x2)</t>
         <t>P2MP (0x6)</t>
         <t>MP2MP upstream (0x7)</t>
         <t>MP2MP downstream (0x8)</t>
         </list>
         and for the following address families:
         <list style="">
         <t>IP (version 4) (0x1)</t>
         <t>IPv6 (0x2)</t>
         </list>
      </t>
    </section>

    <!--******************* ESTABLISHING COLOR LSP SECTION *********************-->
    <section anchor="sec_color_lsps" title="Establishing Color LSPs">
      <t>Three LSR roles can be involved in establishing a color LSP:
         <list style="hanging" hangIndent="3">
         <t hangText="Color LSR:"><vspace />A transit node with multiple paths towards a destination.  It advertises color paths to other upstream LSRs according to a local forwarding association between colors and downstream paths.  Advertisement may occur as response to an egress LSR interest in specific color paths.</t>
         <t hangText="Ingress LSR:"><vspace />Selects between color paths associated with a given FEC to influence the forwarding by downstream color LSRs.</t>
         <t hangText="Egress LSR:"><vspace />May signal interest in particular colors towards upstream LSRs in order to influence the signaling behavior of color LSRs.</t>
         </list>
      </t>

      <t><xref target="fig_color_lsp_example"/> illustrates an example of a network implemententing a forwarding preference policy for a prefix FEC. In this example, LSRa is an ingress LSR, LSRb is a color LSR and LSRc is an egress LSR. There are three paths (P1, P2 and P3) between LSRb and LSRc. Path P1 and P2 have unique characteristics with respect to p3.  LSRb associates P1 and P2 with a color value C1, and P3 with a different color value C2.  This color-to-path association is a local decision on LSRb, and colors are globally significant within the LDP domain.
      </t>
      <t><figure align="center" anchor="fig_color_lsp_example">
           <artwork align="center"><![CDATA[
               P1
             ------
            /      \
           /   P2   \
LSRa --- LSRb ---- LSRc
           \        /
            \      /
             ------
               P3
            ]]>
            </artwork>
            <postamble>Example of a color LSP scenario</postamble>
          </figure>
      </t>
      <t>LSRb signals two color LSPs towards LSRa in response to LSRc interest in color LSPs.  LSRc advertises a label for a prefix for which it is an egress LSR.  The advertisement includes a label mapping for the prefix and a list of colors (C1 and C2) in which LSRc is interested. LSRb matches the colors in the local color-path association with the color list that LSRc advertised.  After finding a match for both C1 and C2, LSRb signals labels for two paths towards LSRa with colors C1 and C2. In addition, it programs an MPLS forwarding entry that associates color C1 with P1 and P2 as next hops, and color label C2 with P3 as next hop for the prefix advertised by LSRc. Ultimately, LSRa receives two label mappings for the prefix, one associated with C1 and the second one associated with C2.
      </t>
      <t>LSRa can make a local decision to forward traffic towards LSRc using the LSP with color C1 (via paths P1 and P2) or the LSP with color C2 (via P3).  While both color paths overlap between LSRa and LSRb, the latter differentiates the forwarding of color labels towards LSRc per its local policy.
      </t>
      <t>LSRb may implement different policies for the signaling of color LSPs.  In the scenario above, LSRb can be provisioned to advertise color labels for C1 and and C2 without requiring explicit indication from LSRc of interest in those two colors.  Such configuration may be desirable for interoperability with legacy egress LSRs that cannot signal a color interest.  It may also be desirable in deployment scenarios where color LSPs should be signaled for all egress LSRs and there is no need to provide control for individual egress LSRs.
      </t>
    </section>

    <!--*********************** CAPABILITY SECTION **************************-->
    <section anchor="sec_cap" title="LDP Color LSP Capability">
      <t>This new capability parameter allows an LSR to advertise its ability  to signal a color LSP for a given FEC type (<xref target="sec_app"/>).  The capability follows the format and procedures defined in <xref target="RFC5561"/> and may be signaled in LDP Initialization or Capability messages.
      </t>
      <t><figure align="center" anchor="fig_color_lsp_cap">
           <artwork align="center"><![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|U|F| Color LSP Capability(IANA)|            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|S|  Reserved   |                                               |
+-+-+-+-+-+-+-+-+                                               |
~                   Color LSP Capability Data                   ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           ]]>
           </artwork>
           <postamble>"Color LSP Capability" TLV</postamble>
         </figure>
      </t>      
      <t><list style="hanging" hangIndent="3">
           <t hangText="U/F-bits:"><vspace />
              MUST be set to 1 and 0 respectively so that a receiver silently ignores this TLV if unknown, continues processing the rest of the message and does not forward the TLV if unknown.
           </t>
           <t hangText="Length:"><vspace />
              The length (in octets) of the TLV following this length field. The value of this field is variable	and is dependent on capability-specific data.
           </t>
           <t hangText="S-bit:"><vspace />
              	Set to 1 or 0 to advertise or withdraw the capability respectively as specified in <xref target="RFC5561"/>.
           </t>
          <t hangText="Reserved:"><vspace />
              Must be set to zero on transmission and ignored on receipt
           </t>
           <t hangText="Color LSP Capability Data:"><vspace />
              This is capability-specific data that is defined for Color LSPs. It consists of a Typed Wildcard FEC Element <xref target="RFC5918"/> identifying the FEC for which this capability is being signaled. In the context of this document, the Typed Wildcard FEC element MUST correspond to one of the FEC types applicable to Color LSP as defined in <xref target="sec_app"/>. If a receiver receives this TLV with a Typed Wildcard FEC of type other than those defined in <xref target="sec_app"/>, it SHOULD silently discard the TLV and continue processing rest of the message.
           </t>
         </list>
       </t>
	  <t> In order to announce or withdraw this capability for more than one type of FEC elements, an LDP speaker MUST announce/withdraw them separately using the same "Color LSP Capability" TLV. A receiver MUST keep record of the color LSP capabilities of its peer on per-FEC basis.
      </t> 
      <t>For example, consider an LSR that supports color LSPs for both IPv4 Prefixes and IPv6 Prefixes. The LSR will announce these capabilities in different Capability TLVs (either as part of the same LDP Initialization/Capability message or separate message) by setting the TLV S-bit to 1 and capability data to Typed Wildcard IPv4 Prefix FEC and Typed Wildcard IPv6 Prefix FEC (as defined in <xref target="RFC5918"/>). The receiver will keep track of the LSR capability and note it to be Color LSP capable for IPv4-Prefix and IPv6-Prefix FEC types. Later, if the LSR withdraws its capability for one of these FEC elements, it will send a Capability TLV (in a Capability message) with S-bit set to 0 and FEC's Typed Wildcard as the capability data. On receipt of this message, the peer will update accordingly to remove the corresponding FEC from LSR's color LSP capability list.
      </t>      	
    </section>

    <!--************************* COLOR TLV SECTION *************************-->
    <section title="Color Lists">
      <section anchor="sec_clist" title="Color List TLV">
        <t>The Color List TLV is a new optional parameter in the LDP Label Mapping and Label Request messages<xref target="RFC5036"/>. The list includes one or more color identifiers that LSRs may use to signal interest in a forwarding preference.
        </t>
        <t><figure align="center" anchor="fig_color_list_tlv">
             <artwork><![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|U|F|     Color List (IANA)    |            Length              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Color Ids                             |
~                                                               ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             ]]>
             </artwork>
             <postamble>"Color List" TLV</postamble>
           </figure>
        </t>
        <t><list style="hanging" hangIndent="3">
             <t hangText="U/F-bits:"><vspace />
                MUST be set to 1 and 1 respectively so that a receiver silently ignores this TLV if unknown, continues processing the rest of the message and forwards the TLV.
           </t>
           <t hangText="Length:"><vspace />
              The length (in octets) of the TLV following this length field.  The value of this field is variable	and is dependent on number of Color Ids that follow in the TLV.
           </t>
           <t hangText="Color Ids:"><vspace/>
              List of color identifiers associated with the FEC encoded in the message.
             </t>
           </list>
        </t>
        <t>A Color Id is a two octet field defined as follows:</t>
        <t><figure align="center" anchor="fig_color_id_tlv">
             <artwork><![CDATA[
 0                   1          
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Color Id            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             ]]></artwork>
             <postamble>"Color identifier" field</postamble>
           </figure>
           <list style="hanging" hangIndent="3">
             <t hangText="Color Id:"><vspace />
               (non-zero) unsigned color identifier. Color Id 0xFFFF refers to the "wildcard color" (i.e. all colors).
             </t>
          </list>
        </t>
      </section>
      <section title="Procedures">
        <t>An egress LSR MAY include the Color List TLV in a Label Mapping Message if using Downstream Unsolicited mode.  An LSR may include the TLV in Label Request Messages if using Downstream on Demand mode.  An LSR MUST NOT include this TLV in any other LDP message except the Label Mapping and Label Request messages.  LSRs SHOULD silently discard this TLV if received in other messages and continue processing the rest of the message.  A Color List TLV MUST only be used in downstream signaled paths.
        </t>

        <t>An LSR MAY include a Color List TLV List TLV whether the neighbor has previously advertised the LDP Color LSP Capability (<xref target="sec_cap"/>) or not. The TLV MUST be forwarded to other neighbors as defined by the U/F flags.  This behavior allows LSRs that do not support the Color LSP extensions to not preclude the signaling of Color LSPs if they are downstream from a Color LSR.</t>

        <t>On receipt of a Color List TLV, a Color LSR with multiple downstream paths SHOULD match the list of color identifiers with its local association between forwarding paths and colors.  At least one path MUST be defined as the "default" path.  This path SHOULD be used as a second best match in the absence of an exact color match.  If the Color LSR does not have an association between colors and paths or is a legacy LSR not supporting the Color LSP extensions, all paths SHOULD be treated as default paths. 
        </t>
      </section>  
    </section>

    <!--***************** COLOR ADDRESS FAMILIES SECTION ********************-->
    <section anchor="sec_color_af" title="Color Address Families">
      <t>To setup LSPs corresponding to FECs under a given color scope,	the applicable LDP FEC elements (<xref target="sec_app"/>) must be	extended to include the color information.  The Color Id becomes an attribute of such LDP FEC elements, and all FEC-Label	binding operations are performed under the context of the given color.	
 	  </t>
 	  <t>To be able to associate a color with a FEC, we define new "color" address families as follows:
         <list style="">
         <t>Color IP (version 4)</t>
         <t>Color IPv6</t>
         </list> 
      </t>		
 	  <t> These address families just extend the format of their base address family by including color information. The format of data associated with these new address families is described later in sections <xref target="sec_color_ip"/> and <xref target="sec_color_ipv6"/>.	The proposed new address families can be used in any LDP message and procedures defined for Color LSPs. If a receiver does not support these address families received	in a message, it SHOULD send "Unknown Address Family" notification back to the sender and discard the message.
      </t>	
 		
      <section anchor="sec_color_ip" title="Color IP Address Family">
        <t>The format of data associated with Color IP (version 4) address family is:
        </t>
        <t><figure align="center" anchor="fig_color_ip">
             <artwork><![CDATA[
 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	
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
|                            Prefix                             |	
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
|           Color Id           |           Reserved             |	
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
             ]]>
             </artwork>
             <postamble>"Color IP (version 4)" Address Family Format</postamble>
           </figure>
        </t>
        <t><list style="hanging" hangIndent="3">
             <t hangText="Prefix:"><vspace />
                IPv4 prefix for "Color IP (version 4)" address family
             </t>
             <t hangText="Color Id:"><vspace/>
              Color identifiers associated with IP (version 4) address
             </t>
           </list>
        The address length for Color IP address family is 8 octets.
        </t>
      </section>
      <section anchor="sec_color_ipv6" title="Color IPv6 Address Family">
        <t>The format of data associated with Color IPv6 address family is:
        </t>
        <t><figure align="center" anchor="fig_color_ipv6">
             <artwork><![CDATA[
 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	
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
|                                                               |
|                            Prefix                             |	
|                                                               |        
|                                                               |        
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
|           Color Id           |           Reserved             |	
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
             ]]>
             </artwork>
             <postamble>"Color IPv6" Address Family Format</postamble>
           </figure>
        </t>
        <t><list style="hanging" hangIndent="3">
             <t hangText="Prefix:"><vspace />
                IPv6 prefix for "Color IPv6" address family
             </t>
             <t hangText="Color Id:"><vspace/>
              Color identifiers associated with IPv6 address
             </t>
           </list>
        The address length for Color IP address family is 20 octets.
        </t>
      </section>
    </section>


    <!--**************** COLOR FORWARDING EQUIVALENCE CLASS *****************-->
    <section anchor="sec_color_fecs" title="Color FECs">
      <t>The following subsection defines the format of the LDP Color FEC elements (<xref target="sec_app"/>) as well as their Typed wildcard <xref target="RFC5918"/> counterparts.
      </t>
      <section title="Color Prefix FEC Element">
        <t><figure align="center" anchor="fig_color_fec">
             <artwork><![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Prefix (2)   |    AF (Color IP/Color IPv6)   |     PreLen    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                             Prefix                            ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Color Id            |            Reserved           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             ]]></artwork>
             <postamble>"Color Prefix" FEC element</postamble>
           </figure>     
        </t>   
        <t>The definition of these fields follows <xref target="sec_color_af"/> and <xref target="RFC5036"/>. The Prefix field can be either an IP (version 4) or an IPv6 address.
        </t>
      </section>
      <section title="Color Multipoint FEC Elements">
        <t>EDITOR NOTE: To be included in a later version.
        </t>
      </section>
      <section title="Procedures">
        <t>EDITOR NOTE: To be included in a later version.
        </t>
      </section>
    </section>

    <!--**************** Other FEC-BASED FEATURES SECTION *******************-->
    <section anchor="sec_other_fec_features" title="Other FEC-based Features">
      <section title="Typed Wildcard Forward Equivalence Class">
        <t><xref target="RFC5918"/> extends base LDP and defines Typed Wildcard FEC Element framework. Typed Wildcard FEC element can be used in any LDP	message to specify a wildcard operation for the given type of FEC.  The Color LSP extensions proposed in this document do not require any extension in the procedures for Typed Wildcard FEC Element support in <xref target="RFC5918"/>.
        </t>
        <t>The encoding for a Color Prefix Typed Wildcard FEC element is as follows:
          <figure align="center" anchor="fig_color_typed_wcard">
             <artwork><![CDATA[
 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	
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
|Typed Wcard (5)|  FEC Type (2) |   Len = 6     | AF=Color IP ..|	
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
|. or Color IPv6|           Color Id            |	
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             ]]></artwork>
             <postamble>"Color Prefix Typed Wildcard" FEC element</postamble>
           </figure>     
        </t>   
        <t> The definition of these fields follows <xref target="RFC5918"/> and <xref target="sec_clist"/>.
        </t>
        <t>The Color Prefix Typed Wildcard FEC allows an LSR to perform wildcard FEC operations under the scope of a specific color. For example, upon local configuration of color LSP feature	for a color C, an LSR may send a wildcard label request with Color Id C to learn all	its labels from the peer under the scope of that color.  If an LSR wishes to perform a wildcard operation that applies to all colors, it can use the "wildcard color" Color Id.
        </t>
      </section>
      <section title="Signaling Convergence (End-of-LIB)">
        <t><xref target="RFC5919"/> specifies extensions and procedures that allows an LDP	speaker to signal its convergence for a given FEC	type towards a peer using the corresponding Typed Wildcard FEC element.	Color LSP extensions for FECs do not require any change in these procedures and they apply as-is to these extended FEC elements. For instance, an LDP speaker MAY signal its LIB convergence per color (or for all colors) using a Color Prefix Typed Wildcard FEC element.
        </t>
      </section>
      <section title="LSP Ping Extensions">
        <section title="Color Prefix FEC">
          <t><xref target="RFC4379"/> defines procedures to detect MPLS LSP data-plane failures via LSP ping. The section 3.2 of <xref target="RFC4379"/> defines Sub-Types and formats for Sub-TLVs corresponding to FECs. For "Prefix" FEC, it defines "LDP IPv4 prefix" and "LDP IPv6 prefix" sub-types and TLVs. To support LSP ping for Color LDP LSPs, this document proposes following extensions to [RFC4379]:
          </t>
          <t><list style="">
               <t>New FEC types: Color LDP IPv4 FEC, and  Color LDP IPv6 FEC</t>
               <t>New sub-types: for sub-TLVs to specify these FECs in the "Target FEC Stack" TLV of [RFC4379]</t>
             </list> 
          </t>
          <t><figure align="center">
               <artwork><![CDATA[
Sub-Type       Length              Value Field	
--------       ------          --------------------	
  TBA1            5            Color LDP IPv4 prefix	
  TBA2           17            Color LDP IPv6 prefix
               ]]>
               </artwork>
             </figure>     
          </t>   
          <t>The format of these new FEC types is defined as an extension to the format of LDP IPv4 prefix and LDP IPv6 prefix sub-TLV by adding color information.
          </t>
          <t>The encoding for a Color LDP IP (version 4) and IPv6 FEC sub-TLVs is as follows:
             <figure align="center" anchor="fig_color_ip_ping">
               <artwork><![CDATA[
 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=Color LDP IPv4 FEC (TBA1) |          Length = 8           |	
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
|                          IPv4 prefix                          |	
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
| Prefix Length |      MBZ      |           Color Id            |	
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             ]]>
               </artwork>
               <postamble>"Color LDP IP (version 4)" FEC sub-TLV for LSP ping</postamble>
             </figure>    
             <figure align="center" anchor="fig_color_ipv6_ping">
               <artwork><![CDATA[
 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=Color LDP IPv6 FEC (TBA2) |          Length = 20          |	
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
|                                                               |	
|                          IPv6 prefix                          |	
|                                                               |	
|                                                               |	
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
| Prefix Length |      MBZ      |          Color Id             |	
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	
               ]]>
               </artwork>
               <postamble>"Color LDP IPv6" FEC sub-TLV for LSP ping</postamble>
             </figure>
             The Color Id value MUST NOT be the "Wildcard Color".      
          </t>   
        </section>
        <section title="Color Multipoint FEC">
          <t>EDITOR NOTE: To be included in a later version.
          </t>
        </section>
      </section>
    </section>
          
    <!--************************ ACKNOWLEDGEMENTS ***************************-->
<!--
    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>TBD</t>
    </section>
-->

    <!--********************** IANA CONSIDERATIONS **************************-->
    <section anchor="IANA" title="IANA Considerations">
      <t>This document defines the following new LDP extensions:</t>
      <t><list style="">
           <t>"Color LSP Capability" (codepoint to be allocated from LDP registry "TLV Type Name Space")</t>
           <t>Color List TLV (codepoint to be allocated from LDP registry "TLV Type Name Space")</t>
           <t>Color Address Families (from registry "Address Familiy Numbers")
             <list style="">
               <t>Color IP (version 4)</t>
               <t>Color IPv6</t>
             </list>
           </t>
           <t>New Sub-TLV Types under TLV type 1 (Target FEC Stack)	from "Multi-Protocol Label Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters" registry, and "TLVs and sub-TLVs" sub-registry.
             <figure align="center">
               <artwork><![CDATA[
Sub-Type           Value Field	
--------       ------          --------------------	
  TBA1            5            Color LDP IPv4 prefix	
  TBA2           17            Color LDP IPv6 prefix
               ]]>
               </artwork>
             </figure>    
           </t>
         </list>
       </t>
       <t>IANA is requested to assign the LDP capability code point and the type values of these TLVs.</t>
    </section>

    <!--******************** SECURITY CONSIDERATIONS ************************-->
    <section anchor="Security" title="Security Considerations">
      <t>The MPLS security framework <xref target="RFC5920"/> and the security considerations in the LDP specification <xref target="RFC5036"/> apply to this document.</t>
    </section>
  </middle>

  <!--***************************** BACK MATTER *****************************-->
  <back>

    <!--********************** NORMATIVE REFERENCES *************************-->
    <references title="Normative References">
      &RFC2119;
      &RFC4379;
      &RFC5036;
      &RFC5561;
      &RFC5918;
      &RFC5919;
      &RFC5920;
      &RFC6388;
    </references>

    <!--******************** INFORMATIVE REFERENCES *************************-->
    <references title="Informative References">
      &RFC3031;
      &RFC5920;
    </references>
  </back>
</rfc>
<!--***************************** END OF DOCUMENT ***************************-->
