Network Working Group                                       Fatai Zhang
Internet-Draft                                                   Huawei
Intended status: Standards Track                              A. Farrel
                                                       Juniper Networks

Expires: April 17, 2014                                October 17, 2013

            Conveying Vendor-Specific Constraints in the Path
               Computation Element communication Protocol



   The Path Computation Element communication Protocol (PCEP) is used to
   convey path computation requests and responses between Path
   Computation Clients (PCCs) and Path Computation Elements (PCEs), and
   also between cooperating PCEs.  In PCEP the path computation requests
   carry details of the constraints and objective functions that the PCC
   wishes the PCE to apply in its computation.

   This document defines a facility to carry vendor-specific information
   in PCEP using a dedicated object and a new Type-Length-Variable that
   can be carried in any existing PCEP object.

Status of this Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups. Note that other
   groups may also distribute working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time. It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at

   The list of Internet-Draft Shadow Directories can be accessed at

Farrel & Zhang             Expires April 2014                  [Page 1]

draft-ietf-pce-vendor-constraints-11.txt                   October 2014

Copyright Notice

   Copyright (c) 2013 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
   ( in effect on the date of
   publication of this document. Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to 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 are provided without warranty as
   described in the Simplified BSD License.

Conventions used in this document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "OPTIONAL" in this document are to be interpreted as described in

1. Introduction

   A Path Computation Element (PCE) is an entity (component, application
   or network node) that is capable of computing a network path or route
   based on a network graph and applying computational constraints.  An
   architecture for the use of PCEs is defined in [RFC4655].

   The Path Computation Element communication Protocol (PCEP) is defined
   in [RFC5440] to exchange path computation requests and responses
   between Path Computation Clients (PCCs) and PCEs.  It is also used
   between cooperating PCEs.

   Path computations performed by a PCE depend on a set of constraints
   indicated by the PCC.  These constraints include the end points of
   the path to compute (source and destination), and may include other
   simple constraints such as bandwidth requirements and metric maxima
   (for example, a maximum threshold for the hop count or the TE metric
   of the computed path).

   The PCE also needs to use an objective function to qualify the path
   it selects as meeting the requirements of the PCC.  The PCE may have
   a default objective function, but the PCC can also indicate which
   objective function it wants applied by placing an Objective Function
   object in the path computation request message [RFC5541].  A core set
   of objective functions to be supported in PCEP messages is defined in
   the base PCEP requirements [RFC4657], and [RFC5541] defines each of

Farrel & Zhang             Expires April 2014                  [Page 2]

draft-ietf-pce-vendor-constraints-11.txt                   October 2014

   these functions as an abstract formula.

   The registry of codepoints used to indicate objective functions is
   managed by IANA and new assignments can be made according to "IETF
   Review" and "First Come First Served" policies [RFC5226].  PCE
   implementations may also choose to offer proprietary, vendor-specific
   objective functions, and there is scope for this within the
   codepoint registry created by [RFC5541] using the codepoints that are
   flagged as "Reserved for Private Use."

   Proprietary objective functions may operate on non-standard
   constraints or metrics.  The PCEP Metric Object defined in [RFC5440]
   has scope for the definition of new, standardized metrics, but no
   facility for the definition of vendor-specific metrics.  At the same
   time, there is no mechanism in PCEP for carrying other, more complex,
   vendor-specific information.

   This document defines a new PCEP object, the Vendor Information
   object that can be used to carry arbitrary, proprietary information
   such as vendor-specific constraints.

   This document also defines a new PCEP TLV, the VENDOR-INFORMATION-TLV
   that can be used to carry arbitrary information within any PCEP
   object that supports TLVs.

2. Procedures for The Vendor Information Object

   A PCC that wants to convey proprietary or vendor-specific constraints
   or metrics to a PCE does so by including a Vendor Information object
   in the PCReq message.  The contents and format of the object are
   described in Section 4, but it is important to note that the object
   includes an Enterprise Number that is a unique identifier of an
   organization responsible for the definition of the content and
   meaning of the object.

   A PCE that receives a PCReq message containing a Vendor Information
   object MUST act according to the P flag in the object header.  That
   is, if the P flag is set, the object will be treated as mandatory
   and the request will either be processed using the contents of the
   object, or the request will be 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 according to how it wishes the request to be

   The PCE determines how to interpret the information in the Vendor
   Information object by examining the Enterprise Number it contains.
   An implementation that supports the Vendor Information object, but

Farrel & Zhang             Expires April 2014                  [Page 3]

draft-ietf-pce-vendor-constraints-11.txt                   October 2014

   receives one carrying an Enterprise number that it does not support
   MUST act according to the P flag in the object.  That is, 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.

   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 MUST be treated according to its P-bit setting.
   Different instances of the object can have different Enterprise

   The object can be present in the PCReq message to enable it to apply
   to a single path computation request or to a set of synchronized
   requests.  This usage mirrors the usage of the Objective Function
   object [RFC5541].  Thus, the PCReq message based on [RFC6006] is
   encoded as follows using the syntax described in [RFC5511].

        <PCReq Message> ::= <Common Header>


            <svec-list> ::= <SVEC>

            <metric-list> ::= <METRIC>

            <vendor-info-list> ::= <VENDOR-INFORMATION>

            <request-list> ::= <request>

            <request> ::= <RP>

Farrel & Zhang             Expires April 2014                  [Page 4]

draft-ietf-pce-vendor-constraints-11.txt                   October 2014



            <end-point-rro-pair-list> ::= <END-POINTS>

            <RRO-List> ::= <RRO> [<BANDWIDTH>] [<RRO-List>]

            <metric-list> ::= <METRIC> [<metric-list>]

   The Vendor Information object can be included in a PCRep message in
   exactly the same way as any other object as defined in [RFC5440].
   Thus, the PCRep is encoded as follows:

          <PCRep Message> ::= <Common Header>

          <response> ::= <RP>


           <end-point-path-pair-list> ::=

          <path> ::= (<ERO>|<SERO>) [<path>]

          <attribute-list> ::= [<OF>]

Farrel & Zhang             Expires April 2014                  [Page 5]

draft-ietf-pce-vendor-constraints-11.txt                   October 2014

2.1. Backward Compatibility for the Vendor Information Object

   A legacy implementation that does not recognize the Vendor
   Information object will act according to the procedures set out in
   [RFC5440].  If the P flag is set in the object, the message will be
   rejected using a PCErr message with an Error Type of 3 ("Unknown
   Object").  If the P flag is not set, the object can safely be ignored
   by the recipient.

3. Procedures for The Vendor Information TLV

   The Vendor Information TLV can be used to carry vendor-specific
   information that applies to a specific PCEP object by including the
   TLV in the object.

   The PCE determines how to interpret the Vendor Information TLV by
   examining the Enterprise Number it contains.  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 does not recognize the Vendor
   Information TLV in an object will act according to the procedures set
   out in [RFC5440].  As described in Section 7.1 of [RFC5440],
   unrecognized TLVs MUST be ignored.

4. Protocol Elements

   The Vendor Information object and TLV conform to the format for PCEP
   objects and TLVs defined in [RFC5440].

   VENDOR-INFORMATION Object-Class is <TBD1> to be assigned by IANA.


   VENDOR-INFORMATION-TLV Type is <TBD2> to be assigned by IANA.

   The format of the VENDOR-INFORMATION object and the format of the
   VENDOR-INFORMATION-TLV are the same and are as shown in Figure 1.

Farrel & Zhang             Expires April 2014                  [Page 6]

draft-ietf-pce-vendor-constraints-11.txt                   October 2014

      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 is requested to make an allocation from the "PCEP Objects"
   sub-registry as follows.

   Object-Class Value     Name                               Reference
   TBD1                   VENDOR-INFORMATION                 [This.I-D]
                0: Unassigned
                1: Vendor-Specific Constraints               [This.I-D]
                2-255: Unassigned

5.2. New PCEP TLV

   IANA is requested to make an allocation from the "PCEP TLV Type
   Indicators" sub-registry as follows.

Farrel & Zhang             Expires April 2014                  [Page 7]

draft-ietf-pce-vendor-constraints-11.txt                   October 2014

   Value       Description                                   Reference
   TBD2        VENDOR-INFORMATION-TLV                        [This.I-D]

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

6.2. Information and Data Models

   A PCEP MIB module is defined in [PCE-MIB] that describes managed
   objects for modeling of PCEP communications.

   It is NOT RECOMMENDED that standard MIB modules are 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 and 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 and so
   there are no changes to the requirements or techniques for
   monitoring the correct operation of the protocol out in [RFC4657]
   and [RFC5440].

   Note that "correct operation" in this context referes 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

Farrel & Zhang             Expires April 2014                  [Page 8]

draft-ietf-pce-vendor-constraints-11.txt                   October 2014

   one PCE. Scope for this might be limited by the use of vendor
   information unless multiple PCEs support the same set of vendor

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

   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 that may
   enhance the way in which 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

   The protocol extensions defined in this document do not
   substantially change the nature of PCEP.  Therefore, the security
   considerations set out in [RFC5440] apply unchanged.  Note that
   further security considerations for the use of PCEP over TCP are
   presented in [RFC6952].

   Operators should note that an attack on PCEP may involve making PCEP
   messages as large as possible in order to consume bandwidth and
   processing power.  The Vendor Information object and TLV may provide
   a vector for this type of attack.  It may be protected against by
   using the authentication and integrity procedures described in

Farrel & Zhang             Expires April 2014                  [Page 9]

draft-ietf-pce-vendor-constraints-11.txt                   October 2014

8. References

8.1. Normative References

   [RFC2119] S. Bradner, "Key words for use in RFCs to indicate
             requirements levels", RFC 2119, March 1997.

   [RFC5440] Vasseur, J.P., Le Roux, J.L., Ayyangar, A., Oki, E.,
             Ikejiri, A., Atlas, A., Dolganow, A., "Path Computation
             Element (PCE) communication Protocol (PCEP)", RFC 5440,
             March 2009.

   [RFC5511] Farrel, A., "Reduced Backus-Naur Form (RBNF): A Syntax to
             Form Encoding Rules in Various Routing Protocol
             Specifications", RFC 5511, April 2007.

   [RFC6006] Q. Zhao, et al., "Extensions to the Path Computation
             Element Communication Protocol (PCEP) for Point-to-
             Multipoint Traffic Engineering Label Switched Paths", RFC
             6006, September 2009.

8.2. Informative References

   [RFC2578] McCloghrie, K., Perkins, D., and J. Schoenwaelder,
             "Structure of Management Information Version 2 (SMIv2)",
             STD 58, RFC 2578, April 1999.

   [RFC4655] Farrel, A., Vasseur, J.P., Ash, J., "Path Computation
             Element (PCE) Architecture", RFC 4655, August 2006.

   [RFC4657] Ash, J. and J. Le Roux, "Path Computation Element (PCE)
             Communication Protocol Generic Requirements", RFC 4657,
             September 2006.

   [RFC5088] Le Roux, JL., Vasseur, JP., Ikejiri, Y., and R. Zhang,
             "OSPF Protocol Extensions for Path Computation Element
             (PCE) Discovery", RFC 5088, January 2008.

   [RFC5089] Le Roux, JL., Vasseur, JP., Ikejiri, Y., and R. Zhang,
             "IS-IS Protocol Extensions for Path Computation Element
             (PCE) Discovery", RFC 5089, January 2008.

   [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
             IANA Considerations Section in RFCs", BCP 26, RFC 5226,
             May 2008.

Farrel & Zhang             Expires April 2014                 [Page 10]

draft-ietf-pce-vendor-constraints-11.txt                   October 2014

   [RFC5541] Le Roux, JL., Vasseur, JP., and Y. Lee, "Objective
             Function Encoding in Path Computation Element
             Communication and Discovery protocols", RFC 5541, June

   [RFC5706] Harrington, D., "Guidelines for Considering Operations and
             Management of New Protocols and Protocol Extensions", RFC
             5706, November 2009.

   [RFC6123] Farrel, A., "Inclusion of Manageability Sections in Path
             Computation Element (PCE) Working Group Drafts", RFC 6123,
             February 2011.

   [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.

   [PCE-MIB] Stephan, E. and K. Koushik, "PCE Communication Protocol
             (PCEP) Management Information Base", draft-ietf-pce-pcep-
             mib, work in progress.

9. Acknowledgements

   Thanks to Meral Shirazipour, Ramon Casellas, Cyril Margaria, Dhruv
   Dhody, and Julien Meuric for review and comments.

10. Authors' Addresses

   Adrian Farrel
   Juniper Networks

   Fatai Zhang
   Huawei Technologies

11. Contributors

   Greg Bernstein
   Grotto Networking

   Ina Minei
   Juniper Networks

Farrel & Zhang             Expires April 2014                 [Page 11]