rfc9831.original   rfc9831.txt 
Network Working Group K. Talaulikar, Ed. Internet Engineering Task Force (IETF) K. Talaulikar, Ed.
Internet-Draft C. Filsfils Request for Comments: 9831 C. Filsfils
Intended status: Experimental Cisco Systems Category: Experimental Cisco Systems
Expires: 24 August 2025 S. Previdi ISSN: 2070-1721 S. Previdi
Huawei Technologies Huawei Technologies
P. Mattes P. Mattes
Microsoft Microsoft
D. Jain D. Jain
Google Google
20 February 2025 August 2025
Segment Routing Segment Types Extensions for BGP SR Policy Segment Routing Segment Types Extensions for BGP SR Policy
draft-ietf-idr-bgp-sr-segtypes-ext-08
Abstract Abstract
This document specifies the signaling of additional Segment Routing This document specifies the signaling of additional Segment Routing
Segment Types for signaling of Segment Routing (SR) Policies in BGP (SR) Segment Types for SR Policies in BGP using the SR Policy
using SR Policy Subsequent Address Family Identifier. Subsequent Address Family Identifier (SAFI).
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This document is not an Internet Standards Track specification; it is
provisions of BCP 78 and BCP 79. published for examination, experimental implementation, and
evaluation.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document defines an Experimental Protocol for the Internet
and may be updated, replaced, or obsoleted by other documents at any community. This document is a product of the Internet Engineering
time. It is inappropriate to use Internet-Drafts as reference Task Force (IETF). It represents the consensus of the IETF
material or to cite them other than as "work in progress." community. It has received public review and has been approved for
publication by the Internet Engineering Steering Group (IESG). Not
all documents approved by the IESG are candidates for any level of
Internet Standard; see Section 2 of RFC 7841.
This Internet-Draft will expire on 24 August 2025. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc9831.
Copyright Notice Copyright Notice
Copyright (c) 2025 IETF Trust and the persons identified as the Copyright (c) 2025 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents
license-info) in effect on the date of publication of this document. (https://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. Code Components carefully, as they describe your rights and restrictions with respect
extracted from this document must include Revised BSD License text as to this document. Code Components extracted from this document must
described in Section 4.e of the Trust Legal Provisions and are include Revised BSD License text as described in Section 4.e of the
provided without warranty as described in the Revised BSD License. Trust Legal Provisions and are provided without warranty as described
in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 1.1. Requirements Language
2. Segment Type Sub-TLVs . . . . . . . . . . . . . . . . . . . . 3 2. Segment Type Sub-TLVs
2.1. Segment Type C - SR-MPLS Prefix SID for IPv4 . . . . . . 4 2.1. Segment Type C: SR-MPLS Prefix SID for IPv4
2.2. Segment Type D - SR-MPLS Prefix SID for IPv6 . . . . . . 5 2.2. Segment Type D: SR-MPLS Prefix SID for IPv6
2.3. Segment Type E - SR-MPLS Adjacency SID for IPv4 with an 2.3. Segment Type E: SR-MPLS Adjacency SID for IPv4 with an
Interface ID . . . . . . . . . . . . . . . . . . . . . . 5 Interface ID
2.4. Segment Type F - SR-MPLS Adjacency SID for IPv4 with an 2.4. Segment Type F: SR-MPLS Adjacency SID for IPv4 with an
Interface Address . . . . . . . . . . . . . . . . . . . 6 Interface Address
2.5. Segment Type G - SR-MPLS Adjacency SID for IPv6 with an 2.5. Segment Type G: SR-MPLS Adjacency SID for IPv6 with an
Interface ID . . . . . . . . . . . . . . . . . . . . . . 7 Interface ID
2.6. Segment Type H - SR-MPLS Adjacency SID for IPv6 with an 2.6. Segment Type H: SR-MPLS Adjacency SID for IPv6 with an
Interface Address . . . . . . . . . . . . . . . . . . . 9 Interface Address
2.7. Segment Type I - SRv6 END SID as IPv6 Node Address . . . 9 2.7. Segment Type I: SRv6 END SID as IPv6 Node Address
2.8. Segment Type J - SRv6 END.X SID as an Interface ID . . . 11 2.8. Segment Type J: SRv6 END.X SID as an Interface ID
2.9. Segment Type K - SRv6 END.X SID as an Interface 2.9. Segment Type K: SRv6 END.X SID as an Interface Address
Address . . . . . . . . . . . . . . . . . . . . . . . . 12 2.10. SR Policy Segment Flags
2.10. SR Policy Segment Flags . . . . . . . . . . . . . . . . . 14 3. IANA Considerations
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 3.1. SR Policy Segment List Sub-TLVs
3.1. SR Policy Segment List Sub-TLVs . . . . . . . . . . . . . 15 3.2. SR Policy Segment Flags
3.2. SR Policy Segment Flags . . . . . . . . . . . . . . . . . 15 4. Security Considerations
4. Security Considerations . . . . . . . . . . . . . . . . . . . 15 5. Manageability Considerations
5. Manageability Considerations . . . . . . . . . . . . . . . . 16 6. Normative References
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 16 Acknowledgments
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 Authors' Addresses
7.1. Normative References . . . . . . . . . . . . . . . . . . 16
7.2. Informational References . . . . . . . . . . . . . . . . 17
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17
1. Introduction 1. Introduction
BGP Segment Routing (SR) Policy Subsequent Address Family Identifier The BGP Segment Routing (SR) Policy Subsequent Address Family
(SAFI) was introduced by [I-D.ietf-idr-sr-policy-safi] for the Identifier (SAFI) was introduced by [RFC9830] for the advertisement
advertisement of SR Policy [RFC8402]. [I-D.ietf-idr-sr-policy-safi] of SR Policies [RFC8402]. [RFC9830] introduced the base SR Segment
introduced the base SR Segment Types A and B as specified by the SR Types A and B as specified by the SR Policy Architecture [RFC9256].
Policy Architecture [RFC9256].
This document specifies the extensions for the advertisement of the This document specifies the extensions for the advertisement of the
remaining SR Segment Types defined in [RFC9256] in the SR Policy SAFI remaining SR Segment Types defined in [RFC9256] in the SR Policy SAFI
for both SR-MPLS [RFC8660] and SRv6 [RFC8754] [RFC8986]. for both SR-MPLS (see [RFC8660]) and Segment Routing over IPv6 (SRv6)
(see [RFC8754] and [RFC8986]).
The extensions in this document do not impact the SR Policy The extensions in this document do not impact the SR Policy
operations or fault management as specified in operations or fault management as specified in [RFC9830].
[I-D.ietf-idr-sr-policy-safi].
1.1. Requirements Language 1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in
14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
2. Segment Type Sub-TLVs 2. Segment Type Sub-TLVs
The Segment List sub-TLV [I-D.ietf-idr-sr-policy-safi] encodes a The Segment List sub-TLV [RFC9830] encodes a single explicit path
single explicit path towards the endpoint as described in section 5.1 towards the endpoint as described in Section 5.1 of [RFC9256]. The
of [RFC9256]. The Segment List sub-TLV includes the elements of the Segment List sub-TLV includes the elements of the paths (i.e.,
paths (i.e., segments). segments).
A Segment sub-TLV describes a single segment in a segment list (i.e., A Segment sub-TLV describes a single segment in a segment list (i.e.,
a single element of the explicit path). a single element of the explicit path).
Section 4 of [RFC9256] defines several Segment Types for SR-MPLS and Section 4 of [RFC9256] defines several Segment Types for SR-MPLS and
SRv6 that are listed below as a reminder: SRv6 that are listed below as a reminder:
Type A: SR-MPLS Label Type A: SR-MPLS Label
Type B: SRv6 SID
Type C: IPv4 Prefix with optional SR Algorithm
Type D: IPv6 Global Prefix with optional SR Algorithm for SR-MPLS
Type E: IPv4 Prefix with Local Interface ID
Type F: IPv4 Addresses for link endpoints as Local, Remote pair
Type G: IPv6 Prefix and Interface ID for link endpoints as Local,
Remote pair for SR-MPLS
Type H: IPv6 Addresses for link endpoints as Local, Remote pair
for SR-MPLS
Type I: IPv6 Global Prefix with optional SR Algorithm for SRv6
Type J: IPv6 Prefix and Interface ID for link endpoints as Local,
Remote pair for SRv6
Type K: IPv6 Addresses for link endpoints as Local, Remote pair
for SRv6
Figure 1: SR Segment Types Type B: SRv6 SID
[I-D.ietf-idr-sr-policy-safi] specifies Segment Type Sub-TLVs for the Type C: IPv4 Prefix with optional SR Algorithm
segment types A and B. The following sub-sections specify the sub-
TLVs used for encoding each of the other Segment Types above.
As specified in sections 2.4.4 and 2.4.4.2 of Type D: IPv6 Global Prefix with optional SR Algorithm for SR-MPLS
[I-D.ietf-idr-sr-policy-safi], validation of an explicit path encoded
by the Segment List sub-TLV is beyond the scope of BGP and performed
by the Segment Routing Policy Module (SRPM) as described in section 5
of [RFC9256]. As specified in section 5.1 of [RFC9256], a mix of SR-
MPLS and SRv6 segments make the segment-list invalid.
2.1. Segment Type C - SR-MPLS Prefix SID for IPv4 Type E: IPv4 Prefix with Local Interface ID
The Type C Segment Sub-TLV encodes an IPv4 node address, SR Type F: IPv4 Addresses for link endpoints as Local, Remote pair
Algorithm, and an optional SR-MPLS SID. The format is as follows:
Type G: IPv6 Prefix and Interface ID for link endpoints as Local,
Remote pair for SR-MPLS
Type H: IPv6 Addresses for link endpoints as Local, Remote pair for
SR-MPLS
Type I: IPv6 Global Prefix with optional SR Algorithm for SRv6
Type J: IPv6 Prefix and Interface ID for link endpoints as Local,
Remote pair for SRv6
Type K: IPv6 Addresses for link endpoints as Local, Remote pair for
SRv6
[RFC9830] specifies Segment Type Sub-TLVs for the Segment Types A and
B. The following subsections specify the sub-TLVs used for encoding
each of the other Segment Types above.
As specified in Sections 2.4.4 and 2.4.4.2 of [RFC9830], validation
of an explicit path encoded by the Segment List sub-TLV is beyond the
scope of BGP and performed by the Segment Routing Policy Module
(SRPM) as described in Section 5 of [RFC9256]. As specified in
Section 5.1 of [RFC9256], a mix of SR-MPLS and SRv6 segments make the
segment-list invalid.
2.1. Segment Type C: SR-MPLS Prefix SID for IPv4
The Type C Segment sub-TLV encodes an IPv4 node address, SR
Algorithm, and an optional SR-MPLS Segment Identifier (SID). The
format 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | SR Algorithm | | Type | Length | Flags | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Node Address (4 octets) | | IPv4 Node Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SR-MPLS SID (optional, 4 octets) | | SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: Type C Segment sub-TLV Figure 1: Type C Segment Sub-TLV
where: Where:
* Type: 3. Type: 3
* Length: Specifies the length of the value field (i.e., not Length: Specifies the length of the value field (i.e., not including
including Type and Length fields) in terms of octets. The value Type and Length fields) in terms of octets. The value MUST be 10
MUST be 10 when the SR-MPLS SID is present, else it MUST be 6. when the SR-MPLS SID is present; else, it MUST be 6.
* Flags: 1 octet of flags as defined in Section 2.10. Flags: 1 octet of flags as defined in Section 2.10.
* SR Algorithm: 1-octet specifying SR Algorithm as described in SR Algorithm: 1 octet specifying the SR Algorithm as described in
section 3.1.1 in [RFC8402] when A-Flag as defined in Section 2.10 Section 3.1.1 of [RFC8402] when the A-Flag as defined in
is set. SR Algorithm is used by SRPM Section 2.10 is set. The SR Algorithm is used by the SRPM
[I-D.ietf-idr-sr-policy-safi] as described in section 4 in [RFC9830] as described in Section 4 of [RFC9256]. When the A-Flag
[RFC9256]. When A-Flag is not set, this field MUST be set to zero is not set, this field MUST be set to zero on transmission and
on transmission and MUST be ignored on receipt. MUST be ignored on receipt.
* IPv4 Node Address: a 4-octet IPv4 address representing a node. IPv4 Node Address: A 4-octet IPv4 address representing a node.
* SR-MPLS SID: optional, 4-octet field containing label, TC, S and SR-MPLS SID: Optional. A 4-octet field containing a label, Traffic
TTL as defined for Segment Type A [I-D.ietf-idr-sr-policy-safi]. Class (TC), bottom-of-stack (S), and TTL as defined for Segment
Type A [RFC9830].
2.2. Segment Type D - SR-MPLS Prefix SID for IPv6 2.2. Segment Type D: SR-MPLS Prefix SID for IPv6
The Type D Segment Sub-TLV encodes an IPv6 node address, SR The Type D Segment sub-TLV encodes an IPv6 node address, SR
Algorithm, and an optional SR-MPLS SID. The format is as follows: Algorithm, and an optional SR-MPLS SID. The format 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | SR Algorithm | | Type | Length | Flags | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Node Address (16 octets) // // IPv6 Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SR-MPLS SID (optional, 4 octets) | | SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: Type D Segment sub-TLV Figure 2: Type D Segment Sub-TLV
where: Where:
* Type: 4 Type: 4
* Length: Specifies the length of the value field (i.e., not Length: Specifies the length of the value field (i.e., not including
including Type and Length fields) in terms of octets. The value Type and Length fields) in terms of octets. The value MUST be 22
MUST be 22 when the SR-MPLS SID is present, else it MUST be 18. when the SR-MPLS SID is present; else, it MUST be 18.
* Flags: 1 octet of flags as defined in Section 2.10. Flags: 1 octet of flags as defined in Section 2.10.
* SR Algorithm: 1-octet specifying SR Algorithm as described in SR Algorithm: 1 octet specifying the SR Algorithm as described in
section 3.1.1 in [RFC8402] when A-Flag as defined in Section 2.10 Section 3.1.1 of [RFC8402] when the A-Flag as defined in
is set. SR Algorithm is used by SRPM Section 2.10 is set. The SR Algorithm is used by the SRPM
[I-D.ietf-idr-sr-policy-safi] as described in section 4 in [RFC9830] as described in Section 4 of [RFC9256]. When the A-Flag
[RFC9256]. When A-Flag is not set, this field MUST be set to zero is not set, this field MUST be set to zero on transmission and
on transmission and MUST be ignored on receipt. MUST be ignored on receipt.
* IPv6 Node Address: a 16-octet IPv6 address representing a node. IPv6 Node Address: A 16-octet IPv6 address representing a node.
* SR-MPLS SID: optional, 4-octet field containing label, TC, S and SR-MPLS SID: Optional. A 4-octet field containing a label, TC, S,
TTL as defined for Segment Type A [I-D.ietf-idr-sr-policy-safi]. and TTL as defined for Segment Type A [RFC9830].
2.3. Segment Type E - SR-MPLS Adjacency SID for IPv4 with an Interface 2.3. Segment Type E: SR-MPLS Adjacency SID for IPv4 with an Interface
ID ID
The Type E Segment Sub-TLV encodes an IPv4 node address, a local The Type E Segment sub-TLV encodes an IPv4 node address, a local
interface Identifier (Local Interface ID), and an optional SR-MPLS interface Identifier (Local Interface ID), and an optional SR-MPLS
SID. The format is as follows: SID. The format 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | RESERVED | | Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Interface ID (4 octets) | | Local Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Node Address (4 octets) | | IPv4 Node Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SR-MPLS SID (optional, 4 octets) | | SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: Type E Segment sub-TLV Figure 3: Type E Segment Sub-TLV
where: Where:
* Type: 5. Type: 5
* Length: Specifies the length of the value field (i.e., not Length: Specifies the length of the value field (i.e., not including
including Type and Length fields) in terms of octets. The value Type and Length fields) in terms of octets. The value MUST be 14
MUST be 14 when the SR-MPLS SID is present, else it MUST be 10. when the SR-MPLS SID is present; else, it MUST be 10.
* Flags: 1 octet of flags as defined in Section 2.10. Flags: 1 octet of flags as defined in Section 2.10.
* RESERVED: 1 octet of reserved bits. This field MUST be set to RESERVED: 1 octet of reserved bits. This field MUST be set to zero
zero on transmission and MUST be ignored on receipt. on transmission and MUST be ignored on receipt.
* Local Interface ID: 4 octets of interface index of local interface Local Interface ID: 4 octets of interface index of local interface
(refer TLV 258 of [RFC9552]). (refer to TLV 258 of [RFC9552]).
* IPv4 Node Address: a 4-octet IPv4 address representing a node. IPv4 Node Address: A 4-octet IPv4 address representing a node.
* SR-MPLS SID: optional, 4-octet field containing label, TC, S and SR-MPLS SID: Optional. A 4-octet field containing a label, TC, S,
TTL as defined for Segment Type A [I-D.ietf-idr-sr-policy-safi]. and TTL as defined for Segment Type A [RFC9830].
2.4. Segment Type F - SR-MPLS Adjacency SID for IPv4 with an Interface 2.4. Segment Type F: SR-MPLS Adjacency SID for IPv4 with an Interface
Address Address
The Type F Segment Sub-TLV encodes an adjacency local address, an The Type F Segment sub-TLV encodes an adjacency local address, an
adjacency remote address, and an optional SR-MPLS SID. The format is adjacency remote address, and an optional SR-MPLS SID. The format is
as follows: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | RESERVED | | Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local IPv4 Address (4 octets) | | Local IPv4 Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote IPv4 Address (4 octets) | | Remote IPv4 Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SR-MPLS SID (optional, 4 octets) | | SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5: Type F Segment sub-TLV Figure 4: Type F Segment Sub-TLV
where: Where:
* Type: 6. Type: 6
* Length: Specifies the length of the value field (i.e., not Length: Specifies the length of the value field (i.e., not including
including Type and Length fields) in terms of octets. The value Type and Length fields) in terms of octets. The value MUST be 14
MUST be 14 when the SR-MPLS SID is present, else it MUST be 10. when the SR-MPLS SID is present; else, it MUST be 10.
* Flags: 1 octet of flags as defined in Section 2.10. Flags: 1 octet of flags as defined in Section 2.10.
* RESERVED: 1 octet of reserved bits. This field MUST be set to RESERVED: 1 octet of reserved bits. This field MUST be set to zero
zero on transmission and MUST be ignored on receipt. on transmission and MUST be ignored on receipt.
* Local IPv4 Address: a 4-octet IPv4 address representing the local Local IPv4 Address: A 4-octet IPv4 address representing the local
link address of the node. link address of the node.
* Remote IPv4 Address: a 4-octet IPv4 address representing the link Remote IPv4 Address: A 4-octet IPv4 address representing the link
address of the neighbor node. address of the neighbor node.
* SR-MPLS SID: optional, 4-octet field containing label, TC, S and SR-MPLS SID: Optional. A 4-octet field containing a label, TC, S,
TTL as defined for Segment Type A [I-D.ietf-idr-sr-policy-safi]. and TTL as defined for Segment Type A [RFC9830].
2.5. Segment Type G - SR-MPLS Adjacency SID for IPv6 with an Interface 2.5. Segment Type G: SR-MPLS Adjacency SID for IPv6 with an Interface
ID ID
The Type G Segment Sub-TLV encodes an IPv6 link-local adjacency with The Type G Segment sub-TLV encodes an IPv6 link-local adjacency with
IPv6 local node address, a local interface identifier (Local an IPv6 local node address, a local interface identifier (Local
Interface ID), IPv6 remote node address, a remote interface Interface ID), an IPv6 remote node address, a remote interface
identifier (Remote Interface ID), and an optional SR-MPLS SID. The identifier (Remote Interface ID), and an optional SR-MPLS SID. The
format is as follows: format 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | RESERVED | | Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Interface ID (4 octets) | | Local Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Local Node Address (16 octets) // // IPv6 Local Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote Interface ID (4 octets) | | Remote Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Remote Node Address (16 octets) // // IPv6 Remote Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SR-MPLS SID (optional, 4 octets) | | SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 6: Type G Segment sub-TLV Figure 5: Type G Segment Sub-TLV
where: Where:
* Type: 7 Type: 7
* Length: Specifies the length of the value field (i.e., not Length: Specifies the length of the value field (i.e., not including
including Type and Length fields) in terms of octets. The value Type and Length fields) in terms of octets. The value MUST be 46
MUST be 46 when the SR-MPLS SID is present, else it MUST be 42. when the SR-MPLS SID is present; else, it MUST be 42.
* Flags: 1 octet of flags as defined in Section 2.10. Flags: 1 octet of flags as defined in Section 2.10.
* RESERVED: 1 octet of reserved bits. This field MUST be set to RESERVED: 1 octet of reserved bits. This field MUST be set to zero
zero on transmission and MUST be ignored on receipt. on transmission and MUST be ignored on receipt.
* Local Interface ID: 4 octets of interface index of local interface Local Interface ID: 4 octets of interface index of local interface
(refer TLV 258 of [RFC9552]). (refer to TLV 258 of [RFC9552]).
* IPv6 Local Node Address: a 16-octet IPv6 address representing the IPv6 Local Node Address: A 16-octet IPv6 address representing the
node. node.
* Remote Interface ID: 4 octets of interface index of remote Remote Interface ID: 4 octets of interface index of remote interface
interface (refer TLV 258 of [RFC9552]). The value MAY be set to (refer to TLV 258 of [RFC9552]). The value MAY be set to zero
zero when the local node address and interface identifiers are when the local node address and interface identifiers are
sufficient to describe the link. sufficient to describe the link.
* IPv6 Remote Node Address: a 16-octet IPv6 address. The value MAY IPv6 Remote Node Address: A 16-octet IPv6 address. The value MAY be
be set to zero when the local node address and interface set to zero when the local node address and interface identifiers
identifiers are sufficient to describe the link. are sufficient to describe the link.
* SR-MPLS SID: optional, 4-octet field containing label, TC, S and SR-MPLS SID: Optional. A 4-octet field containing a label, TC, S,
TTL as defined for Segment Type A [I-D.ietf-idr-sr-policy-safi]. and TTL as defined for Segment Type A [RFC9830].
2.6. Segment Type H - SR-MPLS Adjacency SID for IPv6 with an Interface 2.6. Segment Type H: SR-MPLS Adjacency SID for IPv6 with an Interface
Address Address
The Type H Segment Sub-TLV encodes an adjacency local address, an The Type H Segment sub-TLV encodes an adjacency local address, an
adjacency remote address, and an optional SR-MPLS SID. The format is adjacency remote address, and an optional SR-MPLS SID. The format is
as follows: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | RESERVED | | Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Local IPv6 Address (16 octets) // // Local IPv6 Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Remote IPv6 Address (16 octets) // // Remote IPv6 Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SR-MPLS SID (optional, 4 octets) | | SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 7: Type H Segment sub-TLV Figure 6: Type H Segment Sub-TLV
where: Where:
* Type: 8 Type: 8
* Length: Specifies the length of the value field (i.e., not Length: Specifies the length of the value field (i.e., not including
including Type and Length fields) in terms of octets. The value Type and Length fields) in terms of octets. The value MUST be 38
MUST be 38 when the SR-MPLS SID is present, else it MUST be 34. when the SR-MPLS SID is present; else, it MUST be 34.
* Flags: 1 octet of flags as defined in Section 2.10. Flags: 1 octet of flags as defined in Section 2.10.
* RESERVED: 1 octet of reserved bits. This field MUST be set to RESERVED: 1 octet of reserved bits. This field MUST be set to zero
zero on transmission and MUST be ignored on receipt. on transmission and MUST be ignored on receipt.
* Local IPv6 Address: a 16-octet IPv6 address representing the local Local IPv6 Address: A 16-octet IPv6 address representing the local
link address of the node. link address of the node.
* Remote IPv6 Address: a 16-octet IPv6 address representing the link Remote IPv6 Address: A 16-octet IPv6 address representing the link
address of the neighbor node. address of the neighbor node.
* SR-MPLS SID: optional, 4-octet field containing label, TC, S and SR-MPLS SID: Optional. A 4-octet field containing a label, TC, S,
TTL as defined for Segment Type A [I-D.ietf-idr-sr-policy-safi]. and TTL as defined for Segment Type A [RFC9830].
2.7. Segment Type I - SRv6 END SID as IPv6 Node Address 2.7. Segment Type I: SRv6 END SID as IPv6 Node Address
The Type I Segment Sub-TLV encodes an IPv6 node address, SR The Type I Segment sub-TLV encodes an IPv6 node address, an SR
Algorithm, and an optional SRv6 SID. The format is as follows: Algorithm, and an optional SRv6 SID. The format 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | SR Algorithm | | Type | Length | Flags | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Node Address (16 octets) // // IPv6 Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 SID (optional, 16 octets) // // SRv6 SID (optional, 16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 Endpoint Behavior and SID Structure // // SRv6 Endpoint Behavior and SID Structure //
// (optional, 8 octets) // // (optional, 8 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 8: Type I Segment sub-TLV Figure 7: Type I Segment Sub-TLV
where: Where:
* Type: 14 Type: 14
* Length: Specifies the length of the value field (i.e., not Length: Specifies the length of the value field (i.e., not including
including Type and Length fields) in terms of octets. The value Type and Length fields) in terms of octets. The value MUST be one
MUST be one of: 42 when both SRv6 SID and SRv6 Endpoint Behavior & of the following:
SID Structure are present, 34 when only SRv6 SID is present, or 18
when the SRv6 SID is not present.
* Flags: 1 octet of flags as defined in Section 2.10. * 42 when both SRv6 SID and SRv6 Endpoint Behavior and SID
Structure are present,
* 34 when only SRv6 SID is present, or
* 18 when the SRv6 SID is not present.
* SR Algorithm: 1 octet specifying SR Algorithm as described in Flags: 1 octet of flags as defined in Section 2.10.
section 3.1.1 in [RFC8402] when A-Flag as defined in Section 2.10
is set. SR Algorithm is used by SRPM
[I-D.ietf-idr-sr-policy-safi] as described in section 4 in
[RFC9256]. When A-Flag is not set, this field MUST be set to zero
on transmission and MUST be ignored on receipt.
* IPv6 Node Address: a 16-octet IPv6 address representing the node. SR Algorithm: 1 octet specifying the SR Algorithm as described in
Section 3.1.1 of [RFC8402] when the A-Flag as defined in
Section 2.10 is set. The SR Algorithm is used by the SRPM
[RFC9830] as described in Section 4 of [RFC9256]. When the A-Flag
is not set, this field MUST be set to zero on transmission and
MUST be ignored on receipt.
* SRv6 SID: optional, a 16-octet IPv6 address. The value 0 MAY be IPv6 Node Address: A 16-octet IPv6 address representing the node.
SRv6 SID: Optional. A 16-octet IPv6 address. The value 0 MAY be
used when the controller wants to indicate the desired SRv6 used when the controller wants to indicate the desired SRv6
Endpoint Behavior or SID Structure without specifying the SID. Endpoint Behavior or SID Structure without specifying the SID.
* SRv6 Endpoint Behavior and SID Structure: Optional, as defined in SRv6 Endpoint Behavior and SID Structure: Optional, as defined in
section 2.4.4.2.4 of [I-D.ietf-idr-sr-policy-safi]. The SRv6 Section 2.4.4.2.4 of [RFC9830]. The SRv6 Endpoint Behavior and
Endpoint Behavior and SID Structure MUST NOT be included when the SID Structure MUST NOT be included when the SRv6 SID has not been
SRv6 SID has not been included. included.
The TLV 10 defined for the advertisement of Segment Type I in the TLV 10 defined for the advertisement of Segment Type I in the early
early draft versions of [I-D.ietf-idr-sr-policy-safi] has been draft versions of [RFC9830] has been deprecated to avoid backward-
deprecated to avoid backward compatibility issues. compatibility issues.
2.8. Segment Type J - SRv6 END.X SID as an Interface ID 2.8. Segment Type J: SRv6 END.X SID as an Interface ID
The Type J Segment Sub-TLV encodes an IPv6 link-local adjacency with The Type J Segment sub-TLV encodes an IPv6 link-local adjacency with
local node address, a local interface identifier (Local Interface a local node address, a local interface identifier (Local Interface
ID), remote IPv6 node address, a remote interface identifier (Remote ID), a remote IPv6 node address, a remote interface identifier
Interface ID), and an optional SRv6 SID. The format is as follows: (Remote Interface ID), and an optional SRv6 SID. The format 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | SR Algorithm | | Type | Length | Flags | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Interface ID (4 octets) | | Local Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Local Node Address (16 octets) // // IPv6 Local Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote Interface ID (4 octets) | | Remote Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Remote Node Address (16 octets) // // IPv6 Remote Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 SID (optional, 16 octets) // // SRv6 SID (optional, 16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 Endpoint Behavior and SID Structure // // SRv6 Endpoint Behavior and SID Structure //
// (optional, 8 octets) // // (optional, 8 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 9: Type J Segment sub-TLV Figure 8: Type J Segment Sub-TLV
where: Where:
* Type: 15 Type: 15
* Length: Specifies the length of the value field (i.e., not Length: Specifies the length of the value field (i.e., not including
including Type and Length fields) in terms of octets. The value Type and Length fields) in terms of octets. The value MUST be one
MUST be one of: 66 when both SRv6 SID and SRv6 Endpoint Behavior & of the following:
SID Structure are present, 58 when only SRv6 SID is present, or 42
when the SRv6 SID is not present.
* Flags: 1 octet of flags as defined in Section 2.10. * 66 when both SRv6 SID and SRv6 Endpoint Behavior and SID
Structure are present,
* 58 when only SRv6 SID is present, or
* 42 when the SRv6 SID is not present.
* SR Algorithm: 1-octet specifying SR Algorithm as described in Flags: 1 octet of flags as defined in Section 2.10.
section 3.1.1 in [RFC8402] when A-Flag as defined in Section 2.10
is set. SR Algorithm is used by SRPM
[I-D.ietf-idr-sr-policy-safi] as described in section 4 in
[RFC9256]. When A-Flag is not set, this field MUST be set to zero
on transmission and MUST be ignored on receipt.
* Local Interface ID: 4 octets of interface index of local interface SR Algorithm: 1 octet specifying the SR Algorithm as described in
(refer TLV 258 of [RFC9552]). Section 3.1.1 of [RFC8402] when the A-Flag as defined in
Section 2.10 is set. The SR Algorithm is used by the SRPM
[RFC9830] as described in Section 4 of [RFC9256]. When the A-Flag
is not set, this field MUST be set to zero on transmission and
MUST be ignored on receipt.
* IPv6 Local Node Address: a 16-octet IPv6 address representing the Local Interface ID: 4 octets of interface index of local interface
(refer to TLV 258 of [RFC9552]).
IPv6 Local Node Address: A 16-octet IPv6 address representing the
node. node.
* Remote Interface ID: 4 octets of interface index of remote Remote Interface ID: 4 octets of interface index of remote interface
interface (refer TLV 258 of [RFC9552]). The value MAY be set to (refer to TLV 258 of [RFC9552]). The value MAY be set to zero
zero when the local node address and interface identifiers are when the local node address and interface identifiers are
sufficient to describe the link. sufficient to describe the link.
* IPv6 Remote Node Address: a 16-octet IPv6 address. The value MAY IPv6 Remote Node Address: A 16-octet IPv6 address. The value MAY be
be set to zero when the local node address and interface set to zero when the local node address and interface identifiers
identifiers are sufficient to describe the link. are sufficient to describe the link.
* SRv6 SID: optional, a 16-octet IPv6 address. The value 0 MAY be SRv6 SID: Optional. A 16-octet IPv6 address. The value 0 MAY be
used when the controller wants to indicate the desired SRv6 used when the controller wants to indicate the desired SRv6
Endpoint Behavior or SID Structure without specifying the SID. Endpoint Behavior or SID Structure without specifying the SID.
* SRv6 Endpoint Behavior and SID Structure: Optional, as defined in SRv6 Endpoint Behavior and SID Structure: Optional, as defined in
section 2.4.4.2.4 of [I-D.ietf-idr-sr-policy-safi]. The SRv6 Section 2.4.4.2.4 of [RFC9830]. The SRv6 Endpoint Behavior and
Endpoint Behavior and SID Structure MUST NOT be included when the SID Structure MUST NOT be included when the SRv6 SID has not been
SRv6 SID has not been included. included.
The TLV 11 defined for the advertisement of Segment Type J in the TLV 11 defined for the advertisement of Segment Type J in the early
early draft versions of [I-D.ietf-idr-sr-policy-safi] has been draft versions of [RFC9830] has been deprecated to avoid backward-
deprecated to avoid backward compatibility issues. compatibility issues.
2.9. Segment Type K - SRv6 END.X SID as an Interface Address 2.9. Segment Type K: SRv6 END.X SID as an Interface Address
The Type K Segment Sub-TLV encodes an adjacency local address, an The Type K Segment sub-TLV encodes an adjacency local address, an
adjacency remote address, and an optional SRv6 SID. The format is as adjacency remote address, and an optional SRv6 SID. The format 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | SR Algorithm | | Type | Length | Flags | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Local IPv6 Address (16 octets) // // Local IPv6 Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Remote IPv6 Address (16 octets) // // Remote IPv6 Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 SID (optional, 16 octets) // // SRv6 SID (optional, 16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 Endpoint Behavior and SID Structure // // SRv6 Endpoint Behavior and SID Structure //
// (optional, 8 octets) // // (optional, 8 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 10: Type K Segment sub-TLV Figure 9: Type K Segment Sub-TLV
where: Where:
* Type: 16 Type: 16
* Length: Specifies the length of the value field (i.e., not Length: Specifies the length of the value field (i.e., not including
including Type and Length fields) in terms of octets. The value Type and Length fields) in terms of octets. The value MUST be one
MUST be one of: 58 when both SRv6 SID and SRv6 Endpoint Behavior & of the following:
SID Structure are present, 50 when only SRv6 SID is present, or 34
when the SRv6 SID is not present.
* Flags: 1 octet of flags as defined in Section 2.10. * 58 when both SRv6 SID and SRv6 Endpoint Behavior and SID
Structure are present,
* 50 when only SRv6 SID is present, or
* 34 when the SRv6 SID is not present.
* SR Algorithm: 1-octet specifying SR Algorithm as described in Flags: 1 octet of flags as defined in Section 2.10.
section 3.1.1 in [RFC8402] when A-Flag as defined in Section 2.10
is set. SR Algorithm is used by SRPM
[I-D.ietf-idr-sr-policy-safi] as described in section 4 in
[RFC9256]. When A-Flag is not set, this field MUST be set to zero
on transmission and MUST be ignored on receipt.
* Local IPv6 Address: a 16-octet IPv6 address representing the local SR Algorithm: 1 octet specifying the SR Algorithm as described in
Section 3.1.1 of [RFC8402] when the A-Flag as defined in
Section 2.10 is set. The SR Algorithm is used by the SRPM
[RFC9830] as described in Section 4 of [RFC9256]. When the A-Flag
is not set, this field MUST be set to zero on transmission and
MUST be ignored on receipt.
Local IPv6 Address: A 16-octet IPv6 address representing the local
link address of the node. link address of the node.
* Remote IPv6 Address: a 16-octet IPv6 address representing the link Remote IPv6 Address: A 16-octet IPv6 address representing the link
address of the neighbor node. address of the neighbor node.
* SRv6 SID: optional, a 16-octet IPv6 address. The value 0 MAY be SRv6 SID: Optional. A 16-octet IPv6 address. The value 0 MAY be
used when the controller wants to indicate the desired SRv6 used when the controller wants to indicate the desired SRv6
Endpoint Behavior or SID Structure without specifying the SID. Endpoint Behavior or SID Structure without specifying the SID.
* SRv6 Endpoint Behavior and SID Structure: Optional, as defined in SRv6 Endpoint Behavior and SID Structure: Optional, as defined in
section 2.4.4.2.4 of [I-D.ietf-idr-sr-policy-safi]. The SRv6 Section 2.4.4.2.4 of [RFC9830]. The SRv6 Endpoint Behavior and
Endpoint Behavior and SID Structure MUST NOT be included when the SID Structure MUST NOT be included when the SRv6 SID has not been
SRv6 SID has not been included. included.
The TLV 12 defined for the advertisement of Segment Type K in the TLV 12 defined for the advertisement of Segment Type K in the early
early draft versions of [I-D.ietf-idr-sr-policy-safi] has been draft versions of [RFC9830] has been deprecated to avoid backward-
deprecated to avoid backward compatibility issues. compatibility issues.
2.10. SR Policy Segment Flags 2.10. SR Policy Segment Flags
The Segment Types sub-TLVs described above may contain the following The Segment Type sub-TLVs described above may contain the following
SR Policy Segment Flags [I-D.ietf-idr-sr-policy-safi] in their SR Policy Segment Flags [RFC9830] in their Flags field (see also
"Flags" field. Also refer to Section 3.2. This document introduces Section 3.2). This document introduces additional flags below:
additional flags as below:
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|V|A|S|B| | |V|A|S|B| |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Figure 11: SR Policy Segment Flags Figure 10: SR Policy Segment Flags
where: Where:
V-Flag: existing flag as defined in [I-D.ietf-idr-sr-policy-safi]. V-Flag: This is an existing flag as defined in [RFC9830].
A-Flag: This flag, when set, indicates the presence of SR A-Flag: When set, this flag indicates the presence of the SR
Algorithm id in the "SR Algorithm" field applicable to various Algorithm id in the SR Algorithm field applicable to various
Segment Types. SR Algorithm is used by SRPM Segment Types. The SR Algorithm is used by the SRPM [RFC9830] as
[I-D.ietf-idr-sr-policy-safi] as described in section 4 of described in Section 4 of [RFC9256].
[RFC9256].
S-Flag: This flag, when set, indicates the presence of the SR-MPLS S-Flag: When set, this flag indicates the presence of the SR-MPLS or
or SRv6 SID depending on the segment type. SRv6 SID depending on the segment type.
B-Flag: existing flag as defined in [I-D.ietf-idr-sr-policy-safi]. B-Flag: This is an existing flag as defined in [RFC9830].
The following applies to the Segment Flags: The following applies to the Segment Flags:
* V-Flag applies to all Segment Types including the ones introduced * The V-Flag applies to all Segment Types including those introduced
by this document. by this document.
* A-Flag applies to Segment Types C, D, I, J, and K. The value of * The A-Flag applies to Segment Types C, D, I, J, and K. The value
A-Flag MUST be ignored for Segment Types A, B, E, F, G, and H. of the A-Flag MUST be ignored for Segment Types A, B, E, F, G, and
H.
* S-Flag applies to Segment Types C, D, E, F, G, H, I, J, and K. * The S-Flag applies to Segment Types C, D, E, F, G, H, I, J, and K.
The value of S-Flag MUST be ignored for Segment Types A and B. The value of the S-Flag MUST be ignored for Segment Types A and B.
* B-Flag applies to Segment Types B, I, J, and K. The value of * The B-Flag applies to Segment Types B, I, J, and K. The value of
B-Flag MUST be ignored for Segment Types A, C, D, E, F, G, and H. the B-Flag MUST be ignored for Segment Types A, C, D, E, F, G, and
H.
3. IANA Considerations 3. IANA Considerations
This section covers the IANA considerations for this document.
3.1. SR Policy Segment List Sub-TLVs 3.1. SR Policy Segment List Sub-TLVs
This document requests the allocation of the following code points IANA has allocated the following code points from the "SR Policy
from the "SR Policy Segment List Sub-TLVs" registry Segment List Sub-TLVs" registry [RFC9830] under the "Border Gateway
[I-D.ietf-idr-sr-policy-safi] under the "BGP Tunnel Encapsulation" Protocol (BGP) Tunnel Encapsulation" registry group.
registry group.
Value Description Reference +=======+========================+===========+
----------------------------------------------------- | Value | Description | Reference |
3 Segment Type C sub-TLV This document +=======+========================+===========+
4 Segment Type D sub-TLV This document | 3 | Segment Type C sub-TLV | RFC 9831 |
5 Segment Type E sub-TLV This document +-------+------------------------+-----------+
6 Segment Type F sub-TLV This document | 4 | Segment Type D sub-TLV | RFC 9831 |
7 Segment Type G sub-TLV This document +-------+------------------------+-----------+
8 Segment Type H sub-TLV This document | 5 | Segment Type E sub-TLV | RFC 9831 |
14 Segment Type I sub-TLV This document +-------+------------------------+-----------+
15 Segment Type J sub-TLV This document | 6 | Segment Type F sub-TLV | RFC 9831 |
16 Segment Type K sub-TLV This document +-------+------------------------+-----------+
| 7 | Segment Type G sub-TLV | RFC 9831 |
+-------+------------------------+-----------+
| 8 | Segment Type H sub-TLV | RFC 9831 |
+-------+------------------------+-----------+
| 14 | Segment Type I sub-TLV | RFC 9831 |
+-------+------------------------+-----------+
| 15 | Segment Type J sub-TLV | RFC 9831 |
+-------+------------------------+-----------+
| 16 | Segment Type K sub-TLV | RFC 9831 |
+-------+------------------------+-----------+
Table 1: SR Policy Segment List Code Points Table 1: SR Policy Segment List Code Points
3.2. SR Policy Segment Flags 3.2. SR Policy Segment Flags
This document requests the allocation of code points from the "SR IANA has allocated code points from the "SR Policy Segment Flags"
Policy Segment Flags" registry [I-D.ietf-idr-sr-policy-safi] under registry [RFC9830] under the "Border Gateway Protocol (BGP) Tunnel
the "BGP Tunnel Encapsulation" registry group. Encapsulation" registry group.
Bit Description Reference +=====+=============================+===============+
------------------------------------------------------------------ | Bit | Description | Reference |
1 SR Algorithm Flag (A-Flag) This document +=====+=============================+===============+
2 SID Specified Flag (S-Flag) This document | 1 | SR Algorithm Flag (A-Flag) | This document |
+-----+-----------------------------+---------------+
| 2 | SID Specified Flag (S-Flag) | This document |
+-----+-----------------------------+---------------+
Table 2: SR Policy Segment Flags Table 2: SR Policy Segment Flags
4. Security Considerations 4. Security Considerations
The security considerations in [I-D.ietf-idr-sr-policy-safi] apply to The security considerations in [RFC9830] apply to the Segment Types
the segment types defined in this document. No additional security defined in this document. No additional security considerations are
considerations are introduced in this document. introduced.
5. Manageability Considerations 5. Manageability Considerations
The operations and manageability considerations in The operations and manageability considerations in [RFC9830] apply to
[I-D.ietf-idr-sr-policy-safi] apply to the segment types defined in the Segment Types defined in this document. No additional operations
this document. No additional operations and manageability and manageability considerations are introduced.
considerations are introduced in this document.
6. Acknowledgments
The authors of this document would like to Dan Romascanu, Stig
Venaas, and Russ Housley for their comments and review of this
document. The authors would like to thank Susan Hares for her
detailed shepherd review that helped in improving the document.
7. References
7.1. Normative References
[I-D.ietf-idr-sr-policy-safi] 6. Normative References
Previdi, S., Filsfils, C., Talaulikar, K., Mattes, P., and
D. Jain, "Advertising Segment Routing Policies in BGP",
Work in Progress, Internet-Draft, draft-ietf-idr-sr-
policy-safi-13, 6 February 2025,
<https://datatracker.ietf.org/doc/html/draft-ietf-idr-sr-
policy-safi-13>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
skipping to change at page 17, line 26 skipping to change at line 767
[RFC9256] Filsfils, C., Talaulikar, K., Ed., Voyer, D., Bogdanov, [RFC9256] Filsfils, C., Talaulikar, K., Ed., Voyer, D., Bogdanov,
A., and P. Mattes, "Segment Routing Policy Architecture", A., and P. Mattes, "Segment Routing Policy Architecture",
RFC 9256, DOI 10.17487/RFC9256, July 2022, RFC 9256, DOI 10.17487/RFC9256, July 2022,
<https://www.rfc-editor.org/info/rfc9256>. <https://www.rfc-editor.org/info/rfc9256>.
[RFC9552] Talaulikar, K., Ed., "Distribution of Link-State and [RFC9552] Talaulikar, K., Ed., "Distribution of Link-State and
Traffic Engineering Information Using BGP", RFC 9552, Traffic Engineering Information Using BGP", RFC 9552,
DOI 10.17487/RFC9552, December 2023, DOI 10.17487/RFC9552, December 2023,
<https://www.rfc-editor.org/info/rfc9552>. <https://www.rfc-editor.org/info/rfc9552>.
7.2. Informational References [RFC9830] Previdi, S., Filsfils, C., Talaulikar, K., Ed., Mattes,
P., and D. Jain, "Advertising Segment Routing Policies in
BGP", RFC 9830, DOI 10.17487/RFC9830, August 2025,
<https://www.rfc-editor.org/info/rfc9830>.
Acknowledgments
The authors would like to Dan Romascanu, Stig Venaas, and Russ
Housley for their comments and review. The authors would like to
thank Susan Hares for her detailed shepherd review that helped in
improving the document.
Authors' Addresses Authors' Addresses
Ketan Talaulikar (editor) Ketan Talaulikar (editor)
Cisco Systems Cisco Systems
India India
Email: ketant.ietf@gmail.com Email: ketant.ietf@gmail.com
Clarence Filsfils Clarence Filsfils
Cisco Systems Cisco Systems
 End of changes. 146 change blocks. 
365 lines changed or deleted 384 lines changed or added

This html diff was produced by rfcdiff 1.48.