Skip to main content

BGP Link State extensions for IPv6 Segment Routing(SRv6)
draft-dawra-idr-bgpls-srv6-ext-04

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 Gaurav Dawra , Clarence Filsfils , Ketan Talaulikar , Mach Chen , Daniel Bernier , Jim Uttaro , Bruno Decraene , Hani Elmalky
Last updated 2018-09-03 (Latest revision 2018-03-05)
Replaced by draft-ietf-idr-bgpls-srv6-ext, RFC 9514
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-dawra-idr-bgpls-srv6-ext-04
Inter-Domain Routing                                       G. Dawra, Ed.
Internet-Draft                                                  LinkedIn
Intended status: Standards Track                             C. Filsfils
Expires: March 7, 2019                                K. Talaulikar, Ed.
                                                           Cisco Systems
                                                                 M. Chen
                                                                  Huawei
                                                              D. Bernier
                                                             Bell Canada
                                                               J. Uttaro
                                                                    AT&T
                                                             B. Decraene
                                                                  Orange
                                                              H. Elmalky
                                                                Ericsson
                                                       September 3, 2018

        BGP Link State extensions for IPv6 Segment Routing(SRv6)
                   draft-dawra-idr-bgpls-srv6-ext-04

Abstract

   Segment Routing IPv6 (SRv6) allows for a flexible definition of end-
   to-end paths within various topologies by encoding paths as sequences
   of topological or functional sub-paths, called "segments".  These
   segments are advertised by the various protocols such as BGP, ISIS
   and OSPFv3.

   BGP Link-state (BGP-LS) address-family solution for SRv6 is similar
   to BGP-LS for SR for MPLS dataplane.  This draft defines extensions
   to the BGP-LS to advertise SRv6 Segments along with there functions
   and other attributes 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

Dawra, et al.             Expires March 7, 2019                 [Page 1]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://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 March 7, 2019.

Copyright Notice

   Copyright (c) 2018 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
   (https://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 SRv6  . . . . . . . . . . . . . . . . .   3
     2.1.  SRv6 Node Attributes  . . . . . . . . . . . . . . . . . .   4
       2.1.1.  SRv6 Capability Attribute TLV . . . . . . . . . . . .   4
       2.1.2.  SRv6 SID Node Attribute TLV . . . . . . . . . . . . .   8
     2.2.  SRv6 Link Attributes  . . . . . . . . . . . . . . . . . .  10
       2.2.1.  SRv6 SID Link Attribute TLV . . . . . . . . . . . . .  11
       2.2.2.  SRv6 SID LAN Link Attribute TLV . . . . . . . . . . .  12
       2.2.3.  SRv6 Peer Node END.X SID TLV  . . . . . . . . . . . .  14
       2.2.4.  SRv6 Peer Set END.X SID TLV . . . . . . . . . . . . .  15
   3.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  16
     3.1.  TLV/Sub-TLV Code Points Summary . . . . . . . . . . . . .  16
   4.  Manageability Considerations  . . . . . . . . . . . . . . . .  17
   5.  Operational Considerations  . . . . . . . . . . . . . . . . .  17
     5.1.  Operations  . . . . . . . . . . . . . . . . . . . . . . .  17
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .  17
   7.  Contributors  . . . . . . . . . . . . . . . . . . . . . . . .  17
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  18
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  18
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  19
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  20

Dawra, et al.             Expires March 7, 2019                 [Page 2]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

1.  Introduction

   SRv6 refers to Segment Routing instantiated on the IPv6 dataplane
   [I-D.ietf-spring-segment-routing].  Segment Identifier (SID) is often
   used as a shorter reference for "SRv6 Segment".

   The network programming paradigm
   [I-D.filsfils-spring-srv6-network-programming] is central to SRv6.
   It describes how different functions can be bound to their SIDs and
   how a network program can be expressed as a combination of SIDs.

   An SRv6-capable node N maintains a "My Local SID Table" (refer
   [I-D.filsfils-spring-srv6-network-programming]).  This table contains
   all the local segments explicitly instantiated at node N.

   The ISIS ([I-D.bashandy-isis-srv6-extensions]) and OSPFv3
   ([I-D.li-ospf-ospfv3-srv6-extensions]) link-state routing protocols
   have been extended to advertise some of these SRv6 SIDs and
   SRv6-related information.  BGP ([I-D.dawra-idr-srv6-vpn]) has been
   extended to advertise some of these SRv6 SIDs for VPN services.
   Certain other SRv6 SIDs may be instantiated on a node via other
   mechanisms for topological or service functionalities.

   The advertisement of SR related information along with the topology
   for the MPLS dataplane instantiation is specified in
   [I-D.ietf-idr-bgp-ls-segment-routing-ext] and
   [I-D.ietf-idr-bgpls-segment-routing-epe].  On the similar lines,
   introducing the SRv6 related information in BGP-LS allows it's
   consumer applications that require topological visibility to also
   receive the "My Local SID Table" from nodes across a domain or even
   across Autonomous Systems (AS), as required.  This allows
   applications to leverage the SRv6 capabilities for network
   programming.

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

   This document describes extensions to BGP-LS attribute to advertise
   the SRv6 "My Local SID Table" and other SRv6 information from a node
   in the network and when sourced from link-state routing protocols
   from all the SRv6 capable nodes in the domain.

2.  BGP-LS extensions for SRv6

   BGP-LS[RFC7752] defines the BGP Node and Link attributes.  All non-
   VPN link, node, and prefix information SHALL be encoded using AFI
   16388 / SAFI 71.  VPN link, node, and prefix information SHALL be

Dawra, et al.             Expires March 7, 2019                 [Page 3]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

   encoded using AFI 16388 / SAFI 72.  This draft does not introduce any
   new descriptor TLVs for any BGP-LS NLRI types and the usage of the
   descriptor TLVs and other attributes SHALL follow [RFC7752] for ISIS
   and OSPFv3 protocols and [I-D.ietf-idr-bgpls-segment-routing-epe] for
   BGP protocol.

   This document defines SRv6 extensions to BGP-LS Node attribute TLVs
   in Section 2.1 and Link attribute TLVs in Section 2.2.

2.1.  SRv6 Node Attributes

   Node Attribute TLVs are used for the SRv6 capabilities of the node
   and for all SRv6 SIDs instantiated on the node which are not specific
   to any link.  Examples of such node level functions that are
   signalled as Node Attributes are END and END.T.  The list of these
   functions at the time of publishing this document are described in
   [I-D.filsfils-spring-srv6-network-programming].

   The following Node Attribute TLVs are defined for SRv6:

    +----------+-------------------------+----------+----------------+
    | TLV Code |    Description          |  Length  |    Section     |
    |  Point   |                         |          |                |
    +----------+-------------------------+----------+----------------+
    |  TBD     | SRv6 Capabilities       | variable | Section 2.1.1  |
    |          |                         |          |                |
    |  TBD     | SRv6 SID Node Attribute | variable | Section 2.1.2  |
    |          |                         |          |                |
    +----------+-------------------------+----------+----------------+

   These TLVs can ONLY be added to the Node Attribute associated with
   the local node that is SRv6 capable and for SRv6 SIDs that are in
   that local node's "My Local SID Table".

2.1.1.  SRv6 Capability Attribute TLV

   This TLV is used to announce the SRv6 capability of the node and to
   indicate the nature of its support for the SRH operations.  A single
   instance of this TLV MUST be included in the BGP-LS attribute for
   each SRv6 capable node.

Dawra, et al.             Expires March 7, 2019                 [Page 4]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

     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             |    Sub-TLVs...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Where:

   o  Type: 16 bit field.  TBD

   o  Length: 16 bit field.  Length of Capability TLV + length of Sub-
      TLVs

   o  Flags: 16 bit field.  The following flags are defined:

             0                   1
             0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |E|O|                           |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      where:

      *  E-flag: If set, then router is able to apply "T.Encap"
         operation as specified in
         [I-D.filsfils-spring-srv6-network-programming]

      *  O-flag: If set, then router is capable of supporting SRH O-bit
         Flags, as specified in [I-D.ietf-6man-segment-routing-header].

   The following sections define the supported sub-TLVs.

2.1.1.1.  Maximum SL sub-TLV

   The Maximum Segments Left sub-TLV specifies the maximum value of the
   "SL" field in the Segment Routing IPv6 Header (SRH)
   [I-D.ietf-6man-segment-routing-header] of a received packet before
   applying the function associated with a SID.

Dawra, et al.             Expires March 7, 2019                 [Page 5]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

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

   o  Type: 1

   o  Length: 1

   o  SL Value: 1 octet

   o  An 8 bit unsigned integer.

   If the sub-TLV is not advertised by an SRv6 capable router, then the
   value MUST be considered to be 0.

2.1.1.2.  Maximum End Pop SRH sub-TLV

   The Maximum End Pop SRH sub-TLV specifies the maximum number of SIDs
   in the top SRH in an SRH stack to which the router can apply "PSP" or
   USP" flavors as specified in [I-D.ietf-6man-segment-routing-header].

     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               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |Max-End-Pop-SRH|
    +-+-+-+-+-+-+-+-+

   o  Type: 2

   o  Length: 1

   o  Max-End-Pop-SRH Value: 1 octet

   o  An 8 bit unsigned integer.

   If the value is 0 or the sub-TLV is not advertised by an SRv6 capable
   router, then it MUST be considered that the router cannot apply PSP
   or USP flavors.

Dawra, et al.             Expires March 7, 2019                 [Page 6]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

2.1.1.3.  Maximum T.Insert SRH sub-TLV

   The Maximum T.Insert SRH sub-sub-TLV specifies the maximum number of
   SIDs that can be inserted as part of the "T.insert" behavior as
   specified in [I-D.filsfils-spring-srv6-network-programming].

     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               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Max-T.Insert  |
    +-+-+-+-+-+-+-+-+

   o  Type: 3

   o  Length: 1

   o  Max-T.Insert Value: 1 octet

   o  An 8 bit unsigned integer.

   If the value is 0 or the sub-TLV is not advertised by an SRv6 capable
   router, then it MUST be considered that the router does not support
   any variation of the "T.insert" behavior.

2.1.1.4.  Maximum T.Encap SRH sub-TLV

   The Maximum T.Encap SRH sub-sub-TLV specifies the maximum number of
   SIDs that can be included as part of the "T.Encap" behavior as
   specified in [I-D.filsfils-spring-srv6-network-programming].

     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               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Max-T.Encap  |
    +-+-+-+-+-+-+-+-+

   o  Type: 4

   o  Length: 1

   o  Max-T.Encap Value: 1 octet

Dawra, et al.             Expires March 7, 2019                 [Page 7]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

   o  An 8 bit unsigned integer.

   If this value is 0 or the sub-TLV is not advertised by an SRv6
   capable router and the "E" flag is set in the associated SRv6
   Capabilities sub-TLV, then it MUST be considered that the router can
   apply T.Encap by encapsulating the incoming packet in another IPv6
   header without SRH the same way as IP-in-IP encapsulation is
   performed.  If the "E" flag is clear, then this sub-TLV SHOULD NOT be
   advertised and MUST be ignored on receipt.

2.1.1.5.  Maximum End D SRH sub-TLV

   The Maximum End D SRH sub-sub-TLV specifies the maximum number of
   SIDs in an SRH when applying "End.DX6" and "End.DT6" functions.

     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               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Max-End-D   |
    +-+-+-+-+-+-+-+-+

   o  Type: 5

   o  Length: 1

   o  Max End D Value: 1 octet

   o  An 8 bit unsigned integer.

   If this value is zero or the sub-TLV is not advertised by an SRv6
   capable router, then it MUST be considered that the router cannot
   apply "End.DX6" or "End.DT6" functions if the extension header right
   underneath the outer IPv6 header is an SRH.

2.1.2.  SRv6 SID Node Attribute TLV

   This TLV is used for advertising the SRv6 SIDs associated with the
   node and its function (e.g.  END, END.T, etc).  Multiple instances of
   this TLV, one for each SRv6 SID, MAY be advertised in the BGP-LS
   Attribute for a given Node NLRI.

Dawra, et al.             Expires March 7, 2019                 [Page 8]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

     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-Flags   | Function-Flags|           Function Code       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    SID-size   |    SID (variable) ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Sub-TLVs (variable) . . .
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Figure 1: SRv6 SID Node TLV

   Where:

      Type: 16 bit field.  TBD

      Length: 16 bit field.  The total length of the value portion of
      the TLV.

      SID Flags: 8 bit field which define the flags associated with the
      SID

      *  When the originating protocol is ISIS, the flags correspond to
         the flags in the SRv6 SID TLV as defined in
         [I-D.bashandy-isis-srv6-extensions]

      *  When the originating protocol is OSPFv3, the flags correspond
         to the flags in the SRv6 SID TLV as defined in
         [I-D.li-ospf-ospfv3-srv6-extensions]

      *  When the originating protocol is BGP, the flags are not defined
         and SHOULD be set to 0 and MUST be ignored on receipt.

      Function Flags: 8 bit field which define the flags associated with
      the function.

      *  When the originating protocol is ISIS, the flags correspond to
         the function flags in the SRv6 SID TLV as defined in
         [I-D.bashandy-isis-srv6-extensions]

      *  When the originating protocol is OSPFv3, the flags correspond
         to the function flags in the SRv6 SID TLV as defined in
         [I-D.li-ospf-ospfv3-srv6-extensions]

Dawra, et al.             Expires March 7, 2019                 [Page 9]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

      *  When the originating protocol is BGP, the flags are not defined
         and SHOULD be set to 0 and MUST be ignored on receipt.

      Function Code: 16 bit field.  The function code point for this
      SRv6 SID as defined in
      [I-D.filsfils-spring-srv6-network-programming].

      SID Size : 8 bit field.  Number of bits in the SID field.

      SID : 1-16 octets.  This field encodes the advertised SRv6 SID.
      The "SID-size" field can have the values 1-128 and indicates the
      number of bits in the SID.  The SRv6 SID is encoded in the minimal
      number of octets for the given number of bits.

      Sub-TLVs : currently none defined.  Used to advertise sub-TLVs
      that provide additional attributes for the given SRv6 SID.

2.2.  SRv6 Link Attributes

   Link Attribute TLVs are used for all SRv6 SIDs instantiated
   corresponding to a specific link on the node.  Examples of such link
   level functions that are signalled as Link Attributes is END.X that
   are signaled via ISIS and OSPFv3 and Egress Peer Engineering
   [I-D.ietf-spring-segment-routing-central-epe] related SIDs that are
   advertised for BGP Peering SIDs for SRv6 equivalent to their SR/MPLS
   SIDs as defined in [I-D.ietf-idr-bgpls-segment-routing-epe].  These
   SIDs are instantiated in the "My Local SID Table" on the node and are
   used to associate the function to one or more specific links on that
   node.  The list of these functions at the time of publishing this
   document are described in
   [I-D.filsfils-spring-srv6-network-programming].

   The following Link Attribute TLVs are defined for SRv6:

  +----------+------------------------------+----------+---------------+
  | TLV Code |    Description               |  Length  |   Section     |
  |  Point   |                              |          |               |
  +----------+------------------------------+----------+---------------+
  |   TBD    | SRv6 SID Link Attribute      | variable | Section 2.2.1 |
  |          |                              |          |               |
  |   TBD    | SRv6 SID LAN Link Attribute  | variable | Section 2.2.2 |
  |          |                              |          |               |
  |   TBD    | SRv6 Peer Node END.X SID     | variable | Section 2.2.3 |
  |          |                              |          |               |
  |   TBD    | SRv6 Peer Set END.X SID      | variable | Section 2.2.4 |
  |          |                              |          |               |
  +----------+------------------------------+----------+---------------+

Dawra, et al.             Expires March 7, 2019                [Page 10]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

   These TLVs can ONLY be added to the Link Attribute associated with
   the link for the local node that is SRv6 capable and for that link's
   SRv6 SIDs that are in that local node's "My Local SID Table".

2.2.1.  SRv6 SID Link Attribute TLV

   The SRv6 SID Link Attribute TLV is used to advertise the SRv6 SIDs
   like the END.X functions that correspond to a point-to-point or
   point-to-multipoint link or adjacency of the local node for ISIS and
   OSPFv3 protocols.  This TLV can also be used to advertise the END.X
   function SRv6 SID corresponding to the underlying layer-2 member
   links for a layer-3 bundle interface using L2 Bundle Member Attribute
   TLV as specified in .

   For BGP protocol, this TLV is used to advertise the BGP Peer
   Adjacency SID for SRv6 on the same lines as specified for SR/MPLS in
   [I-D.ietf-idr-bgpls-segment-routing-epe].  The END.X SRv6 SID for the
   Peer Adjacency indicates the cross-connect to a specific layer-3 link
   to the specific BGP session peer (neighbor).

   The 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               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   SID-Flags   | Function-Flags|           Function Code       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    SID-size   |    SID (variable) ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Sub-TLVs (variable) . . .
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Where:

      Type is TBD

      Length: 16 bit field.  The total length of the value portion of
      the TLV.

      SID Flags: 8 bit field which define the flags associated with the
      SID

      *  When the originating protocol is ISIS, the flags correspond to
         the flags in the SRv6 SID TLV as defined in
         [I-D.bashandy-isis-srv6-extensions]

Dawra, et al.             Expires March 7, 2019                [Page 11]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

      *  When the originating protocol is OSPFv3, the flags correspond
         to the flags in the SRv6 SID TLV as defined in
         [I-D.li-ospf-ospfv3-srv6-extensions]

      *  When the originating protocol is BGP, the flags are not defined
         and SHOULD be set to 0 and MUST be ignored on receipt.

      Function Flags: 8 bit field which define the flags associated with
      the function.

      *  When the originating protocol is ISIS, the flags correspond to
         the function flags in the SRv6 SID TLV as defined in
         [I-D.bashandy-isis-srv6-extensions]

      *  When the originating protocol is OSPFv3, the flags correspond
         to the function flags in the SRv6 SID TLV as defined in
         [I-D.li-ospf-ospfv3-srv6-extensions]

      *  When the originating protocol is BGP, the flags are not defined
         and SHOULD be set to 0 and MUST be ignored on receipt.

      Function Code: 16 bit field.  The function code point for this
      SRv6 SID as defined in
      [I-D.filsfils-spring-srv6-network-programming].

      SID-size: Number of bits in the SID field.

      SID: 1-16 octets.  This field encodes the advertised SRv6 SID.
      The "SID-size" field can have the values 1-128 and indicates the
      number of bits in the SID.  The SRv6 SID is encoded in the minimal
      number of octets for the given number of bits.

      Sub-TLVs : currently none defined.  Used to advertise sub-TLVs
      that provide additional attributes for the given SRv6 END.X SID.

2.2.2.  SRv6 SID LAN Link Attribute TLV

   For a LAN interface, normally a node only announces its adjacency to
   the IS-IS pseudo-node (or the equivalent OSPF Designated Router).
   The SRv6 SID LAN Link Attribute TLV allows a node to announce SRv6
   SID corresponding to functions like END.X for its adjacencies to all
   other (i.e. non-DIS or non-DR) 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 SRv6 SID Link
   Attribute TLVs for these neighbor adjacencies.

   The SRv6 SID LAN Link Attribute TLV has the following format:

Dawra, et al.             Expires March 7, 2019                [Page 12]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

     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-Flags   | Function-Flags|           Function Code       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    SID-size   |    SID (variable) ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    OSPFv3 Router-ID or ISIS System-ID (4 or 6 octets)         |
    |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    of neighbor ID             | Sub-TLVs (variable) . . .
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   o  Type: TBD

   o  Length: 16 bit value.  Variable

   o  SID Flags: 8 bit field which define the flags associated with the
      SID

      *  When the originating protocol is ISIS, the flags correspond to
         the flags in the SRv6 SID TLV as defined in
         [I-D.bashandy-isis-srv6-extensions]

      *  When the originating protocol is OSPFv3, the flags correspond
         to the flags in the SRv6 SID TLV as defined in
         [I-D.li-ospf-ospfv3-srv6-extensions]

   o  Function Flags: 8 bit field which define the flags associated with
      the function.

      *  When the originating protocol is ISIS, the flags correspond to
         the function flags in the SRv6 SID TLV as defined in
         [I-D.bashandy-isis-srv6-extensions]

      *  When the originating protocol is OSPFv3, the flags correspond
         to the function flags in the SRv6 SID TLV as defined in
         [I-D.li-ospf-ospfv3-srv6-extensions]

      *  When the originating protocol is BGP, the flags are not defined
         and SHOULD be set to 0 and MUST be ignored on receipt.

   o  Function Code: 16 bit field.  The function code point for this
      SRv6 SID as defined in
      [I-D.filsfils-spring-srv6-network-programming].

Dawra, et al.             Expires March 7, 2019                [Page 13]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

   o  SID Size : 8 bit field.  Number of bits in the SID field.

   o  SID : 1-16 octets.  This field encodes the advertised SRv6 SID.
      The "SID-size" field can have the values 1-128 and indicates the
      number of bits in the SID.  The SRv6 SID is encoded in the minimal
      number of octets for the given number of bits.

   o  Neighbor ID : 6 octets of ISIS System ID of the neighbor when
      protocol is ISIS or 4 octets of OSPFv3 Router-id of the neighbor
      when protocol is OSPFv3

   o  Sub-TLVs : currently none defined.  Used to advertise sub-TLVs
      that provide additional attributes for the given SRv6 SID.

2.2.3.  SRv6 Peer Node END.X SID TLV

   The SRv6 Peer Node END.X SID TLV is used to advertise the BGP Peer
   Node SID for SRv6 on the same lines as specified for SR/MPLS in
   [I-D.ietf-idr-bgpls-segment-routing-epe].  The END.X SRv6 SID for the
   Peer Node indicates the cross-connect to the layer-3 paths to the
   specific BGP session peer (neighbor).

   The 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               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   SID-Flags   | Function-Flags|           Function Code       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    SID-size   |    SID (variable) ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Sub-TLVs (variable) . . .
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Where:

      Type is TBD

      Length: 16 bit field.  The total length of the value portion of
      the TLV.

      SID Flags: 8 bit field which define the flags associated with the
      SID.  No flags are currently defined and SHOULD be set to 0 and
      MUST be ignored on receipt.

Dawra, et al.             Expires March 7, 2019                [Page 14]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

      Function Flags: 8 bit field which define the flags associated with
      the function.  No flags are currently defined and SHOULD be set to
      0 and MUST be ignored on receipt.

      Function Code: 16 bit field.  The function code point for this
      SRv6 SID as defined in
      [I-D.filsfils-spring-srv6-network-programming].

      SID-size: Number of bits in the SID field.

      SID: 1-16 octets.  This field encodes the advertised SRv6 SID.
      The "SID-size" field can have the values 1-128 and indicates the
      number of bits in the SID.  The SRv6 SID is encoded in the minimal
      number of octets for the given number of bits.

      Sub-TLVs : currently none defined.  Used to advertise sub-TLVs
      that provide additional attributes for the given SRv6 END.X SID.

2.2.4.  SRv6 Peer Set END.X SID TLV

   The SRv6 Peer Node END.X SID TLV is used to advertise the BGP Peer
   Node SID for SRv6 on the same lines as specified for SR/MPLS in
   [I-D.ietf-idr-bgpls-segment-routing-epe].  The END.X SRv6 SID for the
   Peer Set indicates forwarding towards the group of BGP session peers
   (neighbor) to which the SRv6 Peer Set END.X SID is associated with.

   The 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               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   SID-Flags   | Function-Flags|           Function Code       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    SID-size   |    SID (variable) ...
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Sub-TLVs (variable) . . .
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Where:

      Type is TBD

      Length: 16 bit field.  The total length of the value portion of
      the TLV.

Dawra, et al.             Expires March 7, 2019                [Page 15]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

      SID Flags: 8 bit field which define the flags associated with the
      SID.  No flags are currently defined and SHOULD be set to 0 and
      MUST be ignored on receipt.

      Function Flags: 8 bit field which define the flags associated with
      the function.  No flags are currently defined and SHOULD be set to
      0 and MUST be ignored on receipt.

      Function Code: 16 bit field.  The function code point for this
      SRv6 SID as defined in
      [I-D.filsfils-spring-srv6-network-programming].

      SID-size: Number of bits in the SID field.

      SID: 1-16 octets.  This field encodes the advertised SRv6 SID.
      The "SID-size" field can have the values 1-128 and indicates the
      number of bits in the SID.  The SRv6 SID is encoded in the minimal
      number of octets for the given number of bits.

      Sub-TLVs : currently none defined.  Used to advertise sub-TLVs
      that provide additional attributes for the given SRv6 END.X SID.

3.  IANA Considerations

   This document requests assigning code-points from the registry "BGP-
   LS Node Descriptor, Link Descriptor, Prefix Descriptor, and Attribute
   TLVs".

3.1.  TLV/Sub-TLV Code Points Summary

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

Dawra, et al.             Expires March 7, 2019                [Page 16]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

     +------------+---------------------------------+----------------+
     |  TLV Code  |       Description               |    Section     |
     |   Point    |                                 |                |
     +------------+---------------------------------+----------------+
     |    TBD     | SRv6 Capabilities TLV           | Section 2.1.1  |
     |            |                                 |                |
     |    TBD     | SRv6 SID Node Attribute TLV     | Section 2.1.2  |
     |            |                                 |                |
     |    TBD     | SRv6 SID Link Attribute TLV     | Section 2.2.1  |
     |            |                                 |                |
     |    TBD     | SRv6 SID LAN Link Attribute TLV | Section 2.2.2  |
     |            |                                 |                |
     |    TBD     | SRv6 Peer Node END.X SID TLV    | Section 2.2.3  |
     |            |                                 |                |
     |    TBD     | SRv6 Peer Set END.X SID TLV     | Section 2.2.4  |
     +------------+---------------------------------+----------------+

4.  Manageability Considerations

   This section is structured as recommended in[RFC5706]

5.  Operational Considerations

5.1.  Operations

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

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

7.  Contributors

   Arjun Sreekantiah
   Individual
   US

   Les Ginsberg
   Cisco Systems
   US
   Email: ginsberg@cisco.com

Dawra, et al.             Expires March 7, 2019                [Page 17]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

   Shunwan Zhuang
   Huawei
   China
   Email: zhuangshunwan@huawei.com

8.  References

8.1.  Normative References

   [I-D.bashandy-isis-srv6-extensions]
              Ginsberg, L., Psenak, P., Filsfils, C., Bashandy, A.,
              Decraene, B., and Z. Hu, "IS-IS Extensions to Support
              Routing over IPv6 Dataplane", draft-bashandy-isis-
              srv6-extensions-03 (work in progress), June 2018.

   [I-D.dawra-idr-srv6-vpn]
              Dawra, G., Filsfils, C., Dukes, D., Brissette, P.,
              Camarillo, P., Leddy, J., daniel.voyer@bell.ca, d.,
              daniel.bernier@bell.ca, d., Steinberg, D., Raszuk, R.,
              Decraene, B., Matsushima, S., and S. Zhuang, "BGP
              Signaling of IPv6-Segment-Routing-based VPN Networks",
              draft-dawra-idr-srv6-vpn-04 (work in progress), June 2018.

   [I-D.filsfils-spring-srv6-network-programming]
              Filsfils, C., Camarillo, P., Leddy, J.,
              daniel.voyer@bell.ca, d., Matsushima, S., and Z. Li, "SRv6
              Network Programming", draft-filsfils-spring-srv6-network-
              programming-05 (work in progress), July 2018.

   [I-D.ietf-6man-segment-routing-header]
              Filsfils, C., Previdi, S., Leddy, J., Matsushima, S., and
              d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header
              (SRH)", draft-ietf-6man-segment-routing-header-14 (work in
              progress), June 2018.

   [I-D.ietf-idr-bgp-ls-segment-routing-ext]
              Previdi, S., Talaulikar, K., Filsfils, C., Gredler, H.,
              and M. Chen, "BGP Link-State extensions for Segment
              Routing", draft-ietf-idr-bgp-ls-segment-routing-ext-08
              (work in progress), May 2018.

   [I-D.ietf-idr-bgpls-segment-routing-epe]
              Previdi, S., Filsfils, C., Patel, K., Ray, S., and J.
              Dong, "BGP-LS extensions for Segment Routing BGP Egress
              Peer Engineering", draft-ietf-idr-bgpls-segment-routing-
              epe-15 (work in progress), March 2018.

Dawra, et al.             Expires March 7, 2019                [Page 18]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

   [I-D.li-ospf-ospfv3-srv6-extensions]
              Li, Z., Hu, Z., Cheng, D., Talaulikar, K., and P. Psenak,
              "OSPFv3 Extensions for SRv6", draft-li-ospf-
              ospfv3-srv6-extensions-01 (work in progress), March 2018.

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

   [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,
              <https://www.rfc-editor.org/info/rfc7752>.

8.2.  Informative References

   [I-D.ietf-spring-segment-routing]
              Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B.,
              Litkowski, S., and R. Shakir, "Segment Routing
              Architecture", draft-ietf-spring-segment-routing-15 (work
              in progress), January 2018.

   [I-D.ietf-spring-segment-routing-central-epe]
              Filsfils, C., Previdi, S., Dawra, G., Aries, E., and D.
              Afanasiev, "Segment Routing Centralized BGP Egress Peer
              Engineering", draft-ietf-spring-segment-routing-central-
              epe-10 (work in progress), December 2017.

   [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,
              <https://www.rfc-editor.org/info/rfc4271>.

   [RFC4272]  Murphy, S., "BGP Security Vulnerabilities Analysis",
              RFC 4272, DOI 10.17487/RFC4272, January 2006,
              <https://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,
              <https://www.rfc-editor.org/info/rfc5706>.

Dawra, et al.             Expires March 7, 2019                [Page 19]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

   [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,
              <https://www.rfc-editor.org/info/rfc6952>.

Authors' Addresses

   Gaurav Dawra (editor)
   LinkedIn
   USA

   Email: gdawra.ietf@gmail.com

   Clarence Filsfils
   Cisco Systems
   Belgium

   Email: cfilsfil@cisco.com

   Ketan Talaulikar (editor)
   Cisco Systems
   India

   Email: ketant@cisco.com

   Mach Chen
   Huawei
   China

   Email: mach.chen@huawei.com

   Daniel Bernier
   Bell Canada
   Canada

   Email: daniel.bernier@bell.ca

   Jim Uttaro
   AT&T
   USA

   Email: ju1738@att.com

Dawra, et al.             Expires March 7, 2019                [Page 20]
Internet-Draft         BGP-LS Extensions for SRv6         September 2018

   Bruno Decraene
   Orange
   France

   Email: bruno.decraene@orange.com

   Hani Elmalky
   Ericsson
   USA

   Email: hani.elmalky@gmail.com

Dawra, et al.             Expires March 7, 2019                [Page 21]