| Internet-Draft | PCEP Flow Specification for SRv6 | October 2026 |
| Dong, et al. | Expires 1 May 2027 | [Page] |
This document specifies extensions to the Path Computation Element Communication Protocol (PCEP) to support Flow Specification for Segment Routing over IPv6 (SRv6). Building upon the PCEP Flow Specification framework defined in RFC 9168, this specification introduces new PCEP Flow Specification TLVs to enable filtering and steering of IPv6 packets based on the structural components of standard SRv6 Segment Identifiers (SIDs) or SRv6 Compressed SID (CSID) containers present in IPv6 Destination Addresses or Segment Routing Headers (SRH).¶
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.¶
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 1 May 2027.¶
Copyright (c) 2026 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 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.¶
[RFC9168] defines extensions to the Path Computation Element Communication Protocol (PCEP) [RFC5440] to support the dissemination of Flow Specification rules using PCEP messages. A PCEP FLOWSPEC object carries match conditions and filtering actions managed by a Path Computation Element (PCE) and enforced by a Path Computation Client (PCC).¶
Segment Routing over IPv6 (SRv6) [RFC8754] leverages the IPv6 data plane using a Segment Routing Header (SRH) to instantiate paths. The SRv6 Network Programming architecture [RFC8986] defines standard SID structures (LOC:FUNCT:ARG). Furthermore, [RFC9800] defines Compressed SRv6 SIDs (CSIDs), supporting NEXT-CSID and REPLACE-CSID flavors where multiple CSIDs are packed into a 128-bit IPv6 Destination Address (DA) container.¶
While [RFC9168] supports basic IP and IPv6 Flow Specification matching, it lacks mechanisms to parse and filter traffic based on the internal structure of SRv6 SIDs or dynamic CSID containers.¶
This document extends [RFC9168] by defining two new PCEP Flow Specification TLV types to be carried within the PCEP FLOWSPEC object:¶
The matching field is evaluated against the IPv6 Destination Address (or active SID within an SRH when present, as shown in Figure 1).¶
+-----------------------------+
IPv6 Header| SA | DA |<-- Match Field
+--------------------^--------+
|
+--------------------|--------+
| +-------------+ | +-------------------+
| | Segment[0] +-------> Loc | Func | Arg |
| +-------------+ | +-------------------+
| | Segment[1] | |
| +-------------+ |
| | ... | |
SR Header| +-------------+ |
(RFC 8754)| | Segment[n] | |
| +-------------+ |
| +-------------+ |
| ~ Option TLV ~ |
| +-------------+ |
+-----------------------------+
This document uses terminology defined in [RFC5440], [RFC9168], [RFC8754], [RFC8986], and [RFC9800].¶
FS: Flow Specification¶
PCEP FS: PCEP Flow Specification¶
SID: Segment Identifier¶
SR: Segment Routing¶
SRH: SR Header¶
SRv6: IPv6 Segment Routing, SRv6 is a method of forwarding IPv6 packets on the network based on the concept of source routing.¶
In this document, the length parameters defining the constituent parts of a SID or CSID structure are defined as follows:¶
LOC-Len: Locator Length in bits for a standard 128-bit SRv6 SID (Component Type TBD1).¶
LB-Len: Locator-Block Length in bits for a CSID structure (Component Type TBD2).¶
LN-Len: Locator-Node Length in bits for a CSID structure.¶
F-Len: Function Length in bits for a SID or CSID structure.¶
ARG-Len: Argument Length in bits for a standard 128-bit SRv6 SID.¶
In addition, the sum of LN-Len and F-Len (LN-Len + F-Len) represents the total length of a single CSID (also referred to as the "CSID length").¶
A PCEP speaker (PCE or PCC) indicates its support for SRv6 Flow Specification extensions during the PCEP session establishment phase.¶
[RFC9168] defines the FLOWSPEC-CAPABILITY TLV carried in the OPEN object. This document defines a new flag bit in the Flags field of the FLOWSPEC-CAPABILITY TLV:¶
Bit TBD (S-bit - SRv6 FlowSpec Support): Set to 1 by a PCEP speaker to indicate capability to process SRv6 Standard SID Structure and CSID Dynamic Structure Match TLVs.¶
If both PCEP peers advertise the S-bit capability, SRv6 FlowSpec TLVs MAY be included in PCEP messages (e.g., PCUpd, PCInitiate, or PCRpt).¶
Flow Specification match conditions in PCEP are carried within the FLOWSPEC object [RFC9168]. This document defines two new TLVs for inclusion in the FLOWSPEC object.¶
The SRv6 Standard SID Structure Match TLV allows a PCE to instruct a PCC to match packets against individual or combined fields (Locator, Function, and Argument) of a standard SRv6 SID [RFC8986].¶
The format of the SRv6 Standard SID Structure Match TLV is as follows:¶
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type (TBD1) | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LOC-Len | FUNCT-Len | ARG-Len | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | [op, value] + | | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Padding (0-3 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+¶
Where:¶
Type (16 bits): TBD1, assigned for SRv6 Standard SID Structure Match TLV.¶
Length (16 bits): Total length of the TLV in octets.¶
LOC-Len (8 bits): Length of the Locator field in bits.¶
FUNCT-Len (8 bits): Length of the Function field in bits.¶
ARG-Len (8 bits): Length of the Argument field in bits.¶
Reserved (8 bits): MUST be set to zero and ignored on receipt.¶
[op, value]+: A sequence of one or more {operator, value} pairs specifying the matching logic applied to the SID sub-fields, following the operator encoding rules in [RFC9168] and [I-D.ietf-idr-flowspec-srv6].¶
Padding (variable): Padding octets (0-3) to align the TLV length to a 4-octet boundary.¶
The SRv6 CSID Dynamic Structure Match TLV allows matching against dynamic Compressed SID containers (NEXT-CSID and REPLACE-CSID flavors) [RFC9800].¶
The format of the SRv6 CSID Dynamic Structure Match TLV is as follows:¶
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type (TBD2) | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LB-Len | LN-Len | F-Len | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | [op, value] + | | ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Padding (0-3 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+¶
Where:¶
Type (16 bits): TBD2, assigned for SRv6 CSID Dynamic Structure Match TLV.¶
Length (16 bits): Total length of the TLV in octets.¶
LB-Len (8 bits): Locator-Block Length in bits.¶
LN-Len (8 bits): Locator-Node Length in bits.¶
F-Len (8 bits): Function Length in bits.¶
Reserved (8 bits): MUST be set to zero and ignored on receipt.¶
[op, value]+: A sequence of {operator, value} pairs evaluating Locator-Block, Active CSID, and Next CSID fields as defined in [I-D.ietf-idr-flowspec-srv6].¶
Padding (variable): Padding octets (0-3) to align the TLV length to a 4-octet boundary.¶
Upon receiving an SRv6 FlowSpec TLV, the PCC MUST validate the structural lengths:¶
For Standard SID Structure (Type TBD1): The sum of LOC-Len, FUNCT-Len, and ARG-Len MUST NOT exceed 128 bits.¶
For CSID Dynamic Structure (Type TBD2): The sum of LB-Len, LN-Len, and F-Len MUST NOT exceed 128 bits.¶
If a structural validation fails, the TLV MUST be considered malformed.¶
If a PCC receives an SRv6 FlowSpec TLV when the S-bit capability was not negotiated, or if the received TLV is malformed, the PCC MUST send a PCErr message with:¶
The security considerations outlined in [RFC5440], [RFC9168], and [RFC8231] apply to the extensions defined in this document. Appropriate transport security (e.g., TLS or TCP-AO) MUST be employed to prevent unauthorized insertion or modification of SRv6 FlowSpec rules.¶
IANA is requested to make the following allocations in the "PCEP Numbers" registry:¶
1. **FLOWSPEC-CAPABILITY TLV Flag Field**:
* Bit TBD: S-bit (SRv6 FlowSpec Support)
2. **PCEP Flow Specification TLV Types**:
* TBD1: SRv6 Standard SID Structure Match TLV
* TBD2: SRv6 CSID Dynamic Structure Match TLV
¶
The authors would like to thank Joel Halpern, Jeffrey Haas, Ketan Talaulikar, Aijun Wang, Dhruv Dhody, Ming Shen and Rainsword Wang for their valuable suggestions and comments.¶
Lei Li Huawei Email: lily.lilei@huawei.com Zhenbin Li Huawei Email: robinli314@163.com Huaimo Chen Futurewei Email: hchen.ietf@gmail.com Yanhe Fan Casa Systems Email: yfan@casa-systems.com Lei Liu Fujitsu Email: liulei.kddi@gmail.com Xufeng Liu Volta Networks Email: xufeng.liu.ietf@gmail.com¶