rfc-8800

Path Computation Element Communication Protocol (PCEP) Extension for Label Switched Path (LSP) Diversity Constraint Signaling

S. Litkowski, S. Sivabalan, C. Barth, M. Negi
date2020-07 streamIETF areartg wgpce statusPROPOSED STANDARD pages21 canonicalhttps://www.rfc-editor.org/rfc/rfc8800 doi10.17487/RFC8800
This document introduces a simple mechanism to associate a group of Label Switched Paths (LSPs) via an extension to the Path Computation Element Communication Protocol (PCEP) with the purpose of computing diverse (disjointed) paths for those LSPs. The proposed extension allows a Path Computation Client (PCC) to advertise to a Path Computation Element (PCE) that a particular LSP belongs to a particular Disjoint Association Group; thus, the PCE knows that the LSPs in the same group need to be disjoint from each other.

updated by

Extracted elements (25)

design-rationale §3

Four distinct levels of disjointness are defined—link disjoint, node disjoint, SRLG disjoint, and node+SRLG disjoint—because different network scenarios and customer requirements demand different tradeoffs between the degree of disjointness and the likelihood of finding a feasible path. Centralized PCE computation is preferred for multi-head-end diverse paths because distributed computation of such paths is difficult.

routing, mpls

design-rationale §5.4

The Disjoint Association Group (DAG) complements rather than replaces the SVEC object. The key difference is that the DAG persists in the stateful PCE database and any future change to an LSP in the DAG automatically triggers recomputation considering disjointness, whereas the SVEC object is processed only once upon receipt of the PCReq message.

routing, mpls

design-rationale §5.5

The P flag was introduced to support primary/backup scenarios where the primary path should use the most optimal route without regard to diversity constraints, while backup paths are then constrained to be disjoint from the primary. Without this hint, a disjointness algorithm may suboptimally assign both paths, failing to meet the customer's requirement that the primary use the best available path.

routing, mpls

interoperability-note §5.1 MAY

A particular LSP MAY be associated with multiple Disjoint Association Groups simultaneously. The PCE SHOULD try to consider all applicable DAGs during path computation; if it cannot support multi-DAG computation, it MUST NOT add the LSP into the association group and MUST return a PCErr with Error-Type 26, Error-value 7.

routing, mpls

interoperability-note §5.2

The DISJOINTNESS-STATUS TLV (Type=47) shares the same bit layout as the DISJOINTNESS-CONFIGURATION TLV but carries different semantics (achieved vs. desired disjointness). Any new flag defined for DISJOINTNESS-CONFIGURATION automatically defines a corresponding flag at the same bit position in DISJOINTNESS-STATUS; the status semantics MUST be specified in the same document that defines the configuration flag.

routing, mpls

normative-requirement §5.1 MUST

All LSPs in a particular Disjoint Association Group MUST use the same combination of T, S, N, and L flags in the DISJOINTNESS-CONFIGURATION TLV. If a PCEP peer receives inconsistent flag combinations for LSPs in the same DAG, it MUST NOT add those LSPs and MUST reply with PCErr Error-Type 26 (Association Error), Error-value 6 (Association information mismatch).

routing, mpls

normative-requirement §5.1 MUST

Capability exchange for the Disjoint Association Type (DAT, value 2) MUST be performed before using the disjoint association. The PCEP speaker MUST include DAT in the ASSOC-Type-List TLV and MUST receive the same from the PCEP peer before using the Disjoint Association Group in PCEP messages.

routing, mpls

normative-requirement §5.2 MUST

The Disjoint Association Group (ASSOCIATION object with Association type = 2) MUST carry the DISJOINTNESS-CONFIGURATION TLV. If a PCEP speaker receives a DAG without this TLV, it SHOULD reply with PCErr Error-Type 6 (Mandatory Object missing), Error-value 15 (DISJOINTNESS-CONFIGURATION TLV missing).

routing, mpls

normative-requirement §5.1 MUST

The Operator-configured Association Range MUST be set for the Disjoint Association type to mark a range of Association Identifiers used for operator-configured associations, avoiding any Association Identifier clash within the scope of the Association Source.

routing, mpls

normative-requirement §5.4 MUST

When both SVEC and ASSOCIATION objects are present in a PCReq, the PCE MUST try to find a path that meets both sets of constraints simultaneously. If no such path is possible, the PCE MUST send a PCRep with a NO-PATH object indicating failure.

routing, mpls

normative-requirement §5.3 MUST

When the OF-List TLV is included in the ASSOCIATION object, the first OF-code inside the OF object MUST be one of the disjoint OFs defined in this document (MSL=15, MSS=16, MSN=17). If this condition is not met, the PCEP speaker MUST respond with a PCErr message with Error-Type 10 and Error-value 32 (Incompatible OF code).

routing, mpls

normative-requirement §5.6 MUST

When the T flag (Strict disjointness) is set and disjointness cannot be ensured, the PCE MUST reply to a PCReq with a PCRep containing a NO-PATH object, or in case of a PCRpt, MUST return a PCErr with Error-Type 26 and Error-value 7 (Cannot join the association group). In case of a network event causing impossible strict disjointness, the PCE MUST send a PCUpd with an empty ERO.

routing, mpls

protocol-element §5.1

RFC 8800 defines a new Association type called 'Disjoint Association' (value 2), also referred to as DAT (Disjoint Association Type), based on the generic ASSOCIATION object defined in RFC 8697. A Disjoint Association Group (DAG) groups LSPs that must be computed with diverse (disjoint) paths.

routing, mpls, registry

protocol-element §5.2

The P (Shortest Path) flag in DISJOINTNESS-CONFIGURATION TLV indicates that the LSP SHOULD be computed first without considering diversity constraints; other LSPs with P=0 are then computed taking into account disjointness from the already-placed P=1 LSPs. This creates a one-sided dependency relationship.

routing, mpls

protocol-element §5.2

The T (Strict Disjointness) flag in DISJOINTNESS-CONFIGURATION TLV controls PCE behavior when disjoint paths cannot be found. When set, the PCE MUST return no path for LSPs that could not be made disjoint. When unset, the PCE may relax disjointness by applying a requested objective function or using local policy.

routing, mpls

protocol-element §5.3

Three new disjointness Objective Function codes are defined: MSL (15) minimizes the number of shared links among a set of paths, MSS (16) minimizes the number of shared SRLGs, and MSN (17) minimizes the number of shared nodes. A sender SHOULD include only a single OF-code in the OF-List TLV within the Association Group; the receiver MUST consider only the first.

routing, mpls

protocol-element §5.6

Two new bits are added to the NO-PATH-VECTOR TLV Flags field: bit 11 (Disjoint path not found) indicates the PCE could not find a disjoint path for the LSP, and bit 10 (Requested disjoint computation not supported) indicates the PCE does not support the requested disjointness computation type.

routing, mpls

registry §7.1

IANA assigned Association Type value 2 ('Disjoint Association') in the 'ASSOCIATION Type Field' subregistry within the 'Path Computation Element Protocol (PCEP) Numbers' registry.

registry, routing, mpls

registry §7.3

IANA assigned three new Objective Function code points in the 'Objective Function' subregistry within the PCEP Numbers registry: 15 (MSL – Minimize Shared Links), 16 (MSS – Minimize Shared SRLGs), and 17 (MSN – Minimize Shared Nodes).

registry, routing, mpls

registry §7.4

IANA assigned two new bit flags in the 'NO-PATH-VECTOR TLV Flag Field' subregistry: bit 11 (Disjoint path not found) and bit 10 (Requested disjoint computation not supported), and two new PCEP-ERROR values: Error-Type 6 / Error-value 15 (DISJOINTNESS-CONFIGURATION TLV missing) and Error-Type 10 / Error-value 32 (Incompatible OF code).

registry, routing, mpls

registry §7.2

IANA assigned two new PCEP TLV type values in the 'PCEP TLV Type Indicators' subregistry: Type 46 for DISJOINTNESS-CONFIGURATION TLV and Type 47 for DISJOINTNESS-STATUS TLV. IANA also created a new 'DISJOINTNESS-CONFIGURATION TLV Flag Field' subregistry with Standards Action policy, defining bits 27-31 for T, P, S, N, L flags respectively.

registry, routing, mpls

security-consideration §6

Adding a spurious LSP into a Disjoint Association Group can trigger recomputation and setup of all LSPs in the group, which could be exploited to overwhelm the PCE and the network. A spurious LSP may also carry flags inconsistent with legitimate LSPs, causing allocation failures, or set the 'T' bit creating unresolvable conflicts.

security, routing, mpls

security-consideration §6 RECOMMENDED

The ASSOCIATION object carrying DAG information reveals the grouping relationships between LSPs, which could allow an adversary eavesdropping on the PCEP session to infer network topology. Securing the PCEP session using TLS (RFC 8253), as per BCP 195 (RFC 7525), is RECOMMENDED.

security, routing, tls, mpls

wire-format §5.2

The DISJOINTNESS-CONFIGURATION TLV (Type=46, Length=4 bytes fixed) contains a 32-bit Flags field with five defined bits: L (Link Diverse, bit 31), N (Node Diverse, bit 30), S (SRLG Diverse, bit 29), P (Shortest Path, bit 28), and T (Strict Disjointness, bit 27). Unassigned bits MUST be set to 0 on transmission and MUST be ignored on receipt.

routing, mpls

wire-format §5.2

The DISJOINTNESS-STATUS TLV (Type=47) uses the same format as the DISJOINTNESS-CONFIGURATION TLV. The L, N, and S flags indicate whether the computed paths meet the respective disjointness criterion. The T flag has no meaning in the STATUS TLV and MUST NOT be set on sending and MUST be ignored on receipt.

routing, mpls