<?xml version="1.0" encoding="US-ASCII"?>
<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com)
     by Daniel M Kohn (private) -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
]>
<?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-idr-bgpls-inter-as-topology-ext-01"
     ipr="trust200902">
  <front>
    <title abbrev="BGP-LS-Inter-AS-Ext">BGP-LS Extension for Inter-AS Topology
    Retrieval</title>

    <author fullname="Aijun Wang" initials="A" surname="Wang">
      <organization>China Telecom</organization>

      <address>
        <postal>
          <street>Beiqijia Town, Changping District</street>

          <city>Beijing</city>

          <region>Beijing</region>

          <code>102209</code>

          <country>China</country>
        </postal>

        <email>wangaj.bri@chinatelecom.cn</email>
      </address>
    </author>

    <author fullname="Huaimo Chen" initials="H" surname="Chen">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street/>

          <city>Boston</city>

          <region>MA</region>

          <code/>

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

        <email>Huaimo.chen@huawei.com</email>
      </address>
    </author>

    <author fullname="Shaowen Ma" initials="S" surname="Ma">
      <organization>Juniper Networks</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <phone/>

        <facsimile/>

        <email>mashao@juniper.net</email>

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

    <date day="7" month="March" year="2019"/>

    <area>RTG Area</area>

    <workgroup>IDR Working Group</workgroup>

    <keyword>RFC</keyword>

    <abstract>
      <t>This document describes the process to build BGP-LS key parameters in
      multi-domain scenario, defines one new BGP-LS NLRI type(Inter-AS TE Link
      NLRI) and some new inter-AS TE related TLVs for BGP-LS to let SDN
      controller retrieve the network topology automatically under various
      environments.</t>

      <t>Such process and extension can enable the network operator to collect
      the connection information between different domains and then calculate
      the overall network topology automatically based on the information
      provided by BGP-LS protocol.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>BGP-LS <xref target="RFC7752"/> describes the methodology that using
      BGP protocol to transfer the Link-State information. Such method can
      enable SDN controller to collect the underlay network topology
      automatically, but normally it can only get the information within one
      IGP domain. If the operator has more than one IGP domain, and these
      domains interconnect with each other, there is no general TLV within
      current BGP- LS to transfer the interconnect topology information.</t>

      <t>Draft <xref target="I-D.ietf-idr-bgpls-segment-routing-epe"/> defines
      some extensions for exporting BGP peering node topology information
      (including its peers, interfaces and peering ASs) in a way that is
      exploitable in order to compute efficient BGP Peering Engineering
      policies and strategies. Such information can also be used to calculate
      the interconnection topology among different IGP domains, but it
      requires the border routers to run BGP-LS protocol and report the
      information to the PCE/SDN controller, which restricts the solution
      deployment flexibility.</t>

      <t>This draft analysis the situations that the PCE/SDN controller needs
      to get the inter-connected topology information between different AS
      domains, defines the new Inter-AS TE Link NLRI and some new TLVs within
      the BGP-LS protocol to transfer the key information related to them.
      After that, the SDN controller can then deduce the multi-domain topology
      automatically based on the information from BGP-LS protocol.</t>
    </section>

    <section title="Conventions used in this document">
      <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 RFC 2119 <xref
      target="RFC2119"/> .</t>
    </section>

    <section title="Inter-AS Domain Scenarios.">
      <t>Fig.1 illustrates the multi-domain scenarios that this draft
      discussed. Normally, SDN Controller can get the topology of IGP A and
      IGP B individually via the BGP-LS protocol, but it can't get the
      topology connection information between these two IGP domains because
      there is generally no IGP protocol run on the connected links.<figure>
          <artwork align="center"><![CDATA[                      +-----------------+
                 +----+IP SDN Controller+----+
                 |    +-----------------+    |
                 |                           |
                 |BGP-LS                     |BGP-LS
                 |                           |
 +---------------+-----+               +-----+--------------+
 | +--+        +-++   ++-+           +-++   +|-+        +--+|
 | |S1+--------+S2+---+B1+-----------+B2+---+T1+--------+T2||
 | +-++   N1   +-++   ++-+           +-++   ++++   N2   +-++|
 |   |           |     |               |     ||           | |
 |   |           |     |               |     ||           | |
 | +-++        +-++   ++-+           +-++   ++++        +-++|
 | |S4+--------+S3+---+B3+-----------+B4+---+T3+--------+T4||
 | +--+        +--+   ++-+           +-++   ++-+        +--+|
 |                     |               |                    |
 |                     |               |                    |
 |       IGP A         |               |      IGP B         |
 +---------------------+               +--------------------+

             Figure 1: Inter-AS Domain Scenarios
]]></artwork>
        </figure></t>

      <section title="IS-IS/OSPF Inter-AS Native IP Scenario">
        <t>When the IGP A or IGP B runs native IS-IS/OSPF protocol, the
        operator can redistributes the IPv4/IPv6 prefixes of interconnect
        links into IS-IS/OSPF protocol to ensure the inter-domain
        connectivity.</t>

        <t>If the IGP runs IS-IS protocol, the redistributed link information
        will be carried in IP External Reachability Information TLV within the
        Level 2 PDU type that defined in <xref target="RFC1195"/>, every
        router within the IGP domain can deduce the redistributed router from
        the IS-IS LSDB.</t>

        <t>If the IGP runs OSPF protocol<xref target="RFC2328"/>defines the
        type 5 external LSA to transfer the external IPv4 routes; <xref
        target="I-D.ietf-ospf-ospfv3-lsa-extend"/> defines the
        &ldquo;External-Prefix TLV&rdquo; to transfer the external IPv6
        routes; these LSAs have also the advertising router information that
        initiates the redistribute activity. Every router within IGP domain
        can also deduce the redistributed router from the OSPF LSDB.</t>

        <t>For prefix information that associated with each router, BGP-LS
        <xref target="RFC7752"/> defines the Prefix NLRI which is illustrated
        below:</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
     +-+-+-+-+-+-+-+-+
     |  Protocol-ID  |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                           Identifier                          |
     |                            (64 bits)                          |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     //              Local Node Descriptors (variable)              //
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     //                Prefix Descriptors (variable)                //
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Figure 2: The IPv4/IPv6 Topology Prefix NLRI Format]]></artwork>
          </figure></t>

        <t>For these redistributed inter-domain links, their prefix
        information should be included in the "Prefix Descriptor", and the
        associated redistributed router information should be included in the
        "Local Node Descriptors".</t>

        <t>When such information is reported via the BGP-LS protocol, the
        PCE/SDN controller can construct the underlay inter-domain topology
        according to procedure described in section 6.</t>
      </section>

      <section title="IS-IS/OSPF Inter-AS TE Scenario">
        <t><xref target="RFC5316"/> and <xref target="RFC5392"/> define the
        IS-IS and OSPF extensions respectively to deal with the requirements
        for inter-AS traffic engineering. They define some new sub-TLVs(Remote
        AS Number&#12289;IPv4 Remote ASBR ID&#12289;IPv6 Remote ASBR ID) which
        are associated with the inter-AS TE link TLVs to report the TE
        topology between different domains.</t>

        <t>These TLVs are flooded within the IGP domain automatically. If the
        PCE/SDN controller can know these information via one of the interior
        router that runs BGP-LS protocol, the PCE/SDN controller can rebuild
        the inter-AS TE topology correctly.</t>
      </section>
    </section>

    <section anchor="Sec4" title="Inter-AS TE Link NLRI">
      <t><xref target="RFC7752"/> defines four NLRI types(Node NLRI, Link
      NLRI, IPv4 Topology Prefix NLRI, IPv6 Topology Prefix NLRI) to transfer
      the topology and prefix information. For inter-as TE link, the two ends
      of the link locates in different IGP domains, then it is not appropriate
      to transfer their information within the current defined NLRI types.</t>

      <t>This draft defines then one new NLRI type, called Inter-AS TE Link
      NLRI, which is coded as the following format:</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
     +-+-+-+-+-+-+-+-+
     |  Protocol-ID  |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                           Identifier                          |
     |                            (64 bits)                          |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     //              Local Node Descriptors (variable)              //
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     //            Inter-AS TE Link Descriptors (variable)          //
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Figure 3: The Inter-AS TE Link NLRI Format]]></artwork>
        </figure></t>

      <t>The semantics of "Inter-AS TE Link Descriptors" is same as that
      defined in <xref target="RFC7752"/> for "Link Descriptor".</t>
    </section>

    <section title="Inter-AS TE NLRI related TLVs">
      <t>This draft proposes to add three new TLVs that is included within the
      inter-AS TE Link NLRI to transfer the information via BGP-LS, which are
      required to build the inter-AS related topology by the PCE/SDN
      controller.</t>

      <t>The following Link Descriptor TLVs are added into the Inter-AS TE
      Link NLRI in BGP-LS protocol :</t>

      <t><figure>
          <artwork><![CDATA[+-----------+---------------------+--------------+----------------+
|  TLV Code | Description         |IS-IS/OSPF TLV| Reference      |
|   Point   |                     |   /Sub-TLV   | (RFC/Section)  |
+-----------+---------------------+--------------+----------------+
|    TBD    |Remote AS Number     |   24/21      | [RFC5316]/3.3.1|
|           |                     |              | [RFC5392]/3.3.1|
|    TBD    |IPv4 Remote ASBR ID  |   25/22      | [RFC5316]/3.3.2|
|           |                     |              | [RFC5392]/3.3.2| 
|    TBD    |IPv6 Remote ASBR ID  |   26/24      | [RFC5316]/3.3.3|
|           |                     |              | [RFC5392]/3.3.3|
+-----------+---------------------+--------------+----------------+
  Figure 4: Link Descriptor TLVs for Inter-AS TE Link NLRI Format]]></artwork>
        </figure></t>

      <t>Detail encoding of these TLVs are synchronized with the corresponding
      parts in <xref target="RFC5316"/> and <xref target="RFC5392"/>, which
      keeps the BGP-LS protocol is agnostic to the underly protocol.</t>

      <section title="Remote AS Number TLV">
        <t>A new TLV, the remote AS number TLV, is defined for inclusion in
        the link descriptor when advertising inter-AS TE links. The remote AS
        number TLV specifies the AS number of the neighboring AS to which the
        advertised link connects.</t>

        <t>The remote AS number TLV is TLV type TBD (see Section 7) and is 4
        octets in length. The format is as follows:</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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Type             |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Remote AS Number                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           Figure 5: Remote AS Number TLV Format    ]]></artwork>
          </figure>The Remote AS number field has 4 octets. When only 2 octets
        are used for the AS number, as in current deployments, the left
        (high-order) 2 octets MUST be set to 0. The remote AS number TLV MUST
        be included when a router advertises an inter-AS TE link.</t>
      </section>

      <section title="IPv4 Remote ASBR ID">
        <t>A new TLV, which is referred to as the IPv4 remote ASBR ID TLV, is
        defined for inclusion in the link descriptor when advertising inter-AS
        TE links. The IPv4 remote ASBR ID TLV specifies the IPv4 identifier of
        the remote ASBR to which the advertised inter-AS link connects. This
        could be any stable and routable IPv4 address of the remote ASBR. Use
        of the TE Router ID as specified in the Traffic Engineering router ID
        TLV <xref target="RFC5305"/> is RECOMMENDED.</t>

        <t>The IPv4 remote ASBR ID TLV is TLV type TBD (see Section 7) and is
        4 octets in length. The format of the IPv4 remote ASBR ID sub-TLV is
        as follows:</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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Type             |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Remote ASBR ID                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            Figure 6:  IPv4 Remote ASBR ID TLV Format ]]></artwork>
          </figure></t>

        <t>The IPv4 remote ASBR ID TLV MUST be included if the neighboring
        ASBR has an IPv4 address. If the neighboring ASBR does not have an
        IPv4 address (not even an IPv4 TE Router ID), the IPv6 remote ASBR ID
        TLV MUST be included instead. An IPv4 remote ASBR ID TLV and IPv6
        remote ASBR ID TLV MAY both be present in an inter-AS TE link
        NLRI.</t>
      </section>

      <section title="IPv6 Remote ASBR ID">
        <t>A new TLV, which is referred to as the IPv6 remote ASBR ID TLV, is
        defined for inclusion in the inter-AS reachability TLV when
        advertising inter-AS links. The IPv6 remote ASBR ID TLV specifies the
        IPv6 identifier of the remote ASBR to which the advertised inter-AS
        link connects. This could be any stable and routable IPv6 address of
        the remote ASBR. Use of the TE Router ID as specified in the IPv6
        Traffic Engineering router ID TLV <xref target="RFC6119"/> is
        RECOMMENDED.</t>

        <t>The IPv6 remote ASBR ID TLV is TLV type TBD (see Section 7) and is
        16 octets in length. The format of the IPv6 remote ASBR ID TLV is as
        follows:</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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Type             |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Remote ASBR ID                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Remote ASBR ID (continued)              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Remote ASBR ID (continued)              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Remote ASBR ID (continued)              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           Figure 7:  IPv6 Remote ASBR ID TLV Format]]></artwork>
          </figure></t>

        <t>The IPv6 remote ASBR ID TLV MUST be included if the neighboring
        ASBR has an IPv6 address. If the neighboring ASBR does not have an
        IPv6 address, the IPv4 remote ASBR ID TLV MUST be included instead. An
        IPv4 remote ASBR ID TLV and IPv6 remote ASBR ID TLV MAY both be
        present in an inter-AS TE link NLRI.</t>
      </section>
    </section>

    <section title="Topology Reconstruction.">
      <t>When SDN Controller gets such information from BGP-LS protocol, it
      should compares the proximity of the redistributed prefixes. If they are
      under the same network scope, then it should find the corresponding
      associated router information, build the link between these two border
      routers.</t>

      <t>After iterating the above procedures for all of the redistributed
      prefixes, the SDN controller can then retrieve the connection topology
      between different domains automatically.</t>
    </section>

    <section title="Security Considerations">
      <t>It is common for one operator to occupy several IGP domains that are
      composited by its backbone network and several
      MAN(Metrio-Area-Network)s/IDCs. When they do traffic engineering from
      end to end that spans MAN-backbone-IDC, they need to know the inter-as
      topology via the process described in this draft. Then it is naturally
      to redistribute the interconnection prefixes in Native IP scenario.</t>

      <t>If these IGP domains belong to different operators, it is uncommon do
      inter-as traffic engineering under one PCE/SDN controller, then it is
      unnecessary to get the inter-as topology. But redistributing the
      interconnection prefixes will do no harm to their networks, because the
      redistributed interconnection link prefixes belongs to both of them,
      they are also the interfaces addresses on the border routers. .</t>
    </section>

    <section title="IANA Considerations">
      <t>TBD.</t>
    </section>

    <section title="Acknowledgement">
      <t>The author would like to thank Acee Lindem, Ketan Talaulikar, Jie
      Dong, Jeff Tantsura and Dhruv Dhody for their valuable comments and
      suggestions.</t>
    </section>
  </middle>

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

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

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

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

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

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

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

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

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

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

      <?rfc include="reference.I-D.ietf-idr-bgpls-segment-routing-epe"?>

      <?rfc include="reference.I-D.ietf-idr-bgp-ls-segment-routing-ext"?>

      <?rfc include="reference.I-D.ietf-teas-native-ip-scenarios"?>

      <?rfc include="reference.I-D.ietf-ospf-ospfv3-lsa-extend"?>
    </references>
  </back>
</rfc>
