Skip to main content

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

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Replaced".
Authors Stefano Previdi , Peter Psenak , Clarence Filsfils , Hannes Gredler , Mach Chen , Jeff Tantsura
Last updated 2016-06-01
Replaced by draft-ietf-idr-bgp-ls-segment-routing-ext, RFC 9085
RFC stream (None)
Formats
Additional resources
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-gredler-idr-bgp-ls-segment-routing-ext-02
Inter-Domain Routing                                     S. Previdi, Ed.
Internet-Draft                                                 P. Psenak
Intended status: Standards Track                             C. Filsfils
Expires: December 3, 2016                            Cisco Systems, Inc.
                                                              H. Gredler
                                                              Individual
                                                                 M. Chen
                                                     Huawei Technologies
                                                             J. Tantsura
                                                              Individual
                                                            June 1, 2016

             BGP Link-State extensions for Segment Routing
            draft-gredler-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."

Previdi, et al.         Expires December 3, 2016                [Page 1]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

   This Internet-Draft will expire on December 3, 2016.

Copyright Notice

   Copyright (c) 2016 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 . . . . . . . . . . . . . . . . .   6
       2.1.2.  SR-Algorithm TLV  . . . . . . . . . . . . . . . . . .   7
     2.2.  Link Attribute TLVs . . . . . . . . . . . . . . . . . . .   7
       2.2.1.  Adjacency SID TLV . . . . . . . . . . . . . . . . . .   8
       2.2.2.  LAN Adjacency SID TLV . . . . . . . . . . . . . . . .   8
     2.3.  Prefix Attribute TLVs . . . . . . . . . . . . . . . . . .   9
       2.3.1.  Prefix-SID TLV  . . . . . . . . . . . . . . . . . . .  10
       2.3.2.  IPv6 Prefix-SID TLV . . . . . . . . . . . . . . . . .  11
       2.3.3.  Range TLV . . . . . . . . . . . . . . . . . . . . . .  12
       2.3.4.  Binding SID TLV . . . . . . . . . . . . . . . . . . .  13
       2.3.5.  Binding SID SubTLVs . . . . . . . . . . . . . . . . .  14
     2.4.  Equivalent IS-IS Segment Routing TLVs/Sub-TLVs  . . . . .  20
     2.5.  Equivalent OSPF/OSPFv3 Segment Routing TLVs/Sub-TLVs  . .  21
   3.  Procedures  . . . . . . . . . . . . . . . . . . . . . . . . .  23
     3.1.  Advertisement of a IS-IS Prefix SID TLV . . . . . . . . .  23
     3.2.  Advertisement of a OSPF/OSPFv3 Prefix-SID TLV . . . . . .  23
     3.3.  Advertisement of a range of prefix-to-SID mappings in
           OSPF  . . . . . . . . . . . . . . . . . . . . . . . . . .  24
     3.4.  Advertisement of a range of IS-IS SR bindings . . . . . .  24
     3.5.  Advertisement of a path and its attributes from IS-IS
           protocol  . . . . . . . . . . . . . . . . . . . . . . . .  24
     3.6.  Advertisement of a path and its attributes from
           OSPFv2/OSPFv3 protocol  . . . . . . . . . . . . . . . . .  25
   4.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  25
   5.  Manageability Considerations  . . . . . . . . . . . . . . . .  25
     5.1.  Operational Considerations  . . . . . . . . . . . . . . .  25

Previdi, et al.         Expires December 3, 2016                [Page 2]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

       5.1.1.  Operations  . . . . . . . . . . . . . . . . . . . . .  25
   6.  TLV/Sub-TLV Code Points Summary . . . . . . . . . . . . . . .  25
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  26
   8.  Contributors  . . . . . . . . . . . . . . . . . . . . . . . .  26
   9.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  27
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .  27
     10.1.  Normative References . . . . . . . . . . . . . . . . . .  27
     10.2.  Informative References . . . . . . . . . . . . . . . . .  28
     10.3.  URIs . . . . . . . . . . . . . . . . . . . . . . . . . .  28
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  31

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.

Previdi, et al.         Expires December 3, 2016                [Page 3]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

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

Previdi, et al.         Expires December 3, 2016                [Page 4]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

   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.
   Section 2.4 and Section 2.5 illustrates the equivalent TLVs and 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.

   The following new TLVs are defined for the encoding of SR
   information:

   o  TLV for Prefix-SID.

   o  TLV for Adjacency-SID between two nodes as well as between nodes
      in a LAN.

   o  TLV for SR Capabilities.

   o  TLV for SR Algorithm.

   o  TLV for advertising paths (IGP Binding TLV).

   o  TLV for advertising bindings between prefixes and SIDs (Mapping
      Server).

2.1.  Node Attributes TLVs

   The following Node Attribute TLVs are defined:

Previdi, et al.         Expires December 3, 2016                [Page 5]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

      +----------------+-----------------+----------+---------------+
      | TLV Code Point | Description     | Length   |       Section |
      +----------------+-----------------+----------+---------------+
      |      1034      | SR Capabilities | variable | Section 2.1.1 |
      |      1035      | SR Algorithm    | variable | Section 2.1.2 |
      +----------------+-----------------+----------+---------------+

                       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

   The SR Capabilities 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    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                  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].

      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.5.2).

Previdi, et al.         Expires December 3, 2016                [Page 6]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

2.1.2.  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.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   |          |               |
   +-----------+----------------------------+----------+---------------+

                       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 SR 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

Previdi, et al.         Expires December 3, 2016                [Page 7]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

   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) has the following format:

Previdi, et al.         Expires December 3, 2016                [Page 8]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

    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 Attribute TLVs

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

Previdi, et al.         Expires December 3, 2016                [Page 9]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

      +----------------+-----------------+----------+---------------+
      | TLV Code Point | Description     |   Length | Section       |
      +----------------+-----------------+----------+---------------+
      |      1158      | Prefix SID      | variable | Section 2.3.1 |
      |      1159      | Range           | variable | Section 2.3.3 |
      |      1160      | Binding SID     | variable | Section 2.3.4 |
      |      1169      | IPv6 Prefix SID | variable | Section 2.3.2 |
      +----------------+-----------------+----------+---------------+

                      Table 3: Prefix Attribute TLVs

   +------------+-------------------------+----------+-----------------+
   |  TLV Code  | Description             | Length   | Section         |
   |   Point    |                         |          |                 |
   +------------+-------------------------+----------+-----------------+
   |    1161    | SID/Label TLV           | variable | Section 2.3.5.2 |
   |    1162    | ERO Metric TLV          | 4 octets | Section 2.3.5.3 |
   |    1163    | IPv4 ERO TLV            | 8 octets | Section 2.3.5.4 |
   |    1164    | IPv6 ERO TLV            | 20       | Section 2.3.5.5 |
   |            |                         | octets   |                 |
   |    1165    | Unnumbered Interface ID | 12       | Section 2.3.5.6 |
   |            | ERO TLV                 |          |                 |
   |    1166    | IPv4 Backup ERO TLV     | 8 octets | Section 2.3.5.7 |
   |    1167    | IPv6 Backup ERO TLV     | 10       | Section 2.3.5.8 |
   |            |                         | octets   |                 |
   |    1168    | Unnumbered Interface ID | 12       | Section 2.3.5.9 |
   |            | Backup ERO TLV          |          |                 |
   +------------+-------------------------+----------+-----------------+

             Table 4: Prefix Attribute - Binding SID Sub-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 has the following format:

Previdi, et al.         Expires December 3, 2016               [Page 10]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

    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: 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].

   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 TLV

   The IPv6 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 IPv6 Prefix-SID has the following format:

Previdi, et al.         Expires December 3, 2016               [Page 11]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

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

   where:

      Type: TBD, suggested value 1169.

      Length: 3 + length of Sub-TLVs.

      Flags: 2 octet field of flags.  None of them is defined at this
      stage.

      Algorithm: 1 octet value identify the algorithm as defined in
      [I-D.previdi-isis-ipv6-prefix-sid].

      Sub-TLVs: additional information encoded into the IPv6 Prefix-SID
      Sub-TLV as 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.  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-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:

Previdi, et al.         Expires December 3, 2016               [Page 12]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

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

   where:

                        Figure 2: Range TLV format

      Type: 1159

      Length is 4.

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

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

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

      Binding SID TLV, defined in Section 2.3.4

      Prefix-SID TLV, defined in Section 2.3.1

      SID/Label TLV, defined in Section 2.3.5.2

2.3.4.  Binding SID TLV

   The Binding SID TLV can be used in two ways:

   o  as a sub-TLV of the Range TLV

   o  as a Prefix Attribute TLV

   The format of the Binding SID TLV is as follows:

Previdi, et al.         Expires December 3, 2016               [Page 13]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

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

   where:

                   Figure 3: Binding SID Sub-TLV format

      Type is 1160

      Length is variable

      Weight and Flags are 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 defined in the following sections.

2.3.5.  Binding SID SubTLVs

   This section defines the Binding SID Sub-TLVs in BGP-LS to encode the
   equivalent Sub-TLVs 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].

   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.5.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.

Previdi, et al.         Expires December 3, 2016               [Page 14]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

2.3.5.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.5.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.

Previdi, et al.         Expires December 3, 2016               [Page 15]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

2.3.5.4.  IPv4 ERO 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             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      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.5.5.  IPv6 ERO Sub-TLV

   The IPv6 ERO Sub-TLV has following format:

Previdi, et al.         Expires December 3, 2016               [Page 16]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

       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.5.6.  Unnumbered Interface ID ERO Sub-TLV

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

Previdi, et al.         Expires December 3, 2016               [Page 17]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

    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.5.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:

Previdi, et al.         Expires December 3, 2016               [Page 18]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

      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.5.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.

Previdi, et al.         Expires December 3, 2016               [Page 19]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

2.3.5.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.

Previdi, et al.         Expires December 3, 2016               [Page 20]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

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

          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.

Previdi, et al.         Expires December 3, 2016               [Page 21]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

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

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

Previdi, et al.         Expires December 3, 2016               [Page 22]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

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

         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

Previdi, et al.         Expires December 3, 2016               [Page 23]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

      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 TLV as defined in Section 2.3.3.  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 OSPF Prefix SID Sub-TLV is encoded
      using the BGP-LS Prefix Attribute Prefix-SID as defined in
      Section 2.3.1 with the flags set according to 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 of IS-IS SR bindings

   The 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.3 using the
      Binding Sub-TLV as defined in Section 2.3.4.  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 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 has
   following rules:

      The original Binding SID TLV (from IS-IS) is encoded into the BGP-
      LS Range TLV defined in Section 2.3.3 using the Binding Sub-TLV as
      defined in Section 2.3.4.  The set of Sub-TLVs from the original
      IS-IS Binding TLV are encoded as Sub-TLVs of the BGP-LS Binding
      TLV as defined in Section 2.3.4.  This includes the SID/Label TLV
      defined in Section 2.3.

Previdi, et al.         Expires December 3, 2016               [Page 24]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

3.6.  Advertisement of a path and its attributes from OSPFv2/OSPFv3
      protocol

   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 has
   following rules:

      Advertisement of a path for a single prefix: the original Binding
      SID TLV (from OSPFv2/OSPFv3) is encoded into the BGP-LS Prefix
      Attribute Binding TLV as defined in Section 2.3.4.  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 in Section 2.3.4.
      This includes the SID/Label TLV defined in Section 2.3.

      Advertisement of an SR path for range of prefixes: the OSPF/OSPFv3
      Extended Prefix Range TLV is encoded in the BGP-LS Prefix
      Attribute Range TLV as defined in Section 2.3.3.  The original
      OSPFv2/OSPFv3 Binding SID TLV is encoded into the BGP-LS Binding
      Sub-TLV as defined in Section 2.3.4.  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 in Section 2.3.4.  This includes the
      SID/Label TLV defined in Section 2.3.

4.  IANA Considerations

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

5.  Manageability Considerations

   This section is structured as recommended in [RFC5706].

5.1.  Operational Considerations

5.1.1.  Operations

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

6.  TLV/Sub-TLV Code Points Summary

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

Previdi, et al.         Expires December 3, 2016               [Page 25]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

   +-----------+--------------------------+----------+-----------------+
   |  TLV Code | Description              | Length   |         Section |
   |   Point   |                          |          |                 |
   +-----------+--------------------------+----------+-----------------+
   |    1034   | SR Capabilities          | variable |   Section 2.1.1 |
   |    1035   | SR Algorithm             | variable |   Section 2.1.2 |
   |    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.3 |
   |    1160   | Binding SID              | variable |   Section 2.3.4 |
   |    1161   | SID/Label TLV            | variable | Section 2.3.5.2 |
   |    1162   | ERO Metric TLV           | 4 octets |          1 [40] |
   |    1163   | IPv4 ERO TLV             | 8 octets |          1 [41] |
   |    1164   | IPv6 ERO TLV             | 20       |          1 [42] |
   |           |                          | octets   |                 |
   |    1165   | Unnumbered Interface ID  | 12       |          1 [43] |
   |           | ERO TLV                  | octets   |                 |
   |    1166   | IPv4 Backup ERO TLV      | 8 octets |          1 [44] |
   |    1167   | IPv6 Backup ERO TLV      | 20       |          1 [45] |
   |           |                          | octets   |                 |
   |    1168   | Unnumbered Interface ID  | 12       |          1 [46] |
   |           | Backup ERO TLV           | octets   |                 |
   |    1169   | IPv6 Prefix SID          | variable |   Section 2.3.2 |
   +-----------+--------------------------+----------+-----------------+

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

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:

   Acee Lindem
   Cisco Systems
   Email: acee@cisco.com

Previdi, et al.         Expires December 3, 2016               [Page 26]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

   Saikat Ray
   Individual
   Email: raysaikat@gmail.com

9.  Acknowledgements

   The authors would like to thank Les Ginsberg for the review of this
   document.

10.  References

10.1.  Normative References

   [I-D.ietf-isis-segment-routing-extensions]
              Previdi, S., Filsfils, C., Bashandy, A., Gredler, H.,
              Litkowski, S., Decraene, B., and J. Tantsura, "IS-IS
              Extensions for Segment Routing", draft-ietf-isis-segment-
              routing-extensions-06 (work in progress), December 2015.

   [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-05 (work in progress), March
              2016.

   [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-08 (work in progress), April 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-02 (work in progress), May 2016.

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

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

Previdi, et al.         Expires December 3, 2016               [Page 27]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

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

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-08 (work in progress), May 2016.

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

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

Previdi, et al.         Expires December 3, 2016               [Page 28]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

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

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

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

   [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/draft-ietf-ospf-segment-routing-
        extensions-05#section-3.2

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

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

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

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

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

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

Previdi, et al.         Expires December 3, 2016               [Page 29]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Previdi, et al.         Expires December 3, 2016               [Page 30]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

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

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

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

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

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

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

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

   [46] 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

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

   Email: ppsenak@cisco.com

Previdi, et al.         Expires December 3, 2016               [Page 31]
Internet-Draft    BGP LS extensions for Segment Routing        June 2016

   Clarence Filsfils
   Cisco Systems, Inc.
   Brussels
   Belgium

   Email: cfilsfil@cisco.com

   Hannes Gredler
   Individual

   Email: hannes@gredler.at

   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

Previdi, et al.         Expires December 3, 2016               [Page 32]