RFC 7470
Conveying Vendor-Specific Constraints in the Path Computation Element Communication Protocol
Conveying Vendor-Specific Constraints in the Path Computation Element Communication Protocol π
okay bestie, this is RFC 7470 π It's a Standards Track doc from the IETF, dated March 2015 (ISSN 2070-1721). The authors are F. Zhang from Huawei and A. Farrel from Juniper Networks. It obsoletes RFC 7150, and it's the official word on how to pass vendor-specific constraints through PCEP π¦
Abstract π
okay so PCEP is the protocol that lets path computation requests and responses fly back and forth between Path Computation Clients (PCCs) and Path Computation Elements (PCEs), and also between cooperating PCEs π§ In PCEP, a request spells out the constraints and objective functions the PCC wants the PCE to use when it does the math β¨
this doc adds a way to carry vendor-specific info in PCEP using a dedicated object and a brand new Type-Length-Value (TLV) that can ride along inside any PCEP object that supports TLVs π
it also obsoletes RFC 7150. the only changes from that doc are a clearer explanation of how the new TLV gets used, and a different code point for the VENDOR-INFORMATION object π«Ά
Status of This Memo π
this is an Internet Standards Track document π₯
it's a product of the Internet Engineering Task Force (IETF), so it represents the consensus of the IETF community. it got public review and was approved for publication by the Internet Engineering Steering Group (IESG). more info on Internet Standards is in Section 2 of RFC 5741 π
for the current status, any errata, and how to send feedback, check http://www.rfc-editor.org/info/rfc7470 π
Copyright Notice β
Copyright (c) 2015 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 (http://trustee.ietf.org/license-info) as they stood on the publication date. please actually read these, bestie, because they spell out your rights and restrictions for this doc π Code Components pulled out of this document must include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as the Simplified BSD License describes π
Table of Contents πΊοΈ
1. Introduction ....................................................3
1.1. Conventions Used in This Document ..........................4
2. Procedures for the Vendor Information Object ....................5
2.1. Backward Compatibility for the Vendor Information Object ...7
3. Procedures for the Vendor Information TLV .......................7
3.1. Backward Compatibility .....................................8
4. Protocol Elements ...............................................8
5. IANA Considerations .............................................9
5.1. New PCEP Object ............................................9
5.2. New PCEP TLV ...............................................9
6. Management Considerations ......................................10
6.1. Control of Function and Policy ............................10
6.2. Information and Data Models ...............................10
6.3. Liveness Detection and Monitoring .........................10
6.4. Verifying Correct Operation ...............................10
6.5. Requirements on Other Protocols and Functional Components .11
6.6. Impact on Network Operation ...............................11
7. Security Considerations ........................................11
8. References .....................................................12
8.1. Normative References ......................................12
8.2. Informative References ....................................12
Acknowledgements ..................................................14
Contributors ......................................................14
Authors' Addresses ................................................14
1. Introduction β¨
okay so a Path Computation Element (PCE) is an entity (a component, an application, or a network node) that can work out a network path or route from a network graph while applying computational constraints π§ The architecture for using PCEs is defined in [RFC4655] π
PCEP is defined in [RFC5440]. It's how PCCs and PCEs swap path computation requests and responses, and cooperating PCEs use it too π¦
path computations depend on a set of constraints that the PCC hands over. These include the endpoints of the path (source and destination), and they may include simpler stuff like bandwidth requirements and metric maxima. For example, a max threshold for the hop count or the Traffic Engineering (TE) metric of the computed path πΈ
the PCE also needs an objective function to decide whether the path it picked actually meets the PCC's requirements π The PCE may have a default objective function, but the PCC can also say which one it wants by putting an Objective Function object in the path computation request message [RFC5541]. The base PCEP requirements in [RFC4657] define a core set of objective functions for PCEP messages, and [RFC5541] defines each of those functions as an abstract formula π§
the registry of codepoints for objective functions is managed by IANA. New assignments can be made under "IETF Review" and "First Come First Served" policies [RFC5226]. PCE implementations can also offer proprietary, vendor-specific objective functions, and there's room for that in the codepoint registry created by [RFC5541], using the codepoints flagged as "Reserved for Private Use" π
proprietary objective functions might work on non-standard constraints or metrics. The PCEP METRIC Object defined in [RFC5440] can hold new, standardized metrics, but it has no way to define vendor-specific metrics. And PCEP has no mechanism for carrying other, more complex, vendor-specific info at all π
so this document defines a new PCEP object, the Vendor Information object, which can carry arbitrary proprietary info like vendor-specific constraints π
it also defines a new PCEP TLV, the VENDOR-INFORMATION-TLV, which can carry arbitrary info inside any existing or future PCEP object that supports TLVs π«Ά
bestie, real talk: by the very definition of "vendor-specific," using either a Vendor Information object or the VENDOR-INFORMATION-TLV means you won't be able to interoperate at a functional level with other vendors' implementations, unless the vendors have some kind of cooperation agreement π Sections 2.1 and 3.1 cover backward compatibility, which is how these constructs get handled by implementations that don't support them at all. Sections 2 and 3 explain how implementations handle them if they understand them but don't support the embedded Enterprise Number that says which vendor the constructs belong to.
when an implementation uses vendor-specific info, the vendor is encouraged to document what it means so more people can use and implement it π And if there's wider interest in a vendor-specific extension, the vendor is encouraged to bring it to the IETF for standardization as a regular protocol construct, which moves it out of the vendor-specific space π
this document obsoletes RFC 7150 [RFC7150] and makes two changes to it:
- Clarification that the TLV is available for use in any PCEP object (existing or future) that supports TLVs.
- The allocation of a different code point for the VENDOR-INFORMATION object. This change became necessary because of an inadvertent clash with codepoints used in an Internet-Draft that had been deployed without IANA allocation. The PCE working group has conducted a survey of implementations and deployments of RFC 7150 and considers that this change is safe and does not harm early implementers of RFC 7150 β¨
1.1. Conventions Used in This Document π
the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] π
2. Procedures for the Vendor Information Object β¨
okay so a PCC that wants to send proprietary or vendor-specific constraints or metrics to a PCE does it by adding a Vendor Information object to the PCReq message π the contents and format are in Section 4, but the big thing to know is that the object includes an Enterprise Number π«Ά that's a unique ID for the organization responsible for defining what the object's content and meaning actually are π₯
A PCE that receives a PCReq message containing a Vendor Information object MUST act according to the P flag in the object header. so if the P flag is set, the object is treated as mandatory, and the request either gets processed using the object's contents or gets rejected as defined in [RFC5440] (see also Section 2.1) π¦ if the P flag is clear, then, as defined in [RFC5440], the object may be used by the PCE or may be ignored πΈ the PCC sets the P flag based on how it wants the request to be processed β¨
the PCE figures out how to read the information in the Vendor Information object by checking the Enterprise Number inside it π an implementation that supports the Vendor Information object but gets one with an Enterprise Number it doesn't support MUST act according to the P flag in the object. so if the P flag is set, the PCE MUST reject the PCReq as defined in [RFC5440] by sending an Error message with Error-Type="Not supported Object" along with the corresponding Vendor Information object π rip to that request
The Vendor Information object is OPTIONAL in a PCReq message π multiple instances of the object MAY be used on a single PCReq message, and each one MUST be treated according to its P-bit setting. different instances can have different Enterprise Numbers π§
the object can be in the PCReq message so it applies to a single path computation request or to a set of synchronized requests π this usage mirrors the usage of the Objective Function object [RFC5541]. so the PCReq message based on [RFC6006] is encoded like this, using the syntax described in [RFC5511] π
<PCReq Message> ::= <Common Header>
[<svec_list>]
<request-list>
where
<svec-list> ::= <SVEC>
[<OF>]
[<GC>]
[<XRO>]
[<metric-list>]
[<vendor-info-list>]
[<svec-list>]
<metric-list> ::= <METRIC>
[<metric-list>]
<vendor-info-list> ::= <VENDOR-INFORMATION>
[<vendor-info-list>]
<request-list> ::= <request>
[<request-list>]
<request> ::= <RP>
[<vendor-info-list>]
<end-point-rro-pair-list>
[<LSPA>]
[<BANDWIDTH>]
[<metric-list>]
[<OF>]
[<RRO>]
[<IRO>]
[<LOAD-BALANCING>]
where
<end-point-rro-pair-list> ::= <END-POINTS>
[<RRO-List>]
[<BANDWIDTH>]
[<vendor-info-list>]
[<end-point-rro-pair-list>]
<RRO-List> ::= <RRO> [<BANDWIDTH>] [<RRO-List>]
<metric-list> ::= <METRIC> [<metric-list>]
The Vendor Information object can go into a PCRep message in exactly the same way as any other object defined in [RFC5440] π· so the PCRep is encoded like this:
<PCRep Message> ::= <Common Header>
<response>
<response> ::= <RP>
[<vendor-info-list>]
[<end-point-path-pair-list>]
[<NO-PATH>]
[<attribute-list>]
where:
<end-point-path-pair-list> ::=
[<END-POINTS>]
<path>
[<vendor-info-list>]
[<end-point-path-pair-list>]
<path> ::= (<ERO>|<SERO>) [<path>]
<attribute-list> ::= [<OF>]
[<LSPA>]
[<BANDWIDTH>]
[<metric-list>]
[<IRO>]
2.1. Backward Compatibility for the Vendor Information Object
a legacy implementation that doesn't recognize the Vendor Information object will act according to the procedures in [RFC5440] π₯Ί if the P flag is set in the object, the message gets rejected using a PCErr message with an Error Type of 3 ("Unknown Object"). if the P flag is not set, the recipient can safely ignore the object π«§
3. Procedures for the Vendor Information TLV πΈ
the Vendor Information TLV can carry vendor-specific information that applies to a specific PCEP object, by including the TLV in that object π
the PCE figures out how to interpret the Vendor Information TLV by checking the Enterprise Number inside it. if the Enterprise Number is unknown to the PCE, it MUST treat the Vendor Information TLV as an unknown TLV and handle it as described in [RFC5440] (see also Section 3.1) π
further specifications are needed to define the position and meaning of the Vendor Information TLV for specific PCEP objects π
3.1. Backward Compatibility
a legacy implementation that doesn't recognize the Vendor Information TLV in an object will act according to the procedures in [RFC5440]. as described in Section 7.1 of [RFC5440], unrecognized TLVs MUST be ignored π§Ή
4. Protocol Elements π§ββοΈ
the Vendor Information object and TLV follow the format for PCEP objects and TLVs defined in [RFC5440] π
VENDOR-INFORMATION Object-Class 34
VENDOR-INFORMATION Object-Type 1
VENDOR-INFORMATION-TLV Type 7
the VENDOR-INFORMATION object and the VENDOR-INFORMATION-TLV have the same format, shown in Figure 1 π¦
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Enterprise Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ Enterprise-Specific Information ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1 : Format of the Vendor Information Object and TLV
Enterprise Number
A unique identifier of an organization, encoded as a 32-bit integer. Enterprise Numbers are assigned by IANA and managed through an IANA registry [RFC2578] π’
Enterprise-Specific Information
The detailed enterprise-specific constraint information carried by the object. The format and interpretation of this information is a matter for the enterprise identified by the Enterprise Number. Such formats and interpretation may be published by the enterprise (possibly through an Informational RFC or through commercial documentation) so that PCCs or PCEs that are not part of the organization can use the information π
5. IANA Considerations π
IANA maintains a registry of PCEP parameters called the "Path Computation Element Protocol (PCEP) Numbers" ποΈ
5.1. New PCEP Object
IANA had previously allocated the value 32 from the "PCEP Objects" subregistry for use as the VENDOR-INFORMATION object. IANA has released that value and marked it as "Unassigned" π«
IANA has assigned a new value as follows:
Object-Class Value Name Reference
34 VENDOR-INFORMATION RFC 7470
Object-Type
0: Unassigned
1: Vendor-Specific Constraints RFC 7470
2-15: Unassigned
5.2. New PCEP TLV
IANA had made an allocation from the "PCEP TLV Type Indicators" subregistry, where RFC 7150 was the reference. IANA has updated the reference to point to this document π
Value Description Reference
7 VENDOR-INFORMATION-TLV RFC 7470
6. Management Considerations π
This section follows the guidance of [RFC5706] and [RFC6123] π§
6.1. Control of Function and Policy
A PCEP implementation SHOULD allow configuring of various parameters as described in [RFC5440]. A PCC implementation that uses vendor-specific information MAY make the use of this information configurable, either across the whole PCC, per PCE that the PCC uses, or per path computation request. A PCE that supports vendor-specific information MAY make the support of this information configurable, and MAY allow configuration of policies for the use of the information ποΈ
6.2. Information and Data Models
A PCEP MIB module is defined in [RFC7420] that describes managed objects for modeling PCEP communications π
It is NOT RECOMMENDED that standard MIB modules be extended to include detailed information about the content of the Vendor Information object or TLV. However, the standard MIB module MAY be extended to report the use of the Vendor Information object or TLV and the Enterprise Numbers that the objects and TLVs contain π
6.3. Liveness Detection and Monitoring
This document makes no change to the basic operation of PCEP, so there are no changes to the requirements for liveness detection and monitoring set out in [RFC4657] and [RFC5440] π
6.4. Verifying Correct Operation
This document makes no change to the basic operation of PCEP, so there are no changes to the requirements or techniques for monitoring the correct operation of the protocol set out in [RFC4657] and [RFC5440] π
Note that "correct operation" in this context refers to the operation of the protocol itself, and not to the operation of the computation algorithms, which are out of scope for all PCEP work π«
Mechanisms for verifying the correct operation of computation algorithms might involve comparing the results returned by more than one PCE. Scope for this might be limited by the use of vendor information unless multiple PCEs support the same set of vendor information π€
6.5. Requirements on Other Protocols and Functional Components
This document does not place any new requirements on other network components or protocols. However, it may be beneficial to consider whether a PCE should advertise the Enterprise Numbers and vendor information it supports. This advertisement could be within PCE Discovery [RFC5088] [RFC5089] or through extensions to PCEP [RFC5440] π£
Extensions for discovery and advertisement are outside the scope of this document π§
6.6. Impact on Network Operation
The availability of vendor information in PCEP messages may facilitate more complex and detailed path computations, which may enhance the way the network is operated π
On the other hand, the presence of additional vendor-specific information in PCEP messages may congest the operation of the protocol, especially if the PCE does not support the information supplied by the PCC. Thus, a PCC SHOULD monitor the capabilities of a PCE either by discovery mechanisms as described in Section 6.5 or through the receipt of negative responses. A PCC SHOULD NOT include vendor information in a PCReq message to a PCE that it believes does not support the information and that will not forward the request to some other PCE that does support the information π«£
7. Security Considerations β¨
okay bestie, security time ππ the big news is that these extensions don't really change what PCEP is, so the security considerations in [RFC5440] apply unchanged π no need to reinvent the wheel. if you want the extra juicy details about PCEP over TCP, go check [RFC6952] π§
now the lowkey scary part π operators should note that an attack on PCEP may involve making PCEP messages as large as possible so the attacker can eat up bandwidth and processing power. the Vendor Information object and TLV may provide a vector for this type of attack π the good news is it may be protected against by using the authentication and integrity procedures described in [RFC5440] π so turn those on, periodt π
8. References π
8.1. Normative References π₯
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC5440] Vasseur, JP., Ed., and JL. Le Roux, Ed., "Path Computation
Element (PCE) Communication Protocol (PCEP)", RFC 5440,
March 2009, <http://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, April 2009,
<http://www.rfc-editor.org/info/rfc5511>.
[RFC6006] Zhao, Q., Ed., King, D., Ed., Verhaeghe, F., Takeda, T.,
Ali, Z., and J. Meuric, "Extensions to the Path
Computation Element Communication Protocol (PCEP) for
Point-to-Multipoint Traffic Engineering Label Switched
Paths", RFC 6006, September 2010,
<http://www.rfc-editor.org/info/rfc6006>.
8.2. Informative References π§
[RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J.
Schoenwaelder, Ed., "Structure of Management Information
Version 2 (SMIv2)", STD 58, RFC 2578, April 1999,
<http://www.rfc-editor.org/info/rfc2578>.
[RFC4655] Farrel, A., Vasseur, J.-P., and J. Ash, "A Path
Computation Element (PCE)-Based Architecture", RFC 4655,
August 2006, <http://www.rfc-editor.org/info/rfc4655>.
[RFC4657] Ash, J., Ed., and J. Le Roux, Ed., "Path Computation
Element (PCE) Communication Protocol Generic
Requirements", RFC 4657, September 2006,
<http://www.rfc-editor.org/info/rfc4657>.
[RFC5088] Le Roux, JL., Ed., Vasseur, JP., Ed., Ikejiri, Y., and R.
Zhang, "OSPF Protocol Extensions for Path Computation
Element (PCE) Discovery", RFC 5088, January 2008,
<http://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, January 2008,
<http://www.rfc-editor.org/info/rfc5089>.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226,
May 2008, <http://www.rfc-editor.org/info/rfc5226>.
[RFC5541] Le Roux, JL., Vasseur, JP., and Y. Lee, "Encoding of
Objective Functions in the Path Computation Element
Communication Protocol (PCEP)", RFC 5541, June 2009,
<http://www.rfc-editor.org/info/rfc5541>.
[RFC5706] Harrington, D., "Guidelines for Considering Operations and
Management of New Protocols and Protocol Extensions", RFC
5706, November 2009,
<http://www.rfc-editor.org/info/rfc5706>.
[RFC6123] Farrel, A., "Inclusion of Manageability Sections in Path
Computation Element (PCE) Working Group Drafts", RFC 6123,
February 2011, <http://www.rfc-editor.org/info/rfc6123>.
[RFC6952] Jethanandani, M., Patel, K., and L. Zheng, "Analysis of
BGP, LDP, PCEP, and MSDP Issues According to the Keying
and Authentication for Routing Protocols (KARP) Design
Guide", RFC 6952, May 2013,
<http://www.rfc-editor.org/info/rfc6952>.
[RFC7150] Zhang, F. and A. Farrel, "Conveying Vendor-Specific
Constraints in the Path Computation Element Communication
Protocol", RFC 7150, March 2014,
<http://www.rfc-editor.org/info/rfc7150>.
[RFC7420] Koushik, A., Stephan, E., Zhao, Q., King, D., and J.
Hardwick, "Path Computation Element Communication Protocol
(PCEP) Management Information Base (MIB) Module", RFC
7420, December 2014,
<http://www.rfc-editor.org/info/rfc7420>.
Acknowledgements π
huge thank-yous π«Ά to Meral Shirazipour, Ramon Casellas, Cyril Margaria, Dhruv Dhody, Julien Meuric, and Robert Sparks for reviewing and commenting on the work that became RFC 7150. the squad showed up π
also big love to Robert Varga for flagging the clashing code point issue, and to Dhruv Dhody for helping clarify how the TLV is used β¨
Contributors π
these lovely people contributed to the document πΈ
Greg Bernstein
Grotto Networking
EMail: gregb@grotto-networking.com
Ina Minei
Juniper Networks
EMail: ina@juniper.net
Authors' Addresses π¦
and here's where you can find the authors π
Adrian Farrel
Juniper Networks
EMail: adrian@olddog.co.uk
Fatai Zhang
Huawei Technologies
EMail: zhangfatai@huawei.com
π¦ where this page comes from
- ietf: rfc7470 2015-03
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms