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