Network Working Group K. Talaulikar, Ed.
Internet-Draft C. Filsfils
Intended status: Experimental Cisco Systems
Expires: 11 May 2025 S. Previdi
Huawei Technologies
P. Mattes
Microsoft
D. Jain
Google
7 November 2024
Segment Routing Segment Types Extensions for BGP SR Policy
draft-ietf-idr-bgp-sr-segtypes-ext-06
Abstract
This document specifies the signaling of additional Segment Routing
Segment Types for signaling of Segment Routing (SR) Policies in BGP
using SR Policy Subsequent Address Family Identifier.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 11 May 2025.
Copyright Notice
Copyright (c) 2024 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components
Talaulikar, et al. Expires 11 May 2025 [Page 1]
Internet-Draft SR Segment Type Ext for BGP SR Policy November 2024
extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3
2. Segment Type Sub-TLVs . . . . . . . . . . . . . . . . . . . . 3
2.1. Segment Type C . . . . . . . . . . . . . . . . . . . . . 4
2.2. Segment Type D . . . . . . . . . . . . . . . . . . . . . 5
2.3. Segment Type E . . . . . . . . . . . . . . . . . . . . . 5
2.4. Segment Type F . . . . . . . . . . . . . . . . . . . . . 6
2.5. Segment Type G . . . . . . . . . . . . . . . . . . . . . 7
2.6. Segment Type H . . . . . . . . . . . . . . . . . . . . . 9
2.7. Segment Type I . . . . . . . . . . . . . . . . . . . . . 9
2.8. Segment Type J . . . . . . . . . . . . . . . . . . . . . 11
2.9. Segment Type K . . . . . . . . . . . . . . . . . . . . . 12
2.10. SR Policy Segment Flags . . . . . . . . . . . . . . . . . 14
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15
3.1. SR Policy Segment List Sub-TLVs . . . . . . . . . . . . . 15
3.2. SR Policy Segment Flags . . . . . . . . . . . . . . . . . 15
4. Security Considerations . . . . . . . . . . . . . . . . . . . 15
5. Manageability Considerations . . . . . . . . . . . . . . . . 16
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 16
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 16
7.1. Normative References . . . . . . . . . . . . . . . . . . 16
7.2. Informational References . . . . . . . . . . . . . . . . 17
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17
1. Introduction
BGP Segment Routing (SR) Policy Subsequent Address Family Identifier
(SAFI) was introduced by [I-D.ietf-idr-sr-policy-safi] for the
advertisement of SR Policy [RFC8402]. [I-D.ietf-idr-sr-policy-safi]
introduced the base SR Segment Types A and B as specified by the SR
Policy Architecture [RFC9256].
This document specifies the extensions for the advertisement of the
remaining SR Segment Types defined in [RFC9256] in the SR Policy SAFI
for both SR-MPLS [RFC8660] and SRv6 [RFC8754] [RFC8986].
The extensions in this document do not impact the SR Policy
operations or fault management as specified in
[I-D.ietf-idr-sr-policy-safi].
Talaulikar, et al. Expires 11 May 2025 [Page 2]
Internet-Draft SR Segment Type Ext for BGP SR Policy November 2024
1.1. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
2. Segment Type Sub-TLVs
The Segment List sub-TLV [I-D.ietf-idr-sr-policy-safi] encodes a
single explicit path towards the endpoint as described in section 5.1
of [RFC9256]. The Segment List sub-TLV includes the elements of the
paths (i.e., segments).
A Segment sub-TLV describes a single segment in a segment list (i.e.,
a single element of the explicit path).
Section 4 of [RFC9256] defines several Segment Types for SR-MPLS and
SRv6 that are listed below as a reminder:
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
[I-D.ietf-idr-sr-policy-safi] specifies Segment Type Sub-TLVs for the
segment types A and B. The following sub-sections specify the sub-
TLVs used for encoding each of the other Segment Types above.
Talaulikar, et al. Expires 11 May 2025 [Page 3]
Internet-Draft SR Segment Type Ext for BGP SR Policy November 2024
As specified in sections 2.4.4 and 2.4.4.2 of
[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
The Type C Segment Sub-TLV encodes an IPv4 node address, SR
Algorithm, and an optional SR-MPLS SID. The format is as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Node Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: Type C Segment sub-TLV
where:
* Type: 3.
* Length: Specifies the length of the value field (i.e., not
including Type and Length fields) in terms of octets. The value
MUST be 10 when the SR-MPLS SID is present, else it MUST be 6.
* Flags: 1 octet of flags as defined in Section 2.10.
* SR Algorithm: 1 octet specifying SR Algorithm as described in
section 3.1.1 in [RFC8402] when A-Flag as defined in Section 2.10
is present. 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 encoded, this field MUST be set to
zero on transmission and MUST be ignored on receipt.
* IPv4 Node Address: a 4-octet IPv4 address representing a node.
* SR-MPLS SID: optional, 4-octet field containing label, TC, S and
TTL as defined for Segment Type A [I-D.ietf-idr-sr-policy-safi].
Talaulikar, et al. Expires 11 May 2025 [Page 4]
Internet-Draft SR Segment Type Ext for BGP SR Policy November 2024
2.2. Segment Type D
The Type D Segment Sub-TLV encodes an IPv6 node address, SR
Algorithm, and an optional SR-MPLS SID. The format is as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: Type D Segment sub-TLV
where:
* Type: 4
* Length: Specifies the length of the value field (i.e., not
including Type and Length fields) in terms of octets. The value
MUST be 22 when the SR-MPLS SID is present, else it MUST be 18.
* Flags: 1 octet of flags as defined in Section 2.10.
* SR Algorithm: 1 octet specifying SR Algorithm as described in
section 3.1.1 in [RFC8402] when A-Flag as defined in Section 2.10
is present. 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 encoded, this field MUST be set to
zero on transmission and MUST be ignored on receipt.
* IPv6 Node Address: a 16-octet IPv6 address representing a node.
* SR-MPLS SID: optional, 4-octet field containing label, TC, S and
TTL as defined for Segment Type A [I-D.ietf-idr-sr-policy-safi].
2.3. Segment Type E
The Type E Segment Sub-TLV encodes an IPv4 node address, a local
interface Identifier (Local Interface ID), and an optional SR-MPLS
SID. The format is as follows:
Talaulikar, et al. Expires 11 May 2025 [Page 5]
Internet-Draft SR Segment Type Ext for BGP SR Policy November 2024
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 Node Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: Type E Segment sub-TLV
where:
* Type: 5.
* Length: Specifies the length of the value field (i.e., not
including Type and Length fields) in terms of octets. The value
MUST be 14 when the SR-MPLS SID is present, else it MUST be 10.
* Flags: 1 octet of flags as defined in Section 2.10.
* RESERVED: 1 octet of reserved bits. 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
(refer TLV 258 of [RFC9552]).
* IPv4 Node Address: a 4-octet IPv4 address representing a node.
* SR-MPLS SID: optional, 4-octet field containing label, TC, S and
TTL as defined for Segment Type A [I-D.ietf-idr-sr-policy-safi].
2.4. Segment Type F
The Type F Segment Sub-TLV encodes an adjacency local address, an
adjacency remote address, and an optional SR-MPLS SID. The format is
as follows:
Talaulikar, et al. Expires 11 May 2025 [Page 6]
Internet-Draft SR Segment Type Ext for BGP SR Policy November 2024
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local IPv4 Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote IPv4 Address (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5: Type F Segment sub-TLV
where:
* Type: 6.
* Length: Specifies the length of the value field (i.e., not
including Type and Length fields) in terms of octets. The value
MUST be 14 when the SR-MPLS SID is present, else it MUST be 10.
* Flags: 1 octet of flags as defined in Section 2.10.
* RESERVED: 1 octet of reserved bits. This field MUST be set to
zero on transmission and MUST be ignored on receipt.
* Local IPv4 Address: a 4-octet IPv4 address representing the local
link address of the node.
* Remote IPv4 Address: a 4-octet IPv4 address representing the link
address of the neighbor node.
* SR-MPLS SID: optional, 4-octet field containing label, TC, S and
TTL as defined for Segment Type A [I-D.ietf-idr-sr-policy-safi].
2.5. Segment Type G
The Type G Segment Sub-TLV encodes an IPv6 link-local adjacency with
IPv6 local node address, a local interface identifier (Local
Interface ID), IPv6 remote node address, a remote interface
identifier (Remote Interface ID), and an optional SR-MPLS SID. The
format is as follows:
Talaulikar, et al. Expires 11 May 2025 [Page 7]
Internet-Draft SR Segment Type Ext for BGP SR Policy November 2024
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Local Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Remote Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 6: Type G Segment sub-TLV
where:
* Type: 7
* Length: Specifies the length of the value field (i.e., not
including Type and Length fields) in terms of octets. The value
MUST be 46 when the SR-MPLS SID is present, else it MUST be 42.
* Flags: 1 octet of flags as defined in Section 2.10.
* RESERVED: 1 octet of reserved bits. 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
(refer TLV 258 of [RFC9552]).
* IPv6 Local Node Address: a 16-octet IPv6 address representing the
node.
* Remote Interface ID: 4 octets of interface index of remote
interface (refer TLV 258 of [RFC9552]). The value MAY be set to
zero when the local node address and interface identifiers are
sufficient to describe the link.
* IPv6 Remote Node Address: a 16-octet IPv6 address. The value MAY
be set to zero when the local node address and interface
identifiers are sufficient to describe the link.
* SR-MPLS SID: optional, 4-octet field containing label, TC, S and
TTL as defined for Segment Type A [I-D.ietf-idr-sr-policy-safi].
Talaulikar, et al. Expires 11 May 2025 [Page 8]
Internet-Draft SR Segment Type Ext for BGP SR Policy November 2024
2.6. Segment Type H
The Type H Segment Sub-TLV encodes an adjacency local address, an
adjacency remote address, and an optional SR-MPLS SID. The format is
as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Local IPv6 Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Remote IPv6 Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SR-MPLS SID (optional, 4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 7: Type H Segment sub-TLV
where:
* Type: 8
* Length: Specifies the length of the value field (i.e., not
including Type and Length fields) in terms of octets. The value
MUST be 38 when the SR-MPLS SID is present, else it MUST be 34.
* Flags: 1 octet of flags as defined in Section 2.10.
* RESERVED: 1 octet of reserved bits. 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.
* Remote IPv6 Address: a 16-octet IPv6 address representing the link
address of the neighbor node.
* SR-MPLS SID: optional, 4-octet field containing label, TC, S and
TTL as defined for Segment Type A [I-D.ietf-idr-sr-policy-safi].
2.7. Segment Type I
The Type I Segment Sub-TLV encodes an IPv6 node address, SR
Algorithm, and an optional SRv6 SID. The format is as follows:
Talaulikar, et al. Expires 11 May 2025 [Page 9]
Internet-Draft SR Segment Type Ext for BGP SR Policy November 2024
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 SID (optional, 16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 Endpoint Behavior and SID Structure //
// (optional, 8 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 8: Type I Segment sub-TLV
where:
* Type: 14
* Length: Specifies the length of the value field (i.e., not
including Type and Length fields) in terms of octets. The value
MUST be one of: 42 when both SRv6 SID and SRv6 Endpoint Behavior &
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.
* SR Algorithm: 1 octet specifying SR Algorithm as described in
section 3.1.1 in [RFC8402] when A-Flag as defined in Section 2.10
is present. 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 encoded, 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.
* SRv6 SID: optional, a 16-octet IPv6 address. The value 0 MAY be
used when the controller wants to indicate the desired SRv6
Endpoint Behavior or SID Structure without specifying the SID.
* 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
Endpoint Behavior and SID Structure MUST NOT be included when the
SRv6 SID has not been included.
The TLV 10 defined for the advertisement of Segment Type I in the
early draft versions of [I-D.ietf-idr-sr-policy-safi] has been
deprecated to avoid backward compatibility issues.
Talaulikar, et al. Expires 11 May 2025 [Page 10]
Internet-Draft SR Segment Type Ext for BGP SR Policy November 2024
2.8. Segment Type J
The Type J Segment Sub-TLV encodes an IPv6 link-local adjacency with
local node address, a local interface identifier (Local Interface
ID), remote IPv6 node address, a remote interface identifier (Remote
Interface ID), and an optional SRv6 SID. The format is as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Local Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Local Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Remote Interface ID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// IPv6 Remote Node Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 SID (optional, 16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 Endpoint Behavior and SID Structure //
// (optional, 8 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 9: Type J Segment sub-TLV
where:
* Type: 15
* Length: Specifies the length of the value field (i.e., not
including Type and Length fields) in terms of octets. The value
MUST be one of: 66 when both SRv6 SID and SRv6 Endpoint Behavior &
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.
* SR Algorithm: 1 octet specifying SR Algorithm as described in
section 3.1.1 in [RFC8402] when A-Flag as defined in Section 2.10
is present. 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 encoded, this field MUST be set to
zero on transmission and MUST be ignored on receipt.
Talaulikar, et al. Expires 11 May 2025 [Page 11]
Internet-Draft SR Segment Type Ext for BGP SR Policy November 2024
* Local Interface ID: 4 octets of interface index of local interface
(refer TLV 258 of [RFC9552]).
* IPv6 Local Node Address: a 16-octet IPv6 address representing the
node.
* Remote Interface ID: 4 octets of interface index of remote
interface (refer TLV 258 of [RFC9552]). The value MAY be set to
zero when the local node address and interface identifiers are
sufficient to describe the link.
* IPv6 Remote Node Address: a 16-octet IPv6 address. The value MAY
be set to zero when the local node address and interface
identifiers are sufficient to describe the link.
* SRv6 SID: optional, a 16-octet IPv6 address. The value 0 MAY be
used when the controller wants to indicate the desired SRv6
Endpoint Behavior or SID Structure without specifying the SID.
* 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
Endpoint Behavior and SID Structure MUST NOT be included when the
SRv6 SID has not been included.
The TLV 11 defined for the advertisement of Segment Type J in the
early draft versions of [I-D.ietf-idr-sr-policy-safi] has been
deprecated to avoid backward compatibility issues.
2.9. Segment Type K
The Type K Segment Sub-TLV encodes an adjacency local address, an
adjacency remote address, and an optional SRv6 SID. The format is as
follows:
Talaulikar, et al. Expires 11 May 2025 [Page 12]
Internet-Draft SR Segment Type Ext for BGP SR Policy November 2024
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Flags | SR Algorithm |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Local IPv6 Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Remote IPv6 Address (16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 SID (optional, 16 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// SRv6 Endpoint Behavior and SID Structure //
// (optional, 8 octets) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 10: Type K Segment sub-TLV
where:
* Type: 16
* Length: Specifies the length of the value field (i.e., not
including Type and Length fields) in terms of octets. The value
MUST be one of: 58 when both SRv6 SID and SRv6 Endpoint Behavior &
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.
* SR Algorithm: 1 octet specifying SR Algorithm as described in
section 3.1.1 in [RFC8402] when A-Flag as defined in Section 2.10
is present. 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 encoded, 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.
* Remote IPv6 Address: a 16-octet IPv6 address representing the link
address of the neighbor node.
* SRv6 SID: optional, a 16-octet IPv6 address. The value 0 MAY be
used when the controller wants to indicate the desired SRv6
Endpoint Behavior or SID Structure without specifying the SID.
Talaulikar, et al. Expires 11 May 2025 [Page 13]
Internet-Draft SR Segment Type Ext for BGP SR Policy November 2024
* 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
Endpoint Behavior and SID Structure MUST NOT be included when the
SRv6 SID has not been included.
The TLV 12 defined for the advertisement of Segment Type K in the
early draft versions of [I-D.ietf-idr-sr-policy-safi] has been
deprecated to avoid backward compatibility issues.
2.10. SR Policy Segment Flags
The Segment Types sub-TLVs described above may contain the following
SR Policy Segment Flags [I-D.ietf-idr-sr-policy-safi] in their
"Flags" field. Also refer to Section 3.2. This document introduces
additional flags as below:
0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|V|A|S|B| |
+-+-+-+-+-+-+-+-+
Figure 11: SR Policy Segment Flags
where:
V-Flag: existing flag as defined in [I-D.ietf-idr-sr-policy-safi].
A-Flag: This flag, when set, indicates the presence of SR
Algorithm id in the "SR Algorithm" field applicable to various
Segment Types. SR Algorithm is used by SRPM
[I-D.ietf-idr-sr-policy-safi] as described in section 4 of
[RFC9256].
S-Flag: This flag, when set, indicates the presence of the SR-MPLS
or SRv6 SID depending on the segment type.
B-Flag: existing flag as defined in [I-D.ietf-idr-sr-policy-safi].
The following applies to the Segment Flags:
* V-Flag applies to all Segment Types including the ones introduced
by this document.
* A-Flag applies to Segment Types C, D, I, J, and K. If A-Flag
appears with Segment Types A, B, E, F, G, and H, it MUST be
ignored.
Talaulikar, et al. Expires 11 May 2025 [Page 14]
Internet-Draft SR Segment Type Ext for BGP SR Policy November 2024
* S-Flag applies to Segment Types C, D, E, F, G, H, I, J, and K. If
S-Flag appears with Segment Types A or B, it MUST be ignored.
* B-Flag applies to Segment Types B, I, J, and K. If B-Flag appears
with Segment Types A, C, D, E, F, G, and H, it MUST be ignored.
3. IANA Considerations
This section covers the IANA considerations for this document.
3.1. SR Policy Segment List Sub-TLVs
This document requests the allocation of the following code points
from the "SR Policy Segment List Sub-TLVs" registry under the "BGP
Tunnel Encapsulation" registry group.
Value Description Reference
-----------------------------------------------------
3 Segment Type C sub-TLV This document
4 Segment Type D sub-TLV This document
5 Segment Type E sub-TLV This document
6 Segment Type F sub-TLV This document
7 Segment Type G sub-TLV This document
8 Segment Type H sub-TLV This document
14 Segment Type I sub-TLV This document
15 Segment Type J sub-TLV This document
16 Segment Type K sub-TLV This document
Table 1: SR Policy Segment List Code Points
3.2. SR Policy Segment Flags
This document requests the allocation of code points from the "SR
Policy Segment Flags" registry under the "BGP Tunnel Encapsulation"
registry group.
Bit Description Reference
------------------------------------------------------------------
1 SR Algorithm Flag (A-Flag) This document
2 SID Specified Flag (S-Flag) This document
Table 2: SR Policy Segment Flags
4. Security Considerations
The security considerations in [I-D.ietf-idr-sr-policy-safi] apply to
the segment types defined in this document. No additional security
considerations are introduced in this document.
Talaulikar, et al. Expires 11 May 2025 [Page 15]
Internet-Draft SR Segment Type Ext for BGP SR Policy November 2024
5. Manageability Considerations
The operations and manageability considerations in
[I-D.ietf-idr-sr-policy-safi] apply to the segment types defined in
this document. No additional operations and manageability
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]
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-10, 7 November 2024,
.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, .
[RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
Decraene, B., Litkowski, S., and R. Shakir, "Segment
Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
July 2018, .
[RFC8660] Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S.,
Decraene, B., Litkowski, S., and R. Shakir, "Segment
Routing with the MPLS Data Plane", RFC 8660,
DOI 10.17487/RFC8660, December 2019,
.
Talaulikar, et al. Expires 11 May 2025 [Page 16]
Internet-Draft SR Segment Type Ext for BGP SR Policy November 2024
[RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J.,
Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header
(SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020,
.
[RFC8986] Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer,
D., Matsushima, S., and Z. Li, "Segment Routing over IPv6
(SRv6) Network Programming", RFC 8986,
DOI 10.17487/RFC8986, February 2021,
.
[RFC9256] Filsfils, C., Talaulikar, K., Ed., Voyer, D., Bogdanov,
A., and P. Mattes, "Segment Routing Policy Architecture",
RFC 9256, DOI 10.17487/RFC9256, July 2022,
.
[RFC9552] Talaulikar, K., Ed., "Distribution of Link-State and
Traffic Engineering Information Using BGP", RFC 9552,
DOI 10.17487/RFC9552, December 2023,
.
7.2. Informational References
Authors' Addresses
Ketan Talaulikar (editor)
Cisco Systems
India
Email: ketant.ietf@gmail.com
Clarence Filsfils
Cisco Systems
Brussels
Belgium
Email: cfilsfil@cisco.com
Stefano Previdi
Huawei Technologies
Italy
Email: stefano@previdi.net
Talaulikar, et al. Expires 11 May 2025 [Page 17]
Internet-Draft SR Segment Type Ext for BGP SR Policy November 2024
Paul Mattes
Microsoft
One Microsoft Way
Redmond, WA 98052
United States of America
Email: pamattes@microsoft.com
Dhanendra Jain
Google
Email: dhanendra.ietf@gmail.com
Talaulikar, et al. Expires 11 May 2025 [Page 18]