<?xml version="1.0" encoding="us-ascii"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"[]>
<?rfc toc="yes" ?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="4"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="no"?>
<?rfc rfcedstyle="yes"?>
<?rfc subcompact="no"?>
<?rfc compact="yes" ?>
<?rfc iprnotified="Yes" ?>
<?rfc strict="no" ?>
<rfc ipr="trust200902" category="std" docName="draft-dhody-pce-bn-discovery-isis-05" obsoletes="" updates="" submissionType="IETF" xml:lang="en">
  <front>
    <title abbrev="ISIS BND">ISIS Protocol Extensions for Boundary Node Discovery (BND)</title>
    <author initials="D" surname="Dhody" fullname="Dhruv Dhody">
      <organization>Huawei Technologies India Pvt Ltd</organization>
      <address>
        <postal>
          <street>Leela Palace</street>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <code>560008</code>
          <country>INDIA</country>
        </postal>
        <email>dhruv.dhody@huawei.com</email>
      </address>
    </author>
    <author initials="U" surname="Palle" fullname="Udayasree Palle">
      <organization>Huawei Technologies India Pvt Ltd</organization>
      <address>
        <postal>
          <street>Leela Palace</street>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <code>560008</code>
          <country>INDIA</country>
        </postal>
        <email>udayasree.palle@huawei.com</email>
      </address>
    </author>
    <date month="August" year="2012" />
    <area>Routing</area>
    <workgroup>PCE Working Group</workgroup>
    <abstract>
      <t>There are various circumstances where it is highly desirable to be able to dynamically and automatically discover a set of Boundary Nodes (BN) along with their domain information.  For that purpose, this document defines extensions to the Intermediate System to Intermediate System(IS-IS) routing protocol for the advertisement of Boundary Node (BN)Discovery information within an IS-IS area or within the entire IS-IS routing domain.</t>
    </abstract>
  </front>
  <middle>
    <section title="Introduction" toc="default">
      <t>This document defines extensions to IS-IS <xref target="ISO 10589"/> to allow a boundary node in an IS-IS routing domain to advertise its location, along with domain information.</t>
      <t>Generic capability advertisement mechanisms for IS-IS are defined in <xref target="RFC4971"/>.  These allow a router to advertise its capabilities within an IS-IS area or an entire IS-IS routing domain.  This document leverages this generic capability advertisement mechanism to fully satisfy the dynamic BN discovery.</t>
      <t>This document defines a new sub-TLV (named the BN Discovery (BND))to be carried within the IS-IS Router Capability TLV (<xref target="RFC4971"/>).</t>
      <t>The BN information advertised is detailed in <xref target="SEC_OVERVIEW"/>.  Protocol extensions and procedures are defined in <xref target="SEC_BND"/> and <xref target="SEC_PROC"/>.</t>
      <t>A detailed description about the need for auto discovery of Boundary Nodes (BN) and thier domains is also provided in this document.</t>
      <t>The IS-IS extensions defined in this document allow for BN discovery within an IS-IS routing domain.  Boundary Node can be an ABR or ASBR.</t>
      <t>This document defines a set of sub-TLVs that are nested within each other.  When the degree of nesting TLVs is 2 (a TLV is carried within another TLV) the TLV carried within a TLV is called a sub-TLV. Strictly speaking, when the degree of nesting is 3, a sub-sub-TLV is carried within a sub-TLV that is itself carried within a TLV.  For the sake of terminology simplicity, a TLV carried within another TLV is called a sub-TLV regardless of the degree of nesting.</t>
      <section title="Requirements Language" toc="default">
        <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"/>.</t>
      </section>
    </section>
    <section title="Terminology" toc="default">
      <t>The following terminology is used in this document.</t>
      <t>
        <list style="hanging">
          <t hangText="ABR:">IS-IS Area Border Router. Routers used to connect two IGP areas.</t>
          <t hangText="AS:">Autonomous System.</t>
          <t hangText="ASBR:">Autonomous System Border Router.  Router used to connect together ASes of the same or different service providers via one or more inter-AS links</t>
          <t hangText="BN:">A boundary node is either an ABR in the context of inter-area Traffic Engineering or an ASBR in the context of inter-AS Traffic Engineering.</t>
          <t hangText="BND:">Boundary Node Discovery</t>
          <t hangText="BRPC:">Backward Recursive Path Computation</t>
          <t hangText="Domain:">Any collection of network elements within a common sphere of address management or path computational responsibility.  Examples of domains include Interior Gateway Protocol (IGP) areas and Autonomous Systems (ASs).</t>
          <t hangText="H-PCE:">Hierarchical PCE.</t>
          <t hangText="IGP:">Interior Gateway Protocol.  Either of the two routing protocols, Open Shortest Path First (OSPF) or Intermediate System to Intermediate System (IS-IS).</t>
          <t hangText="LSA:">Link State Advertisement.</t>
          <t hangText="IS-IS:">Intermediate System to Intermediate System.</t>
          <t hangText="PCE:">Path Computation Element.  An entity (component, application, or network node) that is capable of computing a network path or route based on a network graph and applying computational constraints.</t>
          <t hangText="TLV:">Type-Length-Variable data encoding.</t>
        </list>
      </t>
    </section>
    <section title="Overview" toc="default" anchor="SEC_OVERVIEW">
      <section title="Boundary Node (BN) Discovery Information" toc="default">
        <t> The BN discovery information is composed of:</t>
        <t>
          <list style="symbols">
            <t>The BN location: an IPv4 and/or IPv6 address that is used to reach the BN.  It is RECOMMENDED to use an address that is always reachable from all connected domains;</t>
            <t>The set of two or more Domain(s) into which the BN has connectivity;</t>
          </list>
        </t>
        <t>Changes in BN discovery information may occur as a result of BN configuration update or domain status change.
</t>
      </section>
      <section title="Flooding Scope" toc="default">
        <t>The flooding scope for BN information advertised through IS-IS can be a single L1 area, an L1 area and the L2 sub-domain, or the entire IS-IS routing domain.</t>
      </section>
    </section>
    <section title="Applications" toc="default">
      <t>BRPC procedure as defined in <xref target="RFC5441"/>, requires Path Computation Element (PCE) <xref target="RFC4655"/> to be aware of the BNs for the inter-domain path computation. This information would be either statically configured at PCE or learned via some mechanism, as listed in <xref target="SEC_OTHER"/>. </t>
      <t>In case of static configuration, as shown in the <xref target="fig1"/>, incase of ISIS Backbone area(L2), configuration of BNs at PCE5 is extensive.  BRPC procedure guarantees a best path only if BNs are selected correctly, any change in BNs at run time may lead to sub-optimal path.  Also Administrator need to configure ABR / ASBR ID in such a way that it is reachable   from all the domains, BND Tlv can take care of this automatically.</t>
      <t>
        <figure title="ISIS Area Topology" anchor="fig1" suppress-title="false" align="left" alt="" width="" height="">
          <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[  +--------------------------+          +--------------------------+
  |                  +------+|          |                  +------+|
  |      Area1(L1)   | PCE1 ||          |      Area2(L1)   | PCE2 ||
  |                  +--+---+|          |                  +--+---+|
  |                          |          |                          |
  |    +---------------------+----------+--------------------+     |
  |    | +------+    +------+|          |+------+   +------+ |     |
  |    | | BN1  |    | BN2  ||          || BN3  |   | BN4  | |     |
  |    | +--+---+    +--+---+|          |+--+---+   +---+--+ |     |
  +----+----|-----------+----+          +---+-----------+----+-----+
       |    |           |                   |           |    |
       |    +-----------+-------+    +------+-----------+    |
       |                        |    |                       |
       |                        |    |                       |
       |                       ++----++                      |
       |     Backbone(L2)      | PCE5 |                      |
       |                       ++----++                      |
       |                        |    |                       |
       |                        |    |                       |
       |    +-----------+-------+    +------+----------+     |
       |    |           |                   |          |     |
       |    |           |                   |          |     |
  +----+----+-----------+----+          +---+----------+-----+-----+
  |    | +--+---+    +--+---+|          |+--+---+   +--+---+ |     |
  |    | | BN5  |    | BN6  ||          || BN7  |   | BN8  | |     |
  |    | +------+    +------+|          |+------+   +------+ |     |
  |    +---------------------+----------+--------------------+     |
  |                          |          |                          |
  |                  +------+|          |                  +------+|
  |      Area3(L1)   | PCE3 ||          |      Area4(L1)   | PCE4 ||
  |                  +--+---+|          |                  +--+---+|
  +--------------------------+          +--------------------------+

]]></artwork>
        </figure>
      </t>
      <t>The problems with existing mechanism to discover Boundary nodes are listed in the next section.</t>
    </section>
    <section title="Existing Mechanisms " toc="default" anchor="SEC_OTHER">
      <section title="ISIS" toc="default">
        <t>
          <list style="symbols">
            <t>As specified in <xref target="RFC1142"/> ABR/ASBR can be identified but not their domain information.  As stated in <xref target="SEC_DOMAIN"/>, Selection of correct BN is based on domain and thus it is ineffective.</t>
            <t>Selection of ABR/ASBR based on ISIS Database is not a good idea, first it requires PCE to look into ISIS Database thus adding to coupling, second it MAY require BGP routes to be redistributed into ISIS which is also not a good network design principle.  </t>
          </list>
        </t>
      </section>
      <section title="Inter-AS TE Link" toc="default">
        <t>
          <list style="symbols">
            <t><xref target="RFC5316"/> specifies how to advertise TE properties of inter-AS links; through which ASBR and remote AS can be discovered, but ABR and their domain information cannot be discovered via above RFC.</t>
            <t>AS is made up of multiple Area, there maybe a need to clearly identify a BN by combination of both AS number and Area-id. Refer Section 3.5 of <xref target="DOMAIN-SEQ"/>.</t>
          </list>
        </t>
      </section>
      <section title="ISIS Area Topology" toc="default">
        <t>
          <list style="symbols">
            <t>To uniquely identify an ISIS L1 area, an unique area Id MUST be assigned. There is no other way to learn this information. BND can be used to advertise this information.</t>
          </list>
        </t>
      </section>
      <section title="HPCE" toc="default">
        <t>
          <list style="symbols">
            <t>Section 4 of <xref target="H-PCE"/> specifies each child PCE should know the identity of the domains that neighbor its own domain and advertises the same to the parent PCE.  No method exist to find      the neighbor domain which need to be carried in NEIG-PCE-DOMAIN Sub-TLV and BN discovery along with neighbor domain information can help in generating NEIG-PCE-DOMAIN Sub-TLV.</t>
          </list>
        </t>
      </section>
    </section>
    <section title="Static Configurations" toc="default">
      <t>A simple solution would be to configure BNs [ABR and ASBR] at PCE(s) along with their domain information.  As this information is fairly static this could work in simple situations.  But as PCE are being used in bigger and multiple domains, any sort of static configurations would put extra effort on the system administrator. Selection of correct BNs is the core of the BRPC procedure, we feel this information should be dynamically learned and maintained.</t>
    </section>
    <section title="Importance of Domain Information along with BNs" toc="default" anchor="SEC_DOMAIN">
      <t>There are methods to learn BNs dynamically from IGP, but the knowledge of neighboring-domains is not possible to obtain.  Without this the correct BN based on the domain-path can't be selected.  <xref target="RFC5441"/> mentions:</t>
      <t>"Note that PCE(i) only considers the entry BNs of domain(i), i.e., only the BNs that provide connectivity from domain(i-1).  In other words, the set BN-en(k,i) is only made of those BNs that provide connectivity from domain (i-1) to domain(i).  "</t>
      <t>This selection of correct BNs providing connectivity between correct domains cannot be made by the information obtained from IGP.  Without the correct selection we would not be following <xref target="RFC5441"/>.</t>
    </section>
    <section title="Relationship to Domain-Sequence" toc="default">
      <t><xref target="DOMAIN-SEQ"/> provides a standard representation of Domain Sequence in all deployment scenarios. The Domain Information carried in the BN-DOMAIN sub-tlv is same as the sub-objects inside the domain sequence.</t>
    </section>
    <section title="The IS-IS BND Sub-TLV" toc="default" anchor="SEC_BND">
      <t>The IS-IS BND sub-TLV contains a non-ordered set of sub-TLVs.</t>
      <t>The format of the IS-IS BND sub-TLV and its sub-TLVs is identical to the TLV format used by the Traffic Engineering Extensions to IS-IS <xref target="RFC5305"/>.  That is, the TLV is comprised of 1 octet for the type, 1 octet specifying the TLV length, and a value field.  The Length field defines the length of the value portion in octets.</t>
      <t>The IS-IS BND sub-TLV has the following format:</t>
      <t>
        <figure title="" suppress-title="false" align="left" alt="" width="" height="">
          <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[   TYPE:   To be assigned by IANA (suggested value 6)
   LENGTH: Variable
   VALUE:  Set of sub-TLVs

Two sub-TLVs are defined:

     Sub-TLV type   Length              Name
           1        variable       BN-ADDRESS sub-TLV
           2        variable       BN-DOMAIN sub-TLV]]></artwork>
        </figure>
      </t>
      <t>The BN-ADDRESS and BN-DOMAIN sub-TLVs MUST always be present within the BND sub-TLV.</t>
      <t>Any unrecognized sub-TLV MUST be silently ignored.</t>
      <t>The BND sub-TLV is carried within an IS-IS CAPABILITY TLV defined in <xref target="RFC4971"/>.</t>
      <t>The following sub-sections describe the sub-TLVs.</t>
      <section title="BN-ADDRESS Sub-TLV" toc="default">
        <t>The BN-ADDRESS sub-TLV specifies an IP address that can be used to reach the BN.  It is RECOMMENDED to make use of an address that is always reachable, provided the BN is alive and reachable.</t>
        <t>The BN-ADDRESS sub-TLV is mandatory; it MUST be present within the BND sub-TLV.  It MAY appear twice, when the BN has both an IPv4 and IPv6 address.  It MUST NOT appear more than once for the same address type.  If it appears more than once for the same address type, only the first occurrence is processed and any others MUST be ignored.</t>
        <t>The BN-ADDRESS sub-TLV has the following format:</t>
        <t>
          <figure title="" suppress-title="false" align="left" alt="" width="" height="">
            <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[   TYPE:   1
      LENGTH: 5 for an IPv4 address or 17 for an IPv6 address.
      VALUE:  This comprises one octet indicating the address-type and 4
              or 16 octets encoding the IPv4 or IPv6 address to be used
              to reach the BN.

   Address-type:
                  1   IPv4
                  2   IPv6]]></artwork>
          </figure>
        </t>
      </section>
      <section title="BN-DOMAIN Sub-TLV" toc="default">
        <t>The BN-DOMAIN sub-TLV specifies a BN-Domain (area and/or AS) where the BN has topology connectivity.</t>
        <t>The BN-DOMAIN sub-TLV is mandatory; it MUST be present within the BND TLV.</t>
        <t>A BND sub-TLV MUST include two or more BN-DOMAIN sub-TLVs as the BN has connectivity into multiple BN-Domains.</t>
        <t>The BN-DOMAIN sub-TLV has the following format:</t>
        <t>
          <figure title="" suppress-title="false" align="left" alt="" width="" height="">
            <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[   TYPE:   2
      LENGTH: Variable
      VALUE:  This is composed of one octet indicating the domain-type
              (area ID or AS Number) and a variable length IS-IS area ID
              or a 32-bit AS number, identifying a BN-Domain where the
              BN has visibility and can compute paths.

   Two domain types are defined:

                  1   Area ID
                  2   AS Number]]></artwork>
          </figure>
        </t>
        <t>The Area ID is the area address as defined in <xref target="ISO 10589"/>.</t>
        <t>When the AS number is coded in two octets, the AS Number field MUST have its first two octets set to 0.</t>
      </section>
    </section>
    <section title="Elements of Procedure" toc="default" anchor="SEC_PROC">
      <t>The BND sub-TLV is advertised within an IS-IS Router Capability TLV defined in <xref target="RFC4971"/>.  As such, elements of procedures are inherited from those defined in <xref target="RFC4971"/>.</t>
      <t>The flooding scope is controlled by the S flag in the IS-IS Router Capability TLV (see <xref target="RFC4971"/>).  When the scope of the BND sub-TLV is area local, it MUST be carried within an IS-IS Router Capability TLV having the S bit cleared.  When the scope of the BND sub-TLV is the entire IS-IS routing domain, it MUST be carried within an IS-IS Router Capability TLV having the S bit set.</t>
      <t>Note that an L1L2 node may include a BND TLV in a Router Capability TLV with the S bit cleared in both in its L1 and L2 LSPs.  This allows the flooding scope to be restricted to the L1 area and the L2 sub-domain.</t>
      <t>When the BN function is deactivated, the IS-IS speaker MUST originate a new IS-IS LSP that no longer includes the corresponding BND TLV.</t>
      <t>The BN address (i.e., the address indicated within the BN-ADDRESS sub-TLV) SHOULD be reachable via some prefixes advertised by IS-IS.</t>
      <t>The BND sub-TLV information regarding a specific BN is only considered current and useable when the router advertising this information is itself reachable via IS-IS calculated paths at the   level of the LSP in which the BND sub-TLV appears.</t>
      <t>A change in the state of a BN (activate, deactivate, domain change) MUST result in a corresponding change in the BND sub-TLV information advertised by an IS-IS router (inserted, removed, updated) in its LSP.  The way BNs determine the information they advertise, and how that information is made available to IS-IS, is out of the scope of this document.  Some information may be configured and other information may be automatically determined by ISIS.</t>
      <t>A change in information in the BND sub-TLV MUST NOT trigger any SPF computation at a receiving router.</t>
    </section>
    <section title="Backward Compatibility" toc="default">
      <t>The BND TLV defined in this document does not introduce any interoperability issues.</t>
      <t>An IS-IS router not supporting the BND sub-TLV will just silently ignore the sub-TLV as specified in <xref target="RFC4971"/>.</t>
    </section>
    <section title="Impact on Network" toc="default">
      <t>The routers acting as BNs will originate LSP with BND Tlv; As there are only few BNs exist in the network, the performance impact in flooding is very less.</t>
    </section>
    <section title="IANA Considerations" toc="default">
      <t>IANA has defined a registry for the sub-TLVs carried in the IS-IS Router Capability TLV defined in <xref target="RFC4971"/>.  IANA has assigned a new sub-TLV codepoint for the BND sub-TLV carried within the Router Capability TLV.</t>
      <t>
        <figure title="" suppress-title="false" align="left" alt="" width="" height="">
          <artwork xml:space="preserve" name="" type="" align="left" alt="" width="" height=""><![CDATA[
Value      Sub-TLV                   References
-----     --------                   ----------
To be     BND sub-TLV              (this document)
assigned
by IANA
]]></artwork>
        </figure>
      </t>
    </section>
    <section title="Security Considerations" toc="default">
      <t>This document defines IS-IS extensions for BN discovery within an administrative domain.  Hence the security of the BN discovery relies on the security of IS-IS.</t>
      <t>Mechanisms defined to ensure authenticity and integrity of IS-IS LSPs <xref target="RFC5304"/> and their TLVs, can be used to secure the BND sub-TLV as well.</t>
      <t>IS-IS provides no encryption mechanism for protecting the privacy of LSPs and, in particular, the privacy of the BN discovery information.</t>
    </section>
    <section title="Manageability Considerations" toc="default">
      <t>TBD</t>
    </section>
    <section title="Acknowledgments" toc="default">
      <t>We would like to thank Quintin Zhao, Daniel King, Adrian Ferral, Suresh babu, Pradeep Shastry, Saravana Kumar and Srinivasan for their useful comments and suggestions.</t>
    </section>
  </middle>
  <back>
    <references title="Normative References">
       <?rfc include="reference.RFC.2119.xml" ?>
       <?rfc include="reference.RFC.4971.xml" ?>
       <?rfc include="reference.RFC.5304.xml" ?>
       <?rfc include="reference.RFC.5305.xml" ?>    
    </references>
    <references title="Informative References">
      <?rfc include="reference.RFC.1142.xml" ?> 
      <?rfc include="reference.RFC.4655.xml" ?> 
      <?rfc include="reference.RFC.5316.xml" ?> 
      <?rfc include="reference.RFC.5441.xml" ?> 
      <!--ISO-->
      <reference anchor="ISO 10589">
        <front>
          <title>
            Intermediate system to Intermediate system routeing information
            exchange protocol for use in conjunction with the Protocol for
            providing the Connectionless-mode Network Service (ISO
            8473)
          </title> 
          <author fullname="ISO">
            <organization >ISO</organization>
          </author>
        </front>
        <seriesInfo name="ISO/IEC" value="10589:2002"/>
      </reference>         
      <!--H-PCE-->
      <reference anchor="H-PCE">
        <front>
          <title>The Application of the Path Computation Element Architecture to the Determination of a Sequence of Domains in MPLS and GMPLS. (draft-ietf-pce-hierarchy-fwk-04)</title>
          <author initials="D" surname="King" fullname="King D">
            <organization />
          </author>
          <author initials="A" surname="Farrel" fullname="Farrel A">
            <organization />
          </author>
          <date month="June" year="2012" />
        </front>
      </reference>
      <!--DOMAIN-SEQ-->
      <reference anchor="DOMAIN-SEQ">
        <front>
          <title>Standard Representation Of Domain Sequence (draft-ietf-pce-pcep-domain-sequence-01)</title>
          <author initials="D" surname="Dhody" fullname="Dhruv Dhody">
            <organization />
          </author>
          <author initials="U" surname="Palle" fullname="Udayasree Palle">
            <organization />
          </author>
          <author initials="R" surname="Casellas" fullname="Ramon Casellas">
            <organization />
          </author>
          <date month="July" year="2012" />
        </front>
      </reference>
    </references>
  </back>
</rfc>