This section describes the necessary PCEP objects and extensions. The PCReq and PCRep messages are defined in [
RFC 5440]. This document does not change the existing grammar.
IGP-based PCE Discovery (PCED) is defined in [
RFC 5088] and [
RFC 5089] for the OSPF and IS-IS protocols. Those documents have defined bit 0 in the PCE-CAP-FLAGS Sub-TLV of the PCED TLV as "Path computation with GMPLS link constraints". This capability is optional and can be used to detect GMPLS-capable PCEs. PCEs that set the bit to indicate support of GMPLS path computation
MUST follow the procedures in
Section 2.1.2 to further qualify the level of support during PCEP session establishment.
In addition to the IGP advertisement, a PCEP speaker
MUST be able to discover the other peer GMPLS capabilities during the Open message exchange. This capability is also useful to avoid misconfigurations. This document defines a GMPLS-CAPABILITY TLV for use in the OPEN object to negotiate the GMPLS capability. The inclusion of this TLV in the Open message indicates that the PCEP speaker supports the PCEP extensions defined in the document. A PCEP speaker that is able to support the GMPLS extensions defined in this document
MUST include the GMPLS-CAPABILITY TLV in the Open message. If one of the PCEP peers does not include the GMPLS-CAPABILITY TLV in the Open message, the peers
MUST NOT make use of the objects and TLVs defined in this document.
If the PCEP speaker supports the extensions of this specification but did not advertise the GMPLS-CAPABILITY capability, upon receipt of a message from the PCE including an extension defined in this document, it
MUST generate a PCEP Error (PCErr) with Error-Type=10 (Reception of an invalid object) and Error-value=31 (Missing GMPLS-CAPABILITY TLV), and it
SHOULD terminate the PCEP session.
As documented in
Section 5.3 ("New PCEP TLVs"), IANA has allocated value 45 (GMPLS-CAPABILITY) from the "PCEP TLV Type Indicators" sub-registry. The format for the GMPLS-CAPABILITY TLV is shown in the following figure.
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=45 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
No flags are defined in this document; they are reserved for future use. Unassigned flags
MUST be set to zero on transmission and
MUST be ignored on receipt.
Explicit Label Control (ELC) is a procedure supported by RSVP-TE, where the outgoing labels are encoded in the ERO. As a consequence, the PCE can provide such labels directly in the path ERO. Depending on the policies or switching layer, it might be necessary for the PCC to use explicit label control or explicit link ids; thus, it needs to indicate in the PCReq which granularity it is expecting in the ERO. This corresponds to requirement 12 in
Section 3.1 of
RFC 7025. The possible granularities can be node, link, or label. The granularities are interdependent, in the sense that link granularity implies the presence of node information in the ERO; similarly, a label granularity implies that the ERO contains node, link, and label information.
A new 2-bit Routing Granularity (RG) flag (bits 15-16) is defined in the RP object. The values are defined as follows:
-
-
0:
-
reserved
-
1:
-
node
-
2:
-
link
-
3:
-
label
The RG flag in the RP object indicates the requested route granularity. The PCE
SHOULD follow this granularity and
MAY return a NO-PATH if the requested granularity cannot be provided. The PCE
MAY return any granularity on the route based on its policy. The PCC can decide if the ERO is acceptable based on its content.
If a PCE honored the requested routing granularity for a request, it
MUST indicate the selected routing granularity in the RP object included in the response. Otherwise, the PCE
MUST use the reserved RG to leave the check of the ERO to the PCC. The RG flag is backward compatible with [
RFC 5440]: the value sent by an implementation (PCC or PCE) not supporting it will indicate a reserved value.
Per [
RFC 5440], the object carrying the requested size for the TE-LSP is the BANDWIDTH object. Object types 1 and 2 defined in [
RFC 5440] do not provide enough information to describe the TE-LSP bandwidth in GMPLS networks. The BANDWIDTH object encoding has to be extended to allow the object to express the bandwidth as described in [
RFC 7025]. RSVP-TE extensions for GMPLS provide a set of encodings that allow such representation in an unambiguous way; this is encoded in the RSVP-TE Traffic Specification (TSpec) and Flow Specification (FlowSpec) objects. This document extends the BANDWIDTH object with new object types reusing the RSVP-TE encoding.
The following possibilities are supported by the extended encoding:
-
Asymmetric bandwidth (different bandwidth in forward and reverse direction), as described in [RFC 6387].
-
GMPLS (SDH/SONET, G.709, ATM, MEF, etc.) parameters.
This corresponds to requirements 3, 4, 5, and 11 in
Section 3.1 of
RFC 7025.
This document defines two object types for the BANDWIDTH object:
-
-
3:
-
Generalized bandwidth
-
4:
-
Generalized bandwidth of an existing TE-LSP for which a reoptimization is requested
The definitions below apply for object types 3 and 4. The body 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Bandwidth Spec Length | Rev. Bandwidth Spec Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Bw Spec Type | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Generalized Bandwidth ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Reverse Generalized Bandwidth (optional) ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Optional TLVs ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
BANDWIDTH object types 3 and 4 have a variable length. The 16-bit Bandwidth Spec Length field indicates the length of the Generalized Bandwidth field. The Bandwidth Spec Length
MUST be strictly greater than 0. The 16-bit Reverse Bandwidth Spec Length field indicates the length of the Reverse Generalized Bandwidth field. The Reverse Bandwidth Spec Length
MAY be equal to 0.
The Bw Spec Type field determines which type of bandwidth is represented by the object.
The Bw Spec Type corresponds to the RSVP-TE SENDER_TSPEC (Object Class 12) C-Types.
The encoding of the Generalized Bandwidth and Reverse Generalized Bandwidth fields is the same as the traffic parameters carried in RSVP-TE; they can be found in the following references. Note that the RSVP-TE traffic specification
MAY also include TLVs that are different from the PCEP TLVs (e.g., the TLVs defined in [
RFC 6003]).
Table 3: Generalized Bandwidth and Reverse Generalized Bandwidth Field Encoding
When a PCC requests a bidirectional path with symmetric bandwidth, it
SHOULD only specify the Generalized Bandwidth field and set the Reverse Bandwidth Spec Length to 0. When a PCC needs to request a bidirectional path with asymmetric bandwidth, it
SHOULD specify the different bandwidth in the forward and reverse directions with Generalized Bandwidth and Reverse Generalized Bandwidth fields.
The procedure described in [
RFC 5440] for the PCRep is unchanged: a PCE
MAY include the BANDWIDTH objects in the response to indicate the BANDWIDTH of the path.
As specified in [
RFC 5440], in the case of the reoptimization of a TE-LSP, the bandwidth of the existing TE-LSP
MUST also be included in addition to the requested bandwidth if and only if the two values differ. The object type 4
MAY be used instead of the previously specified object type 2 to indicate the existing TE-LSP bandwidth, which was originally specified with object type 3. A PCC that requested a path with a BANDWIDTH object of object type 1
MUST use object type 2 to represent the existing TE-LSP bandwidth.
Optional TLVs
MAY be included within the object body to specify more specific bandwidth requirements. No TLVs for object types 3 and 4 are defined by this document.
The LOAD-BALANCING object [
RFC 5440] is used to request a set of at most Max-LSP TE-LSPs having in total the bandwidth specified in BANDWIDTH, with each TE-LSP having at least a specified minimum bandwidth. The LOAD-BALANCING object follows the bandwidth encoding of the BANDWIDTH object; thus, the existing definition from [
RFC 5440] does not describe enough details for the bandwidth specification expected by GMPLS.
Similar to the BANDWIDTH object, a new object type is defined to allow a PCC to represent the bandwidth types supported by GMPLS networks.
This document defines object type 2 (Generalized Load Balancing) for the LOAD-BALANCING object. The Generalized Load Balancing object type has a variable length.
The format of the Generalized Load Balancing object type 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Bandwidth Spec Length | Reverse Bandwidth Spec Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Bw Spec Type | Max-LSP | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Min Bandwidth Spec |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Min Reverse Bandwidth Spec (optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ Optional TLVs ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
Bandwidth Spec Length (16 bits):
-
the total length of the Min Bandwidth Spec field. The length MUST be strictly greater than 0.
-
Reverse Bandwidth Spec Length (16 bits):
-
the total length of the Min Reverse Bandwidth Spec field. It MAY be equal to 0.
-
Bw Spec Type (8 bits):
-
the bandwidth specification type; it corresponds to RSVP-TE SENDER_TSPEC (Object Class 12) C-Types.
-
Max-LSP (8 bits):
-
the maximum number of TE-LSPs in the set.
-
Min Bandwidth Spec (variable):
-
specifies the minimum bandwidth specification of each element of the TE-LSP set.
-
Min Reverse Bandwidth Spec (variable):
-
specifies the minimum reverse bandwidth specification of each element of the TE-LSP set.
The encoding of the Min Bandwidth Spec and Min Reverse Bandwidth Spec fields is the same as in the RSVP-TE SENDER_TSPEC object; it can be found in
Table 3 in
Section 2.3 of this document.
When a PCC requests a bidirectional path with symmetric bandwidth while specifying load-balancing constraints, it
SHOULD specify the Min Bandwidth Spec field and set the Reverse Bandwidth Spec Length to 0. When a PCC needs to request a bidirectional path with asymmetric bandwidth while specifying load-balancing constraints, it
MUST specify the different bandwidth in forward and reverse directions through Min Bandwidth Spec and Min Reverse Bandwidth Spec fields.
Optional TLVs
MAY be included within the object body to specify more specific bandwidth requirements. No TLVs for the Generalized Load Balancing object type are defined by this document.
The semantic of the LOAD-BALANCING object is not changed. If a PCC requests the computation of a set of TE-LSPs with at most N TE-LSPs so that it can carry Generalized bandwidth X, each TE-LSP must at least transport bandwidth B; it inserts a BANDWIDTH object specifying X as the required bandwidth and a LOAD-BALANCING object with the Max-LSP and Min Bandwidth Spec fields set to N and B, respectively. When the BANDWIDTH and Min Bandwidth Spec can be summarized as scalars, the sum of the bandwidth for all TE-LSPs in the set is greater than X. The mapping of the X over N path with (at least) bandwidth B is technology and possibly node specific. Each standard definition of the transport technology is defining those mappings and are not repeated in this document. A simplified example for SDH is described in
Appendix A.
In all other cases, including technologies based on statistical multiplexing (e.g., InterServ and Ethernet), the exact bandwidth management (e.g., the Ethernet's Excessive Rate) is left to the PCE's policies, according to the operator's configuration. If required, further documents may introduce a new mechanism to finely express complex load-balancing policies within PCEP.
The BANDWIDTH and LOAD-BALANCING Bw Spec Type can be different depending on the architecture of the endpoint node. When the PCE is not able to handle those two Bw Spec Types, it
MUST return a NO-PATH with the bit "LOAD-BALANCING could not be performed with the bandwidth constraints" set in the NO-PATH-VECTOR TLV.
The END-POINTS object is used in a PCEP request message to specify the source and the destination of the path for which a path computation is requested. Per [
RFC 5440], the source IP address and the destination IP address are used to identify those. A new object type is defined to address the following possibilities:
-
Different source and destination endpoint types.
-
Label restrictions on the endpoint.
-
Specification of unnumbered endpoints type as seen in GMPLS networks.
The object encoding is described in the following sections.
In path computation within a GMPLS context, the endpoints can:
-
Be unnumbered as described in [RFC 3477].
-
Have labels associated to them, specifying a set of constraints on the allocation of labels.
-
Have different switching capabilities.
The IPv4 and IPv6 endpoints are used to represent the source and destination IP addresses. The scope of the IP address (node or numbered link) is not explicitly stated. It is also possible to request a path between a numbered link and an unnumbered link, or a P2MP path between different types of endpoints.
This document defines object type 5 (Generalized Endpoint) for the END-POINTS object. This new type also supports the specification of constraints on the endpoint label to be used. The PCE might know the interface restrictions, but this is not a requirement. This corresponds to requirements 6 and 10 in
Section 3.1 of
RFC 7025.
The Generalized Endpoint object type format consists of a body and a list of TLVs scoped to this object. The TLVs give the details of the endpoints and are described in
Section 2.5.2. For each endpoint type, a different grammar is defined. The TLVs defined to describe an endpoint are:
-
IPV4-ADDRESS
-
IPV6-ADDRESS
-
UNNUMBERED-ENDPOINT
-
LABEL-REQUEST
-
LABEL-SET
The LABEL-SET TLV is used to restrict or suggest the label allocation in the PCE. This TLV expresses the set of restrictions that may apply to signaling. Label restriction support can be an explicit or a suggested value (LABEL-SET describing one label, with the L bit cleared or set, respectively), mandatory range restrictions (LABEL-SET with the L bit cleared), and optional range restriction (LABEL-SET with the L bit set). Endpoints label restriction may not be part of the RRO or IRO. They can be included when following [
RFC 4003] in signaling for the egress endpoint, but ingress endpoint properties can be local to the PCC and not signaled. To support this case, the LABEL-SET allows indication of which labels are used in case of reoptimization. The label range restrictions are valid in GMPLS-controlled networks, depending on either the PCC policy or the switching technology used, for instance, on a given Ethernet or ODU equipment having limited hardware capabilities restricting the label range. Label set restriction also applies to WSON networks where the optical senders and receivers are limited in their frequency tunability ranges, consequently restricting the possible label ranges on the interface in GMPLS. The END-POINTS object with the Generalized Endpoint object type is encoded 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Endpoint Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ TLVs ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Reserved bits
SHOULD be set to 0 when a message is sent and ignored when the message is received.
The values for the Endpoint Type field are defined as follows:
Value |
Type |
0 |
Point-to-Point |
1 |
Point-to-Multipoint with leaf type 1 |
2 |
Point-to-Multipoint with leaf type 2 |
3 |
Point-to-Multipoint with leaf type 3 |
4 |
Point-to-Multipoint with leaf type 4 |
5-244 |
Unassigned |
245-255 |
Experimental Use |
Table 4: Generalized Endpoint Types
The Endpoint Type field is used to cover both point-to-point and different point-to-multipoint endpoints. A PCE may only accept endpoint type 0; endpoint types 1-4 apply if the PCE implementation supports P2MP path calculation. The leaf types for P2MP are as per [
RFC 8306]. A PCE not supporting a given endpoint type
SHOULD respond with a PCErr with Error-Type=4 (Not supported object) and Error-value=7 (Unsupported endpoint type in END-POINTS Generalized Endpoint object type). As per [
RFC 5440], a PCE unable to process Generalized Endpoints may respond with Error-Type=3 (Unknown Object) and Error-value=2 (Unrecognized object type) or with Error-Type=4 (Not supported object) and Error-value=2 (Not supported object Type). The TLVs present in the request object body
MUST follow the grammar per [
RFC 5511]:
<generalized-endpoint-tlvs>::=
<p2p-endpoints> | <p2mp-endpoints>
<p2p-endpoints> ::=
<endpoint> [<endpoint-restriction-list>]
<endpoint> [<endpoint-restriction-list>]
<p2mp-endpoints> ::=
<endpoint> [<endpoint-restriction-list>]
<endpoint> [<endpoint-restriction-list>]
[<endpoint> [<endpoint-restriction-list>]]...
For endpoint type Point-to-Point, two endpoint TLVs
MUST be present in the message. The first endpoint is the source, and the second is the destination.
For endpoint type Point-to-Multipoint, several END-POINTS objects
MAY be present in the message, and the exact meaning depends on the endpoint type defined for the object. The first endpoint TLV is the root, and other endpoint TLVs are the leaves. The root endpoint
MUST be the same for all END-POINTS objects for that P2MP tree request. If the root endpoint is not the same for all END-POINTS, a PCErr with Error-Type=17 (P2MP END-POINTS Error) and Error-value=4 (The PCE cannot satisfy the request due to inconsistent END-POINTS)
MUST be returned. The procedure defined in
RFC 8306,
Section 3.10 also applies to the Generalized Endpoint with Point-to-Multipoint endpoint types.
An endpoint is defined as follows:
<endpoint>::=<IPV4-ADDRESS>|<IPV6-ADDRESS>|<UNNUMBERED-ENDPOINT>
<endpoint-restriction-list> ::= <endpoint-restriction>
[<endpoint-restriction-list>]
<endpoint-restriction> ::=
[<LABEL-REQUEST>][<label-restriction-list>]
<label-restriction-list> ::= <label-restriction>
[<label-restriction-list>]
<label-restriction> ::= <LABEL-SET>
The different TLVs are described in the following sections. A PCE
MAY support any or all of the IPV4-ADDRESS, IPV6-ADDRESS, and UNNUMBERED-ENDPOINT TLVs. When receiving a PCReq, a PCE unable to resolve the identifier in one of those TLVs
MUST respond by using a PCRep with NO-PATH and setting the bit "Unknown destination" or "Unknown source" in the NO-PATH-VECTOR TLV. The response
SHOULD include the END-POINTS object with only the unsupported TLV(s).
A PCE
MAY support either or both of the LABEL-REQUEST and LABEL-SET TLVs. If a PCE finds a non-supported TLV in the END-POINTS, the PCE
MUST respond with a PCErr message with Error-Type=4 (Not supported object) and Error-value=8 (Unsupported TLV present in END-POINTS Generalized Endpoint object type), and the message
SHOULD include the END-POINTS object in the response with only the endpoint and endpoint restriction TLV it did not understand. A PCE supporting those TLVs but not being able to fulfill the label restriction
MUST send a response with a NO-PATH object that has the bit "No endpoint label resource" or "No endpoint label resource in range" set in the NO-PATH-VECTOR TLV. The response
SHOULD include an END-POINTS object containing only the TLV(s) related to the constraints the PCE could not meet.
All endpoint TLVs have the standard PCEP TLV header as defined in
RFC 5440,
Section 7.1. For the Generalized Endpoint object type, the TLVs
MUST follow the ordering defined in
Section 2.5.1.
The IPV4-ADDRESS TLV (Type 39) represents a numbered endpoint using IPv4 numbering. The format of the TLV value 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv4 address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
This TLV
MAY be ignored, in which case a PCRep with NO-PATH
SHOULD be returned, as described in
Section 2.5.1.
The IPv6-ADDRESS TLV (Type 40) represents a numbered endpoint using IPV6 numbering. The format of the TLV value 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IPv6 address (16 bytes) |
| |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
This TLV
MAY be ignored, in which case a PCRep with NO-PATH
SHOULD be returned, as described in
Section 2.5.1.
The UNNUMBERED-ENDPOINT TLV (Type 41) represents an unnumbered interface. This TLV has the same semantic as in [
RFC 3477]. The TLV value is encoded 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LSR's Router ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Interface ID (32 bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
This TLV
MAY be ignored, in which case a PCRep with NO-PATH
SHOULD be returned, as described in
Section 2.5.1.
The LABEL-REQUEST TLV (Type 42) indicates the switching capability and encoding type of the following label restriction list for the endpoint. The value format and encoding is the same as described in
Section 3.1 of
RFC 3471 for the Generalized Label Request. The LSP Encoding Type field indicates the encoding type, e.g., SONET, SDH, GigE, etc., of the LSP with which the data is associated. The Switching Type field indicates the type of switching that is being requested on the endpoint. The Generalized Protocol Identifier (G-PID) field identifies the payload. This TLV and the following one are defined to satisfy requirement 13 in
Section 3.1 of
RFC 7025 for the endpoint. It is not directly related to the TE-LSP label request, which is expressed by the SWITCH-LAYER object.
On the path calculation request, only the GENERALIZED-BANDWIDTH and SWITCH-LAYER need to be coherent; the endpoint labels could be different (supporting a different LABEL-REQUEST). Hence, the label restrictions include a Generalized Label Request in order to interpret the labels. This TLV
MAY be ignored, in which case a PCRep with NO-PATH
SHOULD be returned, as described in
Section 2.5.1.
Label or label range restrictions can be specified for the TE-LSP endpoints. Those are encoded using the LABEL-SET TLV. The label value needs to be interpreted with a description on the encoding and switching type. The REQ-ADAP-CAP object [
RFC 8282] can be used in case of a mono-layer request; however, in case of a multi-layer request, it is possible to have more than one object, so it is better to have a dedicated TLV for the label and label request. These TLVs
MAY be ignored, in which case a response with NO-PATH
SHOULD be returned, as described in
Section 2.5.1. Per [
RFC 5440], the LABEL-SET TLV is encoded as follows. The type of the LABEL-SET TLV is 43. The TLV Length is variable, and the value encoding follows
Section 3.5 of
RFC 3471, with the addition of a U bit, O bit, and L bit. The L bit is used to represent a suggested set of labels, following the semantic of Suggested Label as defined by [
RFC 3471].
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Action | Reserved |L|O|U| Label Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Subchannel 1 |
| ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
: : :
: : :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Subchannel N |
| ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
A LABEL-SET TLV represents a set of possible labels that can be used on an interface. If the L bit is cleared, the label allocated on the first endpoint
MUST be within the label set range. The Action parameter in the LABEL-SET indicates the type of list provided. These parameters are described by
RFC 3471,
Section 3.5.1.
The U, O, and L bits are defined as follows:
-
-
U:
-
Upstream direction. Set for the upstream (reverse) direction in case of bidirectional LSP.
-
O:
-
Old label. Set when the TLV represents the old (previously allocated) label in case of reoptimization. The R bit of the RP object MUST be set to 1. If the L bit is set, this bit SHOULD be set to 0 and ignored on receipt. When this bit is set, the Action field MUST be set to 0 (Inclusive List), and the LABEL-SET MUST contain one subchannel.
-
L:
-
Loose label. Set when the TLV indicates to the PCE that a set of preferred (ordered) labels are to be used. The PCE MAY use those labels for label allocation.
Several LABEL_SET TLVs
MAY be present with the O bit cleared; LABEL_SET TLVs with the L bit set can be combined with a LABEL_SET TLV with the L bit cleared. There
MUST NOT be more than two LABEL_SET TLVs present with the O bit set. If there are two LABEL_SET TLVs present, there
MUST NOT be more than one with the U bit set, and there
MUST NOT be more than one with the U bit cleared. For a given U bit value, if more than one LABEL_SET TLV with the O bit set is present, the first TLV
MUST be processed, and the following TLVs that have the same U and O bits
MUST be ignored.
A LABEL-SET TLV with the O and L bits set
MUST trigger a PCErr message with Error-Type=10 (Reception of an invalid object) and Error-value=29 (Wrong LABEL-SET TLV present with O and L bits set).
A LABEL-SET TLV that has the O bit set and an Action field not set to 0 (Inclusive List) or that contains more than one subchannel
MUST trigger a PCErr message with Error-Type=10 (Reception of an invalid object) and Error-value=30 (Wrong LABEL-SET TLV present with O bit set and wrong format).
If a LABEL-SET TLV is present with the O bit set, the R bit of the RP object
MUST be set; otherwise, a PCErr message
MUST be sent with Error-Type=10 (Reception of an invalid object) and Error-value=28 (LABEL-SET TLV present with O bit set but without R bit set in RP).
The IRO as defined in [
RFC 5440] is used to include specific objects in the path. RSVP-TE allows the inclusion of a label definition. In order to fulfill requirement 13 in
Section 3.1 of
RFC 7025, the IRO needs to support the new subobject type as defined in [
RFC 3473]:
Table 5
The Label subobject
MUST follow a subobject identifying a link, currently an IP address subobject (Type 1 or 2) or an interface ID (Type 4) subobject. If an IP address subobject is used, then the given IP address
MUST be associated with a link. More than one Label subobject
MAY follow each subobject identifying a link. The procedure associated with this subobject is as follows.
If the PCE is able to allocate labels (e.g., via explicit label control), the PCE
MUST allocate one label from within the set of label values for the given link. If the PCE does not assign labels, then it sends a response with a NO-PATH object, containing a NO-PATH-VECTOR TLV with the bit "No label resource in range" set.
The XRO as defined in [
RFC 5521] is used to exclude specific objects in the path. RSVP-TE allows the exclusion of certain labels [
RFC 6001]. In order to fulfill requirement 13 in
Section 3.1 of
RFC 7025, the PCEP's XRO needs to support a new subobject to enable label exclusion.
The encoding of the XRO Label subobject follows the encoding of the ERO Label subobject defined in [
RFC 3473] and the XRO subobject defined in [
RFC 5521]. The XRO Label subobject (Type 10) represents one label and is defined 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|X| Type=10 | Length |U| Reserved | C-Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label |
| ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
X (1 bit):
-
See [RFC 5521]. The X bit indicates whether the exclusion is mandatory or desired. 0 indicates that the resource specified MUST be excluded from the path computed by the PCE. 1 indicates that the resource specified SHOULD be excluded from the path computed by the PCE, but it MAY be included subject to the PCE policy and the absence of a viable path that meets the other constraints and excludes the resource.
-
Type (7 bits):
-
The type of the XRO Label subobject is 10.
-
Length (8 bits):
-
See [RFC 5521]. The total length of the subobject in bytes (including the Type and Length fields). The length is always divisible by 4.
-
U (1 bit):
-
See RFC 3471, Section 6.1.
-
C-Type (8 bits):
-
The C-Type of the included Label object as defined in [RFC 3473].
-
Label:
-
See [RFC 3471].
The Label subobject
MUST follow a subobject identifying a link, currently an IP address subobject (Type 1 or 2) or an interface ID (Type 4) subobject. If an IP address subobject is used, the given IP address
MUST be associated with a link. More than one label subobject
MAY follow a subobject identifying a link.
Table 6
The LSPA carries the LSP attributes. In the end-to-end recovery context, this also includes the protection state information. A new TLV is defined to fulfill requirement 7 in
Section 3.1 of
RFC 7025 and requirement 3 in
Section 3.2 of
RFC 7025. This TLV contains the information of the PROTECTION object defined by [
RFC 4872] and can be used as a policy input. The LSPA object
MAY carry a PROTECTION-ATTRIBUTE TLV (Type 44), which is defined 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|S|P|N|O| Reserved | LSP Flags | Reserved | Link Flags|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|I|R| Reserved | Seg.Flags | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The content is as defined in
RFC 4872,
Section 14 and
RFC 4873,
Section 6.1.
The LSP (protection) Flags field or the Link Flags field can be used by a PCE implementation for routing policy input. The other attributes are only meaningful for a stateful PCE.
This TLV is
OPTIONAL and
MAY be ignored by the PCE. If ignored by the PCE, it
MUST NOT include the TLV in the LSPA of the response. When the TLV is used by the PCE, an LSPA object and the PROTECTION-ATTRIBUTE TLV
MUST be included in the response. Fields that were not considered
MUST be set to 0.
The NO-PATH object is used in PCRep messages in response to an unsuccessful Path Computation Request (the PCE could not find a path satisfying the set of constraints). In this scenario, the PCE
MUST include a NO-PATH object in the PCRep message. The NO-PATH object
MAY carry the NO-PATH-VECTOR TLV that specifies more information on the reasons that led to a negative reply. In case of GMPLS networks, there could be some additional constraints that led to the failure such as protection mismatch, lack of resources, and so on. Several new flags have been defined in the 32-bit Flag field of the NO-PATH-VECTOR TLV, but no modifications have been made in the NO-PATH object.
The modified NO-PATH-VECTOR TLV carrying the additional information is as follows:
-
-
Bit number 18:
-
Protection Mismatch (1 bit). Specifies the mismatch of the protection type in the PROTECTION-ATTRIBUTE TLV in the request.
-
Bit number 17:
-
No Resource (1 bit). Specifies that the resources are not currently sufficient to provide the path.
-
Bit number 16:
-
Granularity not supported (1 bit). Specifies that the PCE is not able to provide a path with the requested granularity.
-
Bit number 15:
-
No endpoint label resource (1 bit). Specifies that the PCE is not able to provide a path because of the endpoint label restriction.
-
Bit number 14:
-
No endpoint label resource in range (1 bit). Specifies that the PCE is not able to provide a path because of the endpoint label set restriction.
-
Bit number 13:
-
No label resource in range (1 bit). Specifies that the PCE is not able to provide a path because of the label set restriction.
-
Bit number 12:
-
LOAD-BALANCING could not be performed with the bandwidth constraints (1 bit). Specifies that the PCE is not able to provide a path because it could not map the BANDWIDTH into the parameters specified by the LOAD-BALANCING.