<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-ietf-isis-mpls-elc-06" ipr="trust200902">
  <front>
    <title abbrev="Signaling ELC and ERLD using IS-IS">Signaling Entropy Label
    Capability and Entropy Readable Label Depth Using IS-IS</title>

    <author fullname="Xiaohu Xu" initials="X.X." surname="Xu">
      <organization>Alibaba Inc</organization>

      <address>
        <!--
       <postal>
         <street></street>
-->

        <!-- Reorder these if your country does things differently -->

        <!--
         <city>Soham</city>

         <region></region>

         <code></code>

         <country>UK</country>
       </postal>

       <phone>+44 7889 488 335</phone>
-->

        <email>xiaohu.xxh@alibaba-inc.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <author fullname="Sriganesh Kini" initials="S.K" surname="Kini">
      <organization/>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <phone/>

        <facsimile/>

        <email>sriganeshkini@gmail.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Siva Sivabalan" initials="S.S" surname="Sivabalan">
      <organization>Cisco</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <phone/>

        <facsimile/>

        <email>msiva@cisco.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Clarence Filsfils" initials="C.F." surname="Filsfils">
      <organization>Cisco</organization>

      <address>
        <!--
       <postal>
         <street></street>
-->

        <!-- Reorder these if your country does things differently -->

        <!--
         <city>Soham</city>

         <region></region>

         <code></code>

         <country>UK</country>
       </postal>

       <phone>+44 7889 488 335</phone>
-->

        <email>cfilsfil@cisco.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <author fullname="Stephane Litkowski" initials="S.L." surname="Litkowski">
      <organization>Orange</organization>

      <address>
        <postal>
          <street/>

          <street/>

          <city/>

          <code/>

          <country/>
        </postal>

        <email>stephane.litkowski@orange.com</email>

        <uri/>
      </address>
    </author>

    <date day="25" month="September" year="2018"/>

    <abstract>
      <t>Multiprotocol Label Switching (MPLS) has defined a mechanism to load
      balance traffic flows using Entropy Labels (EL). An ingress Label
      Switching Router (LSR) cannot insert ELs for packets going into a given
      tunnel unless an egress LSR has indicated via signaling that it has the
      capability of processing ELs, referred to as Entropy Label Capability
      (ELC), on that tunnel. In addition, it would be useful for ingress LSRs
      to know each LSR's capability of reading the maximum label stack depth
      and performing EL-based load-balancing, referred to as Entropy Readable
      Label Depth (ERLD), in the cases where stacked LSPs are used for
      whatever reasons. This document defines mechanisms to signal these two
      capabilities using IS-IS. These mechanisms are useful when the label
      advertisement is also done via IS-IS. In addition, this document
      introduces the Non-IGP Functional Capabilities Sub-TLV for advertising
      IS-IS router's actual non-IGP functional capabilities. ELC is one of
      such non-IGP functional capabilities.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t><xref target="RFC6790"/> describes a method to load balance
      Multiprotocol Label Switching (MPLS) traffic flows using Entropy Labels
      (EL). <xref target="RFC6790"/> introduces the concept of Entropy Label
      Capability (ELC) and defines the signalings of this capability via MPLS
      signaling protocols. Recently, mechanisms are being defined to signal
      labels via link-state Interior Gateway Protocols (IGP) such as IS-IS
      <xref target="I-D.ietf-isis-segment-routing-extensions"/>. In such
      scenario, the signaling mechanisms defined in <xref target="RFC6790"/>
      are inadequate. This draft defines a mechanism to signal the ELC <xref
      target="RFC6790"/> using IS-IS. This mechanism is useful when the label
      advertisement is also done via IS-IS.</t>

      <t>In addition, in the cases where stacked LSPs are used for whatever
      reasons (e.g., SR-MPLS <xref
      target="I-D.ietf-spring-segment-routing-mpls"/>), it would be useful for
      ingress LSRs to know each intermediate LSR's capability of reading the
      maximum label stack depth and performing EL-based load-balancing. This
      capability, referred to as Entropy Readable Label Depth (ERLD) as
      defined in <xref target="I-D.ietf-mpls-spring-entropy-label"/> may be
      used by ingress LSRs to determine whether it's necessary to insert an EL
      for a given LSP of the stacked LSP tunnel in the case where there has
      already been at least one EL in the label stack <xref
      target="I-D.ietf-mpls-spring-entropy-label"/>.</t>
    </section>

    <section anchor="Teminology" title="Terminology">
      <t>This memo makes use of the terms defined in <xref target="RFC6790"/>
      and <xref target="RFC4971"/>.</t>

      <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 title="Non-IGP Functional Capabilities Sub-TLV">
      <t>This document defines the Non-IGP Functional Capabilities Sub-TLV
      with Sub-TLV type of TBD1 within the body of the IS-IS Router Capability
      TLV. An IS-IS router advertising an IS-IS Router Capability TLV MAY
      include the Non-IGP Functional Capabilities Sub-TLV. The Sub-TLV MUST
      reflect the advertising IS-IS router's actual non-IGP functional
      capabilities in the flooding scope of the containing Router Capability
      TLV.</t>

      <t>The format of the Router Non-IGP Functional Capabilities Sub-TLV is
      as follows:<figure>
          <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=TBD1  |    Length=4   |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |               Non-IGP Functional Capabilities                 |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           Figure 1: Non-IGP Functional Capabilities Sub-TLV Format]]></artwork>
        </figure><list>
          <t>Type: TBD1.</t>

          <t>Length: Indicates the length of the value portion in octets and
          will be a multiple of 4 octets dependent on the number of
          capabilities advertised. Initially, the length will be 4, denoting 4
          octets of non-IGP functional capability bits.</t>

          <t>Value: A variable-length sequence of capability bits rounded to a
          multiple of 4 octets padded with undefined bits. Initially, there
          are 4 octets of capability bits. Bits are numbered left to right
          starting with the most significant bit being bit 0.</t>
        </list>The Non-IGP Functional Capabilities Sub-TLV MAY be followed by
      optional Sub-TLVs that further specify a non-IGP functional capability.
      The specifications for non-IGP functional capabilities advertised in
      this Sub-TLV MUST describe protocol behavior and address backwards
      compatibility.</t>
    </section>

    <section anchor="Advertising" title="Advertising ELC Using IS-IS">
      <t>One bit of the Non-IGP Functional Capability Bits (Bit 0 is desired)
      is to be assigned by the IANA for the ELC <xref target="RFC6790"/>. If a
      router has multiple line cards, the router MUST NOT announce the ELC
      <xref target="RFC6790"/> unless all of its linecards are capable of
      processing ELs.</t>

      <t>How to apply the ELC advertisement to the inter-area, inter-AS and
      inter-protocol scenarios is outside the scope of this document.</t>
    </section>

    <section title="Advertising ERLD Using IS-IS">
      <t>A new MSD-type of the Node MSD sub-TLV <xref
      target="I-D.ietf-isis-segment-routing-msd"/>, called ERLD is defined to
      advertise the ERLD of a given router. As shown in Figure 2, it is
      formatted as described in <xref
      target="I-D.ietf-isis-segment-routing-msd"/> with a new MSD-Type code to
      be assigned by IANA (the type code of 2 is desired) and the Value field
      is set to the ERLD in the range between 0 to 255. The scope of the
      advertisement depends on the application. If a router has multiple
      linecards with different capabilities of reading the maximum label stack
      deepth, the router MUST advertise the smallest one.</t>

      <t><figure>
          <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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       | MSD-Type=TBD2 |     ERLD      |  
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                        Figure 2: ERLD MSD-Type Format]]></artwork>
        </figure></t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The authors would like to thank Yimin Shen, George Swallow, Acee
      Lindem, Les Ginsberg, Ketan Talaulikar, Jeff Tantsura, Bruno Decraene
      and Carlos Pignataro for their valuable comments.</t>

      <!---->
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document requests IANA to allocate one sub-TLV type of the
      Router Capability TLV registry for the Non-IGP Functional Capabilities
      Sub-TLV. Futhermore, this document requests IANA to creat a subregistry
      for "Non-IGP Functional Capability Bits" within the "Interior Gateway
      Protocol (IGP) Parameters" registry. This subregistry is comprised of
      the fields Bit Number, Capability Name, and Reference. Initially, one
      bit is reqested to be assigned for the ELC. The registration procedure
      is "Expert Review" as defined in <xref target="RFC8126"/>. The following
      values are defined by this document:</t>

      <t><figure>
          <artwork><![CDATA[      Bit No.     Capability Name                  Reference
      -----       ---------------------            -------------
      0           ELC                              This document
      1-31        Unassigned                       This document
     
           Figure 3: Non-IGP Functional Capability Bits Registry]]></artwork>
        </figure></t>

      <t>IANA is requested to allocate a MSD type (the type code of 2 is
      desired) from the &ldquo;IGP MSD Types&rdquo; registry for ERLD.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>The security considerations as described in <xref target="RFC4971"/>
      is applicable to this document. This document does not introduce any new
      security risk.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include="reference.RFC.6790"?>

      <?rfc include="reference.RFC.4971"?>

      <?rfc include="reference.RFC.5305"?>

      <?rfc include="reference.RFC.7794"?>

      <?rfc include="reference.RFC.8126"?>

      <?rfc include="reference.I-D.ietf-isis-segment-routing-msd"?>

      <?rfc include="reference.I-D.ietf-isis-segment-routing-extensions"?>

      <?rfc include="reference.I-D.ietf-spring-segment-routing-mpls"?>
    </references>

    <references title="Informative References">
      <?rfc include="reference.I-D.ietf-mpls-spring-entropy-label"?>
    </references>
  </back>
</rfc>
