<?xml version="1.0" encoding="US-ASCII"?>
<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by Fred Baker (private) -->
<!DOCTYPE rfc SYSTEM "http://xml.resource.org/authoring/rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="no"?>
<?rfc tocdepth="6"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<rfc category="std" docName="draft-mplste-intedomain-ecmp-tie-breaking-00"
     ipr="trust200902">
  <front>
    <title abbrev="Inter-Domain TE-LSP ECMP Tie Breaking">RSVP-TE Extensions for
    ECMP Tie-Breaking of Inter-Domain TE LSPs</title>

    <author fullname="Pradeep Jain" initials="P." surname="Jain">
      <organization>Alcatel-Lucent, Inc.</organization>

      <address>
        <postal>
          <street>701 E Middlefield Rd</street>

          <city>Mountain View, CA</city>

          <code>94040</code>

          <country>USA</country>
        </postal>

        <email>pradeep.jain@alcatel-lucent.com</email>
      </address>
    </author>

    <author fullname="Kanwar Singh" initials="K." surname="Singh">
      <organization>Alcatel-Lucent, Inc.</organization>

      <address>
        <postal>
          <street>701 E Middlefield Rd</street>

          <city>Mountain View, CA</city>

          <code>94040</code>

          <country>USA</country>
        </postal>

        <email>kanwar.singh@alcatel-lucent.com</email>
      </address>
    </author>

    <author fullname="Srikrishnan Venkataraman" initials="S."
            surname="Venkataraman">
      <organization>Alcatel-Lucent, Inc.</organization>

      <address>
        <postal>
          <street>701 E Middlefield Rd</street>

          <city>Mountain View, CA</city>

          <code>94040</code>

          <country>USA</country>
        </postal>

        <email>Srikrishnan.Venkataraman@alcatel-lucent.com</email>
      </address>
    </author>

    <date day="1" month="March" year="2012" />

    <area>Internet Area</area>

    <workgroup>Networking Working Group</workgroup>

    <abstract>
      <t>This document specifies RSVP-TE extensions that will communicate to
      all the ABRs that they need to explicitly perform a tie-breaking process
      to select a particular path if path calculation results in multiple
      equal-cost paths across different TE-Domains. This will help is
      efficient utilization of end-to-end network resources for Inter-Domain
      TE LSPs</t>
    </abstract>
  </front>

  <middle>
    <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 RFC2119 <xref
    target="RFC2119" />.</t>

    <t>When used in lower case, these words convey their typical use in common
    language, and are not to be interpreted as described in RFC2119 <xref
    target="RFC2119" />.</t>

    <section title="Introduction">
      <t>If multiple equal-cost paths exists for a constraint TE-LSP, then we
      typically use tie-breaking process to select a particular path. This
      tie-breaking process is executed at the Head-End node where Constrained
      Shortest Path First (CSPF) computation is exercised.</t>

      <t>In case of RSVP Inter-Domain TE-LSPs of type Contiguous LSP RFC4726
      <xref target="RFC4726" /> and RFC5151 <xref target="RFC5151" /> each ABR
      is specified as loose hop and each ABR along the path whose next hop is
      specified as a loose hop triggers a path computation (also referred to
      as an ERO expansion), before forwarding the RSVP Path message
      downstream. Thus, each ABR is responsible for calculating path within
      its TE-Domain.</t>

      <t>Every node that triggers path computation for its TE-Domain can have
      multiple equal-cost paths and has to chose one of them. Since there are
      multiple nodes that perform path computation (w.r.t. their respective
      TE-Domains), hence there is no common selection criteria for
      tie-breaking to be followed by each node performing ERO expansion.</t>

      <t>This document specifies RSVP-TE extensions that will communicate to
      all the nodes doing ERO expansion that they need to explicitly perform
      common tie-breaking process to select a particular path if path
      calculation results in multiple equal-cost paths across its TE-Domain.
      By doing this we achieve uniform path selection criteria for
      Inter-Domain TE LSPs.</t>

      <t />
    </section>

    <section title="Terminology">
      <t>Terminology used in this document:</t>

      <t>CSPF: Constrained Shortest Path First.</t>

      <t>TE LSP: Traffic Engineering Label Switched Path.</t>

      <t>ERO: Explicit Route Object.</t>

      <t>TE: Traffic Engineering.</t>

	  <t>IGP: Interior Gateway Protocol.</t>

	  <t>OSPF: Open Shortest Path First.</t>

	  <t>IS-IS: Intermediate System-to-Intermediate System.</t>
	  
      <t>LSR: Label Switching Router.</t>

      <t>TE LSP head-end: head/source of the TE LSP.</t>

      <t>ABR: Area Border Router.</t>

      <t>Intra-domain TE LSP: A TE LSP whose path does not transit across
      areas.</t>

      <t>Inter-domain TE LSP: A TE LSP whose path transits across at least two
      different IGP areas.</t>

      <t />
    </section>

    <section title="Establishment and Inability of End-to-End Load Balancing of Inter-Domain Contigous TE LSP">
      <t>The aim of this section is purely to summarize the mechanisms
      involved in the establishment of a loosely routed TE LSP, based on RSVP
      as specified in RFC3209 <xref target="RFC3209" />, RFC4726 <xref
      target="RFC4726" /> and RFC5151 <xref target="RFC5151" />.</t>

      <t>In the context of this document, a loosely routed Inter-Domain TE LSP
      is defined as one that does not contain a full, explicit route
      identifying each LSR along the path of the LSP at the time it is
      signaled by the ingress LSR. Such an LSP is signaled with an ERO that
      contains at least one loose hop that identifies ABR node. Each LSR along
      the path whose next hop is specified as a loose hop triggers a path
      computation (also referred to as an ERO expansion), before forwarding
      the RSVP Path message downstream. The computed path may be either
      partial (up to the next loose hop) or complete (set of strict hops up to
      the TE LSP destination).</t>

      <t>Note that although the examples in the rest of this document are
      provided in the context of MPLS Inter-Domain TE, the proposed mechanism
      applies equally to loosely routed paths within a single routing domain
      and across multiple Autonomous Systems. The examples below are provided
      with OSPF as the IGP, but the described set of mechanisms similarly
      apply to IS-IS.</t>

      <t>An example of an explicit loosely routed TE LSP signaling
      follows.</t>

      <t>Assumptions.</t>

      <figure>
        <artwork>       &lt;-area 1-&gt;&lt;-area 0-&gt;&lt;-area 2-&gt;
		         
       R1---R2---R3---R6----R8---R10
       |      / | \   |   / |    |
       |    /   |  \  |  /  |    |
       |  /     |   \ | /   |    |
       R4-------R5---R7----R9---R11

       </artwork>
      </figure>

      <t>
        <list style="symbols">
          <t>R3, R5, R8, and R9 are ABRs.</t>

          <t>The path of an Inter-Domain TE LSP T1 from R1 (head-end LSR) to
          R11 (tail-end LSR) is defined on R1 as the following loosely routed
          path: R1-R3(loose)-R8(loose)-R11(loose). R3, R8, and R11 are defined
          as loose hops.</t>

          <t>Step 1: R1 determines that the next hop (R3) is a loose hop (not
          directly connected to R1) and then performs an ERO expansion
          operation to reach the next loose hops R3. The new ERO could become:
          R2(S)-R3(S)-R8(L)-R11(L) or R4(S)-R3(S)-R8(L)-R11(L), where S is a
          strict hop (L=0) and L is a loose hop (L=1). Both the paths R1-R2-R3
          and R1-R4-R3 are equal-cost paths and satisfies T1's set of
          constraints.</t>

          <t>Step 2: The RSVP Path message is then forwarded by R1 following
          the path specified in the ERO object and reaches R3 with the
          following content: R8(L)-R11(L).</t>

          <t>Step 3: R3 determines that the next hop (R8) is a loose hop (not
          directly connected to R3) and then performs an ERO expansion
          operation to reach the next loose hops R8. The new ERO could become:
          R6(S)-R8(S)-R11(L) or R7(S)-R8(S)-R11(L). Both paths R3-R6-R8 and
          R3-R7-R8 are equal-cost paths and satisfies T1's set of
          constraints.</t>

          <t>Step 4: The same procedure is repeated by R8 to reach T1's
          destination (R11) and which may also lead to two equal-cost paths
          R8-R10-R11 and R8-R9-R11.</t>
        </list>
      </t>

      <t>In the above example we see that there are two equal-cost paths that
      results from path computation done by ingress node (R1) and subsequent
      ABRs (R3 and R8) for their TE-Domain. In order of efficiently using the
      links as desired by network administrator only the ingress node can know
      about the tie-breaking process to be use as part of the TE-LSP
      configuration, which may lead to efficient use of the links in area-1
      (or domain 1) only. However there is no way to communicate that
      subsequent ABRs (R3 and R8) also needs to use common tie-breaking
      process so as to efficiently use the link in their subsequent
      domains.</t>

      <t>This document defines mechanisms that would allow each ABR to know
      what tie-breaking process to use among equal-cost paths when doing path
      computation for their respective TE-domain.</t>

      <t />

      <t />
    </section>

    <section title="RSVP-TE Extensions">
      <t>There are following well known and understood techniques followed by
      various routing vendors used for tie-breaking in case multiple
      equal-cost paths exists.</t>

      <t>
        <list style="symbols">
          <t>Least-Fill.</t>

          <t>Most-Fill.</t>

          <t>Random.</t>
        </list>
      </t>

      <t> Most known and deployed implementations employ a consistent definition 
	  of above three Path Selection tie-breaking schemes, and the specifications
	  of each tie-breaking load balancing algorithms is outside the scope of this
	  document. This document only lays down the mechanism for signaling what type
	  of tie-breaking process is intended to be used for a given Inter-Domain TE LSP.
	  Such that all the nodes along the Inter-Domain TE LSP which does path 
	  computations can factor such constraints and help in signaling end-to-end 
	  TE-LSP which is efficiently using links as desired by network administrator
	  spanning across multiple TE-Domains.</t>

      <t>In order to indicate nodes (e.g ABRs) that are participating ERO
      expansion for Inter-Domain Contiguous TE LSP to exercise either
      Least-Fill or Most-Fill type of tie-breaking procedure for equal-cost
      paths, this document defines new set of flag values in the Attribute
      Flags TLV, which are carried in LSP_ATTRIBUTES Object RFC5420:.</t>

      <t>o Bit Number (to be assigned by IANA, recommended bit one) :
      Least-Fill Bit.</t>

      <t>o Bit Number (to be assigned by IANA, recommended bit two) :
      Most-Fill Bit.</t>

      <t>Both the bits would together can be referred as ECMP tie-breaking
      bits. Both the proposed bits would have meaning only in Path
      message.</t>

      <t>If Least-Fill Bit is set, then the node responsible for Path
      expansion MUST use the Least-Fill process for tie-breaking of ECMP
      paths.</t>

      <t>If Most-Fill Bit is set, then the node responsible for Path expansion
      MUST use the Most-Fill process for tie-breaking of ECMP paths.</t>

      <t>If none of the Bit (Least-Fill Bit or Most-Fill Bit) is set, then the
      node responsible for Path expansion can use the default process for
      tie-breaking of ECMP paths. This could be Random or whatever is
      configured as default tie-breaking process on the node.</t>

      <t>The rules of the processing of the Attribute Flags TLV are not
      changed.</t>
    </section>

    <section title="Signaling Procedures">
      <t>If it is desired to perform uniform way of tie-breaking process (with
      could be Least-Fill, Most-Fill or Random) across all domains for
      Inter-Domain TE-LSP, then head-end node is responsible for setting
      Least-Fill or Most-Fill Bit in the Attribute Flags TLV which is carried
      in LSP_ATTRIBUTES Object.</t>

      <t>When a node receives a Path message which carries an LSP_ATTRIBUTES
      Object with either Least-Fill or Most-Fill Bit set in Attribute Flags
      TLV, then :-.</t>

      <t>If the node is going to perform the ERO expansion (e.g ABR node),
      then it MUST use the appropriate method as what is been signaled
      (Least-Fill or Most-Fill) to perform tie-breaker of ECMP paths. If both
      Least-Fill and Most-Fill bits are unset, then node can use the default
      process for breaking the tie-breaker of ECMP paths. This could be Random
      or whatever is configured as default tie-breaking process on the
      node.</t>

      <t>If the node does not need to perform the path expansion (e.g non-ABR
      node), it should do regular Path message processing as defined in
      RFC2205 <xref target="RFC2205" /> and RFC3209 <xref
      target="RFC3209" />.</t>

      <t>If the node does not support Least-Fill or Most-Fill process of
      tie-breaking of ECMP paths, then it MUST send PathErr to reject the Path
      message with the defined error code ''Policy Control Failure''/''Inter-
      domain policy failure''.</t>
    </section>

    <section title="Management Considerations">
      <t>None</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>The function described in this document does not create any new
      security issues for RSVP-TE protocol.</t>
    </section>

    <section anchor="Ack" title="Acknowledgements">
      <t>The editors gratefully acknowledge the useful inputs of Mustapha Aissaoui
	  of Alcatel-Lucent, Inc</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <section anchor="RSVP-IANA" title="IANA Considerations for RSVP-TE">
        <t>IANA will assign two Bits in Attribute Flags TLV, which is carried
        in an LSP_ATTRIBUTES Object RFC5420 <xref target="RFC5420" />. First
        bit would communicate Least-Fill, and the second bit would communicate
		Most-Fill type of tie-breaking procedure for equal-cost paths.</t>

        <texttable style="headers">
          <preamble>Following Bit values for Attribute Flags TLV are
          suggested:-</preamble>

          <ttcol>Bit</ttcol>

          <ttcol>Tie-Breaking Method</ttcol>

          <ttcol>Reference</ttcol>

          <c>1 (suggested)</c>

          <c>Least-Fill</c>

          <c>(this document)</c>

          <c>2 (suggested)</c>

          <c>Most-Fill</c>

          <c>(this document)</c>
        </texttable>
      </section>
    </section>
  </middle>

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

      <?rfc include='reference.RFC.4726'?>

      <?rfc include='reference.RFC.5151'?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.RFC.2119'?>

      <?rfc include='reference.RFC.2205'?>

      <?rfc include='reference.RFC.3209'?>

      <?rfc include='reference.RFC.3471'?>

      <?rfc include='reference.RFC.3473'?>

      <?rfc include='reference.RFC.3784'?>
    </references>
  </back>
</rfc>
