Inter-Domain Routing                                     S. Previdi, Ed.
Internet-Draft                                                 P. Psenak
Intended status: Standards Track                             C. Filsfils
Expires: August 13, December 27, 2017                           Cisco Systems, Inc.
                                                              H. Gredler
                                                            RtBrick Inc.
                                                                 M. Chen
                                                     Huawei Technologies
                                                             J. Tantsura
                                                              Individual
                                                        February 9,
                                                           June 25, 2017

             BGP Link-State extensions for Segment Routing
              draft-ietf-idr-bgp-ls-segment-routing-ext-01
              draft-ietf-idr-bgp-ls-segment-routing-ext-02

Abstract

   Segment Routing (SR) allows for a flexible definition of end-to-end
   paths within IGP topologies by encoding paths as sequences of
   topological sub-paths, called "segments".  These segments are
   advertised by the link-state routing protocols (IS-IS, OSPF and
   OSPFv3).

   This draft defines extensions to the BGP Link-state address-family in
   order to carry segment information via BGP.

Requirements Language

   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 [RFC2119].

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on August 13, December 27, 2017.

Copyright Notice

   Copyright (c) 2017 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  BGP-LS Extensions for Segment Routing . . . . . . . . . . . .   5
     2.1.  Node Attributes TLVs  . . . . . . . . . . . . . . . . . .   5
       2.1.1.  SR-Capabilities TLV  SID/Label Sub-TLV . . . . . . . . . . . . . . . . . .   5
       2.1.2.  SR-Algorithm  SR-Capabilities TLV . . . . . . . . . . . . . . . . . .   6
       2.1.3.  SR-Algorithm TLV  . . . . . . . . . . . . . . . . . .   7
       2.1.4.  SR Local Block TLV  . . . . . . . . . . . . . . . . .   7
       2.1.4.
       2.1.5.  SRMS Preference TLV . . . . . . . . . . . . . . . . .   7   8
     2.2.  Link Attribute TLVs . . . . . . . . . . . . . . . . . . .   8   9
       2.2.1.  Adjacency SID TLV . . . . . . . . . . . . . . . . . .   9  10
       2.2.2.  LAN Adjacency SID TLV . . . . . . . . . . . . . . . .   9
     2.3.  Prefix Attribute TLVs .  10
       2.2.3.  L2 Bundle Member  . . . . . . . . . . . . . . . . .  10
       2.3.1.  Prefix-SID TLV .  11
     2.3.  Prefix Attribute TLVs . . . . . . . . . . . . . . . . . .  11
       2.3.2.  IPv6  13
       2.3.1.  Prefix-SID TLV  . . . . . . . . . . . . . . . . .  12
       2.3.3. . .  14
       2.3.2.  IGP Prefix Attributes TLV . . . . . . . . . . . . . .  13
       2.3.4.  15
       2.3.3.  Source Router Identifier (Source Router-ID) TLV . . .  14
       2.3.5.  15
       2.3.4.  Range TLV . . . . . . . . . . . . . . . . . . . . . .  14
       2.3.6.  Binding SID TLV . . . . . . . . . . . . . . . . . . .  15
       2.3.7.  Binding SID SubTLVs . . . . . . . . . . . . . . . . .  16
     2.4.  Equivalent IS-IS Segment Routing TLVs/Sub-TLVs  . . . . .  22  17
     2.5.  Equivalent OSPF/OSPFv3 Segment Routing TLVs/Sub-TLVs  . .  23  18
   3.  Procedures  . . . . . . . . . . . . . . . . . . . . . . . . .  25  19
     3.1.  Advertisement of a IS-IS Prefix SID TLV . . . . . . . . .  25  19
     3.2.  Advertisement of a OSPF/OSPFv3 Prefix-SID TLV . . . . . .  25  19
     3.3.  Advertisement of a range of prefix-to-SID mappings in
           OSPF  . . . . . . . . . . . . . . . . . . . . . . . . . .  26  19
     3.4.  Advertisement of a range of IS-IS SR bindings . . . . . .  26
     3.5.  Advertisement of a path and its attributes from IS-IS
           protocol  . . . . . . . . . . . . . . . . . . . . . . . .  26
     3.6.  Advertisement of a path and its attributes from
           OSPFv2/OSPFv3 protocol  . . . . . . . . . . . . . . . . .  27  20
   4.  Implementation Status . . . . . . . . . . . . . . . . . . . .  27  20
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  28  21
     5.1.  TLV/Sub-TLV Code Points Summary . . . . . . . . . . . . .  28  21
   6.  Manageability Considerations  . . . . . . . . . . . . . . . .  29  22
     6.1.  Operational Considerations  . . . . . . . . . . . . . . .  29  22
       6.1.1.  Operations  . . . . . . . . . . . . . . . . . . . . .  29  22

   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  30  22
   8.  Contributors  . . . . . . . . . . . . . . . . . . . . . . . .  30  22
   9.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  30  22
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .  30  23
     10.1.  Normative References . . . . . . . . . . . . . . . . . .  30  23
     10.2.  Informative References . . . . . . . . . . . . . . . . .  31  24
     10.3.  URIs . . . . . . . . . . . . . . . . . . . . . . . . . .  32  24
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  35  26

1.  Introduction

   Segment Routing (SR) allows for a flexible definition of end-to-end
   paths by combining sub-paths called "segments".  A segment can
   represent any instruction, topological or service-based.  A segment
   can have a local semantic to an SR node or global within a domain.
   Within IGP topologies an SR path is encoded as a sequence of
   topological sub-paths, called "IGP segments".  These segments are
   advertised by the link-state routing protocols (IS-IS, OSPF and
   OSPFv3).

   Two types of IGP segments are defined, Prefix segments and Adjacency
   segments.  Prefix segments, by default, represent an ECMP-aware
   shortest-path to a prefix, as per the state of the IGP topology.
   Adjacency segments represent a hop over a specific adjacency between
   two nodes in the IGP.  A prefix segment is typically a multi-hop path
   while an adjacency segment, in most of the cases, is a one-hop path.
   [I-D.ietf-spring-segment-routing].

   When Segment Routing is enabled in a IGP domain, segments are
   advertised in the form of Segment Identifiers (SIDs).  The IGP link-
   state routing protocols have been extended to advertise SIDs and
   other SR-related information.  IGP extensions are described in: IS-IS
   [I-D.ietf-isis-segment-routing-extensions], OSPFv2
   [I-D.ietf-ospf-segment-routing-extensions] and OSPFv3
   [I-D.ietf-ospf-ospfv3-segment-routing-extensions].  Using these
   extensions, Segment Routing can be enabled within an IGP domain.

                           +------------+
                           |  Consumer  |
                           +------------+
                                 ^
                                 |
                                 v
                       +-------------------+
                       |    BGP Speaker    |         +-----------+
                       | (Route-Reflector) |         | Consumer  |
                       +-------------------+         +-----------+
                             ^   ^   ^                       ^
                             |   |   |                       |
             +---------------+   |   +-------------------+   |
             |                   |                       |   |
             v                   v                       v   v
       +-----------+       +-----------+             +-----------+
       |    BGP    |       |    BGP    |             |    BGP    |
       |  Speaker  |       |  Speaker  |    . . .    |  Speaker  |
       +-----------+       +-----------+             +-----------+
             ^                   ^                         ^
             |                   |                         |
            IGP                 IGP                       IGP

                   Figure 1: Link State info collection

   Segment Routing (SR) allows advertisement of single or multi-hop
   paths.  The flooding scope for the IGP extensions for Segment routing
   is IGP area-wide.  Consequently, the contents of a Link State
   Database (LSDB) or a Traffic Engineering Database (TED) has the scope
   of an IGP area and therefore, by using the IGP alone it is not enough
   to construct segments across multiple IGP Area or AS boundaries.

   In order to address the need for applications that require
   topological visibility across IGP areas, or even across Autonomous
   Systems (AS), the BGP-LS address-family/sub-address-family have been
   defined to allow BGP to carry Link-State information.  The BGP
   Network Layer Reachability Information (NLRI) encoding format for
   BGP-LS and a new BGP Path Attribute called the BGP-LS attribute are
   defined in [RFC7752].  The identifying key of each Link-State object,
   namely a node, link, or prefix, is encoded in the NLRI and the
   properties of the object are encoded in the BGP-LS attribute.
   Figure Figure 1 describes a typical deployment scenario.  In each IGP
   area, one or more nodes are configured with BGP-LS.  These BGP
   speakers form an IBGP mesh by connecting to one or more route-
   reflectors.  This way, all BGP speakers (specifically the route-
   reflectors) obtain Link-State information from all IGP areas (and
   from other ASes from EBGP peers).  An external component connects to
   the route-reflector to obtain this information (perhaps moderated by
   a policy regarding what information is or isn't advertised to the
   external component).

   This document describes extensions to BGP-LS to advertise the SR
   information.  An external component (e.g., a controller) then can
   collect SR information in the "northbound" direction across IGP areas
   or ASes and construct the end-to-end path (with its associated SIDs)
   that need to be applied to an incoming packet to achieve the desired
   end-to-end forwarding.

2.  BGP-LS Extensions for Segment Routing

   This document defines IGP SR extensions BGP-LS TLVs and Sub-TLVs. sub-TLVs.
   Section 2.4 and Section 2.5 illustrates the equivalent TLVs and Sub- sub-
   TLVs in IS-IS, OSPF and OSPFv3 protocols.

   BGP-LS [RFC7752] defines the BGP-LS NLRI that can be a Node NLRI, a
   Link NLRI or a Prefix NLRI.  The corresponding BGP-LS attribute is a
   Node Attribute, a Link Attribute or a Prefix Attribute.  BGP-LS
   [RFC7752] defines the TLVs that map link-state information to BGP-LS
   NLRI and the BGP-LS attribute.  This document adds additional BGP-LS
   attribute TLVs in order to encode SR information.

2.1.  Node Attributes TLVs

   The following Node Attribute TLVs are defined:

      +----------------+-----------------+----------+---------------+
      | TLV Code Point | Description     | Length   |       Section |
      +----------------+-----------------+----------+---------------+
      |      1161      | SID/Label       | variable | Section 2.1.1 |
      |      1034      | SR Capabilities | variable | Section 2.1.1 2.1.2 |
      |      1035      | SR Algorithm    | variable | Section 2.1.2 2.1.3 |
      |      1036      | SR Local Block  | variable | Section 2.1.3 2.1.4 |
      |      1037      | SRMS Preference | variable | Section 2.1.4 2.1.5 |
      +----------------+-----------------+----------+---------------+

                       Table 1: Node Attribute TLVs

   These TLVs can ONLY be added to the Node Attribute associated with
   the Node NLRI that originates the corresponding SR TLV.

2.1.1.  SR-Capabilities TLV  SID/Label Sub-TLV

   The SR Capabilities SID/Label TLV is used as sub-TLV by the SR-Capabilities
   (Section 2.1.2) and SRLB (Section 2.1.4) TLVs and has following
   format:

    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             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Flags    |   RESERVED    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  Range Size                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   //                      SID/Label Sub-TLV (variable)                 //                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   where:

      Type: TBD, suggested value 1034. 1161.

      Length: Variable. Variable, 3 or 4 bytes

      SID/Label: If length is set to 3, then the 20 rightmost bits
      represent a label.  If length is set to 4, then the value
      represents a 32 bit SID.

      The receiving router MUST ignore the SID/Label sub-TLV if the
      length is other then 3 or 4.

2.1.2.  SR-Capabilities TLV

   The SR-Capabilities TLV is used in order to advertise the node's
   Segment Routing Global Base (SRGB) as originated in:

   o  IS-IS, as defined by the SR-Capabilities TLV in
      [I-D.ietf-isis-segment-routing-extensions].

   o  OSPF/OSPFv3, as defined by the SID/Label Range TLV in
      [I-D.ietf-ospf-segment-routing-extensions] and
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions].

   The SR Capabilities TLV has following format:

    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               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Flags    |   RESERVED    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  Range Size                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   //                SID/Label sub-TLV (variable)                 //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      Type: TBD, suggested value 1034.

      Length: Variable.

      Flags: 1 octet of flags as defined in
      [I-D.ietf-isis-segment-routing-extensions] and
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions].
      [I-D.ietf-isis-segment-routing-extensions].

      One or more entries, each of which have the following format:

         Range Size: 3 octet value indicating the number of labels in
         the range.

         SID/Label sub-TLV (as defined in Section 2.3.7.2).

2.1.2. 2.1.1).

      Multiple SRGB entries are encoded within the same SR Capabilities
      TLV.

2.1.3.  SR-Algorithm TLV

   The SR-Algorithm TLV has the following format:

    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             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Algorithm 1  |  Algorithm... |  Algorithm N |                |
   +-                                                             -+
   |                                                               |
   +                                                               +

   where:

      Type: TBD, suggested value 1035.

      Length: Variable.

      Algorithm: 1 octet identifying the algorithm.

2.1.3.

2.1.4.  SR Local Block TLV

   The SR Local Block (SRLB) Sub-TLV TLV contains the range of labels the node
   has reserved for local SIDs.  Local SIDs are used, e.g., in IGP
   (IS-IS, (IS-
   IS, OSPF) for Adjacency-SIDs, and may also be allocated by other
   components than IGP protocols.  As an example, an application or a
   controller may instruct a node to allocate a specific local SID.
   Therefore, in order for such applications or controllers to know the
   range of local SIDs available, it is required that the node
   advertises its SRLB.

   The SRLB TLV has the following format:

    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          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Flags    |   RESERVED    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  Range Size                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   //                SID/Label Sub-TLV sub-TLV (variable)                 //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type: TBD, suggested value 1036.

      Length: Variable.

      Flags: 1 octet of flags.  None are defined at this stage.

      One or more entries, each of which have the following format:

         Range Size: 3 octet value indicating the number of labels in
         the range.

         SID/Label sub-TLV (as defined in Section 2.3.7.2).

2.1.4. 2.1.1).

   Multiple SRLB entries are encoded within the same SRLB TLV.

2.1.5.  SRMS Preference TLV

   The Segment Routing Mapping Server (SRMS) Preference sub-TLV TLV is used in
   order to associate a preference with SRMS advertisements from a
   particular source.

   The SRMS Preference sub-TLV TLV has following format:

    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             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Preference    |
   +-+-+-+-+-+-+-+-+

      Type: TBD, suggested value 1037.

      Length: 1.

      Preference: 1 octet.  Unsigned 8 bit SRMS preference.

   The use of the SRMS Preference TLV is defined in
   [I-D.ietf-isis-segment-routing-extensions].
   [I-D.ietf-isis-segment-routing-extensions],
   [I-D.ietf-ospf-segment-routing-extensions] and
   [I-D.ietf-ospf-ospfv3-segment-routing-extensions].

2.2.  Link Attribute TLVs

   The following Link Attribute TLVs are are defined:

   +-----------+----------------------------+----------+---------------+
   |  TLV Code | Description                |   Length |       Section |
   |   Point   |                            |          |               |
   +-----------+----------------------------+----------+---------------+
   |    1099   | Adjacency Segment          | variable | Section 2.2.1 |
   |           | Identifier (Adj-SID) TLV   |          |               |
   |    1100   | LAN Adjacency Segment      | variable | Section 2.2.2 |
   |           | Identifier (Adj-SID) TLV   |          |               |
   |    1172   | L2 Bundle Member TLV       | variable | Section 2.2.3 |
   +-----------+----------------------------+----------+---------------+

                       Table 2: Link Attribute TLVs

   These TLVs can ONLY be added to the Link Attribute associated with
   the link whose local node originates the corresponding TLV.

   For a LAN, normally a node only announces its adjacency to the IS-IS
   pseudo-node (or the equivalent OSPF Designated and Backup Designated
   Routers)[I-D.ietf-isis-segment-routing-extensions].  The LAN
   Adjecency Segment TLV allows a node to announce adjacencies to all
   other nodes attached to the LAN in a single instance of the BGP-LS
   Link NLRI.  Without this TLV, the corresponding BGP-LS link NLRI
   would need to be originated for each additional adjacency in order to
   advertise the SR TLVs for these neighbor adjacencies.

2.2.1.  Adjacency SID TLV

   The Adjacency SID (Adj-SID) TLV has the following format:

    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           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Flags         |     Weight    |             Reserved          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                   SID/Label/Index (variable)                  |
   +---------------------------------------------------------------+

   where:

      Type: TBD, suggested value 1099.

      Length: Variable.

      Flags. 1 octet field of following flags as defined in
      [I-D.ietf-isis-segment-routing-extensions],
      [I-D.ietf-ospf-segment-routing-extensions] and
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions].

      Weight: Weight used for load-balancing purposes.

      SID/Index/Label: Label or index value depending on the flags
      setting as defined in [I-D.ietf-isis-segment-routing-extensions],
      [I-D.ietf-ospf-segment-routing-extensions] and
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions].

2.2.2.  LAN Adjacency SID TLV

   The LAN Adjacency SID (LAN-Adj-SID-SID) TLV has the following format:

    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             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Flags     |     Weight    |            Reserved           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             OSPF Neighbor ID / IS-IS System-ID                |
   +                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    SID/Label/Index (variable)                 |
   +---------------------------------------------------------------+

   where:

      Type: TBD, suggested value 1100.

      Length: Variable.

      Flags. 1 octet field of following flags as defined in
      [I-D.ietf-isis-segment-routing-extensions],
      [I-D.ietf-ospf-segment-routing-extensions] and
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions].

      Weight: Weight used for load-balancing purposes.

      SID/Index/Label: Label or index value depending on the flags
      setting as defined in [I-D.ietf-isis-segment-routing-extensions],
      [I-D.ietf-ospf-segment-routing-extensions] and
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions].

2.3.  Prefix

2.2.3.  L2 Bundle Member

   The L2 Bundle Member Attribute TLVs TLV identifies an L2 Bundle Member
   link which in turn is associated with a parent L3 link.  The following Prefix Attribute TLVs L3 link
   is described by the Link NLRI defined in [RFC7752] and Sub-TLVs are defined:

   +----------------+-----------------------+----------+---------------+
   | the L2 Bundle
   Member Attribute TLV Code Point | Description           |   Length | Section       |
   +----------------+-----------------------+----------+---------------+ is associated with the Link NLRI.  The TLV MAY
   include sub-TLVs which describe attributes associated with the bundle
   member.  The identified bundle member represents a unidirectional
   path from the originating router to the neighbor specified in the
   parent L3 Link.  Multiple L2 Bundle Member Attribute TLVs MAY be
   associated with a Link NLRI.

   The L2 Bundle Member Attribute TLV has the following format:

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      1158               Type            | Prefix SID          Length               | variable
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Section 2.3.1                     L2 Bundle Member Descriptor               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   //                  Link attribute sub-TLVs(variable)          //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   where:

      Type: TBD, suggested value 1172.

      Length: Variable.

      L2 Bundle Member Descriptor: A Link Local Identifier as defined in
      [RFC4202].

   Link attributes for L2 Bundle Member Links are advertised as sub-TLVs
   of the L2Bundle Member Attribute TLV.  The sub-TLVs are identical to
   existing BGP-LS TLVs as identified in the table below.

   +-----------+----------------------------+--------------------------+
   |  TLV Code |      1159 Description                | Range Reference Document       | variable
   | Section 2.3.5   Point   |                            |      1160                          | Binding SID
   +-----------+----------------------------+--------------------------+
   | variable    1088   | Section 2.3.6 Administrative group       | [RFC7752]                |      1169
   | IPv6 Prefix SID           | variable (color)                    | Section 2.3.2                          |
   |      1170    1089   | IGP Prefix Attributes Maximum link bandwidth     | variable [RFC7752]                | Section 2.3.3
   |    1090   |      1171 Max. reservable link       | Source Router-ID [RFC7752]                | variable
   | Section 2.3.4           |
   +----------------+-----------------------+----------+---------------+

                      Table 3: Prefix Attribute TLVs

   +------------+-------------------------+----------+-----------------+ bandwidth                  |  TLV Code                          | Description
   | Length    1091   | Section Unreserved bandwidth       | [RFC7752]                |   Point
   |    1092   | TE default metric          | [RFC7752]                |
   +------------+-------------------------+----------+-----------------+
   |    1161    1093   | SID/Label TLV Link protection type       | variable [RFC7752]                |
   |    1099   | Adjacency Segment          | Section 2.3.7.2 2.2.1            |
   |    1162           | ERO Metric Identifier (Adj-SID) TLV   | 4 octets                          |
   |    1100   | LAN Adjacency Segment      | Section 2.3.7.3 2.2.2            |
   |    1163           | IPv4 ERO Identifier (Adj-SID) TLV   | 8 octets                          | Section 2.3.7.4
   |    1104   |    1164 Unidirectional link delay  | IPv6 ERO TLV [I-D.ietf-idr-te-pm-bgp] | 20
   | Section 2.3.7.5    1105   | Min/Max Unidirectional     | [I-D.ietf-idr-te-pm-bgp] |
   | octets           | link delay                 |                          |    1165
   | Unnumbered Interface ID    1106   | 12 Min/Max Unidirectional     | Section 2.3.7.6 [I-D.ietf-idr-te-pm-bgp] |
   |           | ERO TLV link delay                 |                          |
   |    1107   |    1166 Unidirectional packet loss | IPv4 Backup ERO TLV [I-D.ietf-idr-te-pm-bgp] | 8 octets
   | Section 2.3.7.7    1108   | Unidirectional residual    |    1167 [I-D.ietf-idr-te-pm-bgp] | IPv6 Backup ERO TLV
   | 10           | Section 2.3.7.8 bandwidth                  |                          |
   |    1109   | octets Unidirectional available   | [I-D.ietf-idr-te-pm-bgp] |
   |    1168           | Unnumbered Interface ID bandwidth                  | 12                          | Section 2.3.7.9
   |    1110   | Unidirectional bandwidth   | Backup ERO TLV [I-D.ietf-idr-te-pm-bgp] |
   |           |
   +------------+-------------------------+----------+-----------------+ utilization                |                          |
   +-----------+----------------------------+--------------------------+

               Table 4: 3: L2 Bundle Member Link Attribute TLVs

2.3.  Prefix Attribute - Binding SID Sub-TLVs

2.3.1.  Prefix-SID TLV TLVs

   The following Prefix Attribute TLVs and sub-TLVs are defined:

   +----------------+-----------------------+----------+---------------+
   | TLV Code Point | Description           |   Length | Section       |
   +----------------+-----------------------+----------+---------------+
   |      1158      | Prefix SID            | variable | Section 2.3.1 |
   |      1159      | Range                 | variable | Section 2.3.4 |
   |      1170      | IGP Prefix Attributes | variable | Section 2.3.2 |
   |      1171      | Source Router-ID      | variable | Section 2.3.3 |
   +----------------+-----------------------+----------+---------------+

                      Table 4: Prefix Attribute TLVs

2.3.1.  Prefix-SID TLV

   The Prefix-SID TLV can ONLY be added to the Prefix Attribute whose
   local node in the corresponding Prefix NLRI is the node that
   originates the corresponding SR TLV.

   The Prefix-SID TLV is used in order to advertise a Prefix-SID as
   originated in:

   o  IS-IS, as defined by the Prefix-SID TLV in
      [I-D.ietf-isis-segment-routing-extensions].

   o  OSPF/OSPFv3, as defined by the Prefix-SID TLV in
      [I-D.ietf-ospf-segment-routing-extensions] and
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions].

   The Prefix-SID has the following format:

    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             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Flags     |   Algorithm   |           Reserved            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       SID/Index/Label (variable)              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   where:

      Type: TBD, suggested value 1158.

      Length: Variable

      Algorithm: 1 octet value identify the algorithm.

      SID/Index/Label:

      *  IS-IS: Label or index value depending on the flags
      setting as defined in
         [I-D.ietf-isis-segment-routing-extensions],
      [I-D.ietf-ospf-segment-routing-extensions] and
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions].

      *  OSPF: Label or index value as defined in
         [I-D.ietf-ospf-segment-routing-extensions],

      *  OSPFv3: Label or index value as defined in
         [I-D.ietf-ospf-ospfv3-segment-routing-extensions],

   The Prefix-SID TLV includes a Flags field.  In the context of BGP-LS,
   the Flags field format and the semantic of each individual flag MUST
   be taken from the corresponding source protocol (i.e.: the protocol
   of origin of the Prefix-SID being advertised in BGP-LS).

   IS-IS Prefix-SID flags are defined in
   [I-D.ietf-isis-segment-routing-extensions] section 2.1.

   OSPF Prefix-SID flags are defined in
   [I-D.ietf-ospf-segment-routing-extensions] section 5.

   OSPFv3 Prefix-SID flags are defined in
   [I-D.ietf-ospf-segment-routing-extensions] section 5.

2.3.2.  IPv6 Prefix-SID  IGP Prefix Attributes TLV

   The IPv6 Prefix-SID TLV can ONLY be added to the IGP Prefix Attribute
   whose local node TLV carries IPv4/IPv6 prefix attribute flags
   as defined in the corresponding Prefix NLRI is the node that
   originates the corresponding SR TLV. [RFC7684] and [RFC7794].

   The IPv6 Prefix-SID IGP Prefix Attribute TLV has the following format:

    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             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Flags              |    Algorithm  |              //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+              //
   //                             Sub-TLVs                        //
   //                       Flags (variable)                      //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   where:

      Type: TBD, suggested value 1169. 1170.

      Length: 3 + length of Sub-TLVs. variable.

      Flags: 2 octet a variable length flag field of flags.  None of them is defined at this
      stage.

      Algorithm: 1 octet value identify (according to the algorithm as length
      field).  Flags are routing protocol specific (OSPF and IS-IS).
      OSPF flags are defined in
      [I-D.previdi-isis-ipv6-prefix-sid].

      Sub-TLVs: additional information encoded into the IPv6 Prefix-SID
      Sub-TLV as [RFC7684] and IS-IS flags are defined in [I-D.previdi-isis-ipv6-prefix-sid].

   The IPv6 Prefix-SID TLV is defined in
   [I-D.previdi-isis-ipv6-prefix-sid].

2.3.3.  IGP Prefix Attributes TLV

   The IGP Prefix Attribute TLV carries IPv4/IPv6 prefix attribute flags
   as defined in [RFC7684] and [RFC7794].

   The IGP Prefix Attribute TLV has the following format:

    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             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   //                       Flags (variable)                      //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   where:

      Type: TBD, suggested value 1170.

      Length: variable.

      Flags: a variable length flag field (according to the length
      field).  Flags are routing protocol specific (OSPF and IS-IS).
      OSPF flags are defined in [RFC7684] and IS-IS flags are defined in
      [RFC7794].
      [RFC7794].  The receiver of the BGP-LS update, when inspecting the
      IGP Prefix Attribute TLV, MUST check the Protocol-ID of the NLRI
      and refer to the protocol specification in order to parse the
      flags.

2.3.4.

2.3.3.  Source Router Identifier (Source Router-ID) TLV

   The Source Router-ID TLV contains the IPv4 or IPv6 Router-ID of the
   originator as defined in [RFC7794].  While defined in the IS-IS
   protocol, the Source Router-ID TLV may be used to carry the OSPF
   Router-ID of the prefix originator.

   The Source Router-ID TLV has the following format:

    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             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   //                  IPv4/IPv6 Address (Router-ID)              //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   where:

      Type: TBD, suggested value 1171.

      Length: 4 or 16.

      IPv4/IPv6 Address: 4 octet IPv4 address or 16 octet IPv6 address.

   The semantic of the Source Router-ID TLV is defined in [RFC7794].

2.3.5.

2.3.4.  Range TLV

   The Range TLV can ONLY be added to the Prefix Attribute whose local
   node in the corresponding Prefix NLRI is the node that originates the
   corresponding SR TLV.

   When the range TLV is used in order to advertise a path to a prefix
   or a range of prefix-to-SID mappings, the prefix-
   to-SID mappings as defined in
   [I-D.ietf-ospf-segment-routing-extensions],
   [I-D.ietf-ospf-ospfv3-segment-routing-extensions]and
   [I-D.ietf-isis-segment-routing-extensions].  The Prefix-NLRI the
   Range TLV is attached to MUST be advertised as a non-routing prefix
   where no IGP metric TLV (TLV 1095) is attached.

   The format of the Range TLV is as follows:

    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            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Flags     | RESERVED      |             Range Size        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   //                          Sub-TLVs                          sub-TLVs                           //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   where:

                        Figure 2: Range TLV format

      Type: 1159

      Length is 4.

      Flags: Only used when the source protocol is OSPF and as defined in
      [I-D.ietf-ospf-segment-routing-extensions] section 4 and [I-D.ietf-ospf-segment-routing-extensions],
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions] section 4. and
      [I-D.ietf-isis-segment-routing-extensions].

      Range Size: 2 octets as defined in
      [I-D.ietf-ospf-segment-routing-extensions] section 4.
      [I-D.ietf-ospf-segment-routing-extensions].

   Within the Range TLV, the following SubTLVs are may be present:

      Binding SID TLV, defined in Section 2.3.6 Prefix-SID TLV, defined TLV (used as sub-TLV in Section 2.3.1

      SID/Label TLV, this
   context) MAY be present.

2.4.  Equivalent IS-IS Segment Routing TLVs/Sub-TLVs

   This section illustrate the IS-IS Segment Routing Extensions TLVs and
   sub-TLVs mapped to the ones defined in Section 2.3.7.2

2.3.6.  Binding SID TLV this document.

   The Binding SID TLV can be used following table, illustrates for each BGP-LS TLV, its equivalence
   in two ways:

   o  as a sub-TLV of the Range TLV

   o  as a Prefix Attribute IS-IS.

   +-----------+------------------------------+----------+-------------+
   |  TLV

   The format of the Binding SID Code | Description                  | Length   | IS-IS TLV is as follows:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1   |
   |   Point   |                              |          | /sub-TLV    |
   +-----------+------------------------------+----------+-------------+
   |    1034   | SR Capabilities              | variable | 2 [1]       |
   |    1035   | SR Algorithm                 | variable | 19 [2]      |
   |    1099   | Adjacency Segment Identifier | variable | 31 [3]      |
   |           | (Adj-SID) TLV                |          |             |
   |    1100   | LAN Adjacency Segment        | variable | 32 [4]      |
   |           | Identifier (LAN-Adj-SID) TLV |          |             |
   |    1158   | Prefix SID                   | variable | 3 4 5 6 7 8 9 0 [5]       |
   |    1161   | SID/Label TLV                | variable | 1 2 3 [6]       |
   |    1170   | IGP Prefix Attributes        | variable | 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ [7]       |             Type
   |          Length    1171   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Source Router ID             |     Weight variable |     Flags 11/12 [8]   |          RESERVED
   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   //                        SubTLVs (variable)                   //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   where:

                   Figure 3: Binding SID Sub-TLV format

      Type is 1160

      Length is    1172   | L2 Bundle Member TLV         | variable

      Weight | 25 [9]      |
   +-----------+------------------------------+----------+-------------+

          Table 5: IS-IS Segment Routing Extensions TLVs/Sub-TLVs

2.5.  Equivalent OSPF/OSPFv3 Segment Routing TLVs/Sub-TLVs

   This section illustrate the OSPF and Flags are OSPFv3 Segment Routing
   Extensions TLVs and sub-TLVs mapped to Weight and Flags defined in
      [I-D.ietf-isis-segment-routing-extensions] section 2.4,
      [I-D.ietf-ospf-segment-routing-extensions] section 4 and
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions] section 4.

      Sub-TLVs are the ones defined in the this
   document.

   The following sections.

2.3.7.  Binding SID SubTLVs

   This section defines the Binding SID Sub-TLVs in table, illustrates for each BGP-LS to encode the
   equivalent Sub-TLVs defined TLV, its equivalence
   in
   [I-D.ietf-isis-segment-routing-extensions],
   [I-D.ietf-ospf-segment-routing-extensions] OSPF and
   [I-D.ietf-ospf-ospfv3-segment-routing-extensions].

   All ERO (Explicit Route Object) Sub-TLVs must immediately follow the
   (SID)/Label Sub-TLV.

   All Backup ERO Sub-TLVs must immediately follow the last ERO Sub-TLV.

2.3.7.1.  Binding SID Prefix-SID Sub-TLV

   When encoding IS-IS Mapping Server entries as defined in
   [I-D.ietf-isis-segment-routing-extensions] the Prefix-SID TLV defined
   in Section 2.3.1 is used as Sub-TLV in the Binding TLV.

2.3.7.2.  SID/Label Sub-TLV

   The SID/Label TLV has following format:

    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             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      SID/Label (variable)                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   where:

      Type: TBD, suggested value 1161.

      Length: Variable, 3 or 4 bytes

      SID/Label: If length is set to 3, then the 20 rightmost bits
      represent a label.  If length is set to 4, then the value
      represents a 32 bit SID.

      The receiving router MUST ignore the SID/Label Sub-TLV if the
      length is other then 3 or 4.

2.3.7.3.  ERO Metric Sub-TLV

   The ERO Metric Sub-TLV has following format:

    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            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Metric (4 octets)                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         ERO Metric Sub-TLV format

   where:

      Type: TBD, suggested value 1162.

      Length: Always 4

      Metric: A 4 octet metric representing the aggregate IGP or TE path
      cost.

2.3.7.4.  IPv4 ERO Sub-TLV

   The ERO Sub-TLV has following format:

    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             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Flags    |                   Reserved                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        IPv4 Address (4 octets)                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          IPv4 ERO Sub-TLV format

   where:

      Type: TBD, suggested value 1163

      Length: 8 octets

      Flags: 1 octet of flags as defined in:
      [I-D.ietf-isis-segment-routing-extensions],
      [I-D.ietf-ospf-segment-routing-extensions] and
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions].

      IPv4 Address - the address of the explicit route hop.

2.3.7.5.  IPv6 ERO Sub-TLV

   The IPv6 ERO Sub-TLV has following format:

       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             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      Flags    |                Reserved                       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +-                                                             -+
      |                                                               |
      +-                         IPv6 Address                        -+
      |                                                               |
      +-                                                             -+
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          IPv6 ERO Sub-TLV format

   where:

      Type: TBD, suggested value 1164

      Length: 20 octets

      Flags: 1 octet of flags as defined in:
      [I-D.ietf-isis-segment-routing-extensions],
      [I-D.ietf-ospf-segment-routing-extensions] and
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions].

      IPv6 Address - the address of the explicit route hop.

2.3.7.6.  Unnumbered Interface ID ERO Sub-TLV

   The Unnumbered Interface-ID ERO Sub-TLV has following format:

    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           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Flags     |                  Reserved                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   //        Router ID (IPv4, 4 octet or IPv6, 16 octets)         //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Interface ID                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   where:

                Unnumbered Interface ID ERO Sub-TLV format

      Type: TBD, suggested value 1165.

      Length: Variable (12 for IPv4 Router-ID or 24 for IPv6 Router-ID).

      Flags: 1 octet of flags as defined in:
      [I-D.ietf-isis-segment-routing-extensions],
      [I-D.ietf-ospf-segment-routing-extensions] and
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions].

      Router-ID: Router-ID of the next-hop.

      Interface ID: is the identifier assigned to the link by the router
      specified by the Router-ID.

2.3.7.7.  IPv4 Backup ERO Sub-TLV

   The IPv4 Backup ERO Sub-TLV has following format:

    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            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Flags         |                     Reserved                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    IPv4 Address (4 octets)                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      IPv4 Backup ERO Sub-TLV format

   where:

      Type: TBD, suggested value 1166.

      Length: 8 octets

      Flags: 1 octet of flags as defined in:
      [I-D.ietf-isis-segment-routing-extensions],
      [I-D.ietf-ospf-segment-routing-extensions] and
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions].

      IPv4 Address: Address of the explicit route hop.

2.3.7.8.  IPv6 Backup ERO Sub-TLV

   The IPv6 Backup ERO Sub-TLV has following format:

       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             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      Flags      |                   Reserved                  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +-                                                             -+
      |                                                               |
      +-                         IPv6 Address                        -+
      |                                                               |
      +-                                                             -+
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      IPv6 Backup ERO Sub-TLV format

   where:

      Type: TBD, suggested value 1167.

      Length: 8 octets

      Flags: 1 octet of flags as defined in:
      [I-D.ietf-isis-segment-routing-extensions],
      [I-D.ietf-ospf-segment-routing-extensions] and
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions].

      IPv6 Address: Address of the explicit route hop.

2.3.7.9.  Unnumbered Interface ID Backup ERO Sub-TLV

   The Unnumbered Interface-ID Backup ERO Sub-TLV has following format:

    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            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Flags    |                   Reserved                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   //        Router ID (IPv4, 4 octet or IPv6, 16 octets)         //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Interface ID                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             Unnumbered Interface ID Backup ERO Sub-TLV format

   where:

      Type: TBD, suggested value 1168.

      Length: Variable (12 for IPv4 Router-ID or 24 for IPv6 Router-ID).

      Flags: 1 octet of flags as defined in:
      [I-D.ietf-isis-segment-routing-extensions],
      [I-D.ietf-ospf-segment-routing-extensions] and
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions].

      Router-ID: Router-ID of the next-hop.

      Interface ID: Identifier assigned to the link by the router
      specified by the Router-ID.

2.4.  Equivalent IS-IS Segment Routing TLVs/Sub-TLVs

   This section illustrate the IS-IS Segment Routing Extensions TLVs and
   Sub-TLVs mapped to the ones defined in this document.

   The following table, illustrates for each BGP-LS TLV, its equivalence
   in IS-IS.

   +-----------+------------------------------+----------+-------------+
   |  TLV Code | Description                  | Length   | IS-IS TLV   |
   |   Point   |                              |          | /Sub-TLV    |
   +-----------+------------------------------+----------+-------------+
   |    1034   | SR Capabilities              | variable | 2 [1]       |
   |    1035   | SR Algorithm                 | variable | 19 [2]      |
   |    1099   | Adjacency Segment Identifier | variable | 31 [3]      |
   |           | (Adj-SID) TLV                |          |             |
   |    1100   | LAN Adjacency Segment        | variable | 32 [4]      |
   |           | Identifier (LAN-Adj-SID) TLV |          |             |
   |    1158   | Prefix SID                   | variable | 3 [5]       |
   |    1160   | Binding SID                  | variable | 149 [6]     |
   |    1161   | SID/Label TLV                | variable | 1 [7]       |
   |    1162   | ERO Metric TLV               | 4 octets | 10 [8]      |
   |    1163   | IPv4 ERO TLV                 | 5 octets | 11 [9]      |
   |    1164   | IPv6 ERO TLV                 | 17       | 12 [10]     |
   |           |                              | octets   |             |
   |    1165   | Unnumbered Interface ID ERO  | variable | 13 [11]     |
   |           | TLV                          |          |             |
   |    1166   | IPv4 Backup ERO TLV          | 5 octets | 14 [12]     |
   |    1167   | IPv6 Backup ERO TLV          | 17       | 15 [13]     |
   |           |                              | octets   |             |
   |    1168   | Unnumbered Interface ID      | variable | 16 [14]     |
   |           | Backup ERO TLV               |          |             |
   |    1169   | IPv6 Prefix SID              | variable | 5 [15]      |
   |    1170   | IGP Prefix Attributes        | variable | 4 [16]      |
   |    1171   | Source Router ID             | variable | 11/12 [17]  |
   +-----------+------------------------------+----------+-------------+

          Table 5: IS-IS Segment Routing Extensions TLVs/Sub-TLVs

2.5.  Equivalent OSPF/OSPFv3 Segment Routing TLVs/Sub-TLVs

   This section illustrate the OSPF and OSPFv3 Segment Routing
   Extensions TLVs and Sub-TLVs mapped to the ones defined in this
   document.

   The following table, illustrates for each BGP-LS TLV, its equivalence
   in OSPF and OSPFv3.

   +------------+-----------------------------+----------+-------------+
   | OSPFv3.

   +-----------+------------------------------+----------+-------------+
   |  TLV Code | Description                  | Length   | OSPF TLV    |
   |   Point   |                              |          | /Sub-TLV    |
   +------------+-----------------------------+----------+-------------+
   |    1034    | SR Capabilities             | variable | 9 [18]      |
   |    1035    | SR Algorithm                | variable | 8 [19]      |
   |    1099    | Adjacency Segment           | variable | 2 [20]      |
   |            | Identifier (Adj-SID) TLV    |          |             |
   |    1100    | LAN Adjacency Segment       | variable | 3 [21]      |
   |            | Identifier (Adj-SID) TLV    |          |             |
   |    1158    | Prefix SID                  | variable | 2 [22]      |
   |    1161    | SID/Label TLV               | variable | 1 [23]      |
   |    1162    | ERO Metric TLV              | 4 octets | 8 [24]      |
   |    1163    | IPv4 ERO TLV                | 8 octets | 4 [25]      |
   |    1165    | Unnumbered Interface ID ERO | 12       | 5 [26]      |
   |            | TLV                         | octets   |             |
   |    1166    | IPv4 Backup ERO TLV         | 8 octets | 6 [27]      |
   |    1167    | Unnumbered Interface ID     | 12       | 7 [28]      |
   |            | Backup ERO TLV              | octets   |             |
   |    1167    | Unnumbered Interface ID     | 12       | 7 [29]      |
   |            | Backup ERO TLV              | octets   |             |
   +------------+-----------------------------+----------+-------------+

          Table 6: OSPF Segment Routing Extensions TLVs/Sub-TLVs

   +------------+----------------------------+----------+--------------+
   |  TLV Code  | Description                | Length   | OSPFv3 TLV   |
   |   Point    |                            |          | /Sub-TLV /sub-TLV    |
   +------------+----------------------------+----------+--------------+
   +-----------+------------------------------+----------+-------------+
   |    1034   | SR Capabilities              | variable | 9 [30] [10]      |
   |    1035   | SR Algorithm               | variable | 8 [31]       |
   |    1099    | Adjacency Segment          | variable | 5 [32]       |
   |            | Identifier (Adj-SID) TLV   |          |              |
   |    1100    | LAN Adjacency Segment      | variable | 6 [33]       |
   |            | Identifier (Adj-SID) TLV   |          |              |
   |    1158    | Prefix SID                 | variable | 4 [34]       |
   |    1161    | SID/Label TLV              | variable | 3 [35]       |
   |    1162    | ERO Metric TLV SR Algorithm                 | 4 octets variable | 8 [36] [11]      |
   |    1163    1099   | IPv4 ERO TLV Adjacency Segment Identifier | 8 octets variable | 9 [37] 2 [12]      |
   |    1164           | IPv6 ERO (Adj-SID) TLV                | 20          | 8 [38]             |
   |    1100   | LAN Adjacency Segment        | octets variable | 3 [13]      |
   |    1165           | Unnumbered Interface ID Identifier (Adj-SID) TLV     | 12          | 11 [39]             |
   |    1158   | ERO TLV Prefix SID                   | octets variable | 2 [14]      |
   |    1166    1161   | IPv4 Backup ERO SID/Label TLV                | 8 octets | 12 [40] variable | 1 [15]      |    1167
   +-----------+------------------------------+----------+-------------+

          Table 6: OSPF Segment Routing Extensions TLVs/Sub-TLVs

   +-----------+-----------------------------+----------+--------------+
   | IPv6 Backup ERO  TLV Code | 20 Description                 | 13 [41] Length   | OSPFv3 TLV   |
   |   Point   | octets                             |          | /sub-TLV     |    1167
   +-----------+-----------------------------+----------+--------------+
   | Unnumbered Interface ID    1034   | 12 SR Capabilities             | 14 [42] variable | 9 [16]       |
   | Backup ERO TLV    1035   | octets SR Algorithm                | variable |
   +------------+----------------------------+----------+--------------+

         Table 7: OSPFv3 Segment Routing Extensions TLVs/Sub-TLVs

3.  Procedures

   The following sections describe the different operations for the
   propagation of SR TLVs into BGP-LS.

3.1.  Advertisement of a IS-IS Prefix SID TLV

   The advertisement of a IS-IS Prefix SID TLV has following rules:

      The IS-IS Prefix-SID is encoded in the BGP-LS Prefix Attribute
      Prefix-SID as defined in Section 2.3.1.  The flags in the Prefix-
      SID TLV have the semantic defined in
      [I-D.ietf-isis-segment-routing-extensions] section 2.1.

3.2.  Advertisement of a OSPF/OSPFv3 Prefix-SID TLV

   The advertisement of a OSPF/OSPFv3 Prefix-SID TLV has following
   rules:

      The OSPF (or OSPFv3) Prefix-SID is encoded in the BGP-LS Prefix
      Attribute Prefix-SID as defined in Section 2.3.1.  The flags in
      the Prefix-SID TLV have the semantic defined in
      [I-D.ietf-ospf-segment-routing-extensions] section 5 or
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions] section 5.

3.3.  Advertisement of a range of prefix-to-SID mappings in OSPF

   The advertisement of a range of prefix-to-SID mappings in OSPF has
   following rules:

      The OSPF/OSPFv3 Extended Prefix Range TLV is encoded in the BGP-LS
      Prefix Attribute Range 8 [17]       |
   |    1099   | Adjacency Segment           | variable | 5 [18]       |
   |           | Identifier (Adj-SID) TLV as defined in Section 2.3.5.  The flags
      of the Range    |          |              |
   |    1100   | LAN Adjacency Segment       | variable | 6 [19]       |
   |           | Identifier (Adj-SID) TLV have the semantic mapped to the definition in
      [I-D.ietf-ospf-segment-routing-extensions] section 4 or
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions] section 4.  The
      Prefix-SID from the original OSPF    |          |              |
   |    1158   | Prefix SID Sub-TLV is encoded
      using the BGP-LS Prefix Attribute Prefix-SID as defined in
      Section 2.3.1 with                  | variable | 4 [20]       |
   |    1161   | SID/Label TLV               | variable | 3 [21]       |
   +-----------+-----------------------------+----------+--------------+

         Table 7: OSPFv3 Segment Routing Extensions TLVs/Sub-TLVs

3.  Procedures

   The following sections describe the flags set according to different operations for the definition in
      [I-D.ietf-ospf-segment-routing-extensions] section 5 or
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions] section 5.

3.4.  Advertisement of a range
   propagation of IS-IS SR bindings

   The advertisement TLVs into BGP-LS.

3.1.  Advertisement of a range of IS-IS SR bindings has following
   rules:

      In IS-IS the Mapping Server binding ranges are advertised using
      the Binding TLV.  The IS-IS Binding TLV is encoded in the BGP-LS Prefix Attribute Range TLV as defined in Section 2.3.5 using the
      Binding Sub-TLV as defined in Section 2.3.6.  The flags in the
      Range TLV are all set to zero on transmit and ignored on
      reception.  The range value from the original IS-IS Binding TLV is
      encoded in the Range SID TLV "Range" field.

3.5.  Advertisement of a path and its attributes from IS-IS protocol

   The advertisement of a Path and its attributes is described in
   [I-D.ietf-isis-segment-routing-extensions] section 2.4 and IS-IS Prefix SID TLV has following rules:

      The original Binding SID TLV (from IS-IS) is encoded into the BGP-
      LS Range TLV defined in Section 2.3.5 using the Binding Sub-TLV as
      defined in Section 2.3.6.  The set of Sub-TLVs from the original IS-IS Binding TLV are Prefix-SID is encoded as Sub-TLVs of in the BGP-LS Binding
      TLV Prefix Attribute
      Prefix-SID as defined in Section 2.3.6.  This includes 2.3.1.  The flags in the SID/Label Prefix-
      SID TLV have the semantic defined in Section 2.3.

3.6.
      [I-D.ietf-isis-segment-routing-extensions] section 2.1.

3.2.  Advertisement of a path and its attributes from OSPFv2/OSPFv3
      protocol OSPF/OSPFv3 Prefix-SID TLV

   The advertisement of a Path and its attributes is described in
   [I-D.ietf-ospf-segment-routing-extensions] section 6 and
   [I-D.ietf-ospf-ospfv3-segment-routing-extensions] section 6 and OSPF/OSPFv3 Prefix-SID TLV has following
   rules:

      Advertisement of a path for a single prefix: the original Binding
      SID TLV (from OSPFv2/OSPFv3)

      The OSPF (or OSPFv3) Prefix-SID is encoded into in the BGP-LS Prefix
      Attribute Binding TLV Prefix-SID as defined in Section 2.3.6. 2.3.1.  The set of
      Sub-TLVs from the original OSPFv2/OSPFv3 Binding TLV are encoded
      as Sub-TLVs of the BGP-LS Binding TLV as defined flags in Section 2.3.6.
      This includes
      the SID/Label Prefix-SID TLV have the semantic defined in Section 2.3.
      [I-D.ietf-ospf-segment-routing-extensions] section 5 or
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions] section 5.

3.3.  Advertisement of an SR path for a range of prefixes: the prefix-to-SID mappings in OSPF

   The advertisement of a range of prefix-to-SID mappings in OSPF has
   following rules:

      The OSPF/OSPFv3 Extended Prefix Range TLV is encoded in the BGP-LS
      Prefix Attribute Range TLV as defined in Section 2.3.5. 2.3.4.  The flags
      of the Range TLV have the semantic mapped to the definition in
      [I-D.ietf-ospf-segment-routing-extensions] section 4 or
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions] section 4.  The
      Prefix-SID from the original
      OSPFv2/OSPFv3 Binding OSPF Prefix SID TLV sub-TLV is encoded into
      using the BGP-LS Binding
      Sub-TLV Prefix Attribute Prefix-SID as defined in
      Section 2.3.6.  The 2.3.1 with the flags set of Sub-TLVs from according to the
      original OSPFv2/OSPFv3 Binding TLV are encoded as Sub-TLVs definition in
      [I-D.ietf-ospf-segment-routing-extensions] section 5 or
      [I-D.ietf-ospf-ospfv3-segment-routing-extensions] section 5.

3.4.  Advertisement of a range of IS-IS SR bindings

   The advertisement of a range of IS-IS Mapping Server bindings
   ([I-D.ietf-isis-segment-routing-extensions]) is encoded using the
      BGP-LS Binding
   following TLV/sub-TLV structure:

   Range TLV
      Prefix-SID TLV (used as a sub-TLV in this context)

   where:

   o  The Range TLV is defined in Section 2.3.6.  This includes the
      SID/Label 2.3.4.

   o  The Prefix-SID TLV (used as sub-TLV in this context) is defined in
      Section 2.3. 2.3.1.

4.  Implementation Status

   Note to RFC Editor: Please remove this section prior to publication,
   as well as the reference to RFC 7942.

   This section records the status of known implementations of the
   protocol defined by this specification at the time of posting of this
   Internet-Draft, and is based on a proposal described in [RFC7942].
   The description of implementations in this section is intended to
   assist the IETF in its decision processes in progressing drafts to
   RFCs.  Please note that the listing of any individual implementation
   here does not imply endorsement by the IETF.  Furthermore, no effort
   has been spent to verify the information presented here that was
   supplied by IETF contributors.  This is not intended as, and must not
   be construed to be, a catalog of available implementations or their
   features.  Readers are advised to note that other implementations may
   exist.

   According to [RFC7942], "this will allow reviewers and working groups
   to assign due consideration to documents that have the benefit of
   running code, which may serve as evidence of valuable experimentation
   and feedback that have made the implemented protocols more mature.

   It is up to the individual working groups to use this information as
   they see fit".

   Several early implementations exist and will be reported in detail in
   a forthcoming version of this document.  For purposes of early
   interoperability testing, when no FCFS code point was available,
   implementations have made use of the values described in Table 8.

   It will ease implementation interoperability and deployment if the
   value could be preserved also due to the large amount of codepoints
   this draft requires.  However, when IANA-assigned values are
   available, implementations will be updated to use them.

5.  IANA Considerations

   This document requests assigning code-points from the registry for
   BGP-LS attribute TLVs based on table Table 8.

5.1.  TLV/Sub-TLV Code Points Summary

   This section contains the global table of all TLVs/Sub-TLVs TLVs/sub-TLVs defined
   in this document.

   +-----------+--------------------------+----------+-----------------+

   +-----------+----------------------------+----------+---------------+
   |  TLV Code | Description                | Length   |       Section |
   |   Point   |                            |          |               |
   +-----------+--------------------------+----------+-----------------+
   +-----------+----------------------------+----------+---------------+
   |    1034   | SR Capabilities            | variable | Section 2.1.1 2.1.2 |
   |    1035   | SR Algorithm               | variable | Section 2.1.2 2.1.3 |
   |    1036   | SR Local Block             | variable | Section 2.1.3 2.1.4 |
   |    1037   | SRMS Preference            | variable | Section 2.1.4 2.1.5 |
   |    1099   | Adjacency Segment          | variable | Section 2.2.1 |
   |           | Identifier (Adj-SID) TLV   |          |               |
   |    1100   | LAN Adjacency Segment      | variable | Section 2.2.2 |
   |           | Identifier (Adj-SID) TLV   |          |               |
   |    1158   | Prefix SID                 | variable | Section 2.3.1 |
   |    1159   | Range                      | variable | Section 2.3.5 |
   |    1160   | Binding SID              | variable |   Section 2.3.6 2.3.4 |
   |    1161   | SID/Label TLV              | variable | Section 2.3.7.2 |
   |    1162   | ERO Metric TLV           | 4 octets |          1 [43] |
   |    1163   | IPv4 ERO TLV             | 8 octets |          1 [44] |
   |    1164   | IPv6 ERO TLV             | 20       |          1 [45] |
   |           |                          | octets   |                 |
   |    1165   | Unnumbered Interface ID  | 12       |          1 [46] |
   |           | ERO TLV                  | octets   |                 |
   |    1166   | IPv4 Backup ERO TLV      | 8 octets |          1 [47] |
   |    1167   | IPv6 Backup ERO TLV      | 20       |          1 [48] |
   |           |                          | octets   |                 |
   |    1168   | Unnumbered Interface ID  | 12       |          1 [49] |
   |           | Backup ERO TLV           | octets   | 2.1.1 |
   |    1169    1170   | IPv6 IGP Prefix SID Attributes      | variable | Section 2.3.2 |
   |    1170    1171   | IGP Prefix Attributes Source Router-ID           | variable | Section 2.3.3 |
   |    1171    1172   | Source Router-ID L2 Bundle Member TLV       | variable | Section 2.3.4 2.2.3 |
   +-----------+--------------------------+----------+-----------------+
   +-----------+----------------------------+----------+---------------+

             Table 8: Summary Table of TLV/Sub-TLV Codepoints

6.  Manageability Considerations

   This section is structured as recommended in [RFC5706].

6.1.  Operational Considerations

6.1.1.  Operations

   Existing BGP and BGP-LS operational procedures apply.  No additional
   operation procedures are defined in this document.

7.  Security Considerations

   Procedures and protocol extensions defined in this document do not
   affect the BGP security model.  See the 'Security Considerations'
   section of [RFC4271] for a discussion of BGP security.  Also refer to
   [RFC4272] and [RFC6952] for analysis of security issues for BGP.

8.  Contributors

   The following people have substantially contributed to the editing of
   this document:

   Les Ginsberg
   Cisco Systems
   Email: ginsberg@cisco.com

   Acee Lindem
   Cisco Systems
   Email: acee@cisco.com

   Saikat Ray
   Individual
   Email: raysaikat@gmail.com

   Jeff Tantsura
   Individual
   Email: jefftant@gmail.com

9.  Acknowledgements

   The authors would like to thank Les Ginsberg and Ketan Jivan Talaulikar for their his review
   of this document.

10.  References

10.1.  Normative References

   [I-D.ietf-idr-te-pm-bgp]
              Previdi, S., Wu, Q., Gredler, H., Ray, S.,
              jefftant@gmail.com, j., Filsfils, C., and L. Ginsberg,
              "BGP-LS Advertisement of IGP Traffic Engineering
              Performance Metric Extensions", draft-ietf-idr-te-pm-
              bgp-05 (work in progress), April 2017.

   [I-D.ietf-isis-segment-routing-extensions]
              Previdi, S., Filsfils, C., Bashandy, A., Gredler, H.,
              Litkowski, S., Decraene, B., and j. jefftant@gmail.com,
              "IS-IS Extensions for Segment Routing", draft-ietf-isis-
              segment-routing-extensions-09
              segment-routing-extensions-13 (work in progress), October
              2016. June
              2017.

   [I-D.ietf-ospf-ospfv3-segment-routing-extensions]
              Psenak, P., Previdi, S., Filsfils, C., Gredler, H.,
              Shakir, R., Henderickx, W., and J. Tantsura, "OSPFv3
              Extensions for Segment Routing", draft-ietf-ospf-ospfv3-
              segment-routing-extensions-07
              segment-routing-extensions-09 (work in progress), October
              2016. March
              2017.

   [I-D.ietf-ospf-segment-routing-extensions]
              Psenak, P., Previdi, S., Filsfils, C., Gredler, H.,
              Shakir, R., Henderickx, W., and J. Tantsura, "OSPF
              Extensions for Segment Routing", draft-ietf-ospf-segment-
              routing-extensions-10 (work in progress), October 2016.

   [I-D.previdi-isis-ipv6-prefix-sid]
              Previdi, S., Ginsberg, L., and C. Filsfils, "Segment
              Routing IPv6 Prefix-SID", draft-previdi-isis-ipv6-prefix-
              sid-03
              routing-extensions-17 (work in progress), November 2016. June 2017.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.

   [RFC4202]  Kompella, K., Ed. and Y. Rekhter, Ed., "Routing Extensions
              in Support of Generalized Multi-Protocol Label Switching
              (GMPLS)", RFC 4202, DOI 10.17487/RFC4202, October 2005,
              <http://www.rfc-editor.org/info/rfc4202>.

   [RFC4271]  Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A
              Border Gateway Protocol 4 (BGP-4)", RFC 4271,
              DOI 10.17487/RFC4271, January 2006,
              <http://www.rfc-editor.org/info/rfc4271>.

   [RFC7684]  Psenak, P., Gredler, H., Shakir, R., Henderickx, W.,
              Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute
              Advertisement", RFC 7684, DOI 10.17487/RFC7684, November
              2015, <http://www.rfc-editor.org/info/rfc7684>.

   [RFC7752]  Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and
              S. Ray, "North-Bound Distribution of Link-State and
              Traffic Engineering (TE) Information Using BGP", RFC 7752,
              DOI 10.17487/RFC7752, March 2016,
              <http://www.rfc-editor.org/info/rfc7752>.

   [RFC7794]  Ginsberg, L., Ed., Decraene, B., Previdi, S., Xu, X., and
              U. Chunduri, "IS-IS Prefix Attributes for Extended IPv4
              and IPv6 Reachability", RFC 7794, DOI 10.17487/RFC7794,
              March 2016, <http://www.rfc-editor.org/info/rfc7794>.

10.2.  Informative References

   [I-D.ietf-spring-segment-routing]
              Filsfils, C., Previdi, S., Decraene, B., Litkowski, S.,
              and R. Shakir, "Segment Routing Architecture", draft-ietf-
              spring-segment-routing-10
              spring-segment-routing-12 (work in progress), November
              2016. June 2017.

   [RFC4272]  Murphy, S., "BGP Security Vulnerabilities Analysis",
              RFC 4272, DOI 10.17487/RFC4272, January 2006,
              <http://www.rfc-editor.org/info/rfc4272>.

   [RFC5706]  Harrington, D., "Guidelines for Considering Operations and
              Management of New Protocols and Protocol Extensions",
              RFC 5706, DOI 10.17487/RFC5706, November 2009,
              <http://www.rfc-editor.org/info/rfc5706>.

   [RFC6952]  Jethanandani, M., Patel, K., and L. Zheng, "Analysis of
              BGP, LDP, PCEP, and MSDP Issues According to the Keying
              and Authentication for Routing Protocols (KARP) Design
              Guide", RFC 6952, DOI 10.17487/RFC6952, May 2013,
              <http://www.rfc-editor.org/info/rfc6952>.

   [RFC7942]  Sheffer, Y. and A. Farrel, "Improving Awareness of Running
              Code: The Implementation Status Section", BCP 205,
              RFC 7942, DOI 10.17487/RFC7942, July 2016,
              <http://www.rfc-editor.org/info/rfc7942>.

10.3.  URIs

   [1] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
       extensions-05#section-3.1

   [2] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
       extensions-05#section-3.2

   [3] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
       extensions-05#section-2.2.1

   [4] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
       extensions-05#section-2.2.2

   [5] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
       extensions-05#section-2.1

   [6] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
       extensions-05#section-2.4

   [7] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
       extensions-05#section-2.3

   [7] http://tools.ietf.org/html/RFC7794

   [8] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
       extensions-05#section-2.4.7 http://tools.ietf.org/html/RFC7794

   [9] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
       extensions-05#section-2.4.8 http://tools.ietf.org/html/draft-ietf-isis-l2bundles-05

   [10] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
        extensions-05#section-2.4.9

   [11] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
        extensions-05#section-2.4.10

   [12] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
        extensions-05#section-2.4.11

   [13] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
        extensions-05#section-2.4.12

   [14] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
        extensions-05#section-2.4.13

   [15] http://tools.ietf.org/html/draft-previdi-isis-ipv6-prefix-sid-01

   [16] http://tools.ietf.org/html/RFC7794

   [17] http://tools.ietf.org/html/RFC7794

   [18] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing-
        extensions-05#section-3.2

   [19]

   [11] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing-
        extensions-05#section-3.1

   [20]

   [12] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing-
        extensions-05#section-7.1

   [21]

   [13] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing-
        extensions-05#section-7.2

   [22]

   [14] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing-
        extensions-05#section-5

   [23]

   [15] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing-
        extensions-05#section-2.1

   [24] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing-
        extensions-05#section-6.1

   [25] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing-
        extensions-05#section-6.2.1

   [26] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing-
        extensions-05#section-6.2.2

   [27] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing-
        extensions-05#section-6.2.3

   [28] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing-
        extensions-05#section-6.2.4

   [29] http://tools.ietf.org/html/draft-ietf-ospf-segment-routing-
        extensions-05#section-6.2.4

   [30]

   [16] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment-
        routing-extensions-05#section-3.2

   [31]

   [17] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment-
        routing-extensions-05#section-3.1

   [32]

   [18] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment-
        routing-extensions-05#section-7.1

   [33]

   [19] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment-
        routing-extensions-05#section-7.2

   [34]

   [20] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment-
        routing-extensions-05#section-5

   [35]

   [21] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment-
        routing-extensions-05#section-2.1

   [36] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment-
        routing-extensions-05#section-6.1

   [37] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment-
        routing-extensions-05#section-6.2.1

   [38] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment-
        routing-extensions-05#section-6.2.2

   [39] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment-
        routing-extensions-05#section-6.2.3

   [40] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment-
        routing-extensions-05#section-6.2.4

   [41] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment-
        routing-extensions-05#section-6.2.5

   [42] http://tools.ietf.org/html/draft-ietf-ospf-ospfv3-segment-
        routing-extensions-05#section-6.2.6

   [43] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
        extensions-05#section-2.4.7

   [44] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
        extensions-05#section-2.4.8

   [45] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
        extensions-05#section-2.4.9

   [46] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
        extensions-05#section-2.4.10

   [47] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
        extensions-05#section-2.4.11

   [48] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
        extensions-05#section-2.4.12

   [49] http://tools.ietf.org/html/draft-ietf-isis-segment-routing-
        extensions-05#section-2.4.13

Authors' Addresses

   Stefano Previdi (editor)
   Cisco Systems, Inc.
   Via Del Serafico, 200
   Rome  00142
   Italy

   Email: sprevidi@cisco.com stefano@previdi.net

   Peter Psenak
   Cisco Systems, Inc.
   Apollo Business Center
   Mlynske nivy 43
   Bratislava  821 09
   Slovakia

   Email: ppsenak@cisco.com

   Clarence Filsfils
   Cisco Systems, Inc.
   Brussels
   Belgium

   Email: cfilsfil@cisco.com

   Hannes Gredler
   RtBrick Inc.

   Email: hannes@rtbrick.com
   Mach(Guoyi) Chen
   Huawei Technologies
   Huawei Building, No. 156 Beiqing Rd.
   Beijing  100095
   China

   Email: mach.chen@huawei.com

   Jeff Tantsura
   Individual

   Email: jefftant@gmail.com