RFC 8779
Path Computation Element Communication Protocol (PCEP) Extensions for GMPLS
Path Computation Element Communication Protocol (PCEP) Extensions for GMPLS π¦
okay bestie, this is RFC 8779 (Request for Comments 8779) π It's a Standards Track document from the IETF, dated July 2020, with ISSN 2070-1721. Three editors wrote it: C. Margaria, Ed. (Juniper), O. Gonzalez de Dios, Ed. (Telefonica Investigacion y Desarrollo), and F. Zhang, Ed. (Huawei Technologies). The title block doesn't list anything it obsoletes or updates, so it stands on its own π
Abstract β¨
okay so a Path Computation Element (PCE) is the brain that does path computation for Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) networks π§ The extra GMPLS requirements are listed in RFC 7025.
This memo adds extensions to the Path Computation Element Communication Protocol (PCEP) so it can support the GMPLS control plane and meet those requirements. it's giving upgrade π
Status of This Memo π
this one is an Internet Standards Track document, so it's the real deal π
It's a product of the Internet Engineering Task Force (IETF), and it represents the consensus of the IETF community. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). If you want more on Internet Standards, check out Section 2 of RFC 7841.
Info about the current status of this document, any errata, and how to send feedback is at https://www.rfc-editor.org/info/rfc8779.
Copyright Notice βοΈ
Copyright (c) 2020 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) as they're in effect on the date of publication. Please actually read these, bestie, because they spell out your rights and restrictions for this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Simplified BSD License.
Table of Contents π§
1. Introduction
1.1. Terminology
1.2. PCEP Requirements for GMPLS
1.3. Requirements Applicability
1.3.1. Requirements on the Path Computation Request
1.3.2. Requirements on the Path Computation Response
1.4. Existing Support and Limitations for GMPLS in Base PCEP
Objects
2. PCEP Objects and Extensions
2.1. GMPLS Capability Advertisement
2.1.1. GMPLS Computation TLV in the Existing PCE Discovery
Protocol
2.1.2. OPEN Object Extension GMPLS-CAPABILITY TLV
2.2. RP Object Extension
2.3. BANDWIDTH Object Extensions
2.4. LOAD-BALANCING Object Extensions
2.5. END-POINTS Object Extensions
2.5.1. Generalized Endpoint Object Type
2.5.2. END-POINTS TLV Extensions
2.6. IRO Extension
2.7. XRO Extension
2.8. LSPA Extensions
2.9. NO-PATH Object Extension
2.9.1. Extensions to NO-PATH-VECTOR TLV
3. Additional Error-Types and Error-Values Defined
4. Manageability Considerations
4.1. Control of Function through Configuration and Policy
4.2. Information and Data Models
4.3. Liveness Detection and Monitoring
4.4. Verifying Correct Operation
4.5. Requirements on Other Protocols and Functional Components
4.6. Impact on Network Operation
5. IANA Considerations
5.1. PCEP Objects
5.2. Endpoint Type Field in the Generalized END-POINTS Object
5.3. New PCEP TLVs
5.4. RP Object Flag Field
5.5. New PCEP Error Codes
5.6. New Bits in NO-PATH-VECTOR TLV
5.7. New Subobject for the Include Route Object
5.8. New Subobject for the Exclude Route Object
5.9. New GMPLS-CAPABILITY TLV Flag Field
6. Security Considerations
7. References
7.1. Normative References
7.2. Informative References
Appendix A. LOAD-BALANCING Usage for SDH Virtual Concatenation
Acknowledgments
Contributors
Authors' Addresses
1. Introduction β¨
okay so the PCE architecture and framework for both MPLS and GMPLS networks are defined in [RFC4655] π But most of the older PCEP RFCs, like [RFC5440], [RFC5521], [RFC5541], and [RFC5520], focus on MPLS networks and don't really cover the huge range of GMPLS networks. This document fills that gap by adding the extensions GMPLS needs for stuff like routing requests for Optical Transport Networks (OTNs) and Wavelength Switched Optical Networks (WSONs) π
The functional requirements these PCEP extensions are meant to handle are fully described in [RFC7025] and [RFC7449] π
1.1. Terminology π
this doc uses terms from the PCE architecture document [RFC4655], the PCEP docs including [RFC5440], [RFC5521], [RFC5541], [RFC5520], [RFC7025], and [RFC7449], and the GMPLS docs like [RFC3471], [RFC3473], and so on. Heads up, you're expected to already know these, bestie π Here are the abbreviations used in this document:
ERO: Explicit Route Object
IRO: Include Route Object
L2SC: Layer 2 Switch Capable [RFC3471]
LSC: Lambda Switch Capable [RFC3471]
LSP: Label Switched Path
LSPA: LSP Attribute
MEF: Metro Ethernet Forum
MT: Multiplier [RFC4328] [RFC4606]
NCC: Number of Contiguous Components [RFC4606]
NVC: Number of Virtual Components [RFC4328] [RFC4606]
ODU: Optical Data Unit [G.709-v3]
OTN: Optical Transport Network [G.709-v3]
P2MP: Point-to-Multipoint
PCC: Path Computation Client
PCRep: Path Computation Reply [RFC5440]
PCReq: Path Computation Request [RFC5440]
RCC: Requested Contiguous Concatenation [RFC4606]
RRO: Record Route Object
RSVP-TE: Resource Reservation Protocol - Traffic Engineering
SDH: Synchronous Digital Hierarchy
SONET: Synchronous Optical Network
SRLG: Shared Risk Link Group
SSON: Spectrum-Switched Optical Network
TDM: Time-Division Multiplex Capable [RFC3471]
TE-LSP: Traffic Engineered LSP
XRO: Exclude Route Object
Now the key words thing π The words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document get read as described in BCP 14 [RFC2119] [RFC8174], but only when they're in all capitals, like shown here. Otherwise they're just regular words π
1.2. PCEP Requirements for GMPLS π¦
[RFC7025] lays out the set of PCEP requirements that support GMPLS TE-LSPs. This document assumes you're pretty familiar with [RFC7025] and the existing PCEP extensions already. Quick recap: the requirements break down into these categories:
- Which data flow is switched by the LSP: a combination of a switching type (for instance, L2SC or TDM), an LSP encoding type (e.g., Ethernet, SONET/SDH), and sometimes the signal type (e.g., in case of a TDM or an LSC switching capability).
- Data-flow-specific traffic parameters, which are technology specific. For instance, in SDH/SONET and OTN networks [G.709-v3], the concatenation type and the concatenation number have an influence on the switched data and on which link it can be supported.
- Support for asymmetric bandwidth requests.
- Support for unnumbered interface identifiers, as defined in [RFC3477].
- Label information and technology-specific label(s) such as wavelength labels as defined in [RFC6205]. A PCC should also be able to specify a label restriction similar to the one supported by RSVP-TE in [RFC3473].
- Ability to indicate the requested granularity for the path ERO: node, link, or label. This is to allow the use of the explicit label control feature of RSVP-TE.
The requirements of [RFC7025] apply to several objects conveyed by PCEP. That's covered in Section 1.3. Some of the [RFC7025] requirements are already supported in existing documents, as described in Section 1.4 β¨
This document adds a set of PCEP extensions, including new object types, TLVs, encodings, error codes, and procedures, so it can fulfill the requirements above that the existing RFCs don't cover π
1.3. Requirements Applicability π
This section follows the organization of [RFC7025], Section 3. For each requirement, it shows the affected piece of information carried by PCEP and its scope. very organized, very slay π«Ά
1.3.1. Requirements on the Path Computation Request π¨
(1) Switching capability/type: As described in [RFC3471], this piece of information is used with the encoding type and signal type to fully describe the switching technology and data carried by the TE-LSP. This is applicable to the TE-LSP itself and also to the TE-LSP endpoint (carried in the END-POINTS object for MPLS networks in [RFC5440]) when considering multiple network layers. Inter-layer path computation requirements are addressed in [RFC8282], which focuses on the TE-LSP itself but does not address the TE-LSP endpoints.
(2) Encoding type: See (1).
(3) Signal type: See (1).
(4) Concatenation type: This parameter and the concatenation number (see (5)) are specific to some TDM (SDH and ODU) switching technologies. They MUST be described together and are used to derive the requested resource allocation for the TE-LSP. It is scoped to the TE-LSP and is related to the BANDWIDTH object [RFC5440] in MPLS networks. See concatenation information in [RFC4606] and [RFC4328].
(5) Concatenation number: See (4).
(6) Technology-specific label(s): As described in [RFC3471], the GMPLS labels are specific to each switching technology. They can be specified on each link and also on the TE-LSP endpoints, in WSON networks for instance, as described in [RFC6163]. The label restriction can apply to endpoints, and on each hop, the related PCEP objects are END-POINTS, IRO, XRO, and RRO.
(7) End-to-End (E2E) path protection type: As defined in [RFC4872], this is applicable to the TE-LSP. In MPLS networks, the related PCEP object is LSPA (carrying local protection information).
(8) Administrative group: As defined in [RFC3630], this information is already carried in the LSPA object.
(9) Link protection type: As defined in [RFC4872], this is applicable to the TE-LSP and is carried in association with the E2E path protection type.
(10) Support for unnumbered interfaces: As defined in [RFC3477]. Its scope and related objects are the same as labels.
(11) Support for asymmetric bandwidth requests: As defined in [RFC6387], the scope is similar to (4).
(12) Support for explicit label control during the path computation: This affects the TE-LSP and the amount of information returned in the ERO.
(13) Support of label restrictions in the requests/responses: This is described in (6).
1.3.2. Requirements on the Path Computation Response π
okay so the response side has its own little wishlist too π§
- Path computation with concatenation π: This one is related to the Path Computation request requirement (4). There's also a special kind of concatenation called virtual concatenation, which lets different routes be used between the endpoints. It's kinda like the semantic and scope of
LOAD-BALANCINGin MPLS networks π - Label constraint π·οΈ: The PCE should be able to include labels in the path it returns to the PCC. The related object is the ERO object β¨
- Roles of the routes π: As defined in [RFC4872], this applies to the TE-LSP and is carried in association with the E2E path protection type π¦
1.4. Existing Support and Limitations for GMPLS in Base PCEP Objects π
okay bestie, let's see what base PCEP already covers for GMPLS π The support that [RFC8282] and [RFC5440] give for the requirements listed in [RFC7025] is summarized in Tables 1 and 2. Sometimes the support isn't complete, and when that happens it's noted, and this specification says where extra support is needed π«Ά
+======+====================================+===============+
| Req. | Name | Support |
+======+====================================+===============+
| 1 | Switching capability/type | SWITCH-LAYER |
| | | (RFC 8282) |
+------+------------------------------------+---------------+
| 2 | Encoding type | SWITCH-LAYER |
| | | (RFC 8282) |
+------+------------------------------------+---------------+
| 3 | Signal type | SWITCH-LAYER |
| | | (RFC 8282) |
+------+------------------------------------+---------------+
| 4 | Concatenation type | No |
+------+------------------------------------+---------------+
| 5 | Concatenation number | No |
+------+------------------------------------+---------------+
| 6 | Technology-specific label | (Partial) ERO |
| | | (RFC 5440) |
+------+------------------------------------+---------------+
| 7 | End-to-End (E2E) path protection | No |
| | type | |
+------+------------------------------------+---------------+
| 8 | Administrative group | LSPA (RFC |
| | | 5440) |
+------+------------------------------------+---------------+
| 9 | Link protection type | No |
+------+------------------------------------+---------------+
| 10 | Support for unnumbered interfaces | (Partial) ERO |
| | | (RFC 5440) |
+------+------------------------------------+---------------+
| 11 | Support for asymmetric bandwidth | No |
| | requests | |
+------+------------------------------------+---------------+
| 12 | Support for explicit label control | No |
| | during the path computation | |
+------+------------------------------------+---------------+
| 13 | Support of label restrictions in | No |
| | the requests/responses | |
+------+------------------------------------+---------------+
Table 1: Requirements Support per RFC 7025, Section 3.1
+======+=====================================+=========+
| Req. | Name | Support |
+======+=====================================+=========+
| 1 | Path computation with concatenation | No |
+------+-------------------------------------+---------+
| 2 | Label constraint | No |
+------+-------------------------------------+---------+
| 3 | Roles of the routes | No |
+------+-------------------------------------+---------+
Table 2: Requirements Support per RFC 7025, Section 3.2
Per Section 1.3, PCEP (as described in [RFC5440], [RFC5521], and [RFC8282]) supports the following objects, included in requests and responses, that relate to the requirements we've been talking about π§©
From [RFC5440]:
END-POINTS: related to requirements 1, 2, 3, 6, 10, and 13. The object only supports numbered endpoints. The context specifies whether they are node identifiers or numbered interfaces πBANDWIDTH: related to requirements 4, 5, and 11. The data rate is encoded in the BANDWIDTH object (as an IEEE 32-bit float). [RFC5440] doesn't include the ability to convey an encoding proper to all GMPLS-controlled networks πERO: related to requirements 6, 10, 12, and 13. The ERO content is defined in RSVP in [RFC3209], [RFC3473], [RFC3477], and [RFC7570], and it already supports all of the requirements πLSPA: related to requirements 7, 8, and 9. Requirement 8 (Administrative group) is already supported π
From [RFC5521]:
XRO:- This object allows excluding (strict or not) resources, and it's related to requirements 6, 10, and 13. It also includes the requested diversity (node, link, or SRLG) π¦
- When the F bit is set, the request indicates that the existing path has failed, and the resources present in the RRO can be reused π
From [RFC8282]:
SWITCH-LAYER: addresses requirements 1, 2, and 3 for the TE-LSP and indicates which layer(s) should be considered. The object can be used to represent the RSVP-TE Generalized Label Request. It doesn't address the endpoints case of requirements 1, 2, and 3 πREQ-ADAP-CAP: indicates the adaptation capabilities requested. It can also be used for the endpoints in case of mono-layer computation π§
The gaps in functional coverage of the base PCEP objects are... honestly a lot π
- The
BANDWIDTHandLOAD-BALANCINGobjects don't describe the details of the traffic request (requirements 4 and 5, for example, NVC and multiplier) in the context of GMPLS networks, for instance, in TDM or OTN networks πΈ - The
END-POINTSobject doesn't let you specify an unnumbered interface, nor potential label restrictions on the interface (requirements 6, 10, and 13). Those parameters matter when there are switching constraints π« - The IROs/XROs don't allow the inclusion or exclusion of labels (requirements 6, 10, and 13) π·οΈ
- Base attributes don't allow expressing the requested link protection level and/or the end-to-end protection attributes π‘οΈ
As defined later in this document, the PCEP extensions that cover those gaps are:
- Two new object types are defined for the
BANDWIDTHobject (Generalized bandwidth and Generalized bandwidth of an existing TE-LSP for which a reoptimization is requested) π - A new object type is defined for the
LOAD-BALANCINGobject (Generalized Load Balancing) βοΈ - A new object type is defined for the
END-POINTSobject (Generalized Endpoint) π - A new TLV is added to the Open message for capability negotiation π€
- A new TLV is added to the
LSPAobject β¨ - The Label subobject is now allowed in the IRO and XRO objects π
- In order to indicate the routing granularity used in the response, a new flag is added in the RP object π©
2. PCEP Objects and Extensions π§ββοΈ
okay the main event! This section describes the PCEP objects and extensions we actually need. The PCReq and PCRep messages are defined in [RFC5440], and this document does not change the existing grammar. No new grammar, no drama π
2.1. GMPLS Capability Advertisement π‘
2.1.1. GMPLS Computation TLV in the Existing PCE Discovery Protocol π
IGP-based PCE Discovery (PCED) is defined in [RFC5088] and [RFC5089] for the OSPF and IS-IS protocols. Those documents 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 π«Ά
2.1.2. OPEN Object Extension GMPLS-CAPABILITY TLV π€
okay so IGP advertisement is great, but a PCEP speaker MUST also be able to discover the other peer's GMPLS capabilities during the Open message exchange. This is also useful for avoiding misconfigurations π ββοΈ This document defines a GMPLS-CAPABILITY TLV for use in the OPEN object to negotiate GMPLS capability. Including this TLV in the Open message means the PCEP speaker supports the PCEP extensions defined in this document. A PCEP speaker that is able to support the GMPLS extensions defined here MUST include the GMPLS-CAPABILITY TLV in the Open message. If one of the PCEP peers doesn't include the GMPLS-CAPABILITY TLV in the Open message, the peers MUST NOT make use of the objects and TLVs defined in this document. Big no-no, bestie π«
If the PCEP speaker supports the extensions of this specification but didn't advertise the GMPLS-CAPABILITY capability, then upon receipt of a message from the PCE that includes 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. Yikes π
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're reserved for future use. Unassigned flags MUST be set to zero on transmission and MUST be ignored on receipt. Reserved means reserved, babe π§Έ
2.2. RP Object Extension β¨
okay so Explicit Label Control (ELC) is a procedure RSVP-TE already supports, where the outgoing labels get written right into the ERO π§. That means the PCE can hand those labels over directly in the path ERO. Depending on the policies or the switching layer, the PCC might need explicit label control or explicit link ids instead, so it has to say in the PCReq which granularity it wants in the ERO π . This is requirement 12 in Section 3.1 of [RFC7025], bestie. The granularities are node, link, and label, and they're kinda chained together π. Link granularity means node info is in the ERO too, and label granularity means the ERO has node, link, and label info.
A new 2-bit Routing Granularity (RG) flag (bits 15-16) is defined in the RP object π. The values go like this:
0: reserved
1: node
2: link
3: label
The RG flag in the RP object shows the route granularity that was requested. The PCE SHOULD follow that granularity, and it MAY return a NO-PATH if it can't deliver it π. The PCE MAY also return any granularity on the route based on its policy. The PCC can decide whether the ERO is acceptable based on what's actually in it π.
If a PCE honored the requested routing granularity, it MUST indicate the selected routing granularity in the RP object included in the response β¨. If it didn't, the PCE MUST use the reserved RG so the check of the ERO gets left to the PCC π«Ά. The RG flag is backward compatible with [RFC5440], so an implementation (PCC or PCE) that doesn't support it just sends a reserved value. no drama π.
2.3. BANDWIDTH Object Extensions π¦
Per [RFC5440], the object that carries the requested size for the TE-LSP is the BANDWIDTH object. Object types 1 and 2 from [RFC5440] aren't enough to describe TE-LSP bandwidth in GMPLS networks π. So the BANDWIDTH object encoding has to be extended so it can express bandwidth the way [RFC7025] describes. RSVP-TE extensions for GMPLS already have encodings that represent this unambiguously, and they live in the RSVP-TE Traffic Specification (TSpec) and Flow Specification (FlowSpec) objects. This document extends the BANDWIDTH object with new object types that reuse the RSVP-TE encoding π.
The extended encoding supports the following possibilities:
- Asymmetric bandwidth (different bandwidth in the forward and reverse direction), as described in [RFC6387] π.
- GMPLS parameters (SDH/SONET, G.709, ATM, MEF, etc.) β.
This corresponds to requirements 3, 4, 5, and 11 in Section 3.1 of [RFC7025] π.
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 to object types 3 and 4. The body looks like this:
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 tells you 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 tells you the length of the Reverse Generalized Bandwidth field. The Reverse Bandwidth Spec Length MAY be equal to 0 πΈ.
The Bw Spec Type field decides which type of bandwidth the object represents π§.
The Bw Spec Type lines up with the RSVP-TE SENDER_TSPEC (Object Class 12) C-Types π₯.
The Generalized Bandwidth and Reverse Generalized Bandwidth fields are encoded the same way as the traffic parameters carried in RSVP-TE, and you can find those encodings in the references below. Heads up, the RSVP-TE traffic specification MAY also include TLVs that are different from the PCEP TLVs (for example, the TLVs defined in [RFC6003]) π«£.
+==============+===========+===========+
| Bw Spec Type | Name | Reference |
+==============+===========+===========+
| 2 | Intserv | [RFC2210] |
+--------------+-----------+-----------+
| 4 | SONET/SDH | [RFC4606] |
+--------------+-----------+-----------+
| 5 | G.709 | [RFC4328] |
+--------------+-----------+-----------+
| 6 | Ethernet | [RFC6003] |
+--------------+-----------+-----------+
| 7 | OTN-TDM | [RFC7139] |
+--------------+-----------+-----------+
| 8 | SSON | [RFC7792] |
+--------------+-----------+-----------+
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 a bidirectional path with asymmetric bandwidth, it SHOULD specify the different bandwidth in the forward and reverse directions using the Generalized Bandwidth and Reverse Generalized Bandwidth fields π¦.
The procedure described in [RFC5440] for the PCRep is unchanged. A PCE MAY include the BANDWIDTH objects in the response to show the BANDWIDTH of the path π.
As specified in [RFC5440], when a TE-LSP is being reoptimized, 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. the rules are strict but they make sense, iykyk π .
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.
2.4. LOAD-BALANCING Object Extensions π
Okay so the LOAD-BALANCING object [RFC5440] is how you ask for a set of at most Max-LSP TE-LSPs that together carry the bandwidth in BANDWIDTH, with each TE-LSP getting at least a minimum bandwidth you choose. β¨ It follows the BANDWIDTH object's bandwidth encoding, and the definition in [RFC5440] just isn't detailed enough for the bandwidth stuff GMPLS needs π
Same vibe as the BANDWIDTH object: a new object type is defined so a PCC can represent the bandwidth types GMPLS networks support. π
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 looks like this:
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 ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Now the fields, one by one, because they're the good stuff π
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. You can find it 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. π But if a PCC needs a bidirectional path with asymmetric bandwidth, it MUST specify the different bandwidth in the forward and reverse directions through the Min Bandwidth Spec and Min Reverse Bandwidth Spec fields. Not optional, bestie π
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, so no plot twist there π . Say a PCC wants a set of TE-LSPs with at most N TE-LSPs so that it can carry Generalized bandwidth X, and each TE-LSP must at least transport bandwidth B. It inserts a BANDWIDTH object specifying X as the required bandwidth, plus 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 X over N paths with (at least) bandwidth B is technology and possibly node specific. Each standard definition of the transport technology defines those mappings, so they aren't repeated here. 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. This one is serious, no cap ππ₯
2.5. END-POINTS Object Extensions π
The END-POINTS object is used in a PCEP request message to specify the source and the destination of the path you want a computation for. Per [RFC5440], the source IP address and the destination IP address are used to identify those. A new object type is defined to cover these 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 [RFC3477]. π«§
- 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's also possible to request a path between a numbered link and an unnumbered link, or a P2MP path between different types of endpoints. Wild, right? π¦
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 [RFC7025]. πβ¨
2.5.1. Generalized Endpoint Object Type β¨
okay so the Generalized Endpoint object type is a body plus a list of TLVs that belong only to this object π. those TLVs spill the tea on the endpoints, and we'll get into them in Section 2.5.2 π . each endpoint type gets its own grammar, bc of course it does π. the TLVs that can describe an endpoint are:
IPV4-ADDRESSIPV6-ADDRESSUNNUMBERED-ENDPOINTLABEL-REQUESTLABEL-SET
the LABEL-SET TLV is lowkey the bouncer for label allocation in the PCE πͺβ¨. it's used to restrict or suggest labels, and it expresses the set of restrictions that can apply to signaling. label restriction support can be explicit or suggested. a LABEL-SET describing one label with the L bit cleared is explicit, and with the L bit set it's suggested π¦. then there are mandatory range restrictions (LABEL-SET with the L bit cleared) and optional range restrictions (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 [RFC4003] in signaling for the egress endpoint, but ingress endpoint properties can be local to the PCC and not signaled. to cover this case, the LABEL-SET lets you indicate 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, an Ethernet or ODU piece of equipment with limited hardware capabilities can restrict the label range π. label set restriction also applies to WSON networks, where the optical senders and receivers have limited frequency tunability ranges, which restricts the possible label ranges on the interface in GMPLS π. the END-POINTS object with the Generalized Endpoint object type is encoded like this:
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 goes out π€, and they get ignored when a message comes in π₯ π.
the values for the Endpoint Type field are defined like so π:
+=========+======================================+
| 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 covers both point-to-point and the different point-to-multipoint endpoints π¦. a PCE may only accept endpoint type 0, and endpoint types 1-4 apply if the PCE implementation supports P2MP path calculation π§. the leaf types for P2MP are as per [RFC8306] π·. 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 [RFC5440], a PCE that can't 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 [RFC5511] π:
<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 the 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 isn't the same across 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 [RFC8306], 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 get their own sections below π. a PCE MAY support any or all of the IPV4-ADDRESS, IPV6-ADDRESS, and UNNUMBERED-ENDPOINT TLVs π. when it receives a PCReq, a PCE that can't resolve the identifier in one of those TLVs MUST respond with a PCRep with NO-PATH and set 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). the message SHOULD include the END-POINTS object in the response with only the endpoint and endpoint restriction TLV it didn't understand π«£. a PCE that supports those TLVs but can't 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) tied to the constraints the PCE couldn't meet π¬.
2.5.2. END-POINTS TLV Extensions πΈ
all endpoint TLVs have the standard PCEP TLV header defined in [RFC5440], Section 7.1 π§Ύ. for the Generalized Endpoint object type, the TLVs MUST follow the ordering defined in Section 2.5.1 π.
2.5.2.1. IPV4-ADDRESS TLV π
the IPV4-ADDRESS TLV (Type 39) represents a numbered endpoint using IPv4 numbering π’. the format of the TLV value is:
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 π.
2.5.2.2. IPV6-ADDRESS TLV π¦
the IPv6-ADDRESS TLV (Type 40) represents a numbered endpoint using IPV6 numbering π. the format of the TLV value is:
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 π«Ά.
2.5.2.3. UNNUMBERED-ENDPOINT TLV π§
the UNNUMBERED-ENDPOINT TLV (Type 41) represents an unnumbered interface π€οΈ. this TLV has the same semantic as in [RFC3477] π. 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 π·.
2.5.2.4. LABEL-REQUEST TLV π·οΈ
the LABEL-REQUEST TLV (Type 42) tells you 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 [RFC3471] for the Generalized Label Request π. the LSP Encoding Type field indicates the encoding type (e.g., SONET, SDH, GigE, etc.) of the LSP that the data is associated with π. the Switching Type field indicates the type of switching 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 [RFC7025] for the endpoint π§©. it isn't 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, and the endpoint labels could be different (supporting a different LABEL-REQUEST) π . so 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 π₯°.
2.5.2.5. LABEL-SET TLV β¨
okay bestie, so label or label range restrictions can be set for the TE-LSP endpoints π, and they get encoded with the LABEL-SET TLV π . The label value has to be read alongside a description of the encoding and switching type. The REQ-ADAP-CAP object [RFC8282] can handle a mono-layer request, but a multi-layer request can have more than one of those objects, so a dedicated TLV for the label and label request is the better move π§. These TLVs MAY be ignored, in which case a response with NO-PATH SHOULD be returned, as described in Section 2.5.1. Per [RFC5440], the LABEL-SET TLV is encoded like this π. The type is 43. The TLV Length is variable, and the value encoding follows Section 3.5 of [RFC3471], with a U bit, an O bit, and an L bit added on top. The L bit represents a suggested set of labels, using the Suggested Label semantic from [RFC3471] πΈ.
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 tells you what type of list is provided. These parameters are described in [RFC3471], Section 3.5.1 π.
The U, O, and L bits work like this π¦:
- U: Upstream direction. Set for the upstream (reverse) direction in case of a 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 tells the PCE that a set of preferred (ordered) labels should be used. The PCE MAY use those labels for label allocation.
Several LABEL_SET TLVs MAY be present with the O bit cleared, and 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) π₯.
2.6. IRO Extension
the IRO as defined in [RFC5440] is used to include specific objects in the path π£οΈ. RSVP-TE lets you include a label definition too. To fulfill requirement 13 in Section 3.1 of [RFC7025], the IRO needs to support the new subobject type defined in [RFC3473] π:
+======+===========+
| Type | Subobject |
+======+===========+
| 10 | Label |
+------+-----------+
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. Here's the procedure for this subobject π.
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 π.
2.7. XRO Extension
the XRO as defined in [RFC5521] is used to exclude specific objects in the path π«. RSVP-TE allows the exclusion of certain labels [RFC6001]. To fulfill requirement 13 in Section 3.1 of [RFC7025], the PCEP's XRO needs to support a new subobject for label exclusion π¦.
The encoding of the XRO Label subobject follows the encoding of the ERO Label subobject defined in [RFC3473] and the XRO subobject defined in [RFC5521]. The XRO Label subobject (Type 10) represents one label and is defined like this β¨:
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 [RFC5521]. The X bit says whether the exclusion is mandatory or desired. 0 means the resource specified MUST be excluded from the path computed by the PCE. 1 means 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 [RFC5521]. 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 [RFC3471], Section 6.1.
- C-Type (8 bits): The C-Type of the included Label object as defined in [RFC3473].
- Label: See [RFC3471].
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 π§.
+======+===========+
| Type | Subobject |
+======+===========+
| 10 | Label |
+------+-----------+
Table 6
2.8. LSPA Extensions
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 [RFC7025] and requirement 3 in Section 3.2 of [RFC7025] π. This TLV contains the information of the PROTECTION object defined by [RFC4872] and can be used as a policy input. The LSPA object MAY carry a PROTECTION-ATTRIBUTE TLV (Type 44), which looks like this π:
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 [RFC4872], Section 14 and [RFC4873], Section 6.1 π.
The LSP (protection) Flags field or the Link Flags field can be used by a PCE implementation as 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 π«Ά.
2.9. NO-PATH Object Extension
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, which gives more information on the reasons behind the negative reply. In GMPLS networks, there could be some extra constraints that led to the failure, like 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 to the NO-PATH object π.
2.9.1. Extensions to NO-PATH-VECTOR TLV β¨
okay so the modified NO-PATH-VECTOR TLV carries the extra info in these bits π¦
- Bit number 18: Protection Mismatch (1 bit). Flags a mismatch of the protection type in the PROTECTION-ATTRIBUTE TLV that was in the request. π
- Bit number 17: No Resource (1 bit). Says the resources aren't enough right now to provide the path. π
- Bit number 16: Granularity not supported (1 bit). Says the PCE can't give a path with the granularity that was requested. π
- Bit number 15: No endpoint label resource (1 bit). Says the PCE can't give a path because of the endpoint label restriction. π·οΈ
- Bit number 14: No endpoint label resource in range (1 bit). Says the PCE can't give a path because of the endpoint label set restriction. π
- Bit number 13: No label resource in range (1 bit). Says the PCE can't give a path because of the label set restriction. πΈ
- Bit number 12: LOAD-BALANCING could not be performed with the bandwidth constraints (1 bit). Says the PCE can't give a path because it couldn't map the BANDWIDTH into the parameters specified by the LOAD-BALANCING. βοΈ
3. Additional Error-Types and Error-Values Defined π
okay bestie, so a PCEP-ERROR object is how you report a PCEP error. It's characterized by an Error-Type (what kind of error it is) and an Error-value (extra detail about it). π§ This document adds one new Error-Type and a bunch of Error-values for the newly identified objects, the ones tied to GMPLS networks. Every PCEP error gets an Error-Type and an Error-value. Error-Types 1 to 10 were already defined in [RFC5440], and new Error-values are added for Error-Types 4 and 10. The new Error-Type 29 (Path computation failure) is defined in this document. π₯
Error-Type 29 (Path computation failure) is for when the PCE can't understand the constraints, like when it can't understand the Generalized bandwidth. If it does understand the constraints but just can't find a path that meets them, NO-PATH is the one to use. π
+============+===============+==============================+
| Error-Type | Meaning | Error-value |
+============+===============+==============================+
| 4 | Not supported | |
| | object | |
+------------+---------------+------------------------------+
| | | 6: BANDWIDTH object type 3 |
| | | or 4 not supported |
+------------+---------------+------------------------------+
| | | 7: Unsupported endpoint type |
| | | in END-POINTS Generalized |
| | | Endpoint object type |
+------------+---------------+------------------------------+
| | | 8: Unsupported TLV present |
| | | in END-POINTS Generalized |
| | | Endpoint object type |
+------------+---------------+------------------------------+
| | | 9: Unsupported granularity |
| | | in the RP object flags |
+------------+---------------+------------------------------+
| 10 | Reception of | |
| | an invalid | |
| | object | |
+------------+---------------+------------------------------+
| | | 24: Bad BANDWIDTH object |
| | | type 3 or 4 |
+------------+---------------+------------------------------+
| | | 25: Unsupported LSP |
| | | Protection Flags in |
| | | PROTECTION-ATTRIBUTE TLV |
+------------+---------------+------------------------------+
| | | 26: Unsupported Secondary |
| | | LSP Protection Flags in |
| | | PROTECTION-ATTRIBUTE TLV |
+------------+---------------+------------------------------+
| | | 27: Unsupported Link |
| | | Protection Type in |
| | | PROTECTION-ATTRIBUTE TLV |
+------------+---------------+------------------------------+
| | | 28: LABEL-SET TLV present |
| | | with O bit set but without R |
| | | bit set in RP |
+------------+---------------+------------------------------+
| | | 29: Wrong LABEL-SET TLV |
| | | present with O and L bits |
| | | set |
+------------+---------------+------------------------------+
| | | 30: Wrong LABEL-SET TLV |
| | | present with O bit set and |
| | | wrong format |
+------------+---------------+------------------------------+
| | | 31: Missing GMPLS-CAPABILITY |
| | | TLV |
+------------+---------------+------------------------------+
| 29 | Path | |
| | computation | |
| | failure | |
+------------+---------------+------------------------------+
| | | 0: Unassigned |
+------------+---------------+------------------------------+
| | | 1: Unacceptable request |
| | | message |
+------------+---------------+------------------------------+
| | | 2: Generalized bandwidth |
| | | value not supported |
+------------+---------------+------------------------------+
| | | 3: Label set constraint |
| | | could not be met |
+------------+---------------+------------------------------+
| | | 4: Label constraint could |
| | | not be met |
+------------+---------------+------------------------------+
Table 7
4. Manageability Considerations π
this section follows the guidance of [RFC6123] π§Έ
4.1. Control of Function through Configuration and Policy
so this document doesn't change how basic PCEP works, which means the requirements in [RFC5440], Section 8.1 also apply here π on top of those, a PCEP implementation may let you configure these things:
- Accepted RG in the RP object.
- Default RG to use (overriding the one present in the PCReq).
- Accepted BANDWIDTH object type 3 and 4 parameters in the request and default mapping to use when not specified in the request.
- Accepted LOAD-BALANCING object type 2 parameters in request.
- Accepted endpoint type and allowed TLVs in object END-POINTS with the object type Generalized Endpoint.
- Accepted range for label restrictions in END-POINTS or IRO/XRO objects.
- Acceptance and suppression of the PROTECTION-ATTRIBUTE TLV.
the config for all of the above applies to different sessions the way [RFC5440], Section 8.1 describes (by default, per PCEP peer, etc.) π
4.2. Information and Data Models
again, no change to basic PCEP operation, so the requirements in [RFC5440], Section 8.2 also apply π this document doesn't add any new ERO subobjects, and the ERO information model is already covered in [RFC4802] π
4.3. Liveness Detection and Monitoring
no change to basic PCEP operation here either, so there are no changes to the liveness detection and monitoring requirements in [RFC4657] and [RFC5440], Section 8.3 π«Ά
4.4. Verifying Correct Operation
no changes to basic PCEP operations or the stuff in [RFC5440], Section 8.4 π the new errors defined by this document should meet the requirement to log error events β¨
4.5. Requirements on Other Protocols and Functional Components
no new requirements on other protocols or functional components come from this document π it doesn't require ERO object extensions either. Any new ERO subobject defined in the TEAS or CCAMP Working Groups can be adopted without changing the operations defined here π§
4.6. Impact on Network Operation
again, no change to basic PCEP operations and the considerations in [RFC5440], Section 8.6 π¦ on top of the limit on how fast a PCEP speaker sends messages, a limit MAY be placed on the size of PCEP messages π
5. IANA Considerations π¦
IANA assigns values to PCEP objects and TLVs π IANA has made allocations for the newly defined objects and TLVs in this document. IANA also manages the space of flags that have been newly added in the TLVs π
5.1. PCEP Objects π
okay so new object types are defined in Sections 2.3, 2.4, and 2.5.1, and IANA has now handed out these Object-Type allocations in the "PCEP Objects" subregistry π
+==============+================+=================+===========+
| Object-Class | Name | Object-Type | Reference |
| Value | | | |
+==============+================+=================+===========+
| 5 | BANDWIDTH | 3: Generalized | RFC 8779, |
| | | bandwidth | Section |
| | | | 2.3 |
+--------------+----------------+-----------------+-----------+
| | | 4: Generalized | RFC 8779, |
| | | bandwidth of an | Section |
| | | existing TE-LSP | 2.3 |
| | | for which a | |
| | | reoptimization | |
| | | is requested | |
+--------------+----------------+-----------------+-----------+
| 14 | LOAD-BALANCING | 2: Generalized | RFC 8779, |
| | | Load Balancing | Section |
| | | | 2.4 |
+--------------+----------------+-----------------+-----------+
| 4 | END-POINTS | 5: Generalized | RFC 8779, |
| | | Endpoint | Section |
| | | | 2.5 |
+--------------+----------------+-----------------+-----------+
Table 8
5.2. Endpoint Type Field in the Generalized END-POINTS Object β¨
IANA has created a brand new "Generalized Endpoint Types" registry to manage the Endpoint Type field of the END-POINTS object, the object type Generalized Endpoint, and the code space. It's giving organized ποΈ
New endpoint types in the Unassigned range are assigned by Standards Action [RFC8126]. Each endpoint type should be tracked with the following attributes:
- Value
- Type
- Defining RFC
New endpoint types in the Experimental Use range will not be registered with IANA and MUST NOT be mentioned by any RFCs. Hard boundary, no exceptions π ββοΈ
The following values are defined by this document (see Table 4 in Section 2.5.1):
+=========+======================================+
| 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 9
5.3. New PCEP TLVs π¦
IANA manages a registry for PCEP TLV code points (see [RFC5440]), which is maintained as the "PCEP TLV Type Indicators" subregistry of the "Path Computation Element Protocol (PCEP) Numbers" registry. IANA has allocated the following per this document, and the list is seriously cute πΈ
+=======+======================+===========================+
| Value | Meaning | Reference |
+=======+======================+===========================+
| 39 | IPV4-ADDRESS | RFC 8779, Section 2.5.2.1 |
+-------+----------------------+---------------------------+
| 40 | IPV6-ADDRESS | RFC 8779, Section 2.5.2.2 |
+-------+----------------------+---------------------------+
| 41 | UNNUMBERED-ENDPOINT | RFC 8779, Section 2.5.2.3 |
+-------+----------------------+---------------------------+
| 42 | LABEL-REQUEST | RFC 8779, Section 2.5.2.4 |
+-------+----------------------+---------------------------+
| 43 | LABEL-SET | RFC 8779, Section 2.5.2.5 |
+-------+----------------------+---------------------------+
| 44 | PROTECTION-ATTRIBUTE | RFC 8779, Section 2.8 |
+-------+----------------------+---------------------------+
| 45 | GMPLS-CAPABILITY | RFC 8779, Section 2.1.2 |
+-------+----------------------+---------------------------+
Table 10
5.4. RP Object Flag Field π
A new flag is defined in Section 2.2 for the Flags field of the RP object. IANA has made the following allocation in the "RP Object Flag Field" subregistry:
+=======+==========================+=======================+
| Bit | Description | Reference |
+=======+==========================+=======================+
| 15-16 | Routing Granularity (RG) | RFC 8779, Section 2.2 |
+-------+--------------------------+-----------------------+
Table 11
5.5. New PCEP Error Codes π
New PCEP Error-Types and Error-values are defined in Section 3. IANA has made the following allocations in the "PCEP-ERROR Object Error Types and Values" registry, and there are a lot of them, so grab a snack π
+============+=============+==========================+===========+
| Error-Type | Meaning | Error-value | Reference |
+============+=============+==========================+===========+
| 4 | Not | | [RFC5440] |
| | supported | | |
| | object | | |
+------------+-------------+--------------------------+-----------+
| | | 6: BANDWIDTH object type | RFC 8779 |
| | | 3 or 4 not supported | |
+------------+-------------+--------------------------+-----------+
| | | 7: Unsupported endpoint | RFC 8779 |
| | | type in END-POINTS | |
| | | Generalized Endpoint | |
| | | object type | |
+------------+-------------+--------------------------+-----------+
| | | 8: Unsupported TLV | RFC 8779 |
| | | present in END-POINTS | |
| | | Generalized Endpoint | |
| | | object type | |
+------------+-------------+--------------------------+-----------+
| | | 9: Unsupported | RFC 8779 |
| | | granularity in the RP | |
| | | object flags | |
+------------+-------------+--------------------------+-----------+
| 10 | Reception | | [RFC5440] |
| | of an | | |
| | invalid | | |
| | object | | |
+------------+-------------+--------------------------+-----------+
| | | 24: Bad BANDWIDTH object | RFC 8779 |
| | | type 3 or 4 | |
+------------+-------------+--------------------------+-----------+
| | | 25: Unsupported LSP | RFC 8779 |
| | | Protection Flags in | |
| | | PROTECTION-ATTRIBUTE TLV | |
+------------+-------------+--------------------------+-----------+
| | | 26: Unsupported | RFC 8779 |
| | | Secondary LSP Protection | |
| | | Flags in PROTECTION- | |
| | | ATTRIBUTE TLV | |
+------------+-------------+--------------------------+-----------+
| | | 27: Unsupported Link | RFC 8779 |
| | | Protection Type in | |
| | | PROTECTION-ATTRIBUTE TLV | |
+------------+-------------+--------------------------+-----------+
| | | 28: LABEL-SET TLV | RFC 8779 |
| | | present with O bit set | |
| | | but without R bit set in | |
| | | RP | |
+------------+-------------+--------------------------+-----------+
| | | 29: Wrong LABEL-SET TLV | RFC 8779 |
| | | present with O and L | |
| | | bits set | |
+------------+-------------+--------------------------+-----------+
| | | 30: Wrong LABEL-SET TLV | RFC 8779 |
| | | present with O bit set | |
| | | and wrong format | |
+------------+-------------+--------------------------+-----------+
| | | 31: Missing GMPLS- | RFC 8779 |
| | | CAPABILITY TLV | |
+------------+-------------+--------------------------+-----------+
| 29 | Path | | RFC 8779 |
| | computation | | |
| | failure | | |
+------------+-------------+--------------------------+-----------+
| | | 0: Unassigned | RFC 8779 |
+------------+-------------+--------------------------+-----------+
| | | 1: Unacceptable request | RFC 8779 |
| | | message | |
+------------+-------------+--------------------------+-----------+
| | | 2: Generalized bandwidth | RFC 8779 |
| | | value not supported | |
+------------+-------------+--------------------------+-----------+
| | | 3: Label set constraint | RFC 8779 |
| | | could not be met | |
+------------+-------------+--------------------------+-----------+
| | | 4: Label constraint | RFC 8779 |
| | | could not be met | |
+------------+-------------+--------------------------+-----------+
Table 12
5.6. New Bits in NO-PATH-VECTOR TLV β¨
New NO-PATH-VECTOR TLV bits are defined in Section 2.9.1. π¦ IANA has made the following allocations in the "NO-PATH-VECTOR TLV Flag Field" subregistry:
+=====+=======================================+===========+
| Bit | Description | Reference |
+=====+=======================================+===========+
| 18 | Protection Mismatch | RFC 8779 |
+-----+---------------------------------------+-----------+
| 17 | No Resource | RFC 8779 |
+-----+---------------------------------------+-----------+
| 16 | Granularity not supported | RFC 8779 |
+-----+---------------------------------------+-----------+
| 15 | No endpoint label resource | RFC 8779 |
+-----+---------------------------------------+-----------+
| 14 | No endpoint label resource in range | RFC 8779 |
+-----+---------------------------------------+-----------+
| 13 | No label resource in range | RFC 8779 |
+-----+---------------------------------------+-----------+
| 12 | LOAD-BALANCING could not be performed | RFC 8779 |
| | with the bandwidth constraints | |
+-----+---------------------------------------+-----------+
Table 13
5.7. New Subobject for the Include Route Object π
IANA added a new subobject to the "IRO Subobjects" subregistry of the "Path Computation Element Protocol (PCEP) Numbers" registry. πΈ
IANA also added a new subobject that can be carried in the IRO, as shown here:
+=======+=============+===========+
| Value | Description | Reference |
+=======+=============+===========+
| 10 | Label | RFC 8779 |
+-------+-------------+-----------+
Table 14
5.8. New Subobject for the Exclude Route Object π
IANA added a new subobject to the "XRO Subobjects" subregistry of the "Path Computation Element Protocol (PCEP) Numbers" registry. π
IANA also added a new subobject that can be carried in the XRO, as shown here:
+=======+=============+===========+
| Value | Description | Reference |
+=======+=============+===========+
| 10 | Label | RFC 8779 |
+-------+-------------+-----------+
Table 15
5.9. New GMPLS-CAPABILITY TLV Flag Field π§
IANA created a new "GMPLS-CAPABILITY TLV Flag Field" subregistry inside the "Path Computation Element Protocol (PCEP) Numbers" registry, so the Flag field of the GMPLS-CAPABILITY TLV has a home. π
New bit numbers are to be assigned by Standards Action [RFC8126]. Each bit should be tracked with the following qualities:
- Bit number (counting from bit 0 as the most significant bit)
- Capability description
- Defining RFC
The initial contents of the subregistry are empty, with bits 0-31 marked as Unassigned. π
6. Security Considerations π₯
GMPLS controls multiple technologies and types of network elements. π The LSPs that are established using GMPLS, whose paths can be computed using the PCEP extensions to support GMPLS described in this document, can carry a high volume of traffic and can be a critical part of a network infrastructure. The PCE can then play a key role in the use of the resources and in determining the physical paths of the LSPs, so it is important to ensure the identity of the PCE and PCC, as well as the communication channel. π In many deployments, there will be a completely isolated network where an external attack is of very low probability. However, there are other deployment cases in which the PCC-PCE communication can be more exposed, and there could be more security considerations. There are three main situations in case an attack in the GMPLS PCE context happens:
- PCE Identity theft: A legitimate PCC could request a path for a GMPLS LSP to a malicious PCE, which poses as a legitimate PCE. The response may be that the LSP traverses some geographical place known to the attacker, where confidentiality (sniffing), integrity (traffic modification), or availability (traffic drop) attacks could be performed by use of an attacker-controlled middlebox device. Also, the resulting LSP can omit constraints given in the requests (e.g., excluding certain fibers and avoiding some SRLGs), which could make the LSP that will be set up later look perfectly fine, but it will be in a risky situation. Also, the result can lead to the creation of an LSP that does not provide the desired quality and gives less resources than necessary. π±
- PCC Identity theft: A malicious PCC, acting as a legitimate PCC, requesting LSP paths to a legitimate PCE can obtain a good knowledge of the physical topology of a critical infrastructure. It could learn enough details to plan a later physical attack. π
- Message inspection: As in the previous case, knowledge of an infrastructure can be obtained by sniffing PCEP messages. π
The security mechanisms can provide authentication and confidentiality for those scenarios where PCC-PCE communication cannot be completely trusted. [RFC8253] provides origin verification, message integrity, and replay protection, and it ensures that a third party cannot decipher the contents of a message. π‘οΈ
In order to protect against the malicious PCE case, the PCC SHOULD have policies in place to accept or not accept the path provided by the PCE. Those policies can verify if the path follows the provided constraints. In addition, a technology-specific data-plane mechanism can be used (following [RFC5920], Section 5.8) to verify the data-plane connectivity and deviation from constraints. π
The usage of Transport Layer Security (TLS) to enhance PCEP security is described in [RFC8253]. The document describes the initiation of TLS procedures, the TLS handshake mechanisms, the TLS methods for peer authentication, the applicable TLS ciphersuites for data exchange, and the handling of errors in the security checks. PCE and PCC SHOULD use the mechanism in [RFC8253] to protect against malicious PCC and PCE. π«Ά
Finally, as mentioned by [RFC7025], the PCEP extensions that support GMPLS should be considered under the same security as current PCE work, and this extension will not change the underlying security issues. However, given the critical nature of the network infrastructures under control by GMPLS, the security issues described above should be seriously considered when deploying a GMPLS-PCE-based control plane for such networks. β οΈ For an overview of the security considerations, not only related to PCE/PCEP, and vulnerabilities of a GMPLS control plane, see [RFC5920]. π
7. References
7.1. Normative References π
okay bestie, this is the homework list π these are the docs the spec leans on, so you'll want them open next to it π
- [G.709-v3] ITU-T, "Interfaces for the optical transport network", Recommendation G.709/Y.1331, June 2016,
<https://www.itu.int/rec/T-REC-G.709-201606-I/en>. - [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. - [RFC2210] Wroclawski, J., "The Use of RSVP with IETF Integrated Services", RFC 2210, DOI 10.17487/RFC2210, September 1997,
<https://www.rfc-editor.org/info/rfc2210>. - [RFC3209] Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP Tunnels", RFC 3209, DOI 10.17487/RFC3209, December 2001,
<https://www.rfc-editor.org/info/rfc3209>. - [RFC3471] Berger, L., Ed., "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description", RFC 3471, DOI 10.17487/RFC3471, January 2003,
<https://www.rfc-editor.org/info/rfc3471>. - [RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Resource ReserVation Protocol-Traffic Engineering (RSVP-TE) Extensions", RFC 3473, DOI 10.17487/RFC3473, January 2003,
<https://www.rfc-editor.org/info/rfc3473>. - [RFC3477] Kompella, K. and Y. Rekhter, "Signalling Unnumbered Links in Resource ReSerVation Protocol - Traffic Engineering (RSVP-TE)", RFC 3477, DOI 10.17487/RFC3477, January 2003,
<https://www.rfc-editor.org/info/rfc3477>. - [RFC3630] Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering (TE) Extensions to OSPF Version 2", RFC 3630, DOI 10.17487/RFC3630, September 2003,
<https://www.rfc-editor.org/info/rfc3630>. - [RFC4003] Berger, L., "GMPLS Signaling Procedure for Egress Control", RFC 4003, DOI 10.17487/RFC4003, February 2005,
<https://www.rfc-editor.org/info/rfc4003>. - [RFC4328] Papadimitriou, D., Ed., "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Extensions for G.709 Optical Transport Networks Control", RFC 4328, DOI 10.17487/RFC4328, January 2006,
<https://www.rfc-editor.org/info/rfc4328>. - [RFC4606] Mannie, E. and D. Papadimitriou, "Generalized Multi-Protocol Label Switching (GMPLS) Extensions for Synchronous Optical Network (SONET) and Synchronous Digital Hierarchy (SDH) Control", RFC 4606, DOI 10.17487/RFC4606, August 2006,
<https://www.rfc-editor.org/info/rfc4606>. - [RFC4802] Nadeau, T., Ed. and A. Farrel, Ed., "Generalized Multiprotocol Label Switching (GMPLS) Traffic Engineering Management Information Base", RFC 4802, DOI 10.17487/RFC4802, February 2007,
<https://www.rfc-editor.org/info/rfc4802>. - [RFC4872] Lang, J.P., Ed., Rekhter, Y., Ed., and D. Papadimitriou, Ed., "RSVP-TE Extensions in Support of End-to-End Generalized Multi-Protocol Label Switching (GMPLS) Recovery", RFC 4872, DOI 10.17487/RFC4872, May 2007,
<https://www.rfc-editor.org/info/rfc4872>. - [RFC4873] Berger, L., Bryskin, I., Papadimitriou, D., and A. Farrel, "GMPLS Segment Recovery", RFC 4873, DOI 10.17487/RFC4873, May 2007,
<https://www.rfc-editor.org/info/rfc4873>. - [RFC5088] Le Roux, JL., Ed., Vasseur, JP., Ed., Ikejiri, Y., and R. Zhang, "OSPF Protocol Extensions for Path Computation Element (PCE) Discovery", RFC 5088, DOI 10.17487/RFC5088, January 2008,
<https://www.rfc-editor.org/info/rfc5088>. - [RFC5089] Le Roux, JL., Ed., Vasseur, JP., Ed., Ikejiri, Y., and R. Zhang, "IS-IS Protocol Extensions for Path Computation Element (PCE) Discovery", RFC 5089, DOI 10.17487/RFC5089, January 2008,
<https://www.rfc-editor.org/info/rfc5089>. - [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation Element (PCE) Communication Protocol (PCEP)", RFC 5440, DOI 10.17487/RFC5440, March 2009,
<https://www.rfc-editor.org/info/rfc5440>. - [RFC5511] Farrel, A., "Routing Backus-Naur Form (RBNF): A Syntax Used to Form Encoding Rules in Various Routing Protocol Specifications", RFC 5511, DOI 10.17487/RFC5511, April 2009,
<https://www.rfc-editor.org/info/rfc5511>. - [RFC5520] Bradford, R., Ed., Vasseur, JP., and A. Farrel, "Preserving Topology Confidentiality in Inter-Domain Path Computation Using a Path-Key-Based Mechanism", RFC 5520, DOI 10.17487/RFC5520, April 2009,
<https://www.rfc-editor.org/info/rfc5520>. - [RFC5521] Oki, E., Takeda, T., and A. Farrel, "Extensions to the Path Computation Element Communication Protocol (PCEP) for Route Exclusions", RFC 5521, DOI 10.17487/RFC5521, April 2009,
<https://www.rfc-editor.org/info/rfc5521>. - [RFC5541] Le Roux, JL., Vasseur, JP., and Y. Lee, "Encoding of Objective Functions in the Path Computation Element Communication Protocol (PCEP)", RFC 5541, DOI 10.17487/RFC5541, June 2009,
<https://www.rfc-editor.org/info/rfc5541>. - [RFC6001] Papadimitriou, D., Vigoureux, M., Shiomoto, K., Brungard, D., and JL. Le Roux, "Generalized MPLS (GMPLS) Protocol Extensions for Multi-Layer and Multi-Region Networks (MLN/MRN)", RFC 6001, DOI 10.17487/RFC6001, October 2010,
<https://www.rfc-editor.org/info/rfc6001>. - [RFC6003] Papadimitriou, D., "Ethernet Traffic Parameters", RFC 6003, DOI 10.17487/RFC6003, October 2010,
<https://www.rfc-editor.org/info/rfc6003>. - [RFC6205] Otani, T., Ed. and D. Li, Ed., "Generalized Labels for Lambda-Switch-Capable (LSC) Label Switching Routers", RFC 6205, DOI 10.17487/RFC6205, March 2011,
<https://www.rfc-editor.org/info/rfc6205>. - [RFC6387] Takacs, A., Berger, L., Caviglia, D., Fedyk, D., and J. Meuric, "GMPLS Asymmetric Bandwidth Bidirectional Label Switched Paths (LSPs)", RFC 6387, DOI 10.17487/RFC6387, September 2011,
<https://www.rfc-editor.org/info/rfc6387>. - [RFC7139] Zhang, F., Ed., Zhang, G., Belotti, S., Ceccarelli, D., and K. Pithewan, "GMPLS Signaling Extensions for Control of Evolving G.709 Optical Transport Networks", RFC 7139, DOI 10.17487/RFC7139, March 2014,
<https://www.rfc-editor.org/info/rfc7139>. - [RFC7570] Margaria, C., Ed., Martinelli, G., Balls, S., and B. Wright, "Label Switched Path (LSP) Attribute in the Explicit Route Object (ERO)", RFC 7570, DOI 10.17487/RFC7570, July 2015,
<https://www.rfc-editor.org/info/rfc7570>. - [RFC7792] Zhang, F., Zhang, X., Farrel, A., Gonzalez de Dios, O., and D. Ceccarelli, "RSVP-TE Signaling Extensions in Support of Flexi-Grid Dense Wavelength Division Multiplexing (DWDM) Networks", RFC 7792, DOI 10.17487/RFC7792, March 2016,
<https://www.rfc-editor.org/info/rfc7792>. - [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>. - [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017,
<https://www.rfc-editor.org/info/rfc8174>. - [RFC8253] Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody, "PCEPS: Usage of TLS to Provide a Secure Transport for the Path Computation Element Communication Protocol (PCEP)", RFC 8253, DOI 10.17487/RFC8253, October 2017,
<https://www.rfc-editor.org/info/rfc8253>. - [RFC8282] Oki, E., Takeda, T., Farrel, A., and F. Zhang, "Extensions to the Path Computation Element Communication Protocol (PCEP) for Inter-Layer MPLS and GMPLS Traffic Engineering", RFC 8282, DOI 10.17487/RFC8282, December 2017,
<https://www.rfc-editor.org/info/rfc8282>. - [RFC8306] Zhao, Q., Dhody, D., Ed., Palleti, R., and D. King, "Extensions to the Path Computation Element Communication Protocol (PCEP) for Point-to-Multipoint Traffic Engineering Label Switched Paths", RFC 8306, DOI 10.17487/RFC8306, November 2017,
<https://www.rfc-editor.org/info/rfc8306>.
7.2. Informative References πΈ
these ones are the background reading π§ handy for context, not strictly needed to get the spec itself β¨
- [RFC4655] Farrel, A., Vasseur, J.-P., and J. Ash, "A Path Computation Element (PCE)-Based Architecture", RFC 4655, DOI 10.17487/RFC4655, August 2006,
<https://www.rfc-editor.org/info/rfc4655>. - [RFC4657] Ash, J., Ed. and J.L. Le Roux, Ed., "Path Computation Element (PCE) Communication Protocol Generic Requirements", RFC 4657, DOI 10.17487/RFC4657, September 2006,
<https://www.rfc-editor.org/info/rfc4657>. - [RFC5920] Fang, L., Ed., "Security Framework for MPLS and GMPLS Networks", RFC 5920, DOI 10.17487/RFC5920, July 2010,
<https://www.rfc-editor.org/info/rfc5920>. - [RFC6123] Farrel, A., "Inclusion of Manageability Sections in Path Computation Element (PCE) Working Group Drafts", RFC 6123, DOI 10.17487/RFC6123, February 2011,
<https://www.rfc-editor.org/info/rfc6123>. - [RFC6163] Lee, Y., Ed., Bernstein, G., Ed., and W. Imajuku, "Framework for GMPLS and Path Computation Element (PCE) Control of Wavelength Switched Optical Networks (WSONs)", RFC 6163, DOI 10.17487/RFC6163, April 2011,
<https://www.rfc-editor.org/info/rfc6163>. - [RFC7025] Otani, T., Ogaki, K., Caviglia, D., Zhang, F., and C. Margaria, "Requirements for GMPLS Applications of PCE", RFC 7025, DOI 10.17487/RFC7025, September 2013,
<https://www.rfc-editor.org/info/rfc7025>. - [RFC7449] Lee, Y., Ed., Bernstein, G., Ed., Martensson, J., Takeda, T., Tsuritani, T., and O. Gonzalez de Dios, "Path Computation Element Communication Protocol (PCEP) Requirements for Wavelength Switched Optical Network (WSON) Routing and Wavelength Assignment", RFC 7449, DOI 10.17487/RFC7449, February 2015,
<https://www.rfc-editor.org/info/rfc7449>.
Appendix A. LOAD-BALANCING Usage for SDH Virtual Concatenation β¨
okay so bestie, this appendix is a worked example π A request for one co-signaled n x VC-4 TE-LSP will not use LOAD-BALANCING. But if the VC-4 components can take different paths, the BANDWIDTH object with object type 3 carries the complete n x VC-4 traffic specification, and the LOAD-BALANCING object carries the minimum co-signaled VC-4. It's giving clean separation π
Now the SDH case πΈ Say you want a TE-LSP group with 10 VC-4 containers, where each path uses at minimum 2 x VC-4 containers. That gets represented with a BANDWIDTH object with object type 3, the Bw Spec Type set to 4, and the Generalized Bandwidth field holding ST=6, RCC=0, NCC=0, NVC=10, and MT=1. Then the LOAD-BALANCING object has object type 2, the Bw Spec Type set to 4, Max-LSP=5, and a Min Bandwidth Spec of ST=6, RCC=0, NCC=0, NVC=2, MT=1 π¦
Last bit, and it's the best part π The PCE can respond with a maximum of 5 paths. Each path has a BANDWIDTH object type 3 whose Generalized Bandwidth field matches the Min Bandwidth Spec from the LOAD-BALANCING object of the corresponding request. So the minimum you asked for is exactly what comes back, periodt β¨
Acknowledgments
The research of Ramon Casellas, Francisco Javier Jimenez Chico, Oscar Gonzalez de Dios, Cyril Margaria, and Franz Rambach that led to the results in this document got funded by the European Community's Seventh Framework Program FP7/2007-2013 under grant agreement no. 247674 and no. 317999 π Huge thanks to them!!
The authors also want to thank Julien Meuric, Lyndon Ong, Giada Lander, Jonathan Hardwick, Diego Lopez, David Sinicrope, Vincent Roca, Dhruv Dhody, Adrian Farrel, and Tianran Zhou for their review and useful comments π«Ά
And thanks to Alisa Cooper, Benjamin Kaduk, Elwyn Davies, Martin Vigoureux, Roman Danyliw, and Suresh Krishnan for the IESG-related comments π§
Contributors
Here's the squad that helped make this doc happen π
Elie Sfeir
Coriant
St. Martin Strasse 76
81541 Munich
Germany
Email: elie.sfeir@coriant.com
Franz Rambach
Nockherstrasse 2-4
81541 Munich
Germany
Phone: +49 178 8855738
Email: franz.rambach@cgi.com
Francisco Javier Jimenez Chico
Telefonica Investigacion y Desarrollo
C/ Emilio Vargas 6
28043 Madrid
Spain
Phone: +34 91 3379037
Email: fjjc@tid.es
Suresh Babu
Email: sureshhimnish@gmail.com
Young Lee
Samsung Electronics
Email: younglee.tx@gmail.com
Senthil Kumar S
Email: ssenthilkumar@gmail.com
Jun Sun
Huawei Technologies
Shenzhen
China
Email: johnsun@huawei.com
Ramon Casellas
CTTC - Centre Tecnologic de Telecomunicacions de Catalunya
PMT Ed B4 Av. Carl Friedrich Gauss 7
08660 Castelldefels, Barcelona
Spain
Phone: +34 93 6452916
Email: ramon.casellas@cttc.e
Authors' Addresses
And finally, where to find the editors π
Cyril Margaria (editor)
Juniper
Email: cmargaria@juniper.net
Oscar Gonzalez de Dios (editor)
Telefonica Investigacion y Desarrollo
C/ Ronda de la Comunicacion
28050 Madrid
Spain
Phone: +34 91 4833441
Email: oscar.gonzalezdedios@telefonica.com
Fatai Zhang (editor)
Huawei Technologies
F3-5-B R&D Center, Huawei Base
Bantian, Longgang District
Shenzhen
518129
China
Email: zhangfatai@huawei.com
π¦ where this page comes from
- ietf: rfc8779 2020-07
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms