rfc9857v1.txt   rfc9857.txt 
skipping to change at line 14 skipping to change at line 14
Category: Standards Track K. Talaulikar, Ed. Category: Standards Track K. Talaulikar, Ed.
ISSN: 2070-1721 Cisco Systems ISSN: 2070-1721 Cisco Systems
J. Dong J. Dong
Huawei Technologies Huawei Technologies
H. Gredler H. Gredler
RtBrick Inc. RtBrick Inc.
J. Tantsura J. Tantsura
Nvidia Nvidia
September 2025 September 2025
Advertisement of Segment Routing Policies Using BGP Link-State Advertisement of Segment Routing Policies Using BGP - Link State
Abstract Abstract
This document describes a mechanism used to collect Segment Routing This document describes a mechanism used to collect Segment Routing
(SR) Policy information that is locally available in a node and (SR) Policy information that is locally available in a node and
advertise it into BGP Link-State (BGP-LS) updates. Such information advertise it into BGP - Link State (BGP-LS) updates. Such
can be used by external components for path computation, information can be used by external components for path computation,
reoptimization, service placement, network visualization, etc. reoptimization, service placement, network visualization, etc.
Status of This Memo Status of This Memo
This is an Internet Standards Track document. This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has (IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on Internet Engineering Steering Group (IESG). Further information on
skipping to change at line 86 skipping to change at line 86
5.7.1. SR Segment Sub-TLV 5.7.1. SR Segment Sub-TLV
5.7.2. SR Segment List Metric Sub-TLV 5.7.2. SR Segment List Metric Sub-TLV
5.7.3. SR Segment List Bandwidth Sub-TLV 5.7.3. SR Segment List Bandwidth Sub-TLV
5.7.4. SR Segment List Identifier Sub-TLV 5.7.4. SR Segment List Identifier Sub-TLV
6. Procedures 6. Procedures
7. Manageability Considerations 7. Manageability Considerations
8. IANA Considerations 8. IANA Considerations
8.1. BGP-LS NLRI Types 8.1. BGP-LS NLRI Types
8.2. BGP-LS Protocol-IDs 8.2. BGP-LS Protocol-IDs
8.3. BGP-LS TLVs 8.3. BGP-LS TLVs
8.4. SR Policy Protocol Origin 8.4. SR Policy Protocol-Origin
8.5. BGP-LS SR Segment Descriptors 8.5. BGP-LS SR Segment Descriptors
8.6. BGP-LS SR Policy Metric Type 8.6. BGP-LS SR Policy Metric Type
9. Security Considerations 9. Security Considerations
10. References 10. References
10.1. Normative References 10.1. Normative References
10.2. Informative References 10.2. Informative References
Acknowledgements Acknowledgements
Contributors Contributors
Authors' Addresses Authors' Addresses
1. Introduction 1. Introduction
SR Policy architecture details are specified in [RFC9256]. An SR SR Policy architecture details are specified in [RFC9256]. An SR
Policy comprises one or more candidate paths of which at a given time Policy comprises one or more candidate paths of which at a given time
one and only one may be active (i.e., installed in forwarding and one and only one may be active (i.e., installed in forwarding and
usable for the steering of traffic). Each candidate path in turn may usable for the steering of traffic). Each candidate path in turn may
have one or more SID-Lists of which one or more SID-Lists may be have one or more SID lists of which one or more SID lists may be
active. When multiple SID-Lists are active, traffic is load balanced active. When multiple SID lists are active, traffic is load balanced
over them. This document covers the advertisement of state over them. This document covers the advertisement of state
information at the individual SR Policy candidate path level. information at the individual SR Policy candidate path level.
SR Policies are generally instantiated at the headend and are based SR Policies are generally instantiated at the headend and are based
on either local configuration or controller-based programming of the on either local configuration or controller-based programming of the
node using various APIs and protocols (e.g., the Path Computation node using various APIs and protocols (e.g., the Path Computation
Element Communication Protocol (PCEP) or BGP). Element Communication Protocol (PCEP) or BGP).
In many network environments, the configuration and state of each SR In many network environments, the configuration and state of each SR
Policy that is available in the network is required by controllers. Policy that is available in the network is required by controllers.
skipping to change at line 127 skipping to change at line 127
functions and operations in their networks. functions and operations in their networks.
One example of a controller is the stateful Path Computation Element One example of a controller is the stateful Path Computation Element
(PCE) [RFC8231], which can provide benefits in path optimization. (PCE) [RFC8231], which can provide benefits in path optimization.
While some extensions are proposed in the PCEP for Path Computation While some extensions are proposed in the PCEP for Path Computation
Clients (PCCs) to report Label Switched Path (LSP) states to the PCE, Clients (PCCs) to report Label Switched Path (LSP) states to the PCE,
this mechanism may not be applicable in a management-based PCE this mechanism may not be applicable in a management-based PCE
architecture as specified in Section 5.5 of [RFC4655]. As architecture as specified in Section 5.5 of [RFC4655]. As
illustrated in the figure below, the PCC is not a Label Switching illustrated in the figure below, the PCC is not a Label Switching
Router (LSR) in the routing domain, thus the headend nodes of the SR Router (LSR) in the routing domain, thus the headend nodes of the SR
Policies may not implement the PCEP protocol. In this case, a Policies may not implement the PCEP. In this case, a general
general mechanism to collect the SR Policy states from the ingress mechanism to collect the SR Policy states from the ingress Label Edge
Label Edge Routers (LERs) is needed. This document proposes an SR Routers (LERs) is needed. This document proposes an SR Policy state
Policy state collection mechanism complementary to the mechanism collection mechanism complementary to the mechanism defined in
defined in [RFC8231]. [RFC8231].
----------- -----------
| ----- | | ----- |
Service | | TED |<-+-----------> Service | | TED |<-+----------->
Request | ----- | TED synchronization Request | ----- | TED synchronization
| | | | mechanism (e.g., the | | | | mechanism (e.g., the
v | | | routing protocol) v | | | routing protocol)
------------- Request/ | v | ------------- Request/ | v |
| | Response| ----- | | | Response| ----- |
| NMS |<--------+> | PCE | | | NMS |<--------+> | PCE | |
skipping to change at line 246 skipping to change at line 246
// Link-State NLRI (variable) // // Link-State NLRI (variable) //
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: BGP-LS NLRI Format Figure 2: BGP-LS NLRI Format
An additional NLRI Type known as "SR Policy Candidate Path NLRI" An additional NLRI Type known as "SR Policy Candidate Path NLRI"
(value 5) is defined for the advertisement of SR Policy Information. (value 5) is defined for the advertisement of SR Policy Information.
This SR Policy Candidate Path NLRI is used to report the state This SR Policy Candidate Path NLRI is used to report the state
details of individual SR Policy Candidate paths along with their details of individual SR Policy candidate paths along with their
underlying segment lists. underlying segment lists.
3. SR Policy Candidate Path NLRI Type 3. SR Policy Candidate Path NLRI Type
This document defines the SR Policy Candidate Path NLRI Type with its This document defines the SR Policy Candidate Path NLRI type with its
format as shown in the following figure: format as shown in the following figure:
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
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
| Protocol-ID | | Protocol-ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier | | Identifier |
| (64 bits) | | (64 bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Local Node Descriptors TLV (for the Headend) // // Local Node Descriptors TLV (for the Headend) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SR Policy Candidate Path Descriptor TLV // // SR Policy Candidate Path Descriptor TLV //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: SR Policy Candidate Path NLRI Format Figure 3: SR Policy Candidate Path NLRI Format
Where: Where:
* Protocol-ID field specifies the component that owns the SR Policy Protocol-ID field: Specifies the component that owns the SR Policy
state in the advertising node. An additional Protocol-ID "Segment state in the advertising node. An additional Protocol-ID "Segment
Routing" (value 9) is introduced by this document that MUST be Routing" (value 9) is introduced by this document that MUST be
used for the advertisement of SR Policies. used for the advertisement of SR Policies.
* "Identifier" is an 8-octet value as defined in Section 5.2 of Identifier: An 8-octet value as defined in Section 5.2 of [RFC9552].
[RFC9552].
* "Local Node Descriptors" (TLV 256) [RFC9552] is used as specified Local Node Descriptors (TLV 256): Defined in [RFC9552] and used as
further in this section. specified further in this section.
* The SR Policy Candidate Path Descriptor TLV is specified in SR Policy Candidate Path Descriptor TLV: Specified in Section 4.
Section 4.
The Local Node Descriptors TLV carries information that only The Local Node Descriptors TLV carries information that only
identifies the headend node of the SR Policy irrespective of whether identifies the headend node of the SR Policy irrespective of whether
the BGP-LS Producer is a headend or a PCE node. the BGP-LS Producer is a headend or a PCE node.
The Local Node Descriptors TLV MUST include at least one of the The Local Node Descriptors TLV MUST include at least one of the
following Node Descriptor TLVs: following Node Descriptor TLVs:
* IPv4 Router-ID of Local Node (TLV 1028) [RFC9552], which * IPv4 Router-ID of Local Node (TLV 1028) [RFC9552], which
identifies the headend node of the SR Policy as specified in identifies the headend node of the SR Policy as specified in
skipping to change at line 327 skipping to change at line 325
The Local Node Descriptors TLV MAY include the following Node The Local Node Descriptors TLV MAY include the following Node
Descriptor TLVs when the headend node is the BGP-LS Producer: Descriptor TLVs when the headend node is the BGP-LS Producer:
* BGP Confederation Member (TLV 517) [RFC9086], which contains the * BGP Confederation Member (TLV 517) [RFC9086], which contains the
ASN of the confederation member (i.e., Member-AS Number); if BGP ASN of the confederation member (i.e., Member-AS Number); if BGP
confederations are used, it contains the headend node of the SR confederations are used, it contains the headend node of the SR
Policy. Policy.
* Other Node Descriptors as defined in [RFC9552] to identify the * Other Node Descriptors as defined in [RFC9552] to identify the
headend node of the SR Policy. The determination of whether the headend node of the SR Policy. The determination of whether the
IGP Router-ID sub-TLV (TLV 515) contains a 4-octet OSPF Router-ID IGP Router-ID (TLV 515) contains a 4-octet OSPF Router-ID or a
or a 6-octet ISO System-ID is to be done based on the length of 6-octet ISO System-ID is to be done based on the length of that
that sub-TLV as the Protocol-ID in the NLRI is always going to be sub-TLV as the Protocol-ID in the NLRI is always going to be
"Segment Routing". "Segment Routing".
3.2. PCE as the BGP-LS Producer 3.2. PCE as the BGP-LS Producer
The PCE node MUST NOT include its identifiers in the Node Descriptor The PCE node MUST NOT include its identifiers in the Node Descriptor
TLV in the NLRI as the Node Descriptor TLV MUST only carry the TLV in the NLRI as the Node Descriptor TLV MUST only carry the
identifiers of the SR Policy headend. identifiers of the SR Policy headend.
The Local Node Descriptors TLV MAY include the following Node The Local Node Descriptors TLV MAY include the following Node
Descriptor TLVs when the PCE node is the BGP-LS Producer and it has Descriptor TLVs when the PCE node is the BGP-LS Producer and it has
skipping to change at line 357 skipping to change at line 355
AS Confederation Identifier [RFC5065], if confederations are used) AS Confederation Identifier [RFC5065], if confederations are used)
of the headend node of the SR Policy. of the headend node of the SR Policy.
* BGP Confederation Member (TLV 517) [RFC9086], which contains the * BGP Confederation Member (TLV 517) [RFC9086], which contains the
ASN of the confederation member (i.e., Member-AS Number); if BGP ASN of the confederation member (i.e., Member-AS Number); if BGP
confederations are used, it contains the headend node of the SR confederations are used, it contains the headend node of the SR
Policy. Policy.
* Other Node Descriptors as defined in [RFC9552] to identify the * Other Node Descriptors as defined in [RFC9552] to identify the
headend node of the SR Policy. The determination of whether the headend node of the SR Policy. The determination of whether the
IGP Router-ID sub-TLV (TLV 515) contains a 4-octet OSPF Router-ID IGP Router-ID (TLV 515) contains a 4-octet OSPF Router-ID or a
or a 6-octet ISO System-ID is to be done based on the length of 6-octet ISO System-ID is to be done based on the length of that
that sub-TLV since the Protocol-ID in the NLRI is always going to sub-TLV since the Protocol-ID in the NLRI is always going to be
be "Segment Routing". "Segment Routing".
When a PCE node is functioning as the BGP-LS Producer on behalf of When a PCE node is functioning as the BGP-LS Producer on behalf of
one or more headends, it MAY include its own BGP Router-ID (TLV 516), one or more headends, it MAY include its own BGP Router-ID (TLV 516),
Autonomous System (TLV 512), or BGP Confederation Member (TLV 517) in Autonomous System (TLV 512), or BGP Confederation Member (TLV 517) in
the BGP-LS Attribute. the BGP-LS Attribute.
4. SR Policy Candidate Path Descriptor 4. SR Policy Candidate Path Descriptor
The SR Policy Candidate Path Descriptor TLV identifies an SR Policy The SR Policy Candidate Path Descriptor TLV identifies an SR Policy
candidate path as defined in [RFC9256]. It is a mandatory TLV for candidate path as defined in [RFC9256]. It is a mandatory TLV for
skipping to change at line 500 skipping to change at line 498
be cleared by the originator and MUST be ignored by a receiver. be cleared by the originator and MUST be ignored by a receiver.
0 1 0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|D|B|U|L|F| | |D|B|U|L|F| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where: Where:
D-Flag: Indicates the data plane for the BSIDs and if they are D-Flag: Indicates the data plane for the BSIDs and if a BSID is a
16-octet SRv6 SID (when set) or 4-octet SR/MPLS label value 16-octet SRv6 SID (when set) or 4-octet SR/MPLS label value
(when clear). (when clear).
B-Flag: Indicates the allocation of the value in the BSID field B-Flag: Indicates the allocation of the value in the BSID field
when set and that BSID is not allocated when clear. when set and that BSID is not allocated when clear.
U-Flag: Indicates that the specified BSID value is unavailable U-Flag: Indicates that the specified BSID value is unavailable
when set. When clear, it indicates that this candidate path is when set. When clear, it indicates that this candidate path is
using the specified BSID. This flag is ignored when there is using the specified BSID. This flag is ignored when there is
no specified BSID. no specified BSID.
skipping to change at line 532 skipping to change at line 530
ignored by a receiver. ignored by a receiver.
Binding SID: Indicates the operational or allocated BSID value based Binding SID: Indicates the operational or allocated BSID value based
on the status flags. on the status flags.
Specified BSID: Used to report the explicitly specified BSID value Specified BSID: Used to report the explicitly specified BSID value
regardless of whether it is successfully allocated or not. The regardless of whether it is successfully allocated or not. The
field is set to value 0 when the BSID has not been specified. field is set to value 0 when the BSID has not been specified.
The BSID fields above depend on the data plane (SRv6 or MPLS) The BSID fields above depend on the data plane (SRv6 or MPLS)
indicated by the D-Flag. If the D-Flag is set (SRv6 data plane), indicated by the D-flag. If the D-flag is set (SRv6 data plane),
then the length of the BSID fields is 16 octets. If the D-Flag is then the length of the BSID fields is 16 octets. If the D-flag is
clear (MPLS data plane), then the length of the BSID fields is 4 clear (MPLS data plane), then the length of the BSID fields is 4
octets. When carrying the MPLS Label, as shown in the figure below, octets. When carrying the MPLS Label, as shown in the figure below,
the TC, S, and TTL (total of 12 bits) are RESERVED and MUST be set to the TC, S, and TTL (total of 12 bits) are RESERVED and MUST be set to
0 by the originator and MUST be ignored by a receiver. 0 by the originator and MUST be ignored by a receiver.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label | TC |S| TTL | | Label | TC |S| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at line 580 skipping to change at line 578
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| BSID Flags | RESERVED | | BSID Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Binding SID (16 octets) // | Binding SID (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Specified Binding SID (16 octets) // | Specified Binding SID (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Sub-TLVs (variable) // // sub-TLVs (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 7: SRv6 Binding SID TLV Format Figure 7: SRv6 Binding SID TLV Format
Where: Where:
Type: 1212 Type: 1212
Length: Variable Length: Variable
skipping to change at line 706 skipping to change at line 704
(i.e., one identified for path protection of the active path as (i.e., one identified for path protection of the active path as
specified in Section 9.3 of [RFC9256]) for the SR Policy when specified in Section 9.3 of [RFC9256]) for the SR Policy when
set and not the backup path when clear. set and not the backup path when clear.
E-Flag: Indicates that the candidate path has been evaluated for E-Flag: Indicates that the candidate path has been evaluated for
validity (e.g., headend may evaluate candidate paths based on validity (e.g., headend may evaluate candidate paths based on
their preferences) when set and has not been evaluated for their preferences) when set and has not been evaluated for
validity when clear. validity when clear.
V-Flag: Indicates that the candidate path has at least one valid V-Flag: Indicates that the candidate path has at least one valid
SID-List when set and that no valid SID-List is available or SID list when set and that no valid SID list is available or
evaluated when clear. When the E-Flag is clear (i.e., the evaluated when clear. When the E-flag is clear (i.e., the
candidate path has not been evaluated), then this flag MUST be candidate path has not been evaluated), then this flag MUST be
set to 0 by the originator and ignored by a receiver. set to 0 by the originator and MUST be ignored by a receiver.
O-Flag: Indicates that the candidate path was instantiated by the O-Flag: Indicates that the candidate path was instantiated by the
headend due to an on-demand next hop trigger based on a local headend due to an on-demand next hop trigger based on a local
template when set and that the candidate path has not been template when set and that the candidate path has not been
instantiated due to an on-demand next hop trigger when clear. instantiated due to an on-demand next hop trigger when clear.
Refer to Section 8.5 of [RFC9256] for details. Refer to Section 8.5 of [RFC9256] for details.
D-Flag: Indicates that the candidate path was delegated for D-Flag: Indicates that the candidate path was delegated for
computation to a PCE/controller when set and that the candidate computation to a PCE/controller when set and that the candidate
path has not been delegated for computation when clear. path has not been delegated for computation when clear.
skipping to change at line 776 skipping to change at line 774
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 9: SR Policy Name TLV Format Figure 9: SR Policy Name TLV Format
Where: Where:
Type: 1213 Type: 1213
Length: Variable Length: Variable
SR Policy Name: Symbolic name for the SR Policy without a NULL SR Policy Name: Symbolic name for the SR Policy without a NUL
terminator as specified in Section 2.1 of [RFC9256]. It is terminator as specified in Section 2.1 of [RFC9256]. It is
RECOMMENDED that the size of the symbolic name be limited to 255 RECOMMENDED that the size of the symbolic name be limited to 255
bytes. Implementations MAY choose to truncate long names to 255 bytes. Implementations MAY choose to truncate long names to 255
bytes when signaling via BGP-LS. bytes when signaling via BGP-LS.
5.5. SR Candidate Path Name TLV 5.5. SR Candidate Path Name TLV
The SR Candidate Path Name TLV is an optional TLV that is used to The SR Candidate Path Name TLV is an optional TLV that is used to
carry the symbolic name associated with the candidate path. Only a carry the symbolic name associated with the candidate path. Only a
single instance of this TLV is advertised for a given candidate path. single instance of this TLV is advertised for a given candidate path.
skipping to change at line 810 skipping to change at line 808
Figure 10: SR Candidate Path Name TLV Format Figure 10: SR Candidate Path Name TLV Format
Where: Where:
Type: 1203 Type: 1203
Length: Variable Length: Variable
Candidate Path Name: Symbolic name for the SR Policy candidate path Candidate Path Name: Symbolic name for the SR Policy candidate path
without a NULL terminator as specified in Section 2.6 of without a NUL terminator as specified in Section 2.6 of [RFC9256].
[RFC9256]. It is RECOMMENDED that the size of the symbolic name It is RECOMMENDED that the size of the symbolic name be limited to
be limited to 255 bytes. Implementations MAY choose to truncate 255 bytes. Implementations MAY choose to truncate long names to
long names to 255 bytes when signaling via BGP-LS. 255 bytes when signaling via BGP-LS.
5.6. SR Candidate Path Constraints TLV 5.6. SR Candidate Path Constraints TLV
The SR Candidate Path Constraints TLV is an optional TLV that is used The SR Candidate Path Constraints TLV is an optional TLV that is used
to report the constraints associated with the candidate path. The to report the constraints associated with the candidate path. The
constraints are generally applied to a dynamic candidate path that is constraints are generally applied to a dynamic candidate path that is
computed either by the headend or may be delegated to a controller. either computed by the headend or delegated to a controller. The
The constraints may also be applied to an explicit path where the constraints may also be applied to an explicit path where the
computation entity is expected to validate that the path satisfies computation entity is expected to validate that the path satisfies
the specified constraints; if not, the path is to be invalidated the specified constraints; if not, the path is to be invalidated
(e.g., due to topology changes). Only a single instance of this TLV (e.g., due to topology changes). Only a single instance of this TLV
is advertised for a given candidate path. If multiple instances are is advertised for a given candidate path. If multiple instances are
present, then the first valid one (i.e., not determined to be present, then the first valid one (i.e., not determined to be
malformed as per Section 8.2.2 of [RFC9552]) is used and the rest are malformed as per Section 8.2.2 of [RFC9552]) is used and the rest are
ignored. ignored.
The TLV has the following format: The TLV has the following format:
skipping to change at line 871 skipping to change at line 869
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where: Where:
D-Flag: Indicates that the candidate path uses an SRv6 data plane D-Flag: Indicates that the candidate path uses an SRv6 data plane
when set and an SR/MPLS data plane when clear. when set and an SR/MPLS data plane when clear.
P-Flag: Indicates that the candidate path prefers the use of only P-Flag: Indicates that the candidate path prefers the use of only
protected SIDs when set and that the candidate path does not protected SIDs when set and that the candidate path does not
prefer the use of only protected SIDs when clear. This flag is prefer the use of only protected SIDs when clear. This flag is
mutually exclusive with the U-Flag (i.e., both of these flags mutually exclusive with the U-flag (i.e., both of these flags
cannot be set at the same time). cannot be set at the same time).
U-Flag: Indicates that the candidate path prefers the use of only U-Flag: Indicates that the candidate path prefers the use of only
unprotected SIDs when set and that the candidate path does not unprotected SIDs when set and that the candidate path does not
prefer the use of only unprotected SIDs when clear. This flag prefer the use of only unprotected SIDs when clear. This flag
is mutually exclusive with the P-Flag (i.e., both of these is mutually exclusive with the P-Flag (i.e., both of these
flags cannot be set at the same time). flags cannot be set at the same time).
A-Flag: Indicates that the candidate path uses only the SIDs A-Flag: Indicates that the candidate path uses only the SIDs
belonging to the specified SR Algorithm when set and that the belonging to the specified SR Algorithm when set and that the
candidate path does not use only the SIDs belonging to the candidate path does not use only the SIDs belonging to the
specified SR Algorithm when clear. specified SR Algorithm when clear.
T-Flag: Indicates that the candidate path uses only the SIDs T-Flag: Indicates that the candidate path uses only the SIDs
belonging to the specified topology when set and that the belonging to the specified topology when set and that the
candidate path does not use only the SIDs belonging to the candidate path does not use only the SIDs belonging to the
specified topology when clear. specified topology when clear.
S-Flag: Indicates that the use of protected (P-Flag) or S-Flag: Indicates that the use of protected (P-flag) or
unprotected (U-Flag) SIDs becomes a strict constraint instead unprotected (U-flag) SIDs becomes a strict constraint instead
of a preference when set and that there is no strict constraint of a preference when set and that there is no strict constraint
(and only a preference) when clear. (and only a preference) when clear.
F-Flag: Indicates that the candidate path is fixed once computed F-Flag: Indicates that the candidate path is fixed once computed
and not modified except on operator intervention and that the and not modified except on operator intervention and that the
candidate path may be modified as part of recomputation when candidate path may be modified as part of recomputation when
clear. clear.
H-Flag: Indicates that the candidate path uses only adjacency H-Flag: Indicates that the candidate path uses only adjacency
SIDs and traverses hop-by-hop over the links corresponding to SIDs and traverses hop-by-hop over the links corresponding to
skipping to change at line 1063 skipping to change at line 1061
Length: 4 octets Length: 4 octets
Bandwidth: 4 octets that specify the desired bandwidth in unit of Bandwidth: 4 octets that specify the desired bandwidth in unit of
bytes per second in IEEE floating point format [IEEE754]. bytes per second in IEEE floating point format [IEEE754].
5.6.4. SR Disjoint Group Constraint Sub-TLV 5.6.4. SR Disjoint Group Constraint Sub-TLV
The SR Disjoint Group Constraint sub-TLV is an optional sub-TLV of The SR Disjoint Group Constraint sub-TLV is an optional sub-TLV of
the SR Candidate Path Constraints TLV that is used to carry the the SR Candidate Path Constraints TLV that is used to carry the
disjointness constraint associated with the candidate path. The disjointness constraint associated with the candidate path. The
disjointness between two SR Policy Candidate Paths is expressed by disjointness between two SR Policy candidate paths is expressed by
associating them with the same disjoint group identifier and then associating them with the same disjoint group identifier and then
specifying the type of disjointness required between their paths. specifying the type of disjointness required between their paths.
The types of disjointness are described in Section 3 of [RFC8800] The types of disjointness are described in Section 3 of [RFC8800]
where the level of disjointness increases in the order: link, node, where the level of disjointness increases in the order: link, node,
SRLG, Node + SRLG. The computation is expected to achieve the SRLG, Node + SRLG. The computation is expected to achieve the
highest level of disjointness requested; when that is not possible, highest level of disjointness requested; when that is not possible,
then fall back to a lesser level progressively based on the levels then fall back to a lesser level progressively based on the levels
indicated. Only a single instance of this sub-TLV is advertised for indicated. Only a single instance of this sub-TLV is advertised for
a given candidate path. If multiple instances are present, then the a given candidate path. If multiple instances are present, then the
first valid one (i.e., not determined to be malformed as per first valid one (i.e., not determined to be malformed as per
Section 8.2.2 of [RFC9552]) is used and the rest are ignored. Section 8.2.2 of [RFC9552]) is used and the rest are ignored.
The sub-TLV has the following format: The sub-TLV has the 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Request-Flags | Status-Flags | RESERVED | | Request Flags | Status Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Disjoint Group Identifier (variable) // | Disjoint Group Identifier (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 15: SR Disjoint Group Constraint Sub-TLV Format Figure 15: SR Disjoint Group Constraint Sub-TLV Format
Where: Where:
Type: 1211 Type: 1211
skipping to change at line 1168 skipping to change at line 1166
X-Flag: Indicates that the disjointness constraint could not be X-Flag: Indicates that the disjointness constraint could not be
achieved and hence the path has been invalidated when set and achieved and hence the path has been invalidated when set and
that the path has not been invalidated due to unmet that the path has not been invalidated due to unmet
disjointness constraints when clear. disjointness constraints when clear.
RESERVED: 2 octets. MUST be set to 0 by the originator and MUST be RESERVED: 2 octets. MUST be set to 0 by the originator and MUST be
ignored by a receiver. ignored by a receiver.
Disjoint Group Identifier: 4-octet value that is the group Disjoint Group Identifier: 4-octet value that is the group
identifier for a set of disjoint paths. Alternatively, this field identifier for a set of disjoint paths. Alternatively, this field
MAY contain the entire PCEP Association Object as specified in MAY contain the entire PCEP ASSOCIATION Object as specified in
Section 6.1 of [RFC8697] (including its optional TLVs) when PCEP Section 6.1 of [RFC8697] (including its optional TLVs) when PCEP
is used for the signaling of the SR Policy candidate path and is used for the signaling of the SR Policy candidate path and
where the BGP-LS Producer is unable to determine the group where the BGP-LS Producer is unable to determine the group
identifier that can be accommodated in a 4-octet value (since PCEP identifier that can be accommodated in a 4-octet value (since PCEP
supports multiple methods of encoding an association identifier). supports multiple methods of encoding an association identifier).
Note that the parsing of the PCEP object is expected to be Note that the parsing of the PCEP object is expected to be
performed only by the BGP-LS Consumer (hence, outside the scope of performed only by the BGP-LS Consumer (hence, outside the scope of
this document) and not by any BGP Speaker as specified in this document) and not by any BGP Speaker as specified in
[RFC9552]. If the PCEP object size is such that the update for a [RFC9552]. If the PCEP object size is such that the update for a
single SR Policy Candidate Path NLRI would exceed the supported single SR Policy Candidate Path NLRI would exceed the supported
BGP message size by the implementation, then the PCEP Association BGP message size by the implementation, then the PCEP ASSOCIATION
Object MUST NOT be encoded and this sub-TLV skipped along with an Object MUST NOT be encoded and this sub-TLV skipped along with an
error log. Refer to Section 5.3 of [RFC9552] for discussion on error log. Refer to Section 5.3 of [RFC9552] for discussion on
implications of encoding large sets of information into BGP-LS. implications of encoding large sets of information into BGP-LS.
5.6.5. SR Bidirectional Group Constraint Sub-TLV 5.6.5. SR Bidirectional Group Constraint Sub-TLV
The SR Bidirectional Group Constraint sub-TLV is an optional sub-TLV The SR Bidirectional Group Constraint sub-TLV is an optional sub-TLV
of the SR Candidate Path Constraints TLV that is used to carry the of the SR Candidate Path Constraints TLV that is used to carry the
bidirectional constraint associated with the candidate path. The bidirectional constraint associated with the candidate path. The
bidirectional relationship between two SR Policy Candidate Paths is bidirectional relationship between two SR Policy candidate paths is
expressed by associating them with the same bidirectional group expressed by associating them with the same bidirectional group
identifier and then specifying the type of bidirectional routing identifier and then specifying the type of bidirectional routing
required between their paths. Only a single instance of this sub-TLV required between their paths. Only a single instance of this sub-TLV
is advertised for a given candidate path. If multiple instances are is advertised for a given candidate path. If multiple instances are
present, then the first valid one (i.e., not determined to be present, then the first valid one (i.e., not determined to be
malformed as per Section 8.2.2 of [RFC9552]) is used and the rest are malformed as per Section 8.2.2 of [RFC9552]) is used and the rest are
ignored. ignored.
The sub-TLV has the following format: The sub-TLV has the following format:
skipping to change at line 1232 skipping to change at line 1230
0 1 0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R|C| | |R|C| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where: Where:
R-Flag: Indicates that the candidate path of the SR Policy forms R-Flag: Indicates that the candidate path of the SR Policy forms
the reverse path when the R-Flag is set. If the R-Flag is the reverse path when the R-flag is set. If the R-flag is
clear, the candidate path forms the forward path. clear, the candidate path forms the forward path.
C-Flag: Indicates that the bidirectional path is co-routed when C-Flag: Indicates that the bidirectional path is co-routed when
set and that the bidirectional path is not co-routed when set and that the bidirectional path is not co-routed when
clear. clear.
RESERVED: 2 octets. MUST be set to 0 by the originator and MUST be RESERVED: 2 octets. MUST be set to 0 by the originator and MUST be
ignored by a receiver. ignored by a receiver.
Bidirectional Group Identifier: 4-octet value that is the group Bidirectional Group Identifier: 4-octet value that is the group
identifier for a set of bidirectional paths. Alternatively, this identifier for a set of bidirectional paths. Alternatively, this
field MAY contain the entire PCEP Association Object as specified field MAY contain the entire PCEP ASSOCIATION Object as specified
in Section 6.1 of [RFC8697] (including its optional TLVs) when in Section 6.1 of [RFC8697] (including its optional TLVs) when
PCEP is used for the signaling of the SR Policy candidate path and PCEP is used for the signaling of the SR Policy candidate path and
where the BGP-LS Producer is unable to determine the group where the BGP-LS Producer is unable to determine the group
identifier that can be accommodated in a 4-octet value (since PCEP identifier that can be accommodated in a 4-octet value (since PCEP
supports multiple methods of encoding an association identifier). supports multiple methods of encoding an association identifier).
Note that the parsing of the PCEP object is expected to be Note that the parsing of the PCEP object is expected to be
performed only by the BGP-LS Consumer (hence, outside the scope of performed only by the BGP-LS Consumer (hence, outside the scope of
this document) and not by any BGP Speaker as specified in this document) and not by any BGP Speaker as specified in
[RFC9552]. If the PCEP object size is such that the update for a [RFC9552]. If the PCEP object size is such that the update for a
single SR Policy Candidate Path NLRI would exceed the supported single SR Policy Candidate Path NLRI would exceed the supported
BGP message size by the implementation, then the PCEP Association BGP message size by the implementation, then the PCEP ASSOCIATION
Object MUST NOT be encoded and this sub-TLV skipped along with an Object MUST NOT be encoded and this sub-TLV skipped along with an
error log. Refer to Section 5.3 of [RFC9552] for discussion on error log. Refer to Section 5.3 of [RFC9552] for discussion on
implications of encoding large sets of information into BGP-LS. implications of encoding large sets of information into BGP-LS.
5.6.6. SR Metric Constraint Sub-TLV 5.6.6. SR Metric Constraint Sub-TLV
The SR Metric Constraint sub-TLV is an optional sub-TLV of the SR The SR Metric Constraint sub-TLV is an optional sub-TLV of the SR
Candidate Path Constraints TLV that is used to report the Candidate Path Constraints TLV that is used to report the
optimization metric of the candidate path. For a dynamic path optimization metric of the candidate path. For a dynamic path
computation, it is used to report the optimization metric used along computation, it is used to report the optimization metric used along
skipping to change at line 1295 skipping to change at line 1293
Figure 17: SR Metric Constraint Sub-TLV Format Figure 17: SR Metric Constraint Sub-TLV Format
Where: Where:
Type: 1215 Type: 1215
Length: 12 octets Length: 12 octets
Metric Type: 1-octet field that identifies the type of metric being Metric Type: 1-octet field that identifies the type of metric being
used. Table 1 lists the metric types introduced by this document used. Below is a list of metric types introduced by this document
along with reference for each. Where the references are for IS-IS along with references for each. Where the references are for IS-
and OSPF specifications, those metric types are defined for a link IS and OSPF specifications, those metric types are defined for a
while in the SR Policy context those relate to the candidate path link while in the SR Policy context those relate to the candidate
or the segment list. The metric type code points that may be used path or the segment list. The metric type code points that may be
in this sub-TLV are also listed in Section 8.6 of this document. used in this sub-TLV are also listed in Section 8.6 of this
Note that the metric type in this field is not taken from the "IGP document. Note that the metric types in this field are taken from
Metric-Type" registry from IANA "IGP Parameters" and is a separate the "BGP-LS SR Policy Metric Types" IANA registry, which includes
registry that includes IGP Metric Types as well as metric types IGP Metric Types as well as metric types specific to SR Policy
specific to SR Policy path computation. Additional metric types path computation (i.e., the metric types are not from the "IGP
may be introduced by future documents. This document does not Metric-Type" registry). Additional metric types may be introduced
make any assumptions about a smaller metric value being better by future documents. This document does not make any assumptions
than a higher metric value; that is something that is dependent on about a smaller metric value being better than a higher metric
the semantics of the specific metric type. This document uses the value; that is something that is dependent on the semantics of the
words "best" and "worst" to abstract this aspect when referring to specific metric type. This document uses the words "best" and
metric margins and bounds. "worst" to abstract this aspect when referring to metric margins
and bounds.
Type 0: IGP: Type 0: IGP:
This is specified in Section 3 of [RFC5305] for IS-IS and is This is specified in Section 3 of [RFC5305] for IS-IS and is
known as the default metric. This is specified in [RFC2328] known as the default metric. This is specified in [RFC2328]
for OSPFv2 and in [RFC5340] for OSPFv3 and is known as the for OSPFv2 and in [RFC5340] for OSPFv3 and is known as the
metric in both. metric in both.
Type 1: Min Unidirectional Delay: Type 1: Min Unidirectional Delay:
This is specified in Section 4.2 of [RFC8570] for IS-IS and in This is specified in Section 4.2 of [RFC8570] for IS-IS and in
Section 4.2 of [RFC7471] for OSPFv2/OSPFv3. Section 4.2 of [RFC7471] for OSPFv2/OSPFv3.
skipping to change at line 1408 skipping to change at line 1407
specified bound value, then the path is considered invalid. specified bound value, then the path is considered invalid.
The absolute metric margin and the metric bound values are encoded as The absolute metric margin and the metric bound values are encoded as
specified for each metric type. For metric types that are smaller specified for each metric type. For metric types that are smaller
than 4 octets in size, the most significant bits are filled with than 4 octets in size, the most significant bits are filled with
zeros. The percentage metric margin is encoded as an unsigned zeros. The percentage metric margin is encoded as an unsigned
integer percentage value. integer percentage value.
5.7. SR Segment List TLV 5.7. SR Segment List TLV
The SR Segment List TLV is used to report a single SID-List of a The SR Segment List TLV is used to report a single SID list of a
candidate path. Multiple instances of this TLV may be used to report candidate path. Multiple instances of this TLV may be used to report
multiple SID-Lists of a candidate path. multiple SID lists of a candidate path.
The TLV has the following format: The TLV has the 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | RESERVED | | Flags | RESERVED1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MTID | Algorithm | RESERVED | | MTID | Algorithm | RESERVED2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Weight (4 octets) | | Weight (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sub-TLVs (variable) // | sub-TLVs (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 18: SR Segment List TLV Format Figure 18: SR Segment List TLV Format
Where: Where:
Type: 1205 Type: 1205
Length: Variable Length: Variable
Flags: 2-octet field that indicates the attribute and status of the Flags: 2-octet field that indicates the attribute and status of the
SID-List. The following bit positions are defined, and the SID list. The following bit positions are defined, and the
semantics are described in detail in [RFC9256]. Other bits MUST semantics are described in detail in [RFC9256]. Other bits MUST
be cleared by the originator and MUST be ignored by a receiver. be cleared by the originator and MUST be ignored by a receiver.
0 1 0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|D|E|C|V|R|F|A|T|M| | |D|E|C|V|R|F|A|T|M| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Where: Where:
D-Flag: Indicates that the SID-List consists of SRv6 SIDs when D-Flag: Indicates that the SID list consists of SRv6 SIDs when
set and SR/MPLS labels when clear. set and SR/MPLS labels when clear.
E-Flag: Indicates that the SID-List is associated with an E-Flag: Indicates that the SID list is associated with an
explicit candidate path when set and a dynamic candidate path explicit candidate path when set and a dynamic candidate path
when clear. All segment lists of a given candidate path MUST when clear. All segment lists of a given candidate path MUST
be either explicit or dynamic. In case of inconsistency, the be either explicit or dynamic. In case of inconsistency, the
receiver MAY consider them all to be dynamic. receiver MAY consider them all to be dynamic.
C-Flag: Indicates that the SID-List has been computed for a C-Flag: Indicates that the SID list has been computed for a
dynamic path when set. It is always reported as set for dynamic path when set. It is always reported as set for
explicit paths. When clear, it indicates that the SID-List has explicit paths. When clear, it indicates that the SID list has
not been computed for a dynamic path. not been computed for a dynamic path.
V-Flag: Indicates that the SID-List has passed verification or V-Flag: Indicates that the SID list has passed verification or
its verification was not required when set and that it failed its verification was not required when set and that it failed
verification when clear. verification when clear.
R-Flag: Indicates that the first Segment has been resolved when R-Flag: Indicates that the first Segment has been resolved when
set and that it failed resolution when clear. set and that it failed resolution when clear.
F-Flag: Indicates that the computation for the dynamic path F-Flag: Indicates that the computation for the dynamic path
failed when set and that it succeeded (or was not required in failed when set and that it succeeded (or was not required in
case of an explicit path) when clear. case of an explicit path) when clear.
A-Flag: Indicates that all the SIDs in the SID-List belong to the A-Flag: Indicates that all the SIDs in the SID list belong to the
specified algorithm when set and that not all the SIDs belong specified algorithm when set and that not all the SIDs belong
to the specified algorithm when clear. to the specified algorithm when clear.
T-Flag: Indicates that all the SIDs in the SID-List belong to the T-Flag: Indicates that all the SIDs in the SID list belong to the
specified topology (identified by the multi-topology ID) when specified topology (identified by the multi-topology ID) when
set and that not all the SIDs belong to the specified topology set and that not all the SIDs belong to the specified topology
when clear. when clear.
M-Flag: Indicates that the SID-list has been removed from the M-Flag: Indicates that the SID list has been removed from the
forwarding plane due to fault detection by a monitoring forwarding plane due to fault detection by a monitoring
mechanism (e.g., Bidirectional Forwarding Detection (BFD)) when mechanism (e.g., Bidirectional Forwarding Detection (BFD)) when
set and that no fault is detected or no monitoring is being set and that no fault is detected or no monitoring is being
done when clear. done when clear.
RESERVED: 2 octets. MUST be set to 0 by the originator and MUST be RESERVED: 2 octets. MUST be set to 0 by the originator and MUST be
ignored by a receiver. ignored by a receiver.
MTID: 2 octets that indicate the multi-topology identifier of the MTID: 2 octets that indicate the multi-topology identifier of the
IGP topology that is to be used when the T-flag is set. IGP topology that is to be used when the T-flag is set.
Algorithm: 1 octet that indicates the algorithm of the SIDs used in Algorithm: 1 octet that indicates the algorithm of the SIDs used in
the SID-List when the A-flag is set. The algorithm values are the SID list when the A-flag is set. The algorithm values are
from the "IGP Algorithm Types" IANA registry under the "Interior from the "IGP Algorithm Types" IANA registry under the "Interior
Gateway Protocol (IGP) Parameters" registry group. Gateway Protocol (IGP) Parameters" registry group.
RESERVED: 1 octet. MUST be set to 0 by the originator and MUST be RESERVED: 1 octet. MUST be set to 0 by the originator and MUST be
ignored by a receiver. ignored by a receiver.
Weight: 4-octet field that indicates the weight associated with the Weight: 4-octet field that indicates the weight associated with the
SID-List for weighted load balancing. Refer to Sections 2.2 and SID list for weighted load balancing. Refer to Sections 2.2 and
2.11 of [RFC9256]. 2.11 of [RFC9256].
Sub-TLVs: Variable and contain the ordered set of Segments and any Sub-TLVs: Variable and contain the ordered set of Segments and any
other optional attributes associated with the specific SID-List. other optional attributes associated with the specific SID list.
The SR Segment sub-TLV (defined in Section 5.7.1) MUST be included as The SR Segment sub-TLV (defined in Section 5.7.1) MUST be included as
an ordered set of sub-TLVs within the SR Segment List TLV when the an ordered set of sub-TLVs within the SR Segment List TLV when the
SID-List is not empty. A SID-List may be empty in certain situations SID list is not empty. A SID list may be empty in certain situations
(e.g., for a dynamic path) where the headend has not yet performed (e.g., for a dynamic path) where the headend has not yet performed
the computation and hence not derived the segments required for the the computation and hence not derived the segments required for the
path. In such cases where the SID-LIST is empty, the SR Segment List path. In such cases where the SID list is empty, the SR Segment List
TLV MUST NOT include any SR Segment sub-TLVs. TLV MUST NOT include any SR Segment sub-TLVs.
5.7.1. SR Segment Sub-TLV 5.7.1. SR Segment Sub-TLV
The SR Segment sub-TLV describes a single segment in a SID-List. One The SR Segment sub-TLV describes a single segment in a SID list. One
or more instances of this sub-TLV in an ordered manner constitute a or more instances of this sub-TLV in an ordered manner constitute a
SID-List for an SR Policy candidate path. It is a sub-TLV of the SR SID list for an SR Policy candidate path. It is a sub-TLV of the SR
Segment List TLV and it has the following format: Segment List TLV and it has the 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Segment Type | RESERVED | Flags | | Segment Type | RESERVED | Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SID (4 or 16 octets) // | SID (4 or 16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Segment Descriptor (variable) // // Segment Descriptor (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Sub-TLVs (variable) // // sub-TLVs (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 19: SR Segment Sub-TLV Format Figure 19: SR Segment Sub-TLV Format
Where: Where:
Type: 1206 Type: 1206
Length: Variable Length: Variable
skipping to change at line 1577 skipping to change at line 1576
Where: Where:
S-Flag: Indicates the presence of the SID value in the SID field S-Flag: Indicates the presence of the SID value in the SID field
when set and no value when clear. when set and no value when clear.
E-Flag: Indicates that the SID value is an explicitly provisioned E-Flag: Indicates that the SID value is an explicitly provisioned
value (locally on headend or via controller/PCE) when set and value (locally on headend or via controller/PCE) when set and
is a dynamically resolved value by headend when clear. is a dynamically resolved value by headend when clear.
V-Flag: Indicates that the SID has passed verification or did not V-Flag: Indicates that the SID has passed verification or did not
require verification when set. When the V-Flag is clear, it require verification when set. When the V-flag is clear, it
indicates the SID has failed verification. indicates the SID has failed verification.
R-Flag: Indicates that the SID has been resolved or did not R-Flag: Indicates that the SID has been resolved or did not
require resolution (e.g., because it is not the first SID) when require resolution (e.g., because it is not the first SID) when
set. When the R-Flag is clear, it indicates the SID has failed set. When the R-flag is clear, it indicates the SID has failed
resolution. resolution.
A-Flag: Indicates that the Algorithm indicated in the Segment A-Flag: Indicates that the Algorithm indicated in the segment
descriptor is valid when set. When clear, it indicates that descriptor is valid when set. When clear, it indicates that
the headend is unable to determine the algorithm of the SID. the headend is unable to determine the algorithm of the SID.
SID: 4 octets carrying the MPLS Label or 16 octets carrying the SRv6 SID: 4 octets carrying the MPLS Label or 16 octets carrying the SRv6
SID based on the Segment Type. When carrying the MPLS Label, as SID based on the Segment Type. When carrying the MPLS Label, as
shown in the figure below, the TC, S, and TTL (total of 12 bits) shown in the figure below, the TC, S, and TTL (total of 12 bits)
are RESERVED and MUST be set to 0 by the originator and MUST be are RESERVED and MUST be set to 0 by the originator and MUST be
ignored by a receiver. ignored by a receiver.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label | TC |S| TTL | | Label | TC |S| TTL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Segment Descriptor: Variable size Segment descriptor based on the Segment Descriptor: Variable size segment descriptor based on the
type of segment (refer to Section 5.7.1.1 for details). type of segment (refer to Section 5.7.1.1 for details).
Sub-Sub-TLVs: Variable and contain any other optional attributes Sub-Sub-TLVs: Variable and contain any other optional attributes
associated with the specific segment. associated with the specific segment.
The SRv6 Endpoint Behavior TLV (1250) and the SRv6 SID Structure TLV The SRv6 Endpoint Behavior TLV (1250) and the SRv6 SID Structure TLV
(1252) defined in [RFC9514] are used as sub-sub-TLVs of the SR (1252) defined in [RFC9514] are used as sub-sub-TLVs of the SR
Segment sub-TLV. These two sub-sub-TLVs are used to optionally Segment sub-TLV. These two sub-sub-TLVs are used to optionally
indicate the SRv6 Endpoint behavior and SID structure when indicate the SRv6 Endpoint behavior and SID structure when
advertising the SRv6-specific segment types. advertising the SRv6-specific segment types.
5.7.1.1. Segment Descriptors 5.7.1.1. Segment Descriptors
Section 4 of [RFC9256] defines multiple types of segments and their Section 4 of [RFC9256] defines multiple types of segments and their
descriptions. This section defines the encoding of the Segment descriptions. This section defines the encoding of the segment
Descriptors for each of those segment types to be used in the Segment descriptors for each of those segment types to be used in the Segment
sub-TLV described previously in Section 5.7.1. sub-TLV described previously in Section 5.7.1.
The following types are currently defined, and their mappings to the The following types are currently defined, and their mappings to the
respective segment types are defined in [RFC9256]: respective segment types are defined in [RFC9256]:
+======+=========================================================+ +======+=========================================================+
| Type | Segment Description | | Type | Segment Description |
+======+=========================================================+ +======+=========================================================+
| 1 | (Type A) SR-MPLS Label | | 1 | (Type A) SR-MPLS Label |
+------+---------------------------------------------------------+ +------+---------------------------------------------------------+
skipping to change at line 1657 skipping to change at line 1656
+------+---------------------------------------------------------+ +------+---------------------------------------------------------+
| 10 | (Type J) SRv6 END.X SID as pair of IPv6 Global Address | | 10 | (Type J) SRv6 END.X SID as pair of IPv6 Global Address |
| | & Interface ID for Local & Remote nodes | | | & Interface ID for Local & Remote nodes |
+------+---------------------------------------------------------+ +------+---------------------------------------------------------+
| 11 | (Type K) SRv6 END.X SID as pair of IPv6 Global | | 11 | (Type K) SRv6 END.X SID as pair of IPv6 Global |
| | Addresses for the Local & Remote Interface | | | Addresses for the Local & Remote Interface |
+------+---------------------------------------------------------+ +------+---------------------------------------------------------+
Table 1: SR Segment Types Table 1: SR Segment Types
5.7.1.1.1. Type 1: SR-MPLS Label (Type A) 5.7.1.1.1. Type 1: Segment Type A
The Segment is an SR-MPLS type and is specified simply as the label. The Segment is an SR-MPLS type and is specified simply as the label.
The format of its Segment Descriptor is as follows: The format of its segment descriptor is as follows:
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
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
| Algorithm | | Algorithm |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Figure 20: Type 1 Segment Descriptor Figure 20: Type 1 Segment Descriptor
Where: Where:
Algorithm: 1-octet value that indicates the algorithm used for Algorithm: 1-octet value that indicates the algorithm used for
picking the SID. This is valid only when the A-flag has been set picking the SID. This is valid only when the A-flag has been set
in the Segment TLV. The algorithm values are from the "IGP in the Segment TLV. The algorithm values are from the "IGP
Algorithm Types" IANA registry under the "Interior Gateway Algorithm Types" IANA registry under the "Interior Gateway
Protocol (IGP) Parameters" registry group. Protocol (IGP) Parameters" registry group.
5.7.1.1.2. Type 2: SRv6 SID (Type B) 5.7.1.1.2. Type 2: Segment Type B
The Segment is an SRv6 type and is specified simply as the SRv6 SID The Segment is an SRv6 type and is specified simply as SRv6 SID. The
address. The format of its Segment Descriptor is as follows: format of its segment descriptor is as follows:
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
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
| Algorithm | | Algorithm |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Figure 21: Type 2 Segment Descriptor Figure 21: Type 2 Segment Descriptor
Where: Where:
Algorithm: 1-octet value that indicates the algorithm used for Algorithm: 1-octet value that indicates the algorithm used for
picking the SID. This is valid only when the A-flag has been set picking the SID. This is valid only when the A-flag has been set
in the Segment TLV. The algorithm values are from the "IGP in the Segment TLV. The algorithm values are from the "IGP
Algorithm Types" IANA registry under the "Interior Gateway Algorithm Types" IANA registry under the "Interior Gateway
Protocol (IGP) Parameters" registry group. Protocol (IGP) Parameters" registry group.
5.7.1.1.3. Type 3: SR-MPLS Prefix SID for IPv4 (Type C) 5.7.1.1.3. Type 3: Segment Type C
The Segment is an SR-MPLS Prefix SID type and is specified as an IPv4 The Segment is an SR-MPLS Prefix SID type and is specified as an IPv4
node address. The format of its Segment Descriptor is as follows: node address. The format of its segment descriptor is as follows:
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
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
| Algorithm | | Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Node Address (4 octets) | | IPv4 Node Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 22: Type 3 Segment Descriptor Figure 22: Type 3 Segment Descriptor
skipping to change at line 1724 skipping to change at line 1723
Where: Where:
Algorithm: 1-octet value that indicates the algorithm used for Algorithm: 1-octet value that indicates the algorithm used for
picking the SID. The algorithm values are from the "IGP Algorithm picking the SID. The algorithm values are from the "IGP Algorithm
Types" IANA registry under the "Interior Gateway Protocol (IGP) Types" IANA registry under the "Interior Gateway Protocol (IGP)
Parameters" registry group. Parameters" registry group.
IPv4 Node Address: 4-octet value that carries the IPv4 address IPv4 Node Address: 4-octet value that carries the IPv4 address
associated with the node. associated with the node.
5.7.1.1.4. Type 4: SR-MPLS Prefix SID for IPv6 (Type D) 5.7.1.1.4. Type 4: Segment Type D
The Segment is an SR-MPLS Prefix SID type and is specified as an IPv6 The Segment is an SR-MPLS Prefix SID type and is specified as an IPv6
node global address. The format of its Segment Descriptor is as node global address. The format of its segment descriptor is as
follows: follows:
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
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
| Algorithm | | Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| IPv6 Node Global Address (16 octets) | | IPv6 Node Global Address (16 octets) |
| | | |
skipping to change at line 1753 skipping to change at line 1752
Where: Where:
Algorithm: 1-octet value that indicates the algorithm used for Algorithm: 1-octet value that indicates the algorithm used for
picking the SID. The algorithm values are from the "IGP Algorithm picking the SID. The algorithm values are from the "IGP Algorithm
Types" IANA registry under the "Interior Gateway Protocol (IGP) Types" IANA registry under the "Interior Gateway Protocol (IGP)
Parameters" registry group. Parameters" registry group.
IPv6 Node Global Address: 16-octet value that carries the IPv6 IPv6 Node Global Address: 16-octet value that carries the IPv6
global address associated with the node. global address associated with the node.
5.7.1.1.5. Type 5: SR-MPLS Adjacency SID for IPv4 with an Interface ID 5.7.1.1.5. Type 5: Segment Type E
(Type E)
The Segment is an SR-MPLS Adjacency SID type and is specified as an The Segment is an SR-MPLS Adjacency SID type and is specified as an
IPv4 node address along with the local interface ID on that node. IPv4 node address along with the local interface ID on that node.
The format of its Segment Descriptor is as follows: The format of its segment descriptor is as follows:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Node Address (4 octets) | | IPv4 Node Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Interface ID (4 octets) | | Local Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 24: Type 5 Segment Descriptor Figure 24: Type 5 Segment Descriptor
Where: Where:
IPv4 Node Address: 4-octet value that carries the IPv4 address IPv4 Node Address: 4-octet value that carries the IPv4 address
associated with the node. associated with the node.
Local Interface ID: 4-octet value that carries the local interface Local Interface ID: 4-octet value that carries the local interface
ID of the node identified by the Node Address. ID of the node identified by the Node Address.
5.7.1.1.6. Type 6: SR-MPLS Adjacency SID for IPv4 with an Interface 5.7.1.1.6. Type 6: Segment Type F
Address (Type F)
The Segment is an SR-MPLS Adjacency SID type and is specified as a The Segment is an SR-MPLS Adjacency SID type and is specified as a
pair of IPv4 local and remote interface addresses. The format of its pair of IPv4 local and remote interface addresses. The format of its
Segment Descriptor is as follows: segment descriptor is as follows:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Local Address (4 octets) | | IPv4 Local Interface Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Remote Address (4 octets) | | IPv4 Remote Interface Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 25: Type 6 Segment Descriptor Figure 25: Type 6 Segment Descriptor
Where: Where:
IPv4 Local Address: 4-octet value that carries the local IPv4 IPv4 Local Interface Address: 4-octet value that carries the local
address associated with the node's interface. IPv4 address associated with the node's interface.
IPv4 Remote Address: 4-octet value that carries the remote IPv4 IPv4 Remote Interface Address: 4-octet value that carries the remote
address associated with the interface on the node's neighbor. IPv4 address associated with the interface on the node's neighbor.
This is optional and MAY be set to 0 when not used (e.g., when This is optional and MAY be set to 0 when not used (e.g., when
identifying point-to-point links). identifying point-to-point links).
5.7.1.1.7. Type 7: SR-MPLS Adjacency SID for IPv6 with an Interface ID 5.7.1.1.7. Type 7: Segment Type G
(Type G)
The Segment is an SR-MPLS Adjacency SID type and is specified as a The Segment is an SR-MPLS Adjacency SID type and is specified as a
pair of IPv6 global address and interface ID for local and remote pair of IPv6 global address and interface ID for local and remote
nodes. The format of its Segment Descriptor is as follows: nodes. The format of its segment descriptor is as follows:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| IPv6 Local Node Global Address (16 octets) | | IPv6 Local Node Global Address (16 octets) |
| | | |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Node Interface ID (4 octets) | | Local Node Interface ID (4 octets) |
skipping to change at line 1850 skipping to change at line 1846
IPv6 Remote Node Global Address: 16-octet value that carries the IPv6 Remote Node Global Address: 16-octet value that carries the
IPv6 global address associated with the remote node. This is IPv6 global address associated with the remote node. This is
optional and MAY be set to 0 when not used (e.g., when identifying optional and MAY be set to 0 when not used (e.g., when identifying
point-to-point links). point-to-point links).
Remote Node Interface ID: 4-octet value that carries the interface Remote Node Interface ID: 4-octet value that carries the interface
ID of the remote node identified by the Remote Node Address. This ID of the remote node identified by the Remote Node Address. This
is optional and MAY be set to 0 when not used (e.g., when is optional and MAY be set to 0 when not used (e.g., when
identifying point-to-point links). identifying point-to-point links).
5.7.1.1.8. Type 8: SR-MPLS Adjacency SID for IPv6 with an Interface 5.7.1.1.8. Type 8: Segment Type H
Address (Type H)
The Segment is an SR-MPLS Adjacency SID type and is specified as a The Segment is an SR-MPLS Adjacency SID type and is specified as a
pair of IPv6 global addresses for local and remote interface pair of IPv6 global addresses for local and remote interface
addresses. The format of its Segment Descriptor is as follows: addresses. The format of its segment descriptor is as follows:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Global IPv6 Local Interface Address (16 octets) | | IPv6 Local Interface Global Address (16 octets) |
| | | |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Global IPv6 Remote Interface Address (16 octets) | | IPv6 Remote Interface Global Address (16 octets) |
| | | |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 27: Type 8 Segment Descriptor Figure 27: Type 8 Segment Descriptor
Where: Where:
IPv6 Local Address: 16-octet value that carries the local IPv6 IPv6 Local Global Address: 16-octet value that carries the local
address associated with the node's interface. IPv6 address associated with the node's interface.
IPv6 Remote Address: 16-octet value that carries the remote IPv6 IPv6 Remote Global Address: 16-octet value that carries the remote
address associated with the interface on the node's neighbor. IPv6 address associated with the interface on the node's neighbor.
5.7.1.1.9. Type 9: SRv6 END SID as IPv6 Node Address (Type I) 5.7.1.1.9. Type 9: Segment Type I
The Segment is an SRv6 END SID type and is specified as an IPv6 node The Segment is an SRv6 END SID type and is specified as an IPv6 node
global address. The format of its Segment Descriptor is as follows: global address. The format of its segment descriptor is as follows:
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
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
| Algorithm | | Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| IPv6 Node Global Address (16 octets) | | IPv6 Node Global Address (16 octets) |
| | | |
| | | |
skipping to change at line 1909 skipping to change at line 1904
Where: Where:
Algorithm: 1-octet value that indicates the algorithm used for Algorithm: 1-octet value that indicates the algorithm used for
picking the SID. The algorithm values are from the "IGP Algorithm picking the SID. The algorithm values are from the "IGP Algorithm
Types" IANA registry under the "Interior Gateway Protocol (IGP) Types" IANA registry under the "Interior Gateway Protocol (IGP)
Parameters" registry group. Parameters" registry group.
IPv6 Node Global Address: 16-octet value that carries the IPv6 IPv6 Node Global Address: 16-octet value that carries the IPv6
global address associated with the node. global address associated with the node.
5.7.1.1.10. Type 10: SRv6 END.X SID as an Interface ID (Type J) 5.7.1.1.10. Type 10: Segment Type J
The Segment is an SRv6 END.X SID type and is specified as a pair of The Segment is an SRv6 END.X SID type and is specified as a pair of
IPv6 global address and interface ID for local and remote nodes. The IPv6 global address and interface ID for local and remote nodes. The
format of its Segment Descriptor is as follows: format of its segment descriptor is as follows:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| IPv6 Local Node Global Address (16 octets) | | IPv6 Local Node Global Address (16 octets) |
| | | |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Node Interface ID (4 octets) | | Local Node Interface ID (4 octets) |
skipping to change at line 1953 skipping to change at line 1948
IPv6 Remote Node Global Address: 16-octet value that carries the IPv6 Remote Node Global Address: 16-octet value that carries the
IPv6 global address associated with the remote node. This is IPv6 global address associated with the remote node. This is
optional and MAY be set to 0 when not used (e.g., when identifying optional and MAY be set to 0 when not used (e.g., when identifying
point-to-point links). point-to-point links).
Remote Node Interface ID: 4-octet value that carries the interface Remote Node Interface ID: 4-octet value that carries the interface
ID of the remote node identified by the Remote Node Address. This ID of the remote node identified by the Remote Node Address. This
is optional and MAY be set to 0 when not used (e.g., when is optional and MAY be set to 0 when not used (e.g., when
identifying point-to-point links). identifying point-to-point links).
5.7.1.1.11. Type 11: SRv6 END.X SID as an Interface Address (Type K) 5.7.1.1.11. Type 11: Segment Type K
The Segment is an SRv6 END.X SID type and is specified as a pair of The Segment is an SRv6 END.X SID type and is specified as a pair of
IPv6 global addresses for local and remote interface addresses. The IPv6 global addresses for local and remote interface addresses. The
format of its Segment Descriptor is as follows: format of its segment descriptor is as follows:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Global IPv6 Local Interface Address (16 octets) | | IPv6 Local Interface Global Address (16 octets) |
| | | |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Global IPv6 Remote Interface Address (16 octets) | | IPv6 Remote Interface Global Address (16 octets) |
| | | |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 30: Type 11 Segment Descriptor Figure 30: Type 11 Segment Descriptor
Where: Where:
IPv6 Local Address: 16-octet value that carries the local IPv6 IPv6 Local Global Address: 16-octet value that carries the local
address associated with the node's interface. IPv6 address associated with the node's interface.
IPv6 Remote Address: 16-octet value that carries the remote IPv6 IPv6 Remote Global Address: 16-octet value that carries the remote
address associated with the interface on the node's neighbor. IPv6 address associated with the interface on the node's neighbor.
5.7.2. SR Segment List Metric Sub-TLV 5.7.2. SR Segment List Metric Sub-TLV
The SR Segment List Metric sub-TLV reports the computed metric of the The SR Segment List Metric sub-TLV reports the computed metric of the
specific SID-List. It is used to report the type of metric and its specific SID list. It is used to report the type of metric and its
computed value by the computation entity (i.e., either the headend or computed value by the computation entity (i.e., either the headend or
the controller when the path is delegated) when available. More than the controller when the path is delegated) when available. More than
one instance of this sub-TLV may be present in the SR Segment List to one instance of this sub-TLV may be present in the SR Segment List to
report metric values of different metric types. The metric margin report metric values of different metric types. The metric margin
and bound may be optionally reported using this sub-TLV when this and bound may be optionally reported using this sub-TLV when this
information is not being reported using the SR Metric Constraint sub- information is not being reported using the SR Metric Constraint sub-
TLV (refer to Section 5.6.6) at the SR Policy candidate path level. TLV (refer to Section 5.6.6) at the SR Policy candidate path level.
It is a sub-TLV of the SR Segment List TLV and has the following It is a sub-TLV of the SR Segment List TLV and has the following
format: format:
skipping to change at line 2021 skipping to change at line 2016
Figure 31: SR Segment List Metric Sub-TLV Format Figure 31: SR Segment List Metric Sub-TLV Format
Where: Where:
Type: 1207 Type: 1207
Length: 16 octets Length: 16 octets
Metric Type: 1-octet field that identifies the type of metric. The Metric Type: 1-octet field that identifies the type of metric. The
semantics are the same as the Metric Type field in the SR Metric semantics are the same as the metric type field in the SR Metric
Constraint sub-TLV in Section 5.6.6 of this document. Constraint sub-TLV in Section 5.6.6 of this document.
Flags: 1-octet field that indicates the validity of the metric Flags: 1-octet field that indicates the validity of the metric
fields and their semantics. The following bit positions are fields and their semantics. The following bit positions are
defined, and the other bits MUST be cleared by the originator and defined, and the other bits MUST be cleared by the originator and
MUST be ignored by a receiver. MUST be ignored by a receiver.
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|M|A|B|V| | |M|A|B|V| |
skipping to change at line 2086 skipping to change at line 2081
The absolute metric margin, metric bound, and metric values are The absolute metric margin, metric bound, and metric values are
encoded as specified for each metric type. For metric types that are encoded as specified for each metric type. For metric types that are
smaller than 4 octets in size, the most significant bits are filled smaller than 4 octets in size, the most significant bits are filled
with zeros. The percentage metric margin is encoded as an unsigned with zeros. The percentage metric margin is encoded as an unsigned
integer percentage value. integer percentage value.
5.7.3. SR Segment List Bandwidth Sub-TLV 5.7.3. SR Segment List Bandwidth Sub-TLV
The SR Segment List Bandwidth sub-TLV is an optional sub-TLV used to The SR Segment List Bandwidth sub-TLV is an optional sub-TLV used to
report the bandwidth allocated to the specific SID-List by the path report the bandwidth allocated to the specific SID list by the path
computation entity. Only a single instance of this sub-TLV is computation entity. Only a single instance of this sub-TLV is
advertised for a given Segment List. If multiple instances are advertised for a given segment list. If multiple instances are
present, then the first valid one (i.e., not determined to be present, then the first valid one (i.e., not determined to be
malformed as per Section 8.2.2 of [RFC9552]) is used and the rest are malformed as per Section 8.2.2 of [RFC9552]) is used and the rest are
ignored. ignored.
It is a sub-TLV of the SR Segment List TLV and has the following It is a sub-TLV of the SR Segment List TLV and has the following
format: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at line 2118 skipping to change at line 2113
Type: 1216 Type: 1216
Length: 4 octets Length: 4 octets
Bandwidth: 4 octets that specify the allocated bandwidth in unit of Bandwidth: 4 octets that specify the allocated bandwidth in unit of
bytes per second in IEEE floating point format [IEEE754]. bytes per second in IEEE floating point format [IEEE754].
5.7.4. SR Segment List Identifier Sub-TLV 5.7.4. SR Segment List Identifier Sub-TLV
The SR Segment List Identifier sub-TLV is an optional sub-TLV used to The SR Segment List Identifier sub-TLV is an optional sub-TLV used to
report an identifier associated with the specific SID-List. Only a report an identifier associated with the specific SID list. Only a
single instance of this sub-TLV is advertised for a given Segment single instance of this sub-TLV is advertised for a given segment
List. If multiple instances are present, then the first valid one list. If multiple instances are present, then the first valid one
(i.e., not determined to be malformed as per Section 8.2.2 of (i.e., not determined to be malformed as per Section 8.2.2 of
[RFC9552]) is used and the rest are ignored. [RFC9552]) is used and the rest are ignored.
It is a sub-TLV of the SR Segment List TLV and has the following It is a sub-TLV of the SR Segment List TLV and has the following
format: 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 |
skipping to change at line 2146 skipping to change at line 2141
Where: Where:
Type: 1217 Type: 1217
Length: 4 octets Length: 4 octets
Segment List Identifier: 4 octets that carry a 32-bit unsigned non- Segment List Identifier: 4 octets that carry a 32-bit unsigned non-
zero integer that serves as the identifier associated with the zero integer that serves as the identifier associated with the
segment list. A value of 0 indicates that there is no identifier segment list. A value of 0 indicates that there is no identifier
associated with the Segment List. The scope of this identifier is associated with the segment list. The scope of this identifier is
the SR Policy Candidate path. the SR Policy candidate path.
6. Procedures 6. Procedures
The BGP-LS advertisements for the SR Policy Candidate Path NLRI type The BGP-LS advertisements for the SR Policy Candidate Path NLRI type
are generally originated by the headend node for the SR Policies that are generally originated by the headend node for the SR Policies that
are instantiated on its local node (i.e., the headend is the BGP-LS are instantiated on its local node (i.e., the headend is the BGP-LS
Producer). The BGP-LS Producer may also be a node (e.g., a PCE) that Producer). The BGP-LS Producer may also be a node (e.g., a PCE) that
is advertising on behalf of the headend. is advertising on behalf of the headend.
For the reporting of SR Policy Candidate Paths, the NLRI descriptor For the reporting of SR Policy candidate paths, the NLRI descriptor
TLV as specified in Section 4 is used. An SR Policy candidate path TLV as specified in Section 4 is used. An SR Policy candidate path
may be instantiated on the headend node via a local configuration, may be instantiated on the headend node via a local configuration,
PCEP, or BGP SR Policy signaling, and this is indicated via the SR PCEP, or BGP SR Policy signaling, and this is indicated via the SR
Protocol Origin. When a PCE node is the BGP-LS Producer, it uses the Protocol-Origin. When a PCE node is the BGP-LS Producer, it uses the
"in PCEP" variants of the SR Protocol Origin (where available) so as "in PCEP" variants of the SR Protocol-Origin (where available) so as
to distinguish them from advertisements by headend nodes. The SR to distinguish them from advertisements by headend nodes. The SR
Policy Candidate Path's state and attributes are encoded in the BGP- Policy candidate path's state and attributes are encoded in the BGP-
LS Attribute field as SR Policy State TLVs and sub-TLVs as described LS Attribute field as SR Policy State TLVs and sub-TLVs as described
in Section 5. The SR Candidate Path State TLV as defined in in Section 5. The SR Candidate Path State TLV as defined in
Section 5.3 is included to report the state of the candidate path. Section 5.3 is included to report the state of the candidate path.
The SR BSID TLV as defined in Sections 5.1 and 5.2 is included to The SR BSID TLV as defined in Sections 5.1 and 5.2 is included to
report the BSID of the candidate path when one is either specified or report the BSID of the candidate path when one is either specified or
allocated by the headend. The constraints and the optimization allocated by the headend. The constraints and the optimization
metric for the SR Policy Candidate Path are reported using the SR metric for the SR Policy candidate path are reported using the SR
Candidate Path Constraints TLV and its sub-TLVs as described in Candidate Path Constraints TLV and its sub-TLVs as described in
Section 5.6. The SR Segment List TLV is included for each SID- Section 5.6. The SR Segment List TLV is included for each SID
List(s) associated with the candidate path. Each SR Segment List TLV list(s) associated with the candidate path. Each SR Segment List TLV
in turn includes an SR Segment sub-TLV(s) to report the segment(s) in turn includes an SR Segment sub-TLV(s) to report the segment(s)
and its status. The SR Segment List Metric sub-TLV is used to report and its status. The SR Segment List Metric sub-TLV is used to report
the metric values at an individual SID List level. the metric values at an individual SID list level.
7. Manageability Considerations 7. Manageability Considerations
The existing BGP operational and management procedures apply to this The existing BGP operational and management procedures apply to this
document. No new procedures are defined in this document. The document. No new procedures are defined in this document. The
considerations as specified in [RFC9552] apply to this document. considerations as specified in [RFC9552] apply to this document.
In general, the SR Policy headend nodes are responsible for the In general, the SR Policy headend nodes are responsible for the
advertisement of SR Policy state information. advertisement of SR Policy state information.
skipping to change at line 2276 skipping to change at line 2271
+----------------+-------------------------------------+-----------+ +----------------+-------------------------------------+-----------+
| 1215 | SR Metric Constraint | RFC 9857 | | 1215 | SR Metric Constraint | RFC 9857 |
+----------------+-------------------------------------+-----------+ +----------------+-------------------------------------+-----------+
| 1216 | SR Segment List Bandwidth | RFC 9857 | | 1216 | SR Segment List Bandwidth | RFC 9857 |
+----------------+-------------------------------------+-----------+ +----------------+-------------------------------------+-----------+
| 1217 | SR Segment List Identifier | RFC 9857 | | 1217 | SR Segment List Identifier | RFC 9857 |
+----------------+-------------------------------------+-----------+ +----------------+-------------------------------------+-----------+
Table 4: NLRI and Attribute TLV Code Points Table 4: NLRI and Attribute TLV Code Points
8.4. SR Policy Protocol Origin 8.4. SR Policy Protocol-Origin
Per this document, IANA has created and maintains a new registry Per this document, IANA has created and maintains a new registry
called "SR Policy Protocol Origin" under the "Segment Routing" called "SR Policy Protocol-Origin" under the "Segment Routing"
registry group with the allocation policy of Expert Review [RFC8126] registry group with the allocation policy of Expert Review [RFC8126]
using the guidelines for designated experts as specified in using the guidelines for designated experts as specified in
[RFC9256]. This registry contains the code points allocated to the [RFC9256]. This registry contains the code points allocated to the
"Protocol Origin" field defined in Section 4. "Protocol-Origin" field defined in Section 4.
IANA has assigned the initial values as follows: IANA has assigned the initial values as follows:
+=========+================================+===========+ +=========+================================+===========+
| Code | Protocol Origin | Reference | | Code | Protocol-Origin | Reference |
| Point | | | | Point | | |
+=========+================================+===========+ +=========+================================+===========+
| 0 | Reserved | RFC 9857 | | 0 | Reserved | RFC 9857 |
+---------+--------------------------------+-----------+ +---------+--------------------------------+-----------+
| 1 | PCEP | RFC 9857 | | 1 | PCEP | RFC 9857 |
+---------+--------------------------------+-----------+ +---------+--------------------------------+-----------+
| 2 | BGP SR Policy | RFC 9857 | | 2 | BGP SR Policy | RFC 9857 |
+---------+--------------------------------+-----------+ +---------+--------------------------------+-----------+
| 3 | Configuration (CLI, YANG model | RFC 9857 | | 3 | Configuration (CLI, YANG model | RFC 9857 |
| | via NETCONF, etc.) | | | | via NETCONF, etc.) | |
skipping to change at line 2321 skipping to change at line 2316
+---------+--------------------------------+-----------+ +---------+--------------------------------+-----------+
| 30 | Configuration (CLI, YANG model | RFC 9857 | | 30 | Configuration (CLI, YANG model | RFC 9857 |
| | via NETCONF, etc. In PCEP or | | | | via NETCONF, etc. In PCEP or | |
| | when BGP-LS Producer is PCE) | | | | when BGP-LS Producer is PCE) | |
+---------+--------------------------------+-----------+ +---------+--------------------------------+-----------+
| 31-250 | Unassigned | RFC 9857 | | 31-250 | Unassigned | RFC 9857 |
+---------+--------------------------------+-----------+ +---------+--------------------------------+-----------+
| 251-255 | Reserved for Private Use | RFC 9857 | | 251-255 | Reserved for Private Use | RFC 9857 |
+---------+--------------------------------+-----------+ +---------+--------------------------------+-----------+
Table 5: SR Policy Protocol Origin Code Points Table 5: SR Policy Protocol-Origin Code Points
8.5. BGP-LS SR Segment Descriptors 8.5. BGP-LS SR Segment Descriptors
Per this document, IANA has created a registry called "BGP-LS SR Per this document, IANA has created a registry called "BGP-LS SR
Segment Descriptor Types" under the "Border Gateway Protocol - Link Segment Descriptor Types" under the "Border Gateway Protocol - Link
State (BGP-LS) Parameters" registry group with the allocation policy State (BGP-LS) Parameters" registry group with the allocation policy
of Expert Review [RFC8126] using the guidelines for designated of Expert Review [RFC8126] using the guidelines for designated
experts as specified in [RFC9552]. There is also an additional experts as specified in [RFC9552]. There is also an additional
guideline for the designated experts to maintain the alignment guideline for the designated experts to maintain the alignment
between the allocations in this registry with those in the "Segment between the allocations in this registry with those in the "Segment
skipping to change at line 2345 skipping to change at line 2340
Segment Descriptor Types" registry for a new segment type. However, Segment Descriptor Types" registry for a new segment type. However,
this does not mandate that the specification of a new Segment Routing this does not mandate that the specification of a new Segment Routing
Segment Type also requires the specification of its equivalent SR Segment Type also requires the specification of its equivalent SR
Segment Descriptor Type in BGP-LS; that can be done as and when Segment Descriptor Type in BGP-LS; that can be done as and when
required while maintaining alignment. required while maintaining alignment.
This registry contains the code points allocated to the "Segment This registry contains the code points allocated to the "Segment
Type" field defined in Section 5.7.1 and described in Type" field defined in Section 5.7.1 and described in
Section 5.7.1.1. IANA has assigned the initial values as follows: Section 5.7.1.1. IANA has assigned the initial values as follows:
+========+========================================+===========+ +============+====================+===========+
| Code | Segment Descriptor | Reference | | Code Point | Segment Descriptor | Reference |
| Point | | | +============+====================+===========+
+========+========================================+===========+ | 0 | Reserved | RFC 9857 |
| 0 | Reserved | RFC 9857 | +------------+--------------------+-----------+
+--------+----------------------------------------+-----------+ | 1 | Type A Segment | RFC 9857 |
| 1 | (Type A) SR-MPLS Label | RFC 9857 | +------------+--------------------+-----------+
+--------+----------------------------------------+-----------+ | 2 | Type B Segment | RFC 9857 |
| 2 | (Type B) SRv6 SID as IPv6 address | RFC 9857 | +------------+--------------------+-----------+
+--------+----------------------------------------+-----------+ | 3 | Type C Segment | RFC 9857 |
| 3 | (Type C) SR-MPLS Prefix SID as IPv4 | RFC 9857 | +------------+--------------------+-----------+
| | Node Address | | | 4 | Type D Segment | RFC 9857 |
+--------+----------------------------------------+-----------+ +------------+--------------------+-----------+
| 4 | (Type D) SR-MPLS Prefix SID as IPv6 | RFC 9857 | | 5 | Type E Segment | RFC 9857 |
| | Node Global Address | | +------------+--------------------+-----------+
+--------+----------------------------------------+-----------+ | 6 | Type F Segment | RFC 9857 |
| 5 | (Type E) SR-MPLS Adjacency SID as IPv4 | RFC 9857 | +------------+--------------------+-----------+
| | Node Address & Local Interface ID | | | 7 | Type G Segment | RFC 9857 |
+--------+----------------------------------------+-----------+ +------------+--------------------+-----------+
| 6 | (Type F) SR-MPLS Adjacency SID as IPv4 | RFC 9857 | | 8 | Type H Segment | RFC 9857 |
| | Local & Remote Interface Addresses | | +------------+--------------------+-----------+
+--------+----------------------------------------+-----------+ | 9 | Type I Segment | RFC 9857 |
| 7 | (Type G) SR-MPLS Adjacency SID as pair | RFC 9857 | +------------+--------------------+-----------+
| | of IPv6 Global Address & Interface ID | | | 10 | Type J Segment | RFC 9857 |
| | for Local & Remote nodes | | +------------+--------------------+-----------+
+--------+----------------------------------------+-----------+ | 11 | Type K Segment | RFC 9857 |
| 8 | (Type H) SR-MPLS Adjacency SID as pair | RFC 9857 | +------------+--------------------+-----------+
| | of IPv6 Global Addresses for the Local | | | 12-255 | Unassigned | RFC 9857 |
| | & Remote Interface | | +------------+--------------------+-----------+
+--------+----------------------------------------+-----------+
| 9 | (Type I) SRv6 END SID as IPv6 Node | RFC 9857 |
| | Global Address | |
+--------+----------------------------------------+-----------+
| 10 | (Type J) SRv6 END.X SID as pair of | RFC 9857 |
| | IPv6 Global Address & Interface ID for | |
| | Local & Remote nodes | |
+--------+----------------------------------------+-----------+
| 11 | (Type K) SRv6 END.X SID as pair of | RFC 9857 |
| | IPv6 Global Addresses for the Local & | |
| | Remote Interface | |
+--------+----------------------------------------+-----------+
| 12-255 | Unassigned | RFC 9857 |
+--------+----------------------------------------+-----------+
Table 6: BGP-LS SR Segment Descriptor Type Code Points Table 6: BGP-LS SR Segment Descriptor Type
Code Points
8.6. BGP-LS SR Policy Metric Type 8.6. BGP-LS SR Policy Metric Type
Per this document, IANA has created a registry called "BGP-LS SR Per this document, IANA has created a registry called "BGP-LS SR
Policy Metric Types" under the "Border Gateway Protocol - Link State Policy Metric Types" under the "Border Gateway Protocol - Link State
(BGP-LS) Parameters" registry group with the allocation policy of (BGP-LS) Parameters" registry group with the allocation policy of
Expert Review [RFC8126] using the guidelines for designated experts Expert Review [RFC8126] using the guidelines for designated experts
as specified in [RFC9552]. This registry contains the code points as specified in [RFC9552]. This registry contains the code points
allocated to the "Metric Type" field defined in Section 5.7.2. IANA allocated to the metric type field defined in Section 5.7.2. IANA
has assigned the initial values as follows: has assigned the initial values as follows:
+============+================================+===========+ +============+================================+===========+
| Code Point | Metric Type | Reference | | Code Point | Metric Type | Reference |
+============+================================+===========+ +============+================================+===========+
| 0 | IGP | RFC 9857 | | 0 | IGP | RFC 9857 |
+------------+--------------------------------+-----------+ +------------+--------------------------------+-----------+
| 1 | Min Unidirectional Delay | RFC 9857 | | 1 | Min Unidirectional Delay | RFC 9857 |
+------------+--------------------------------+-----------+ +------------+--------------------------------+-----------+
| 2 | TE | RFC 9857 | | 2 | TE | RFC 9857 |
 End of changes. 112 change blocks. 
207 lines changed or deleted 189 lines changed or added

This html diff was produced by rfcdiff 1.48.