| rfc9862v1.txt | rfc9862.txt | |||
|---|---|---|---|---|
| skipping to change at line 23 ¶ | skipping to change at line 23 ¶ | |||
| September 2025 | September 2025 | |||
| Path Computation Element Communication Protocol (PCEP) Extensions for | Path Computation Element Communication Protocol (PCEP) Extensions for | |||
| Segment Routing (SR) Policy Candidate Paths | Segment Routing (SR) Policy Candidate Paths | |||
| Abstract | Abstract | |||
| A Segment Routing (SR) Policy is an ordered list of instructions | A Segment Routing (SR) Policy is an ordered list of instructions | |||
| called "segments" that represent a source-routed policy. Packet | called "segments" that represent a source-routed policy. Packet | |||
| flows are steered into an SR Policy on a node where it is | flows are steered into an SR Policy on a node where it is | |||
| instantiated. An SR Policy is made of one or more candidate paths. | instantiated. An SR Policy is made of one or more Candidate Paths. | |||
| This document specifies the Path Computation Element Communication | This document specifies the Path Computation Element Communication | |||
| Protocol (PCEP) extension to signal candidate paths of an SR Policy. | Protocol (PCEP) extension to signal Candidate Paths of an SR Policy. | |||
| Additionally, this document updates RFC 8231 to allow delegation and | Additionally, this document updates RFC 8231 to allow delegation and | |||
| setup of an SR Label Switched Path (LSP) without using the path | setup of an SR Label Switched Path (LSP) without using the path | |||
| computation request and reply messages. This document is applicable | computation request and reply messages. This document is applicable | |||
| to both Segment Routing over MPLS (SR-MPLS) and Segment Routing over | to both Segment Routing over MPLS (SR-MPLS) and Segment Routing over | |||
| IPv6 (SRv6). | IPv6 (SRv6). | |||
| Status of This Memo | Status of This Memo | |||
| This is an Internet Standards Track document. | This is an Internet Standards Track document. | |||
| skipping to change at line 82 ¶ | skipping to change at line 82 ¶ | |||
| 4.4. Association Parameters | 4.4. Association Parameters | |||
| 4.5. Association Information | 4.5. Association Information | |||
| 4.5.1. SRPOLICY-POL-NAME TLV | 4.5.1. SRPOLICY-POL-NAME TLV | |||
| 4.5.2. SRPOLICY-CPATH-ID TLV | 4.5.2. SRPOLICY-CPATH-ID TLV | |||
| 4.5.3. SRPOLICY-CPATH-NAME TLV | 4.5.3. SRPOLICY-CPATH-NAME TLV | |||
| 4.5.4. SRPOLICY-CPATH-PREFERENCE TLV | 4.5.4. SRPOLICY-CPATH-PREFERENCE TLV | |||
| 5. SR Policy Signaling Extensions | 5. SR Policy Signaling Extensions | |||
| 5.1. SRPOLICY-CAPABILITY TLV | 5.1. SRPOLICY-CAPABILITY TLV | |||
| 5.2. LSP Object TLVs | 5.2. LSP Object TLVs | |||
| 5.2.1. COMPUTATION-PRIORITY TLV | 5.2.1. COMPUTATION-PRIORITY TLV | |||
| 5.2.2. Explicit Null Label Policy (ENLP) TLV | 5.2.2. Explicit NULL Label Policy (ENLP) TLV | |||
| 5.2.3. INVALIDATION TLV | 5.2.3. INVALIDATION TLV | |||
| 5.2.3.1. Drop-Upon-Invalid Applies to SR Policy | 5.2.3.1. Drop-Upon-Invalid Applies to SR Policy | |||
| 5.3. Updates to RFC 8231 | 5.3. Updates to RFC 8231 | |||
| 6. IANA Considerations | 6. IANA Considerations | |||
| 6.1. Association Type | 6.1. Association Type | |||
| 6.2. PCEP TLV Type Indicators | 6.2. PCEP TLV Type Indicators | |||
| 6.3. PCEP Errors | 6.3. PCEP Errors | |||
| 6.4. TE-PATH-BINDING TLV Flag Field | 6.4. TE-PATH-BINDING TLV Flag Field | |||
| 6.5. SR Policy Invalidation Operational State | 6.5. SR Policy Invalidation Operational State | |||
| 6.6. SR Policy Invalidation Configuration State | 6.6. SR Policy Invalidation Configuration State | |||
| skipping to change at line 138 ¶ | skipping to change at line 138 ¶ | |||
| * Association of an SR Policy with an intent via color, enabling | * Association of an SR Policy with an intent via color, enabling | |||
| headend-based steering of BGP service routes over SR Policies | headend-based steering of BGP service routes over SR Policies | |||
| provisioned via PCEP. | provisioned via PCEP. | |||
| "Path Computation Element Communication Protocol (PCEP) Extensions | "Path Computation Element Communication Protocol (PCEP) Extensions | |||
| for Establishing Relationships between Sets of Label Switched Paths | for Establishing Relationships between Sets of Label Switched Paths | |||
| (LSPs)" [RFC8697] introduces a generic mechanism to create a grouping | (LSPs)" [RFC8697] introduces a generic mechanism to create a grouping | |||
| of LSPs that is called an "Association". | of LSPs that is called an "Association". | |||
| An SR Policy is associated with one or more candidate paths. A | An SR Policy is associated with one or more Candidate Paths. A | |||
| candidate path is the unit for signaling an SR Policy to a headend as | Candidate Path is the unit for signaling an SR Policy to a headend as | |||
| described in Section 2.2 of [RFC9256]. This document extends | described in Section 2.2 of [RFC9256]. This document extends | |||
| [RFC8664] to support signaling SR Policy Candidate Paths as LSPs and | [RFC8664] to support signaling SR Policy Candidate Paths as LSPs and | |||
| to signal Candidate Path membership in an SR Policy by means of the | to signal Candidate Path membership in an SR Policy by means of the | |||
| Association mechanism. A PCEP Association corresponds to an SR | Association mechanism. A PCEP Association corresponds to an SR | |||
| Policy and an LSP corresponds to a Candidate Path. The unit of | Policy and an LSP corresponds to a Candidate Path. The unit of | |||
| signaling in PCEP is the LSP, thus, all the information related to an | signaling in PCEP is the LSP, thus, all the information related to an | |||
| SR Policy is carried at the Candidate Path level. | SR Policy is carried at the Candidate Path level. | |||
| Also, this document updates Section 5.8.2 of [RFC8231], making the | Also, this document updates Section 5.8.2 of [RFC8231], making the | |||
| use of Path Computation Request (PCReq) and Path Computation Reply | use of Path Computation Request (PCReq) and Path Computation Reply | |||
| skipping to change at line 212 ¶ | skipping to change at line 212 ¶ | |||
| Association parameters: Refers to the key data that uniquely | Association parameters: Refers to the key data that uniquely | |||
| identifies an Association, as described in [RFC8697]. | identifies an Association, as described in [RFC8697]. | |||
| Association information: Refers to information related to | Association information: Refers to information related to | |||
| Association Type, as described in Section 6.1.4 of [RFC8697]. | Association Type, as described in Section 6.1.4 of [RFC8697]. | |||
| SR Policy LSP: An LSP setup using Path Setup Type [RFC8408] 1 (for | SR Policy LSP: An LSP setup using Path Setup Type [RFC8408] 1 (for | |||
| Segment Routing) or 3 (for SRv6). | Segment Routing) or 3 (for SRv6). | |||
| SR Policy Association (SRPA): A new Association Type used to group | SR Policy Association (SRPA): A new Association Type used to group | |||
| candidate paths belonging to the same SR Policy. Depending on the | Candidate Paths belonging to the same SR Policy. Depending on the | |||
| discussion context, it can refer to the PCEP ASSOCIATION object of | discussion context, it can refer to the PCEP ASSOCIATION object of | |||
| an SR Policy type or to a group of LSPs that belong to the | an SR Policy type or to a group of LSPs that belong to the | |||
| association. | association. | |||
| The base PCEP specification [RFC4655] originally defined the use of | The base PCEP specification [RFC4655] originally defined the use of | |||
| the PCE architecture for MPLS and GMPLS networks with LSPs | the PCE architecture for MPLS and GMPLS networks with LSPs | |||
| instantiated using the RSVP-TE signaling protocol. Over time, | instantiated using the RSVP-TE signaling protocol. Over time, | |||
| support for additional path setup types such as SRv6 has been | support for additional path setup types such as SRv6 has been | |||
| introduced [RFC9603]. The term "LSP" is used extensively in PCEP | introduced [RFC9603]. The term "LSP" is used extensively in PCEP | |||
| specifications, and in the context of this document, refers to a | specifications, and in the context of this document, refers to a | |||
| skipping to change at line 242 ¶ | skipping to change at line 242 ¶ | |||
| of a single segment list within an SR Policy Candidate Path. | of a single segment list within an SR Policy Candidate Path. | |||
| Encoding of multiple segment lists is outside the scope of this | Encoding of multiple segment lists is outside the scope of this | |||
| document and is specified in [PCEP-MULTIPATH]. | document and is specified in [PCEP-MULTIPATH]. | |||
| An SRPA carries three pieces of information: SR Policy Identifier, SR | An SRPA carries three pieces of information: SR Policy Identifier, SR | |||
| Policy Candidate Path Identifier, and SR Policy Candidate Path | Policy Candidate Path Identifier, and SR Policy Candidate Path | |||
| Attribute(s). | Attribute(s). | |||
| This document also specifies some additional information that is not | This document also specifies some additional information that is not | |||
| encoded as part of an SRPA: computation priority of the LSP, Explicit | encoded as part of an SRPA: computation priority of the LSP, Explicit | |||
| Null Label Policy for the unlabeled IP packets and Drop-Upon-Invalid | NULL Label Policy for the unlabeled IP packets and Drop-Upon-Invalid | |||
| behavior for traffic steering when the LSP is operationally down (see | behavior for traffic steering when the LSP is operationally down (see | |||
| Section 5). | Section 5). | |||
| 4. SR Policy Association (SRPA) | 4. SR Policy Association (SRPA) | |||
| Per [RFC8697], LSPs are associated with other LSPs with which they | Per [RFC8697], LSPs are associated with other LSPs with which they | |||
| interact by adding them to a common association group. An | interact by adding them to a common association group. An | |||
| association group is uniquely identified by the combination of the | association group is uniquely identified by the combination of the | |||
| following fields in the ASSOCIATION object (Section 6.1 of | following fields in the ASSOCIATION object (Section 6.1 of | |||
| [RFC8697]): Association Type, Association ID, Association Source, and | [RFC8697]): Association Type, Association ID, Association Source, and | |||
| skipping to change at line 351 ¶ | skipping to change at line 351 ¶ | |||
| * Originator ([RFC9256], Section 2.4) | * Originator ([RFC9256], Section 2.4) | |||
| * Discriminator ([RFC9256], Section 2.5) | * Discriminator ([RFC9256], Section 2.5) | |||
| 4.3. SR Policy Candidate Path Attributes | 4.3. SR Policy Candidate Path Attributes | |||
| SR Policy Candidate Path Attributes carry optional, non-key | SR Policy Candidate Path Attributes carry optional, non-key | |||
| information about a Candidate Path and MAY change during the lifetime | information about a Candidate Path and MAY change during the lifetime | |||
| of an LSP. SR Policy Candidate Path Attributes consist of: | of an LSP. SR Policy Candidate Path Attributes consist of: | |||
| * Candidate Path preference ([RFC9256], Section 2.7) | * Candidate Path Preference ([RFC9256], Section 2.7) | |||
| * Candidate Path name ([RFC9256], Section 2.6) | * Candidate Path name ([RFC9256], Section 2.6) | |||
| * SR Policy name ([RFC9256], Section 2.1) | * SR Policy name ([RFC9256], Section 2.1) | |||
| 4.4. Association Parameters | 4.4. Association Parameters | |||
| Per Section 2.1 of [RFC9256], an SR Policy is identified through the | Per Section 2.1 of [RFC9256], an SR Policy is identified through the | |||
| <Headend, Color, Endpoint> tuple. | <Headend, Color, Endpoint> tuple. | |||
| skipping to change at line 377 ¶ | skipping to change at line 377 ¶ | |||
| Policy, as defined in [RFC9256], Section 2.1. | Policy, as defined in [RFC9256], Section 2.1. | |||
| Association ID (16 bit): Always set to the numeric value 1. | Association ID (16 bit): Always set to the numeric value 1. | |||
| Extended Association ID TLV: Mandatory TLV for an SRPA. Encodes the | Extended Association ID TLV: Mandatory TLV for an SRPA. Encodes the | |||
| Color and Endpoint of the SR Policy (Figure 1). | Color and Endpoint of the SR Policy (Figure 1). | |||
| 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 = 31 | Length = 8 or 20 | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Color | | | Color | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ~ Endpoint ~ | ~ Endpoint ~ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 1: Extended Association ID TLV Format | Figure 1: Extended Association ID TLV Format | |||
| Type: 31 for the Extended Association ID TLV [RFC8697]. | Type: 31 for the Extended Association ID TLV [RFC8697]. | |||
| Length: 8 octets if IPv4 address or 20 octets if IPv6 address is | Length: 8 octets if IPv4 address or 20 octets if IPv6 address is | |||
| encoded in the Endpoint field. | encoded in the Endpoint field. | |||
| Color: Unsigned non-zero 32-bit integer value, SR Policy color | Color: Unsigned non-zero 32-bit integer value, SR Policy color | |||
| per Section 2.1 of [RFC9256]. | per Section 2.1 of [RFC9256]. | |||
| Endpoint: Can be either IPv4 (4 octets) or IPv6 address (16 | Endpoint: Can be either IPv4 (4 octets) or IPv6 address (16 | |||
| octets). This value MAY be different from the one contained in | octets). This value MAY be different from the one contained in | |||
| the Destination address field in the END-POINTS object, or in | the destination address field in the END-POINTS object, or in | |||
| the Tunnel Endpoint Address field in the LSP-IDENTIFIERS TLV | the Tunnel Endpoint Address field in the LSP-IDENTIFIERS TLV | |||
| (Section 2.1 of [RFC9256]). | (Section 2.1 of [RFC9256]). | |||
| If a PCEP speaker receives an SRPA object whose association | If a PCEP speaker receives an SRPA object whose association | |||
| parameters do not follow the above specification, then the PCEP | parameters do not follow the above specification, then the PCEP | |||
| speaker MUST send a PCErr message with: | speaker MUST send a PCErr message with: | |||
| * Error-Type = 26 "Association Error" | * Error-Type = 26 "Association Error" | |||
| * Error-value = 20 "SR Policy Identifier Mismatch" | * Error-value = 20 "SR Policy Identifier Mismatch" | |||
| skipping to change at line 419 ¶ | skipping to change at line 419 ¶ | |||
| meant to guarantee that there is no possibility of a race condition | meant to guarantee that there is no possibility of a race condition | |||
| when multiple PCEP speakers want to associate the same SR Policy at | when multiple PCEP speakers want to associate the same SR Policy at | |||
| the same time. By adhering to this format, all PCEP speakers come up | the same time. By adhering to this format, all PCEP speakers come up | |||
| with the same association parameters independently of each other | with the same association parameters independently of each other | |||
| based on the SR Policy parameters [RFC9256]. | based on the SR Policy parameters [RFC9256]. | |||
| The last hop of a computed SR Policy Candidate Path MAY differ from | The last hop of a computed SR Policy Candidate Path MAY differ from | |||
| the Endpoint contained in the <Headend, Color, Endpoint> tuple. An | the Endpoint contained in the <Headend, Color, Endpoint> tuple. An | |||
| example use case is to terminate the SR Policy before reaching the | example use case is to terminate the SR Policy before reaching the | |||
| Endpoint and have decapsulated traffic be forwarded the rest of the | Endpoint and have decapsulated traffic be forwarded the rest of the | |||
| path to the Endpoint node using the native Interior Gateway Protocol | path to the Endpoint node using the Interior Gateway Protocol (IGP) | |||
| (IGP) path(s). In this example, the destination of the SR Policy | shortest path(s). In this example, the destination of the SR Policy | |||
| Candidate Paths will be some node before the Endpoint, but the | Candidate Paths will be some node before the Endpoint, but the | |||
| Endpoint value is still used at the headend to steer traffic with | Endpoint value is still used at the headend to steer traffic with | |||
| that Endpoint IP address into the SR Policy. The Destination of the | that Endpoint IP address into the SR Policy. The destination of the | |||
| SR Policy Candidate Path is signaled using the END-POINTS object and/ | SR Policy Candidate Path is signaled using the END-POINTS object and/ | |||
| or the LSP-IDENTIFIERS TLV, per the usual PCEP procedure. When | or the LSP-IDENTIFIERS TLV, per the usual PCEP procedure. When | |||
| neither the END-POINTS object nor the LSP-IDENTIFIERS TLV is present, | neither the END-POINTS object nor the LSP-IDENTIFIERS TLV is present, | |||
| the PCEP speaker MUST extract the destination from the Endpoint field | the PCEP speaker MUST extract the destination from the Endpoint field | |||
| in the SRPA Extended Association ID TLV. | in the SRPA Extended Association ID TLV. | |||
| SR Policy with Color-Only steering is signaled with the Endpoint | SR Policy with Color-Only steering is signaled with the Endpoint | |||
| value set to unspecified, i.e., 0.0.0.0 for IPv4 or :: for IPv6, per | value set to unspecified, i.e., 0.0.0.0 for IPv4 or :: for IPv6, per | |||
| Section 8.8 of [RFC9256]. | Section 8.8 of [RFC9256]. | |||
| skipping to change at line 448 ¶ | skipping to change at line 448 ¶ | |||
| SRPOLICY-POL-NAME TLV (Section 4.5.1): (optional) encodes the SR | SRPOLICY-POL-NAME TLV (Section 4.5.1): (optional) encodes the SR | |||
| Policy Name string. | Policy Name string. | |||
| SRPOLICY-CPATH-ID TLV (Section 4.5.2): (mandatory) encodes the SR | SRPOLICY-CPATH-ID TLV (Section 4.5.2): (mandatory) encodes the SR | |||
| Policy Candidate Path Identifier. | Policy Candidate Path Identifier. | |||
| SRPOLICY-CPATH-NAME TLV (Section 4.5.3): (optional) encodes the SR | SRPOLICY-CPATH-NAME TLV (Section 4.5.3): (optional) encodes the SR | |||
| Policy Candidate Path string name. | Policy Candidate Path string name. | |||
| SRPOLICY-CPATH-PREFERENCE TLV (Section 4.5.4): (optional) encodes | SRPOLICY-CPATH-PREFERENCE TLV (Section 4.5.4): (optional) encodes | |||
| the SR Policy Candidate Path preference value. | the SR Policy Candidate Path Preference value. | |||
| When a mandatory TLV is missing from an SRPA object, the PCEP speaker | When a mandatory TLV is missing from an SRPA object, the PCEP speaker | |||
| MUST send a PCErr message with: | MUST send a PCErr message with: | |||
| * Error-Type = 6 "Mandatory Object Missing" | * Error-Type = 6 "Mandatory Object Missing" | |||
| * Error-value = 21 "Missing SR Policy Mandatory TLV" | * Error-value = 21 "Missing SR Policy Mandatory TLV" | |||
| Only one TLV instance of each TLV type can be carried in an SRPA | Only one TLV instance of each TLV type can be carried in an SRPA | |||
| object, and only the first occurrence is processed. Any others MUST | object, and only the first occurrence is processed. Any others MUST | |||
| skipping to change at line 607 ¶ | skipping to change at line 607 ¶ | |||
| | Preference | | | Preference | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 5: SRPOLICY-CPATH-PREFERENCE TLV Format | Figure 5: SRPOLICY-CPATH-PREFERENCE TLV Format | |||
| Type: 59 for the SRPOLICY-CPATH-PREFERENCE TLV. | Type: 59 for the SRPOLICY-CPATH-PREFERENCE TLV. | |||
| Length: 4. | Length: 4. | |||
| Preference: 32-bit unsigned integer value that encodes the | Preference: 32-bit unsigned integer value that encodes the | |||
| preference of the Candidate Path as defined in Section 2.7 of | Preference of the Candidate Path as defined in Section 2.7 of | |||
| [RFC9256]. | [RFC9256]. | |||
| 5. SR Policy Signaling Extensions | 5. SR Policy Signaling Extensions | |||
| This section introduces mechanisms described for SR Policies in | This section introduces mechanisms described for SR Policies in | |||
| [RFC9256] to PCEP. These extensions do not make use of the SRPA for | [RFC9256] to PCEP. These extensions do not make use of the SRPA for | |||
| signaling in PCEP, and therefore cannot rely on the Association | signaling in PCEP; therefore, they cannot rely on the Association | |||
| capability negotiation in the ASSOC-Type-List TLV and separate | capability negotiation in the ASSOC-Type-List TLV. Instead, separate | |||
| capability negotiation is required. | capability negotiation is required. | |||
| This document specifies four new TLVs to be carried in the OPEN or | This document specifies four new TLVs to be carried in the OPEN or | |||
| LSP object. Only one TLV instance of each type can be carried, and | LSP object. Only one TLV instance of each type can be carried, and | |||
| only the first occurrence is processed. Any others MUST be ignored. | only the first occurrence is processed. Any others MUST be ignored. | |||
| 5.1. SRPOLICY-CAPABILITY TLV | 5.1. SRPOLICY-CAPABILITY TLV | |||
| The SRPOLICY-CAPABILITY TLV (Figure 6) is a TLV for the OPEN object. | The SRPOLICY-CAPABILITY TLV (Figure 6) is a TLV for the OPEN object. | |||
| It is used at session establishment to learn the peer's capabilities | It is used at session establishment to learn the peer's capabilities | |||
| skipping to change at line 663 ¶ | skipping to change at line 663 ¶ | |||
| P-flag (Computation Priority): If set to 1 by a PCEP speaker, the | P-flag (Computation Priority): If set to 1 by a PCEP speaker, the | |||
| P-flag indicates that the PCEP speaker supports the handling of | P-flag indicates that the PCEP speaker supports the handling of | |||
| the COMPUTATION-PRIORITY TLV for the SR Policy (Section 5.2.1). | the COMPUTATION-PRIORITY TLV for the SR Policy (Section 5.2.1). | |||
| If this flag is set to 0, then the receiving PCEP speaker MUST | If this flag is set to 0, then the receiving PCEP speaker MUST | |||
| NOT send the COMPUTATION-PRIORITY TLV and MUST ignore it on | NOT send the COMPUTATION-PRIORITY TLV and MUST ignore it on | |||
| receipt. | receipt. | |||
| E-flag (Explicit NULL Label Policy): If set to 1 by a PCEP | E-flag (Explicit NULL Label Policy): If set to 1 by a PCEP | |||
| speaker, the E-flag indicates that the PCEP speaker supports | speaker, the E-flag indicates that the PCEP speaker supports | |||
| the handling of the Explicit Null Label Policy (ENLP) TLV for | the handling of the Explicit NULL Label Policy (ENLP) TLV for | |||
| the SR Policy (Section 5.2.2). If this flag is set to 0, then | the SR Policy (Section 5.2.2). If this flag is set to 0, then | |||
| the receiving PCEP speaker MUST NOT send the ENLP TLV and MUST | the receiving PCEP speaker MUST NOT send the ENLP TLV and MUST | |||
| ignore it on receipt. | ignore it on receipt. | |||
| I-flag (Invalidation): If set to 1 by a PCEP speaker, the I-flag | I-flag (Invalidation): If set to 1 by a PCEP speaker, the I-flag | |||
| indicates that the PCEP speaker supports the handling of the | indicates that the PCEP speaker supports the handling of the | |||
| INVALIDATION TLV for the SR Policy (Section 5.2.3). If this | INVALIDATION TLV for the SR Policy (Section 5.2.3). If this | |||
| flag is set to 0, then the receiving PCEP speaker MUST NOT send | flag is set to 0, then the receiving PCEP speaker MUST NOT send | |||
| the INVALIDATION TLV and MUST ignore it on receipt. | the INVALIDATION TLV and MUST ignore it on receipt. | |||
| skipping to change at line 718 ¶ | skipping to change at line 718 ¶ | |||
| Length: 4. | Length: 4. | |||
| Priority: 8-bit unsigned integer value that encodes numerical | Priority: 8-bit unsigned integer value that encodes numerical | |||
| priority with which this LSP is to be recomputed by the PCE upon | priority with which this LSP is to be recomputed by the PCE upon | |||
| topology change. The lowest value is the highest priority. | topology change. The lowest value is the highest priority. | |||
| Reserved: This field MUST be set to zero on transmission and MUST be | Reserved: This field MUST be set to zero on transmission and MUST be | |||
| ignored on receipt. | ignored on receipt. | |||
| 5.2.2. Explicit Null Label Policy (ENLP) TLV | 5.2.2. Explicit NULL Label Policy (ENLP) TLV | |||
| To steer an unlabeled IP packet into an SR Policy for the MPLS data | To steer an unlabeled IP packet into an SR Policy for the MPLS data | |||
| plane, it is necessary to push a label stack of one or more labels on | plane, it is necessary to push a label stack of one or more labels on | |||
| that packet. The Explicit NULL Label Policy (ENLP) TLV is an | that packet. The Explicit NULL Label Policy (ENLP) TLV is an | |||
| optional TLV for the LSP object used to indicate whether an Explicit | optional TLV for the LSP object used to indicate whether an Explicit | |||
| NULL Label [RFC3032] must be pushed on an unlabeled IP packet before | NULL label [RFC3032] must be pushed on an unlabeled IP packet before | |||
| any other labels. The contents of this TLV are used by the SR Policy | any other labels. The contents of this TLV are used by the SR Policy | |||
| manager as described in Section 4.1 of [RFC9256]. If an ENLP TLV is | manager as described in Section 4.1 of [RFC9256]. If an ENLP TLV is | |||
| not present, the decision of whether to push an Explicit NULL label | not present, the decision of whether to push an Explicit NULL label | |||
| on a given packet is a matter of local configuration. Note that | on a given packet is a matter of local configuration. Note that | |||
| Explicit Null is currently only defined for SR-MPLS and not for SRv6. | Explicit NULL is currently only defined for SR-MPLS and not for SRv6. | |||
| Therefore, the receiving PCEP speaker MUST ignore the presence of | Therefore, the receiving PCEP speaker MUST ignore the presence of | |||
| this TLV for SRv6 Policies. | this TLV for SRv6 Policies. | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type | Length | | | Type | Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | ENLP | Reserved | | | ENLP | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 8: Explicit Null Label Policy (ENLP) TLV Format | Figure 8: Explicit NULL Label Policy (ENLP) TLV Format | |||
| Type: 69 for the ENLP TLV. | Type: 69 for the ENLP TLV. | |||
| Length: 4. | Length: 4. | |||
| ENLP: Explicit NULL Label Policy. 8-bit unsigned integer value that | ENLP: Explicit NULL Label Policy. 8-bit unsigned integer value that | |||
| indicates whether Explicit NULL labels are to be pushed on | indicates whether Explicit NULL labels are to be pushed on | |||
| unlabeled IP packets that are being steered into a given SR | unlabeled IP packets that are being steered into a given SR | |||
| Policy. The values of this field are specified in the IANA | Policy. The values of this field are specified in the IANA | |||
| registry "SR Policy ENLP Values" under the "Segment Routing" | registry "SR Policy ENLP Values" under the "Segment Routing" | |||
| registry group, which was introduced in Section 6.10 of [RFC9830]. | registry group, which was introduced in Section 6.10 of [RFC9830]. | |||
| Reserved: This field MUST be set to zero on transmission and MUST be | Reserved: This field MUST be set to zero on transmission and MUST be | |||
| ignored on receipt. | ignored on receipt. | |||
| The ENLP unassigned values may be used for future extensions, and | The ENLP unassigned values may be used for future extensions, and | |||
| implementations MUST ignore the ENLP TLV with unrecognized values. | implementations MUST ignore the ENLP TLV with unrecognized values. | |||
| The behavior signaled in this TLV MAY be overridden by local | The behavior signaled in this TLV MAY be overridden by local | |||
| configuration by the network operator based on their deployment | configuration by the network operator based on their deployment | |||
| requirements. Section 4.1 of [RFC9256] describes the behavior on the | requirements. Section 4.1 of [RFC9256] describes the behavior on the | |||
| headend for the handling of the explicit null label. | headend for the handling of the Explicit NULL label. | |||
| 5.2.3. INVALIDATION TLV | 5.2.3. INVALIDATION TLV | |||
| The INVALIDATION TLV (Figure 9) is an optional TLV. This TLV is used | The INVALIDATION TLV (Figure 9) is an optional TLV. This TLV is used | |||
| to control traffic steering into an LSP when the LSP is operationally | to control traffic steering into an LSP when the LSP is operationally | |||
| down/invalid. In the context of SR Policy, this TLV facilitates the | down/invalid. In the context of SR Policy, this TLV facilitates the | |||
| Drop-Upon-Invalid behavior, specified in Section 8.2 of [RFC9256]. | Drop-Upon-Invalid behavior, specified in Section 8.2 of [RFC9256]. | |||
| Normally, if the LSP is down/invalid then it stops attracting | Normally, if the LSP is down/invalid then it stops attracting | |||
| traffic; traffic that would have been destined for that LSP is | traffic; traffic that would have been destined for that LSP is | |||
| redirected somewhere else, such as via IGP or another LSP. The Drop- | redirected somewhere else, such as via IGP or another LSP. The Drop- | |||
| skipping to change at line 855 ¶ | skipping to change at line 855 ¶ | |||
| Path of that SR Policy, i.e., when any Candidate Path has Drop-Upon- | Path of that SR Policy, i.e., when any Candidate Path has Drop-Upon- | |||
| Invalid enabled, it means that the whole SR Policy has the feature | Invalid enabled, it means that the whole SR Policy has the feature | |||
| enabled. As stated in Section 8.1 of [RFC9256], an SR Policy is | enabled. As stated in Section 8.1 of [RFC9256], an SR Policy is | |||
| invalid when all its Candidate Paths are invalid. | invalid when all its Candidate Paths are invalid. | |||
| Once all the Candidate Paths of an SR Policy have become invalid, | Once all the Candidate Paths of an SR Policy have become invalid, | |||
| then the SR Policy checks whether any of the Candidate Paths have | then the SR Policy checks whether any of the Candidate Paths have | |||
| Drop-Upon-Invalid enabled. If so, the SR Policy enters the drop | Drop-Upon-Invalid enabled. If so, the SR Policy enters the drop | |||
| state and "activates" the highest preference Candidate Path that has | state and "activates" the highest preference Candidate Path that has | |||
| the Drop-Upon-Invalid enabled. Note that only one Candidate Path | the Drop-Upon-Invalid enabled. Note that only one Candidate Path | |||
| needs to be reported to the PCE with the D (dropping) flag set. | needs to be reported to the PCE with the Dropping (D) flag set. | |||
| 5.3. Updates to RFC 8231 | 5.3. Updates to RFC 8231 | |||
| Section 5.8.2 of [RFC8231] allows delegation of an LSP in | Section 5.8.2 of [RFC8231] allows delegation of an LSP in | |||
| operationally down state, but at the same time mandates the use of | operationally down state, but at the same time mandates the use of | |||
| PCReq before sending PCRpt. This document updates Section 5.8.2 of | PCReq before sending PCRpt. This document updates Section 5.8.2 of | |||
| [RFC8231], by making that section of [RFC8231] not applicable to SR | [RFC8231], by making that section of [RFC8231] not applicable to SR | |||
| Policy LSPs. Thus, when a PCC wants to delegate an SR Policy LSP, it | Policy LSPs. Thus, when a PCC wants to delegate an SR Policy LSP, it | |||
| MAY proceed directly to sending PCRpt, without first sending PCReq | MAY proceed directly to sending PCRpt, without first sending PCReq | |||
| and waiting for PCRep. This has the advantage of reducing the number | and waiting for PCRep. This has the advantage of reducing the number | |||
| skipping to change at line 1120 ¶ | skipping to change at line 1120 ¶ | |||
| 8.1. Control of Function and Policy | 8.1. Control of Function and Policy | |||
| A PCE or PCC implementation MAY allow the capabilities specified in | A PCE or PCC implementation MAY allow the capabilities specified in | |||
| Section 5.1 and the capability for support of an SRPA advertised in | Section 5.1 and the capability for support of an SRPA advertised in | |||
| the ASSOC-Type-List TLV to be enabled and disabled. | the ASSOC-Type-List TLV to be enabled and disabled. | |||
| 8.2. Information and Data Models | 8.2. Information and Data Models | |||
| [PCEP-SRv6-YANG] defines a YANG module with common building blocks | [PCEP-SRv6-YANG] defines a YANG module with common building blocks | |||
| for PCEP extensions described in Section 4. | for PCEP extensions described in Section 4 of this document. | |||
| 8.3. Liveness Detection and Monitoring | 8.3. Liveness Detection and Monitoring | |||
| Mechanisms defined in this document do not imply any new liveness | Mechanisms defined in this document do not imply any new liveness | |||
| detection and monitoring requirements in addition to those already | detection and monitoring requirements in addition to those already | |||
| listed in [RFC5440], [RFC8664], and [RFC9256]. | listed in [RFC5440], [RFC8664], and [RFC9256]. | |||
| 8.4. Verify Correct Operations | 8.4. Verify Correct Operations | |||
| Operation verification requirements already listed in [RFC5440], | Operation verification requirements already listed in [RFC5440], | |||
| End of changes. 22 change blocks. | ||||
| 25 lines changed or deleted | 25 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||