This document defines SR extensions to BGP-LS and specifies the TLVs and sub-TLVs for advertising SR information within the BGP-LS Attribute. Sections [
2.4] and [
2.5] list the equivalent TLVs and sub-TLVs in the IS-IS, OSPFv2, and OSPFv3 protocols.
[
RFC 7752] defines the BGP-LS NLRI that can be a Node NLRI, a Link NLRI, or a Prefix NLRI, and it defines the TLVs that map link-state information to BGP-LS NLRI within the BGP-LS Attribute. This document adds additional BGP-LS Attribute TLVs in order to encode SR information. It does not introduce any changes to the encoding of the BGP-LS NLRIs.
The following Node Attribute TLVs are defined:
Table 1: Node Attribute TLVs
These TLVs should only be added to the BGP-LS Attribute associated with the Node NLRI that describes the IGP node that is originating the corresponding IGP TLV/sub-TLV described below.
The SID/Label TLV is used as a sub-TLV by the SR Capabilities (
Section 2.1.2) and Segment Routing Local Block (SRLB) (
Section 2.1.4) TLVs. This information is derived from the protocol-specific advertisements.
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/Label (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where:
-
Type:
-
1161
-
Length:
-
Variable. Either 3 or 4 octets depending on whether the value is encoded as a label or as an index/SID.
-
SID/Label:
-
If the length is set to 3, then the 20 rightmost bits represent a label (the total TLV size is 7), and the 4 leftmost bits are set to 0. If the length is set to 4, then the value represents a 32-bit SID (the total TLV size is 8).
The SR Capabilities TLV is used in order to advertise the node's SR capabilities including its Segment Routing Global Base (SRGB) range(s). In the case of IS-IS, the capabilities also include the IPv4 and IPv6 support for the SR-MPLS forwarding plane. This information is derived from the protocol-specific advertisements.
-
IS-IS, as defined by the SR-Capabilities Sub-TLV in Section 3.1 of RFC 8667.
-
OSPFv2/OSPFv3, as defined by the SID/Label Range TLV in Section 3.2 of RFC 8665. OSPFv3 leverages the same TLV as defined for OSPFv2.
The SR Capabilities TLV has the following format:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Range Size 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Label Sub-TLV 1 //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Range Size N |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Label Sub-TLV N //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where:
-
Type:
-
1034
-
Length:
-
Variable. The minimum length is 12 octets.
-
Flags:
-
1 octet of flags as defined in Section 3.1 of RFC 8667 for IS-IS. The flags are not currently defined for OSPFv2 and OSPFv3 and MUST be set to 0 and ignored on receipt.
-
Reserved:
-
1 octet that MUST be set to 0 and ignored on receipt.
-
One or more entries, each of which have the following format:
-
-
Range Size:
-
3 octets with a non-zero value indicating the number of labels in the range.
-
SID/Label TLV:
-
(as defined in Section 2.1.1) used as a sub-TLV, which encodes the first label in the range. Since the SID/Label TLV is used to indicate the first label of the SRGB range, only label encoding is valid under the SR Capabilities TLV.
The SR-Algorithm TLV is used in order to advertise the SR algorithms supported by the node. This information is derived from the protocol-specific advertisements.
-
IS-IS, as defined by the SR-Algorithm Sub-TLV in Section 3.2 of RFC 8667.
-
OSPFv2/OSPFv3, as defined by the SR-Algorithm TLV in Section 3.1 of RFC 8665. OSPFv3 leverages the same TLV as defined for OSPFv2.
The SR-Algorithm TLV has the following format:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Algorithm 1 | Algorithm... | Algorithm N |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where:
-
Type:
-
1035
-
Length:
-
Variable. The minimum length is 1 octet and the maximum can be 256.
-
Algorithm:
-
One or more fields of 1 octet each that identifies the algorithm.
The SRLB TLV contains the range(s) of labels the node 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 components other than IGP protocols. As an example, an application or a controller may instruct a node to allocate a specific local SID. Therefore, in order for such applications or controllers to know the range of local SIDs available, the node is required to advertise its SRLB.
This information is derived from the protocol-specific advertisements.
-
IS-IS, as defined by the SRLB Sub-TLV in Section 3.3 of RFC 8667.
-
OSPFv2/OSPFv3, as defined by the SR Local Block TLV in Section 3.3 of RFC 8665. OSPFv3 leverages the same TLV as defined for OSPFv2.
The SRLB TLV has the following format:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sub-Range Size 1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Label Sub-TLV 1 //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sub-Range Size N |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Label Sub-TLV N //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where:
-
Type:
-
1036
-
Length:
-
Variable. The minimum length is 12 octets.
-
Flags:
-
1 octet of flags. The flags are as defined in Section 3.3 of RFC 8667 for IS-IS. The flags are not currently defined for OSPFv2 and OSPFv3 and MUST be set to 0 and ignored on receipt.
-
Reserved:
-
1 octet that MUST be set to 0 and ignored on receipt.
-
One or more entries corresponding to a sub-range(s), each of which have the following format:
-
-
Range Size:
-
3-octet value indicating the number of labels in the range.
-
SID/Label TLV:
-
(as defined in Section 2.1.1) used as a sub-TLV, which encodes the first label in the sub-range. Since the SID/Label TLV is used to indicate the first label of the SRLB sub-range, only label encoding is valid under the SR Local Block TLV.
The Segment Routing Mapping Server (SRMS) Preference TLV is used in order to associate a preference with SRMS advertisements from a particular source. [
RFC 8661] specifies the SRMS functionality along with the SRMS preference of the node advertising the SRMS Prefix-to-SID mapping ranges.
This information is derived from the protocol-specific advertisements.
-
IS-IS, as defined by the SRMS Preference Sub-TLV in Section 3.4 of RFC 8667.
-
OSPFv2/OSPFv3, as defined by the SRMS Preference TLV in Section 3.4 of RFC 8665. OSPFv3 leverages the same TLV as defined for OSPFv2.
The SRMS Preference 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Preference |
+-+-+-+-+-+-+-+-+
Where:
-
Type:
-
1037
-
Length:
-
1 octet
-
Preference:
-
1 octet carrying an unsigned 8-bit SRMS preference.
The following Link Attribute TLVs are defined:
Table 2: Link Attribute TLVs
These TLVs should only be added to the BGP-LS Attribute associated with the Link NLRI that describes the link of the IGP node that is originating the corresponding IGP TLV/sub-TLV described below.
The Adjacency SID TLV is used in order to advertise information related to an Adjacency SID. This information is derived from the Adj-SID Sub-TLV of IS-IS (
Section 2.2.1 of
RFC 8667), OSPFv2 (
Section 6.1 of
RFC 8665), and OSPFv3 (
Section 7.1 of
RFC 8666).
The Adjacency SID TLV has the following format:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Weight | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Label/Index (variable) //
+---------------------------------------------------------------+
Where:
-
Type:
-
1099
-
Length:
-
Variable. Either 7 or 8 octets depending on the label or index encoding of the SID.
-
Flags:
-
1-octet value that should be set as:
-
Weight:
-
1 octet carrying the weight used for load-balancing purposes. The use of weight is described in Section 3.4 of RFC 8402.
-
Reserved:
-
2 octets that MUST be set to 0 and ignored on receipt.
-
SID/Index/Label:
-
The Flags and, as an extension, the SID/Index/Label fields of this TLV are interpreted according to the respective underlying IS-IS, OSPFv2, or OSPFv3 protocol. The Protocol-ID of the BGP-LS Link NLRI is used to determine the underlying protocol specification for parsing these fields.
For a LAN, normally a node only announces its adjacency to the IS-IS pseudonode (or the equivalent OSPF Designated and Backup Designated Routers). The LAN Adjacency SID TLV allows a node to announce adjacencies to all other nodes attached to the LAN in a single instance of the BGP-LS Link NLRI. Without this TLV, the corresponding BGP-LS Link NLRI would need to be originated for each additional adjacency in order to advertise the SR TLVs for these neighbor adjacencies.
This information is derived from the LAN-Adj-SID Sub-TLV of IS-IS (
Section 2.2.2 of
RFC 8667), the LAN Adj-SID Sub-TLV of OSPFv2 (
Section 6.2 of
RFC 8665), and the LAN Adj-SID Sub-TLV of OSPFv3 (
Section 7.2 of
RFC 8666).
The LAN Adjacency SID TLV has the following format:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Weight | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OSPF Neighbor ID / IS-IS System ID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Label/Index (variable) //
+---------------------------------------------------------------+
Where:
-
Type:
-
1100
-
Length:
-
Variable. For IS-IS, it would be 13 or 14 octets depending on the label or index encoding of the SID. For OSPF, it would be 11 or 12 octets depending on the label or index encoding of the SID.
-
Flags:
-
1-octet value that should be set as:
-
Weight:
-
1 octet carrying the weight used for load-balancing purposes. The use of weight is described in Section 3.4 of RFC 8402.
-
Reserved:
-
2 octets that MUST be set to 0 and ignored on receipt.
-
Neighbor ID:
-
6 octets for IS-IS for the System ID, and 4 octets for OSPF for the OSPF Router-ID of the neighbor.
-
SID/Index/Label:
-
The Neighbor ID, Flags, and, as an extension, the SID/Index/Label fields of this TLV are interpreted according to the respective underlying IS-IS, OSPFv2, or OSPFv3 protocol. The Protocol-ID of the BGP-LS Link NLRI is used to determine the underlying protocol specification for parsing these fields.
The L2 Bundle Member Attributes TLV identifies an L2 Bundle Member link, which in turn is associated with a parent L3 link. The L3 link is described by the Link NLRI defined in [
RFC 7752], and the L2 Bundle Member Attributes TLV is associated with the Link NLRI. The TLV
MAY include sub-TLVs that describe attributes associated with the bundle member. The identified bundle member represents a unidirectional path from the originating router to the neighbor specified in the parent L3 link. Multiple L2 Bundle Member Attributes TLVs
MAY be associated with a Link NLRI.
This information is derived from L2 Bundle Member Attributes TLV of IS-IS (
Section 2 of
RFC 8668). The equivalent functionality has not been specified as yet for OSPF.
The L2 Bundle Member Attributes 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| L2 Bundle Member Descriptor |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link Attribute Sub-TLVs(variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where:
-
Type:
-
1172
-
Length:
-
Variable.
-
L2 Bundle Member Descriptor:
-
4-octet field that carries a link-local identifier as defined in [RFC 4202].
Link attributes for L2 Bundle Member links are advertised as sub-TLVs of the L2 Bundle Member Attributes TLV. The sub-TLVs are identical to existing BGP-LS TLVs as identified in the table below.
TLV Code Point |
Description |
Reference Document |
1088 |
Administrative group (color) |
[RFC 7752]
|
1089 |
Maximum link bandwidth |
[RFC 7752]
|
1090 |
Max. reservable link bandwidth |
[RFC 7752]
|
1091 |
Unreserved bandwidth |
[RFC 7752]
|
1092 |
TE default metric |
[RFC 7752]
|
1093 |
Link protection type |
[RFC 7752]
|
1099 |
Adjacency Segment Identifier (Adj-SID) TLV |
Section 2.2.1
|
1100 |
LAN Adjacency Segment Identifier (Adj-SID) TLV |
Section 2.2.2
|
1114 |
Unidirectional link delay |
[RFC 8571]
|
1115 |
Min/Max Unidirectional link delay |
[RFC 8571]
|
1116 |
Unidirectional Delay Variation |
[RFC 8571]
|
1117 |
Unidirectional Link Loss |
[RFC 8571]
|
1118 |
Unidirectional residual bandwidth |
[RFC 8571]
|
1119 |
Unidirectional available bandwidth |
[RFC 8571]
|
1120 |
Unidirectional Utilized Bandwidth |
[RFC 8571]
|
Table 3: BGP-LS Attribute TLVs are also used as sub-TLVs of the L2 Bundle Member Attributes TLV
The following Prefix Attribute TLVs are defined:
Table 4: Prefix Attribute TLVs
These TLVs should only be added to the BGP-LS Attribute associated with the Prefix NLRI that describes the prefix of the IGP node that is originating the corresponding IGP TLV/sub-TLV described below.
The Prefix-SID TLV is used in order to advertise information related to a Prefix-SID. This information is derived from the Prefix-SID Sub-TLV of IS-IS (
Section 2.1 of
RFC 8667), the Prefix-SID Sub-TLV of OSPFv2 (
Section 5 of
RFC 8665), and the Prefix-SID Sub-TLV of OSPFv3 (
Section 6 of
RFC 8666).
The Prefix-SID TLV has the following format:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Algorithm | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID/Index/Label (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where:
-
Type:
-
1158
-
Length:
-
Variable. 7 or 8 octets depending on the label or index encoding of the SID.
-
Flags:
-
1-octet value that should be set as:
-
Algorithm:
-
1-octet value identifies the algorithm. The semantics of the algorithm are described in Section 3.1.1 of RFC 8402.
-
Reserved:
-
2 octets that MUST be set to 0 and ignored on receipt.
-
SID/Index/Label:
-
The Flags and, as an extension, the SID/Index/Label fields of this TLV are interpreted according to the respective underlying IS-IS, OSPFv2, or OSPFv3 protocol. The Protocol-ID of the BGP-LS Prefix NLRI is used to determine the underlying protocol specification for parsing these fields.
The Prefix Attribute Flags TLV carries IPv4/IPv6 prefix attribute flags information. These flags are defined for OSPFv2 in
Section 2.1 of
RFC 7684, OSPFv3 in
Appendix A.4.1.1 of
RFC 5340, and IS-IS in
Section 2.1 of
RFC 7794.
The Prefix Attribute Flags TLV has the following format:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where:
-
Type:
-
1170
-
Length:
-
Variable.
-
Flags:
-
a variable-length Flag field (according to the Length field). Flags are routing protocol specific and are to be set as below:
-
IS-IS flags correspond to the IPv4/IPv6 Extended Reachability Attribute Flags defined in Section 2.1 of RFC 7794. In the case of the X-flag when associated with IPv6 prefix reachability, the setting corresponds to the setting of the X-flag in the fixed format of IS-IS TLVs 236 [RFC 5308] and 237 [RFC 5120].
-
OSPFv2 flags correspond to the Flags field of the OSPFv2 Extended Prefix TLV defined in Section 2.1 of RFC 7684.
-
OSPFv3 flags map to the Prefix Options field defined in Appendix A.4.1.1 of RFC 5340 and extended in Section 3.1 of RFC 8362.
The Flags field of this TLV is interpreted according to the respective underlying IS-IS, OSPFv2, or OSPFv3 protocol. The Protocol-ID of the BGP-LS Prefix NLRI is used to determine the underlying protocol specification for parsing this field.
The Source Router Identifier TLV contains the IPv4 or IPv6 Router Identifier of the originator of the prefix. For the IS-IS protocol, this is derived from the IPv4/IPv6 Source Router ID Sub-TLV as defined in
Section 2.2 of
RFC 7794. For the OSPF protocol, this is derived from the Prefix Source Router Address Sub-TLV as defined in
Section 2.2 of
RFC 9084.
The Source Router Identifier 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 4- or 16-octet Router Identifier //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where:
-
Type:
-
1171
-
Length:
-
Variable. 4 or 16 octets for the IPv4 or IPv6 prefix, respectively.
-
Router-ID:
-
the IPv4 or IPv6 Router-ID in the case of IS-IS, and the IPv4 or IPv6 Router Address in the case of OSPF.
The Source OSPF Router-ID TLV is applicable only for the OSPF protocol and contains the OSPF Router-ID of the originator of the prefix. It is derived from the Prefix Source OSPF Router-ID Sub-TLV as defined in
Section 2.1 of
RFC 9084.
The Source OSPF Router-ID TLV has the following format:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 4-octet OSPF Router-ID //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where:
-
Type:
-
1174
-
Length:
-
4 octets
-
OSPF Router-ID:
-
the OSPF Router-ID of the node originating the prefix.
The Range TLV is used in order to advertise a range of prefix-to-SID mappings as part of the SRMS functionality [
RFC 8661], as defined in the respective underlying IGP SR extensions:
Section 4 of
RFC 8665,
Section 5 of
RFC 8666, and
Section 2.4 of
RFC 8667. The information advertised in the Range TLV is derived from the SID/Label Binding TLV in the case of IS-IS and the OSPFv2/OSPFv3 Extended Prefix Range TLV in the case of OSPFv2/OSPFv3.
A Prefix NLRI, that has been advertised with a Range TLV, is considered a normal routing prefix (i.e., prefix reachability) only when there is also an IGP metric TLV (TLV 1095) associated it. Otherwise, it is considered only as the first prefix in the range for prefix-to-SID mapping advertisement.
The format of the Range TLV is as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Reserved | Range Size |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-TLVs //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where:
-
Type:
-
1159
-
Length:
-
Variable. 11 or 12 octets depending on the label or index encoding of the SID.
-
Flags:
-
1-octet value that should be set as:
-
Reserved:
-
1 octet that MUST be set to 0 and ignored on receipt.
-
Range Size:
-
2 octets that carry the number of prefixes that are covered by the advertisement.
The Flags field of this TLV is interpreted according to the respective underlying IS-IS, OSPFv2, or OSPFv3 protocol. The Protocol-ID of the BGP-LS Prefix NLRI is used to determine the underlying protocol specification for parsing this field.
The prefix-to-SID mappings are advertised using sub-TLVs as below:
-
IS-IS:
-
-
SID/Label Range TLV
-
Prefix-SID Sub-TLV
-
OSPFv2/OSPFv3:
-
-
OSPFv2/OSPFv3 Extended Prefix Range TLV
-
Prefix-SID Sub-TLV
-
BGP-LS:
-
-
Range TLV
-
Prefix-SID TLV (used as a sub-TLV in this context)
The prefix-to-SID mapping information for the BGP-LS Prefix-SID TLV (used as a sub-TLV in this context) is encoded as described in
Section 2.3.1.
This section illustrates the IS-IS Segment Routing Extensions TLVs and sub-TLVs mapped to the ones defined in this document.
For each BGP-LS TLV, the following table illustrates its equivalence in IS-IS.
Description |
IS-IS TLV/sub-TLV |
Reference |
SR Capabilities |
SR-Capabilities Sub-TLV (2) |
[RFC 8667]
|
SR Algorithm |
SR-Algorithm Sub-TLV (19) |
[RFC 8667]
|
SR Local Block |
SR Local Block Sub-TLV (22) |
[RFC 8667]
|
SRMS Preference |
SRMS Preference Sub-TLV (19) |
[RFC 8667]
|
Adjacency SID |
Adj-SID Sub-TLV (31) |
[RFC 8667]
|
LAN Adjacency SID |
LAN-Adj-SID Sub-TLV (32) |
[RFC 8667]
|
Prefix-SID |
Prefix-SID Sub-TLV (3) |
[RFC 8667]
|
Range |
SID/Label Binding TLV (149) |
[RFC 8667]
|
SID/Label |
SID/Label Sub-TLV (1) |
[RFC 8667]
|
Prefix Attribute Flags |
Prefix Attribute Flags Sub-TLV (4) |
[RFC 7794]
|
Source Router Identifier |
IPv4/IPv6 Source Router ID Sub-TLV (11/12) |
[RFC 7794]
|
L2 Bundle Member Attributes |
L2 Bundle Member Attributes TLV (25) |
[RFC 8668]
|
Table 5: IS-IS Segment Routing Extensions TLVs/Sub-TLVs
This section illustrates the OSPFv2 and OSPFv3 Segment Routing Extensions TLVs and sub-TLVs mapped to the ones defined in this document.
For each BGP-LS TLV, the following tables illustrate its equivalence in OSPFv2 and OSPFv3.
Description |
OSPFv2 TLV/sub-TLV |
Reference |
SR Capabilities |
SID/Label Range TLV (9) |
[RFC 8665]
|
SR Algorithm |
SR-Algorithm TLV (8) |
[RFC 8665]
|
SR Local Block |
SR Local Block TLV (14) |
[RFC 8665]
|
SRMS Preference |
SRMS Preference TLV (15) |
[RFC 8665]
|
Adjacency SID |
Adj-SID Sub-TLV (2) |
[RFC 8665]
|
LAN Adjacency SID |
LAN Adj-SID Sub-TLV (3) |
[RFC 8665]
|
Prefix-SID |
Prefix-SID Sub-TLV (2) |
[RFC 8665]
|
Range |
OSPF Extended Prefix Range TLV (2) |
[RFC 8665]
|
SID/Label |
SID/Label Sub-TLV (1) |
[RFC 8665]
|
Prefix Attribute Flags |
Flags of OSPFv2 Extended Prefix TLV (1) |
[RFC 7684]
|
Source Router Identifier |
Prefix Source Router Address Sub-TLV (5) |
[RFC 9084]
|
Source OSPF Router-ID |
Prefix Source OSPF Router-ID Sub-TLV (4) |
[RFC 9084]
|
Table 6: OSPFv2 Segment Routing Extensions TLVs/Sub-TLVs
Description |
OSPFv3 TLV/sub-TLV |
Reference |
SR Capabilities |
SID/Label Range TLV (9) |
[RFC 8665]
|
SR Algorithm |
SR-Algorithm TLV (8) |
[RFC 8665]
|
SR Local Block |
SR Local Block TLV (14) |
[RFC 8665]
|
SRMS Preference |
SRMS Preference TLV (15) |
[RFC 8665]
|
Adjacency SID |
Adj-SID Sub-TLV (5) |
[RFC 8666]
|
LAN Adjacency SID |
LAN Adj-SID Sub-TLV (6) |
[RFC 8666]
|
Prefix-SID |
Prefix-SID Sub-TLV (4) |
[RFC 8666]
|
Range |
OSPFv3 Extended Prefix Range TLV (9) |
[RFC 8666]
|
SID/Label |
SID/Label Sub-TLV (7) |
[RFC 8666]
|
Prefix Attribute Flags |
Prefix Option Fields of Prefix TLV types 3,5,6 |
[RFC 8362]
|
Source OSPF Router Identifier |
Prefix Source Router Address Sub-TLV (28) |
[RFC 9084]
|
Source OSPF Router-ID |
Prefix Source OSPF Router-ID Sub-TLV (27) |
[RFC 9084]
|
Table 7: OSPFv3 Segment Routing Extensions TLVs/Sub-TLVs