draft-ietf-idr-bgp-ls-segment-routing-ext-02.txt   draft-ietf-idr-bgp-ls-segment-routing-ext-03.txt 
Inter-Domain Routing S. Previdi, Ed. Inter-Domain Routing S. Previdi, Ed.
Internet-Draft P. Psenak Internet-Draft P. Psenak
Intended status: Standards Track C. Filsfils Intended status: Standards Track C. Filsfils
Expires: December 27, 2017 Cisco Systems, Inc. Expires: January 27, 2018 Cisco Systems, Inc.
H. Gredler H. Gredler
RtBrick Inc. RtBrick Inc.
M. Chen M. Chen
Huawei Technologies Huawei Technologies
June 25, 2017 July 26, 2017
BGP Link-State extensions for Segment Routing BGP Link-State extensions for Segment Routing
draft-ietf-idr-bgp-ls-segment-routing-ext-02 draft-ietf-idr-bgp-ls-segment-routing-ext-03
Abstract Abstract
Segment Routing (SR) allows for a flexible definition of end-to-end Segment Routing (SR) allows for a flexible definition of end-to-end
paths within IGP topologies by encoding paths as sequences of paths within IGP topologies by encoding paths as sequences of
topological sub-paths, called "segments". These segments are topological sub-paths, called "segments". These segments are
advertised by the link-state routing protocols (IS-IS, OSPF and advertised by the link-state routing protocols (IS-IS, OSPF and
OSPFv3). OSPFv3).
This draft defines extensions to the BGP Link-state address-family in This draft defines extensions to the BGP Link-state address-family in
skipping to change at page 1, line 48 skipping to change at page 1, line 48
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on December 27, 2017. This Internet-Draft will expire on January 27, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 5, line 31 skipping to change at page 5, line 31
Link NLRI or a Prefix NLRI. The corresponding BGP-LS attribute is 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 Node Attribute, a Link Attribute or a Prefix Attribute. BGP-LS
[RFC7752] defines the TLVs that map link-state information to 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 NLRI and the BGP-LS attribute. This document adds additional BGP-LS
attribute TLVs in order to encode SR information. attribute TLVs in order to encode SR information.
2.1. Node Attributes TLVs 2.1. Node Attributes TLVs
The following Node Attribute TLVs are defined: The following Node Attribute TLVs are defined:
+----------------+-----------------+----------+---------------+ +-----------------+----------+---------------+
| TLV Code Point | Description | Length | Section | | Description | Length | Section |
+----------------+-----------------+----------+---------------+ +-----------------+----------+---------------+
| 1161 | SID/Label | variable | Section 2.1.1 | | SID/Label | variable | Section 2.1.1 |
| 1034 | SR Capabilities | variable | Section 2.1.2 | | SR Capabilities | variable | Section 2.1.2 |
| 1035 | SR Algorithm | variable | Section 2.1.3 | | SR Algorithm | variable | Section 2.1.3 |
| 1036 | SR Local Block | variable | Section 2.1.4 | | SR Local Block | variable | Section 2.1.4 |
| 1037 | SRMS Preference | variable | Section 2.1.5 | | SRMS Preference | variable | Section 2.1.5 |
+----------------+-----------------+----------+---------------+ +-----------------+----------+---------------+
Table 1: Node Attribute TLVs Table 1: Node Attribute TLVs
These TLVs can ONLY be added to the Node Attribute associated with These TLVs can ONLY be added to the Node Attribute associated with
the Node NLRI that originates the corresponding SR TLV. the Node NLRI that originates the corresponding SR TLV.
2.1.1. SID/Label Sub-TLV 2.1.1. SID/Label Sub-TLV
The SID/Label TLV is used as sub-TLV by the SR-Capabilities The SID/Label TLV is used as sub-TLV by the SR-Capabilities
(Section 2.1.2) and SRLB (Section 2.1.4) TLVs and has following (Section 2.1.2) and SRLB (Section 2.1.4) TLVs and has following
skipping to change at page 6, line 15 skipping to change at page 6, line 15
0 1 2 3 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 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 | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Label (variable) | | SID/Label (variable) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
Type: TBD, suggested value 1161. Type: TBD, see Section 5.
Length: Variable, 3 or 4 bytes Length: Variable, 3 or 4 bytes
SID/Label: If length is set to 3, then the 20 rightmost bits 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 represent a label. If length is set to 4, then the value
represents a 32 bit SID. represents a 32 bit SID.
The receiving router MUST ignore the SID/Label sub-TLV if the The receiving router MUST ignore the SID/Label sub-TLV if the
length is other then 3 or 4. length is other then 3 or 4.
skipping to change at page 7, line 4 skipping to change at page 7, line 4
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | RESERVED | | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Range Size | | Range Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SID/Label sub-TLV (variable) // // SID/Label sub-TLV (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: TBD, suggested value 1034. Type: TBD, see Section 5.
Length: Variable. Length: Variable.
Flags: 1 octet of flags as defined in Flags: 1 octet of flags as defined in
[I-D.ietf-isis-segment-routing-extensions]. [I-D.ietf-isis-segment-routing-extensions].
One or more entries, each of which have the following format: One or more entries, each of which have the following format:
Range Size: 3 octet value indicating the number of labels in Range Size: 3 octet value indicating the number of labels in
the range. the range.
skipping to change at page 7, line 37 skipping to change at page 7, line 37
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Algorithm 1 | Algorithm... | Algorithm N | | | Algorithm 1 | Algorithm... | Algorithm N | |
+- -+ +- -+
| | | |
+ + + +
where: where:
Type: TBD, suggested value 1035. Type: TBD, see Section 5.
Length: Variable. Length: Variable.
Algorithm: 1 octet identifying the algorithm. Algorithm: 1 octet identifying the algorithm.
2.1.4. SR Local Block TLV 2.1.4. SR Local Block TLV
The SR Local Block (SRLB) TLV contains the range of labels the node The SR Local Block (SRLB) TLV contains the range of labels the node
has reserved for local SIDs. Local SIDs are used, e.g., in IGP (IS- has reserved for local SIDs. Local SIDs are used, e.g., in IGP (IS-
IS, OSPF) for Adjacency-SIDs, and may also be allocated by other IS, OSPF) for Adjacency-SIDs, and may also be allocated by other
skipping to change at page 8, line 23 skipping to change at page 8, line 23
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | RESERVED | | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Range Size | | Range Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SID/Label sub-TLV (variable) // // SID/Label sub-TLV (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: TBD, suggested value 1036. Type: TBD, see Section 5.
Length: Variable. Length: Variable.
Flags: 1 octet of flags. None are defined at this stage. Flags: 1 octet of flags. None are defined at this stage.
One or more entries, each of which have the following format: One or more entries, each of which have the following format:
Range Size: 3 octet value indicating the number of labels in Range Size: 3 octet value indicating the number of labels in
the range. the range.
skipping to change at page 9, line 13 skipping to change at page 9, line 13
The SRMS Preference TLV has following format: The SRMS Preference TLV has following format:
0 1 2 3 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 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 | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Preference | | Preference |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Type: TBD, suggested value 1037. Type: TBD, see Section 5.
Length: 1. Length: 1.
Preference: 1 octet. Unsigned 8 bit SRMS preference. Preference: 1 octet. Unsigned 8 bit SRMS preference.
The use of the SRMS Preference TLV is defined in The use of the SRMS Preference TLV is defined in
[I-D.ietf-isis-segment-routing-extensions], [I-D.ietf-isis-segment-routing-extensions],
[I-D.ietf-ospf-segment-routing-extensions] and [I-D.ietf-ospf-segment-routing-extensions] and
[I-D.ietf-ospf-ospfv3-segment-routing-extensions]. [I-D.ietf-ospf-ospfv3-segment-routing-extensions].
2.2. Link Attribute TLVs 2.2. Link Attribute TLVs
The following Link Attribute TLVs are are defined: The following Link Attribute TLVs are are defined:
+-----------+----------------------------+----------+---------------+ +----------------------------------------+----------+---------------+
| TLV Code | Description | Length | Section | | Description | Length | Section |
| Point | | | | +----------------------------------------+----------+---------------+
+-----------+----------------------------+----------+---------------+ | Adjacency Segment Identifier (Adj-SID) | variable | Section 2.2.1 |
| 1099 | Adjacency Segment | variable | Section 2.2.1 | | TLV | | |
| | Identifier (Adj-SID) TLV | | | | LAN Adjacency Segment Identifier (Adj- | variable | Section 2.2.2 |
| 1100 | LAN Adjacency Segment | variable | Section 2.2.2 | | SID) TLV | | |
| | Identifier (Adj-SID) TLV | | | | L2 Bundle Member TLV | variable | Section 2.2.3 |
| 1172 | L2 Bundle Member TLV | variable | Section 2.2.3 | +----------------------------------------+----------+---------------+
+-----------+----------------------------+----------+---------------+
Table 2: Link Attribute TLVs Table 2: Link Attribute TLVs
These TLVs can ONLY be added to the Link Attribute associated with These TLVs can ONLY be added to the Link Attribute associated with
the link whose local node originates the corresponding TLV. the link whose local node originates the corresponding TLV.
For a LAN, normally a node only announces its adjacency to the IS-IS For a LAN, normally a node only announces its adjacency to the IS-IS
pseudo-node (or the equivalent OSPF Designated and Backup Designated pseudo-node (or the equivalent OSPF Designated and Backup Designated
Routers)[I-D.ietf-isis-segment-routing-extensions]. The LAN Routers)[I-D.ietf-isis-segment-routing-extensions]. The LAN
Adjecency Segment TLV allows a node to announce adjacencies to all Adjecency Segment TLV allows a node to announce adjacencies to all
skipping to change at page 10, line 21 skipping to change at page 10, line 21
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Weight | Reserved | | Flags | Weight | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Label/Index (variable) | | SID/Label/Index (variable) |
+---------------------------------------------------------------+ +---------------------------------------------------------------+
where: where:
Type: TBD, suggested value 1099. Type: TBD, see Section 5.
Length: Variable. Length: Variable.
Flags. 1 octet field of following flags as defined in Flags. 1 octet field of following flags as defined in
[I-D.ietf-isis-segment-routing-extensions], [I-D.ietf-isis-segment-routing-extensions],
[I-D.ietf-ospf-segment-routing-extensions] and [I-D.ietf-ospf-segment-routing-extensions] and
[I-D.ietf-ospf-ospfv3-segment-routing-extensions]. [I-D.ietf-ospf-ospfv3-segment-routing-extensions].
Weight: Weight used for load-balancing purposes. Weight: Weight used for load-balancing purposes.
skipping to change at page 11, line 25 skipping to change at page 11, line 25
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Label/Index (variable) | | SID/Label/Index (variable) |
+---------------------------------------------------------------+ +---------------------------------------------------------------+
where: where:
Type: TBD, suggested value 1100. Type: TBD, see Section 5.
Length: Variable. Length: Variable.
Flags. 1 octet field of following flags as defined in Flags. 1 octet field of following flags as defined in
[I-D.ietf-isis-segment-routing-extensions], [I-D.ietf-isis-segment-routing-extensions],
[I-D.ietf-ospf-segment-routing-extensions] and [I-D.ietf-ospf-segment-routing-extensions] and
[I-D.ietf-ospf-ospfv3-segment-routing-extensions]. [I-D.ietf-ospf-ospfv3-segment-routing-extensions].
Weight: Weight used for load-balancing purposes. Weight: Weight used for load-balancing purposes.
skipping to change at page 12, line 21 skipping to change at page 12, line 21
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| L2 Bundle Member Descriptor | | L2 Bundle Member Descriptor |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Link attribute sub-TLVs(variable) // // Link attribute sub-TLVs(variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
Type: TBD, suggested value 1172. Type: TBD, see Section 5.
Length: Variable. Length: Variable.
L2 Bundle Member Descriptor: A Link Local Identifier as defined in L2 Bundle Member Descriptor: A Link Local Identifier as defined in
[RFC4202]. [RFC4202].
Link attributes for L2 Bundle Member Links are advertised as sub-TLVs Link attributes for L2 Bundle Member Links are advertised as sub-TLVs
of the L2Bundle Member Attribute TLV. The sub-TLVs are identical to of the L2Bundle Member Attribute TLV. The sub-TLVs are identical to
existing BGP-LS TLVs as identified in the table below. existing BGP-LS TLVs as identified in the table below.
skipping to change at page 13, line 41 skipping to change at page 13, line 41
| 1110 | Unidirectional bandwidth | [I-D.ietf-idr-te-pm-bgp] | | 1110 | Unidirectional bandwidth | [I-D.ietf-idr-te-pm-bgp] |
| | utilization | | | | utilization | |
+-----------+----------------------------+--------------------------+ +-----------+----------------------------+--------------------------+
Table 3: L2 Bundle Member Link Attribute TLVs Table 3: L2 Bundle Member Link Attribute TLVs
2.3. Prefix Attribute TLVs 2.3. Prefix Attribute TLVs
The following Prefix Attribute TLVs and sub-TLVs are defined: The following Prefix Attribute TLVs and sub-TLVs are defined:
+----------------+-----------------------+----------+---------------+ +-----------------------+----------+---------------+
| TLV Code Point | Description | Length | Section | | Description | Length | Section |
+----------------+-----------------------+----------+---------------+ +-----------------------+----------+---------------+
| 1158 | Prefix SID | variable | Section 2.3.1 | | Prefix SID | variable | Section 2.3.1 |
| 1159 | Range | variable | Section 2.3.4 | | Range | variable | Section 2.3.4 |
| 1170 | IGP Prefix Attributes | variable | Section 2.3.2 | | IGP Prefix Attributes | variable | Section 2.3.2 |
| 1171 | Source Router-ID | variable | Section 2.3.3 | | Source Router-ID | variable | Section 2.3.3 |
+----------------+-----------------------+----------+---------------+ +-----------------------+----------+---------------+
Table 4: Prefix Attribute TLVs Table 4: Prefix Attribute TLVs
2.3.1. Prefix-SID TLV 2.3.1. Prefix-SID TLV
The Prefix-SID TLV can ONLY be added to the Prefix Attribute whose The Prefix-SID TLV can ONLY be added to the Prefix Attribute whose
local node in the corresponding Prefix NLRI is the node that local node in the corresponding Prefix NLRI is the node that
originates the corresponding SR TLV. originates the corresponding SR TLV.
The Prefix-SID TLV is used in order to advertise a Prefix-SID as The Prefix-SID TLV is used in order to advertise a Prefix-SID as
skipping to change at page 14, line 35 skipping to change at page 14, line 35
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Algorithm | Reserved | | Flags | Algorithm | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Index/Label (variable) | | SID/Index/Label (variable) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
Type: TBD, suggested value 1158. Type: TBD, see Section 5.
Length: Variable Length: Variable
Algorithm: 1 octet value identify the algorithm. Algorithm: 1 octet value identify the algorithm.
SID/Index/Label: SID/Index/Label:
* IS-IS: Label or index value as defined in * IS-IS: Label or index value as defined in
[I-D.ietf-isis-segment-routing-extensions], [I-D.ietf-isis-segment-routing-extensions],
skipping to change at page 15, line 36 skipping to change at page 15, line 36
0 1 2 3 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 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 | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Flags (variable) // // Flags (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
Type: TBD, suggested value 1170. Type: TBD, see Section 5.
Length: variable. Length: variable.
Flags: a variable length flag field (according to the length Flags: a variable length flag field (according to the length
field). Flags are routing protocol specific (OSPF and IS-IS). field). Flags are routing protocol specific (OSPF and IS-IS).
OSPF flags are defined in [RFC7684] and IS-IS flags are defined in OSPF flags are defined in [RFC7684] and IS-IS flags are defined in
[RFC7794]. The receiver of the BGP-LS update, when inspecting the [RFC7794]. The receiver of the BGP-LS update, when inspecting the
IGP Prefix Attribute TLV, MUST check the Protocol-ID of the NLRI IGP Prefix Attribute TLV, MUST check the Protocol-ID of the NLRI
and refer to the protocol specification in order to parse the and refer to the protocol specification in order to parse the
flags. flags.
skipping to change at page 16, line 19 skipping to change at page 16, line 19
0 1 2 3 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 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 | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv4/IPv6 Address (Router-ID) // // IPv4/IPv6 Address (Router-ID) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
Type: TBD, suggested value 1171. Type: TBD, see Section 5.
Length: 4 or 16. Length: 4 or 16.
IPv4/IPv6 Address: 4 octet IPv4 address or 16 octet IPv6 address. IPv4/IPv6 Address: 4 octet IPv4 address or 16 octet IPv6 address.
The semantic of the Source Router-ID TLV is defined in [RFC7794]. The semantic of the Source Router-ID TLV is defined in [RFC7794].
2.3.4. Range TLV 2.3.4. Range TLV
The Range TLV can ONLY be added to the Prefix Attribute whose local The Range TLV can ONLY be added to the Prefix Attribute whose local
skipping to change at page 17, line 19 skipping to change at page 17, line 19
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | RESERVED | Range Size | | Flags | RESERVED | Range Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// sub-TLVs // // sub-TLVs //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
Figure 2: Range TLV format Figure 2: Range TLV format
Type: 1159 Type: TBD, see Section 5.
Length is 4. Length is 4.
Flags: as defined in [I-D.ietf-ospf-segment-routing-extensions], Flags: as defined in [I-D.ietf-ospf-segment-routing-extensions],
[I-D.ietf-ospf-ospfv3-segment-routing-extensions] and [I-D.ietf-ospf-ospfv3-segment-routing-extensions] and
[I-D.ietf-isis-segment-routing-extensions]. [I-D.ietf-isis-segment-routing-extensions].
Range Size: 2 octets as defined in Range Size: 2 octets as defined in
[I-D.ietf-ospf-segment-routing-extensions]. [I-D.ietf-ospf-segment-routing-extensions].
skipping to change at page 18, line 5 skipping to change at page 18, line 5
context) MAY be present. context) MAY be present.
2.4. Equivalent IS-IS Segment Routing TLVs/Sub-TLVs 2.4. Equivalent IS-IS Segment Routing TLVs/Sub-TLVs
This section illustrate the IS-IS Segment Routing Extensions TLVs and This section illustrate the IS-IS Segment Routing Extensions TLVs and
sub-TLVs mapped to the ones defined in this document. sub-TLVs mapped to the ones defined in this document.
The following table, illustrates for each BGP-LS TLV, its equivalence The following table, illustrates for each BGP-LS TLV, its equivalence
in IS-IS. in IS-IS.
+-----------+------------------------------+----------+-------------+ +----------------------------------------+----------+---------------+
| TLV Code | Description | Length | IS-IS TLV | | Description | Length | IS-IS TLV |
| Point | | | /sub-TLV | | | | /sub-TLV |
+-----------+------------------------------+----------+-------------+ +----------------------------------------+----------+---------------+
| 1034 | SR Capabilities | variable | 2 [1] | | SR Capabilities | variable | 2 [1] |
| 1035 | SR Algorithm | variable | 19 [2] | | SR Algorithm | variable | 19 [2] |
| 1099 | Adjacency Segment Identifier | variable | 31 [3] | | Adjacency Segment Identifier (Adj-SID) | variable | 31 [3] |
| | (Adj-SID) TLV | | | | TLV | | |
| 1100 | LAN Adjacency Segment | variable | 32 [4] | | LAN Adjacency Segment Identifier (LAN- | variable | 32 [4] |
| | Identifier (LAN-Adj-SID) TLV | | | | Adj-SID) TLV | | |
| 1158 | Prefix SID | variable | 3 [5] | | Prefix SID | variable | 3 [5] |
| 1161 | SID/Label TLV | variable | 1 [6] | | SID/Label TLV | variable | 1 [6] |
| 1170 | IGP Prefix Attributes | variable | 4 [7] | | IGP Prefix Attributes | variable | 4 [7] |
| 1171 | Source Router ID | variable | 11/12 [8] | | Source Router ID | variable | 11/12 [8] |
| 1172 | L2 Bundle Member TLV | variable | 25 [9] | | L2 Bundle Member TLV | variable | 25 [9] |
+-----------+------------------------------+----------+-------------+ +----------------------------------------+----------+---------------+
Table 5: IS-IS Segment Routing Extensions TLVs/Sub-TLVs Table 5: IS-IS Segment Routing Extensions TLVs/Sub-TLVs
2.5. Equivalent OSPF/OSPFv3 Segment Routing TLVs/Sub-TLVs 2.5. Equivalent OSPF/OSPFv3 Segment Routing TLVs/Sub-TLVs
This section illustrate the OSPF and OSPFv3 Segment Routing This section illustrate the OSPF and OSPFv3 Segment Routing
Extensions TLVs and sub-TLVs mapped to the ones defined in this Extensions TLVs and sub-TLVs mapped to the ones defined in this
document. document.
The following table, illustrates for each BGP-LS TLV, its equivalence The following table, illustrates for each BGP-LS TLV, its equivalence
in OSPF and OSPFv3. in OSPF and OSPFv3.
+-----------+------------------------------+----------+-------------+ +---------------------------------------+----------+----------------+
| TLV Code | Description | Length | OSPF TLV | | Description | Length | OSPF TLV/sub- |
| Point | | | /sub-TLV | | | | TLV |
+-----------+------------------------------+----------+-------------+ +---------------------------------------+----------+----------------+
| 1034 | SR Capabilities | variable | 9 [10] | | SR Capabilities | variable | 9 [10] |
| 1035 | SR Algorithm | variable | 8 [11] | | SR Algorithm | variable | 8 [11] |
| 1099 | Adjacency Segment Identifier | variable | 2 [12] | | Adjacency Segment Identifier (Adj- | variable | 2 [12] |
| | (Adj-SID) TLV | | | | SID) TLV | | |
| 1100 | LAN Adjacency Segment | variable | 3 [13] | | LAN Adjacency Segment Identifier | variable | 3 [13] |
| | Identifier (Adj-SID) TLV | | | | (Adj-SID) TLV | | |
| 1158 | Prefix SID | variable | 2 [14] | | Prefix SID | variable | 2 [14] |
| 1161 | SID/Label TLV | variable | 1 [15] | | SID/Label TLV | variable | 1 [15] |
+-----------+------------------------------+----------+-------------+ +---------------------------------------+----------+----------------+
Table 6: OSPF Segment Routing Extensions TLVs/Sub-TLVs Table 6: OSPF Segment Routing Extensions TLVs/Sub-TLVs
+-----------+-----------------------------+----------+--------------+ +--------------------------------------+----------+-----------------+
| TLV Code | Description | Length | OSPFv3 TLV | | Description | Length | OSPFv3 TLV/sub- |
| Point | | | /sub-TLV | | | | TLV |
+-----------+-----------------------------+----------+--------------+ +--------------------------------------+----------+-----------------+
| 1034 | SR Capabilities | variable | 9 [16] | | SR Capabilities | variable | 9 [16] |
| 1035 | SR Algorithm | variable | 8 [17] | | SR Algorithm | variable | 8 [17] |
| 1099 | Adjacency Segment | variable | 5 [18] | | Adjacency Segment Identifier (Adj- | variable | 5 [18] |
| | Identifier (Adj-SID) TLV | | | | SID) TLV | | |
| 1100 | LAN Adjacency Segment | variable | 6 [19] | | LAN Adjacency Segment Identifier | variable | 6 [19] |
| | Identifier (Adj-SID) TLV | | | | (Adj-SID) TLV | | |
| 1158 | Prefix SID | variable | 4 [20] | | Prefix SID | variable | 4 [20] |
| 1161 | SID/Label TLV | variable | 3 [21] | | SID/Label TLV | variable | 3 [21] |
+-----------+-----------------------------+----------+--------------+ +--------------------------------------+----------+-----------------+
Table 7: OSPFv3 Segment Routing Extensions TLVs/Sub-TLVs Table 7: OSPFv3 Segment Routing Extensions TLVs/Sub-TLVs
3. Procedures 3. Procedures
The following sections describe the different operations for the The following sections describe the different operations for the
propagation of SR TLVs into BGP-LS. propagation of SR TLVs into BGP-LS.
3.1. Advertisement of a IS-IS Prefix SID TLV 3.1. Advertisement of a IS-IS Prefix SID TLV
skipping to change at page 21, line 20 skipping to change at page 21, line 20
interoperability testing, when no FCFS code point was available, interoperability testing, when no FCFS code point was available,
implementations have made use of the values described in Table 8. implementations have made use of the values described in Table 8.
It will ease implementation interoperability and deployment if the It will ease implementation interoperability and deployment if the
value could be preserved also due to the large amount of codepoints value could be preserved also due to the large amount of codepoints
this draft requires. However, when IANA-assigned values are this draft requires. However, when IANA-assigned values are
available, implementations will be updated to use them. available, implementations will be updated to use them.
5. IANA Considerations 5. IANA Considerations
This document requests assigning code-points from the registry for This document requests assigning code-points from the registry "BGP-
BGP-LS attribute TLVs based on table Table 8. LS Node Descriptor, Link Descriptor, Prefix Descriptor, and Attribute
TLVs" based on table Table 8. The column "IS-IS TLV/Sub-TLV" defined
in the registry does not require any value and should be left empty.
5.1. TLV/Sub-TLV Code Points Summary 5.1. TLV/Sub-TLV Code Points Summary
This section contains the global table of all TLVs/sub-TLVs defined This section contains the global table of all TLVs/sub-TLVs defined
in this document. in this document.
+-----------+----------------------------+----------+---------------+ +-------------+-------------------------------------+---------------+
| TLV Code | Description | Length | Section | | TLV Code | Description | Reference |
| Point | | | | | Point | | |
+-----------+----------------------------+----------+---------------+ +-------------+-------------------------------------+---------------+
| 1034 | SR Capabilities | variable | Section 2.1.2 | | 1034 | SR Capabilities | Section 2.1.2 |
| 1035 | SR Algorithm | variable | Section 2.1.3 | | 1035 | SR Algorithm | Section 2.1.3 |
| 1036 | SR Local Block | variable | Section 2.1.4 | | 1036 | SR Local Block | Section 2.1.4 |
| 1037 | SRMS Preference | variable | Section 2.1.5 | | 1037 | SRMS Preference | Section 2.1.5 |
| 1099 | Adjacency Segment | variable | Section 2.2.1 | | 1099 | Adjacency Segment Identifier (Adj- | Section 2.2.1 |
| | Identifier (Adj-SID) TLV | | | | | SID) TLV | |
| 1100 | LAN Adjacency Segment | variable | Section 2.2.2 | | 1100 | LAN Adjacency Segment Identifier | Section 2.2.2 |
| | Identifier (Adj-SID) TLV | | | | | (Adj-SID) TLV | |
| 1158 | Prefix SID | variable | Section 2.3.1 | | 1158 | Prefix SID | Section 2.3.1 |
| 1159 | Range | variable | Section 2.3.4 | | 1159 | Range | Section 2.3.4 |
| 1161 | SID/Label TLV | variable | Section 2.1.1 | | 1161 | SID/Label TLV | Section 2.1.1 |
| 1170 | IGP Prefix Attributes | variable | Section 2.3.2 | | 1170 | IGP Prefix Attributes | Section 2.3.2 |
| 1171 | Source Router-ID | variable | Section 2.3.3 | | 1171 | Source Router-ID | Section 2.3.3 |
| 1172 | L2 Bundle Member TLV | variable | Section 2.2.3 | | 1172 | L2 Bundle Member TLV | Section 2.2.3 |
+-----------+----------------------------+----------+---------------+ +-------------+-------------------------------------+---------------+
Table 8: Summary Table of TLV/Sub-TLV Codepoints Table 8: Summary Table of TLV/Sub-TLV Codepoints
6. Manageability Considerations 6. Manageability Considerations
This section is structured as recommended in [RFC5706]. This section is structured as recommended in [RFC5706].
6.1. Operational Considerations 6.1. Operational Considerations
6.1.1. Operations 6.1.1. Operations
skipping to change at page 23, line 14 skipping to change at page 23, line 14
10. References 10. References
10.1. Normative References 10.1. Normative References
[I-D.ietf-idr-te-pm-bgp] [I-D.ietf-idr-te-pm-bgp]
Previdi, S., Wu, Q., Gredler, H., Ray, S., Previdi, S., Wu, Q., Gredler, H., Ray, S.,
jefftant@gmail.com, j., Filsfils, C., and L. Ginsberg, jefftant@gmail.com, j., Filsfils, C., and L. Ginsberg,
"BGP-LS Advertisement of IGP Traffic Engineering "BGP-LS Advertisement of IGP Traffic Engineering
Performance Metric Extensions", draft-ietf-idr-te-pm- Performance Metric Extensions", draft-ietf-idr-te-pm-
bgp-05 (work in progress), April 2017. bgp-06 (work in progress), June 2017.
[I-D.ietf-isis-segment-routing-extensions] [I-D.ietf-isis-segment-routing-extensions]
Previdi, S., Filsfils, C., Bashandy, A., Gredler, H., Previdi, S., Filsfils, C., Bashandy, A., Gredler, H.,
Litkowski, S., Decraene, B., and j. jefftant@gmail.com, Litkowski, S., Decraene, B., and j. jefftant@gmail.com,
"IS-IS Extensions for Segment Routing", draft-ietf-isis- "IS-IS Extensions for Segment Routing", draft-ietf-isis-
segment-routing-extensions-13 (work in progress), June segment-routing-extensions-13 (work in progress), June
2017. 2017.
[I-D.ietf-ospf-ospfv3-segment-routing-extensions] [I-D.ietf-ospf-ospfv3-segment-routing-extensions]
Psenak, P., Previdi, S., Filsfils, C., Gredler, H., Psenak, P., Previdi, S., Filsfils, C., Gredler, H.,
Shakir, R., Henderickx, W., and J. Tantsura, "OSPFv3 Shakir, R., Henderickx, W., and J. Tantsura, "OSPFv3
Extensions for Segment Routing", draft-ietf-ospf-ospfv3- Extensions for Segment Routing", draft-ietf-ospf-ospfv3-
segment-routing-extensions-09 (work in progress), March segment-routing-extensions-09 (work in progress), March
2017. 2017.
[I-D.ietf-ospf-segment-routing-extensions] [I-D.ietf-ospf-segment-routing-extensions]
Psenak, P., Previdi, S., Filsfils, C., Gredler, H., Psenak, P., Previdi, S., Filsfils, C., Gredler, H.,
Shakir, R., Henderickx, W., and J. Tantsura, "OSPF Shakir, R., Henderickx, W., and J. Tantsura, "OSPF
Extensions for Segment Routing", draft-ietf-ospf-segment- Extensions for Segment Routing", draft-ietf-ospf-segment-
routing-extensions-17 (work in progress), June 2017. routing-extensions-18 (work in progress), July 2017.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>. <http://www.rfc-editor.org/info/rfc2119>.
[RFC4202] Kompella, K., Ed. and Y. Rekhter, Ed., "Routing Extensions [RFC4202] Kompella, K., Ed. and Y. Rekhter, Ed., "Routing Extensions
in Support of Generalized Multi-Protocol Label Switching in Support of Generalized Multi-Protocol Label Switching
(GMPLS)", RFC 4202, DOI 10.17487/RFC4202, October 2005, (GMPLS)", RFC 4202, DOI 10.17487/RFC4202, October 2005,
<http://www.rfc-editor.org/info/rfc4202>. <http://www.rfc-editor.org/info/rfc4202>.
 End of changes. 26 change blocks. 
108 lines changed or deleted 109 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/