Network Working Group                              J.L. Le Roux (Editor)
Internet Draft                                            France Telecom
Category: Standard Track
Expires: June August 2007                               J.P. Vasseur (Editor)
                                                       Cisco System Inc.

                                                          Yuichi Ikejiri
                                                      NTT Communications

                                                           Raymond Zhang
                                                              BT Infonet

                                                           December 2006

                                                           February 2007

  OSPF protocol extensions for Path Computation Element (PCE) Discovery

               draft-ietf-pce-disco-proto-ospf-01.txt

               draft-ietf-pce-disco-proto-ospf-02.txt

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of 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
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

Abstract

   There are various circumstances where it is highly desirable for a
   Path Computation Client (PCC) to be able to dynamically and
   automatically discover a set of Path Computation Element(s) Elements (PCE),
   along with some of information that can be used for PCE selection.

   When the PCE is a Label Switch Switching Router (LSR) participating to in the IGP,
   Interior Gateway Protocol (IGP), or even a server participating
   passively to in the IGP, a simple and efficient way for PCE discovery to discover PCEs
   consists of relying on using IGP flooding. For that purpose purpose, this document
   defines OSPF extensions to the Open Shortest Path First (OSPF) routing
   protocol for the advertisement of PCE Discovery information within an
   OSPF area or within the entire OSPF routing domain.

Conventions used in this document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC-2119.

Table of Contents

   1.      Note (to be removed before publication).....................3
   2.      Terminology.................................................3
   3.
   2.      Introduction................................................4
   4.
   3.      Overview....................................................5
   4.1.
   3.1.    PCE Information.............................................5
   4.1.1.
   3.2.    PCE Discovery Information...................................5
   4.1.2.
   3.2.1.  PCE Status Information......................................6
   4.2.
   3.3.    Flooding scope..............................................6
   5.
   4.      OSPF extensions.............................................6
   5.1.
   4.1.    The OSPF PCED TLV...........................................6
   5.1.1.
   4.1.1.  PCE-ADDRESS sub-TLV.........................................8
   5.1.2.
   4.1.2.  PATH-SCOPE sub-TLV..........................................8
   5.1.3.
   4.1.3.  PCE-DOMAINS sub-TLV........................................10
   5.1.3.1.  IPv4 area ID DOMAIN sub-TLV..............................11
   5.1.3.2.  IPv6 area
   4.1.3.1.  Area ID DOMAIN sub-TLV..............................12
   5.1.3.3. sub-TLV...................................11
   4.1.3.2.  AS Number sub-TLV........................................12
   5.1.4.  PCE-DEST-DOMAINS
   4.1.4.  PCE-NEIG-DOMAINS sub-TLV...................................12
   5.1.5.  GENERAL-CAP sub-TLV........................................13
   5.1.6.  The PATH-COMP-CAP sub-TLV..................................14
   5.1.6.1.  Objective Functions sub-TLV..............................16
   5.1.6.2.  Opaque Objective Function sub-TLV........................16
   5.1.6.3.  Switch Caps sub-TLV......................................17
   5.2.    The OSPF PCES TLV..........................................17
   5.2.1.
   4.1.5.  PCE-CAP-FLAGS sub-TLV......................................13
   4.1.6.  The CONGESTION sub-TLV.....................................18
   6. sub-TLV.....................................14
   5.      Elements of Procedure......................................19
   6.1.1.  PCES TLV Procedure......................................15
   5.1.    CONGESTION sub-TLV specific procedures...............................20
   7. procedures.....................16
   6.      Backward compatibility.....................................20
   8. compatibility.....................................16
   7.      IANA considerations........................................21
   8.1. Considerations........................................17
   7.1.    OSPF TLVs..................................................21
   8.2. TLV...................................................17
   7.2.    PCED sub-TLVs registry.....................................17
   7.3.    PCE Capability bits............................................22
   9. Flags registry..............................17
   8.      Security Considerations....................................22
   10. Considerations....................................18
   9.      Manageability Considerations...............................23 Considerations...............................18
   9.1.    Control of Policy and Functions............................18
   9.2.    Information and Data Model.................................19
   9.3.    Liveness Detection and Monitoring..........................19
   9.4.    Verify Correct Operations..................................19
   9.5.    Requirements on Other Protocols and Functional
             Components...............................................19
   9.6.    Impact on network operations...............................19
   10.     Acknowledgments............................................20
   11.     Acknowledgments............................................23
   12.     References.................................................23
   12.1.     References.................................................20
   11.1.  Normative references.......................................23
   12.2. references........................................20
   11.2.  Informative references.....................................24
   13. references......................................20
   12.    Editor's Addresses:........................................24
   14. Addresses:.........................................21
   13.    Contributors' Addresses:...................................24
   15. Addresses:....................................21
   14.    Intellectual Property Statement............................24 Statement.............................21

1. Note (to be removed before publication)

   This document specifies new TLVs and sub-TLVs to be carried within
   the OSPF Router information LSA ([OSPF-CAP]). Because this document
   does not introduce any new element of procedure it will be discussed
   within the PCE Working Group with a review of the OSPF Working Group.

2. Terminology

   Terminology used in this document

      ABR: IGP Area Border Router.

      AS: Autonomous System.

      Domain: any collection of network elements within a common sphere
      of address management or path computational responsibility.
      Examples of domains include IGP areas and Autonomous Systems.

      IGP: Interior Gateway Protocol. Either of the two routing
      protocols Open Shortest Path First (OSPF) or Intermediate System
      to Intermediate System (ISIS).

      Intra-area TE LSP: A TE LSP whose path does not cross IGP area
      boundaries.

      Intra-AS TE LSP: A TE LSP whose path does not cross AS boundaries.

      Inter-area TE LSP: A TE LSP whose path transits through two or more IGP
      areas. That is a TE-LSP that crosses at least one IGP area
      boundary.

      Inter-AS TE LSP: A TE LSP whose path transits through two or more
      ASes or sub-ASes (BGP confederations). That is a TE-LSP that
      crosses at least one AS boundary.

      LSA: Link State Advertisement

      LSR: Label Switch Switching Router.

      PCC: Path Computation Client: any Any client application requesting a
      path computation to be performed by a Path Computation Element.

      PCE: Path Computation Element: an 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.

      PCEP: Path Computation Element Protocol.

      TE LSP: Traffic Engineered Label Switched Path.

3.

2. Introduction

   [RFC4655] describes the motivations and architecture for a PCE-based
   path computation model for Multi Protocol Label Switching (MPLS) and
   Generalized MPLS (GMPLS) Traffic Engineered Label Switched Paths (TE-
   LSPs). The model allows for the separation of the PCE from a PCC
   (also referred to as a non co-located PCE) and allows for cooperation
   between PCEs. This relies on a communication protocol between PCC and
   PCE, and between PCEs. The requirements for such a communication
   protocol can be found in [RFC4657] and the communication protocol is
   defined in [PCEP].

   The PCE architecture requires, of course, requires that a PCC be aware of the location of
   one or more PCEs in its domain, and also potentially of some PCEs in
   other domains, e.g. in case of inter-domain TE LSP computation.

   A network may comprise contain a large number of PCEs with potentially
   distinct capabilities. In such a context it is highly desirable to
   have a mechanism for automatic and dynamic PCE discovery, which
   allows PCCs to automatically discover a set of PCEs, along with
   additional information about each PCE that may be required for the
   PCC to perform PCE selection, and selection. Additionally, it is valuable for a PCC
   to dynamically detect new PCEs or any modification of the PCE
   information. Detailed requirements for such a PCE discovery mechanism
   are described provided in [RFC4674].

   Moreover, it may also be useful to discover when a PCE experiences
   some
   processing congestion state and when it exits such a state, in order for
   the PCCs to take some appropriate actions (e.g. to redirect their
   requests to another PCE). Note that the PCE selection algorithm
   applied by a PCC is out of the scope of this document.

   When PCCs are LSRs participating to in the IGP (OSPF or IS-IS), and PCEs
   are either LSRs or a servers also participating to in the IGP, an efficient
   effective mechanism for PCE discovery within an IGP routing domain
   consists of
   relying on utilizing IGP advertisements.

   This document defines OSPF extensions allowing to allow a PCE in the an OSPF
   routing domain to advertise its location along with some information
   useful to a PCC for PCE selection so as to satisfy dynamic PCE
   discovery requirements set forth in [RFC4674]. This document also
   defines extensions allowing a PCE in the an OSPF routing domain to
   advertise its
   potential processing congestion state.

   Generic capability advertisement mechanisms for OSPF have been are defined in [OSPF-
   CAP] the purpose of which is to
   [OSPF-CAP]. These allow a router to advertise its
   capability capabilities within
   an OSPF area or an entire OSPF routing domain. Such
   OSFP extensions This document
   leverages this generic capability advertisement mechanism to fully
   satisfy the aforementioned dynamic PCE discovery requirements.

   This document defines two a new sub-TLVs sub-TLV (named the PCE Discovery (PCED) TLV and the PCE Status (PCES) TLV),
   TLV) to be carried within the OSPF Router Information LSA ([OSPF-CAP]). ([OSPF-
   CAP]).

   The PCE information advertised is detailed in section 4. 3. Protocol
   extensions and procedures are defined in section 5 4 and 6. 5.

   This document does not define any new OSPF element elements of procedure but
   how the procedure. The
   procedures defined in [OSPF-CAP] should be used.

   The routing OSPF extensions defined in this document allow for PCE discovery
   within an OSPF Routing domain. Solutions for PCE discovery across AS
   boundaries are beyond the scope of this document, and for further
   study.

   In this document, we call TLV any TLV that is carried within an OSPF
   LSA. We call indifferently TLV or sub-TLV, any Any TLV that is itself carried within another TLV.

4. TLV is referred to
   as either a TLV or a sub-TLV.

3. Overview

4.1.

3.1. PCE Information

   The PCE information advertised via OSPF falls into two categories:
   PCE Discovery Information information and PCE Status information.

4.1.1.

3.2. PCE Discovery Information

   The PCE Discovery information is comprised of:

   - The PCE location: an IPv4 and/or IPv6 address that must be is used to reach
     the PCE. It is RECOMMENDED to use addresses an address that is always
     reachable;

   - The PCE inter-domain functions: PCE path computation scope (i.e. (e.g.,
     inter-area, inter-AS, inter-layer…); inter-layer);

   - The PCE domain(s): the set of one or more domain(s) where into which
     the PCE has visibility and can compute paths;

   - The PCE Destination neighbor domain(s): set of one or more  destination neighbors domain(s)
      towards which a PCE can compute paths;

   - A set of general PCEP communication capabilities (e.g. (e.g., support for request
     prioritization) and path computation specific capabilities
     (e.g. supported constraints, supported objective functions). constraints).

   Optional elements to describe more complex capabilities may also be
   advertised.

   PCE Discovery information is by nature fairly static and does not
   change with PCE activity. Changes in PCE Discovery information may
   occur as a result of PCE configuration updates, PCE
   deployment/activation, PCE deactivation/suppression deactivation/suppression, or PCE failure.
   Hence, this information is not expected to change frequently.

4.1.2.

3.2.1. PCE Status Information

   The PCE Status is optional information and can be used to report a
   PCE
   PCE's processing congested congestion state along with an estimated congestion
   duration. This is a dynamic information, which may change with PCE
   activity.

   Procedures for a PCE to move from a processing congested congestion state to a
   non congested congestion state are beyond the scope of this document, but the
   rate at which a PCE Status change is advertised MUST not NOT impact by
   any mean means the IGP scalability. Particular attention should MUST be given on to
   procedures to avoid state oscillations.

4.2.

3.3. Flooding scope

   The flooding scope for PCE Discovery Information information advertised through OSPF can be
   limited to one or more OSPF areas the PCE belongs to to, or can be
   extended across the entire OSPF routing domain.

   Note that some PCEs may belong to multiple areas, in which case the
   flooding scope may comprise these areas. This could be the case of for
   an ABR for instance advertising its PCE information within the
   backbone area and/or a subset of its attached IGP area(s).

5.

4. OSPF extensions

5.1.

4.1. The OSPF PCED TLV

   The OSPF PCE Discovery TLV (PCED TLV) is made of a set of non-ordered
   sub-TLVs.

   The format of the OSPF PCED TLV and its sub-TLVs is the identical as to the
   TLV format used by the Traffic Engineering Extensions to OSPF
   [RFC3630]. That is, the TLV is composed of 2 octets for the type, 2
   octets specifying the TLV length length, and a value field. The Length field
   defines the length of the value portion in octets.

   The TLV is padded to four-octet alignment; padding is not included in
   the length Length field (so a three octet value would have a length of
   three, but the total size of the TLV would be eight octets). Nested
   TLVs are also 32-bit four-octet aligned. Unrecognized types are ignored.
   All
   types Type values between 32768 and 65535 are reserved for vendor-specific vendor-
   specific extensions.  All other undefined type Type codes are reserved for
   future assignment by IANA.

   The OSPF PCED TLV has the following format:

                        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            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   //                            sub-TLVs                          //
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Type     To be defined by IANA (suggested value=2) value=5)
         Length   Variable
         Value    This comprises one or more sub-TLVs

   Sub-TLVs types are under IANA control.

   Currently five sub-TLVs are defined (type values to be assigned by
   IANA):
         Sub-TLV type  Length               Name
               1      variable     PCE-ADDRESS sub-TLV
               2         4         PATH-SCOPE sub-TLV
               3      variable     PCE-DOMAINS sub-TLV
               4      variable     PCE-DEST-DOMAINS     PCE-NEIG-DOMAINS sub-TLV
               5      variable     GENERAL-CAP     PCE-CAP-FLAGS sub-TLV
               6      variable     PATH-COMP-CAP         4         CONGESTION sub-TLV

   The PCE-ADDRESS and PATH-SCOPE sub-TLVs MUST always be present within
   the PCED TLV.

   The PCE-DOMAINS and PCE-DEST-DOMAINS PCE-NEIG-DOMAINS sub-TLVs are optional. They MAY
   be present in the PCED TLV to facilitate selection of inter-domain
   PCEs.

   The GENERAL-CAP and PATH-COMP-CAP sub-TLVs are PCE-CAP-FLAGS sub-TLV is optional and MAY be present in the PCED
   TLV to facilitate the PCE selection process.

   The CONGESTION sub-TLV is optional and MAY be present in the PCED
   TLV, to indicate a PCE's processing congestion state.

   Any non recognized sub-TLV MUST be silently ignored.

   Additional sub-TLVs could be added in the future to advertise
   additional information.

   The PCED TLV is carried within an OSPF Router Information LSA
   defined in [OSPF-CAP].

5.1.1.

4.1.1. PCE-ADDRESS sub-TLV

   The PCE-ADDRESS sub-TLV specifies the IP address(es) that MUST can be
   used to reach the PCE. It is RECOMMENDED to make use of an address
   that is always reachable, provided that the PCE is alive.

   The PCE-ADDRESS sub-TLV is mandatory; it MUST be present within the
   PCED TLV. It MAY appear twice, when the PCE has both an IPv4 and IPv6
   address. It MUST NOT appear more than once for the same address type.

   The format of the PCE-ADDRESS sub-TLV is as follows:

                            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            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |     address-type              |          Reserved             |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                               |
       //                       PCE IP Address                        //
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            PCE-ADDRESS sub-TLV format

         Type     To be assigned by IANA (suggested value =1)
         Length   4   8 (IPv4) or 16 20 (IPv6)

         Address-type:
                       1   IPv4
                       2   IPv6

         PCE IP Address: The IP address to be used to reach the PCE.
                         This is the address that will be used for
                         setting up PCC-PCE communication sessions.

5.1.2.

4.1.2. PATH-SCOPE sub-TLV

   The PATH-SCOPE sub-TLV indicates the PCE path computation scope(s), scope,
   which refers to the PCE PCE's ability to compute or take part into in the
   computation of intra-area, inter-area, inter-AS inter-AS, or inter-layer_TE
   LSP(s).

   The PATH-SCOPE sub-TLV is mandatory; it MUST be present within the
   PCED TLV. There MUST be exactly one instance of the PATH-SCOPE sub-
   TLV within each PCED TLV.

   The PATH-SCOPE sub-TLV contains a set of bit flags indicating the
   supported path scopes (intra-area, inter-area, inter-AS, inter-layer) and four fields indicating PCE preferences.

   The PATH-SCOPE sub-TLV has the following format:

                        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            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |0|1|2|3|4|5|   Reserved        |PrefL|PrefR|PrefS|PrefY| Res   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Type     To be defined by IANA (suggested value =2)
         Length   Variable   4
         Value    This comprises a 2 bytes byte flag field where each bit
                  represents a supported path scope, as well as four
                  preference fields used to specify PCE preferences.

         The following bits are defined:

         Bit      Path Scope

          0      L bit:  Can compute intra-area path paths
          1      R bit:  Can act as PCE for inter-area TE LSPs LSP
                         computation
          2      Rd bit: Can act as a default PCE for inter-area TE LSPs LSP
                         computation
          3      S bit:  Can act as PCE for inter-AS TE LSPs LSP computation
          4      Sd bit: Can act as a default PCE for inter-AS TE LSPs LSP
                         computation
          5      Y bit:  Can compute or take part into the computation
                         of paths across layers.

   Pref-L field: PCE's preference for intra-area TE LSPs computation.

   Pref-R field: PCE’s PCE's preference for inter-area TE LSPs computation.

   Pref-S field: PCE’s PCE's preference for inter-AS TE LSPs computation.

   Pref-Y field: PCE's preference for inter-layer TE LSPs computation.

   Res: Reserved for future usage.

   The bits L, R, S S, and Y bits are set when the PCE can act as a PCE
   for intra-area, inter-area, inter-AS and inter-AS, or inter-layer TE LSPs
   computation respectively. These bits are non exclusive. non-exclusive.

   When set the Rd bit indicates that the PCE can act as a default PCE
   for inter-area TE LSPs computation (the (that is the PCE can compute a
   path for towards any
   destination neighbor area). Similarly, when set set, the Sd bit
   indicates that the PCE can act as a default PCE for inter-AS TE LSPs LSP
   computation (the PCE can compute a path for towards any destination neighbor AS).

   When the Rd bit is set the PCE-DEST-DOMAIN PCE-NEIG-DOMAIN TLV (see 5.1.4) does not MUST NOT
   contain any Area ID DOMAIN sub-TLV. sub-TLVs.

   Similarly, when the Sd bit is set the PCE-DEST-DOMAIN PCE-NEIG-DOMAIN TLV does not MUST NOT
   contain any AS-DOMAIN sub-TLV. sub-TLVs.

   When the R/S bit is cleared, the Rd/Sd bit SHOULD be cleared and MUST
   be ignored.

   The PrefL, PrefR, PrefS and PrefY fields are 3-bit each three bits long and
   allow the PCE to specify a preference for each computation scope,
   where 7 reflects the highest preference. Such preference can be used
   for weighted load balancing of requests. An operator may decide to
   configure a preference for each computation scope to each PCE so as
   to balance the path computation load among them, with respect to their respective CPU
   capacity. them. The algorithms used
   by a PCC to load balance its path computation requests according to
   such PCE’s PCE preference is out of the scope of this document. Same document and is a
   matter for local or network wide policy. The same or distinct
   preferences may be used for
   different scopes. each scope. For instance an operator that
   wants a PCE capable of both inter-area and inter-AS computation to be
   used preferably for inter-AS computation may configure a PrefS higher
   than the PrefR.

   When the PrefL, PrefR, PRefS or PrefY is cleared, this indicates an
   absence of preference.

   When the L bit, R bit, S bit or Y bit are cleared, the PrefL, PrefR,
   PrefS, PrefY fields MUST SHOULD respectively be set to 0.

5.1.3. PCE-DOMAINS sub-TLV

   The PCE-DOMAINS sub-TLV specifies the set of domains (areas, AS)
   where the 0 and MUST be
   ignored.

   Both reserved fields SHOULD be set to zero on transmission and MUST
   be ignored on receipt.

4.1.3. PCE-DOMAINS sub-TLV

   The PCE-DOMAINS sub-TLV specifies the set of domains (areas and/or
   ASes) where the PCE has topology visibility and through which the PCE
   can compute paths. It contains a set of one or more sub-TLVs where
   each sub-TLV identifies a domain.

   The PCED TLV MUST include zero or one PCE-DOMAINS sub-TLV.
   The PCE-DOMAINS sub-TLV MUST MAY be present when PCE domains cannot be
   inferred by other IGP information, for instance when the PCE is
   inter-domain capable (i.e. (i.e., when the R bit or S bit is set) and the
   flooding scope is the entire OSPF routing domain. domain (see section 5 for a
   discussion of how the flooding scope is set and interpreted).

  The PCE-DOMAINS sub-TLV has the following format:

                        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            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   //                    DOMAIN sub-TLVs                          //
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Type     To be defined by IANA (suggested value =3)
         Length   Variable
         Value    This comprises a set of one or more DOMAIN sub-TLVs
                  where each DOMAIN sub-TLV identifies a domain where
                  the PCE has topology visibility and can compute paths.

   Sub-TLVs types are under IANA control.

   Currently three

   Two DOMAIN sub-TLVs are defined (suggested type values to
   be assigned by IANA): defined:
            Sub-TLV type  Length               Name
                1      variable     IPv4 area     Area ID sub-TLV
                2      variable     IPv6 area ID sub-TLV
                3      variable     AS number sub-TLV

   The PCE-DOMAINS sub-TLV MUST include at least one DOMAIN sub-TLV.
   Note than when the PCE visibility is an entire AS, the PCE-DOMAINS
   sub-TLV MUST uniquely include exactly one AS number sub-TLV.

5.1.3.1. IPv4 sub-TLV, and MUST NOT
   contain an area ID sub-TLV.

4.1.3.1. Area ID DOMAIN sub-TLV

   The IPv4 area Area ID DOMAIN sub-TLV carries an IPv4 OSPF area identifier. It
   has the following format:

        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            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                       IPv4 Area ID                            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Type     To be assigned by IANA (suggested value =1)
         Length   4
         IPv4 OSPF area ID: The IPv4 identifier of the OSPF area

5.1.3.2. IPv6 area ID DOMAIN sub-TLV

   The IPv6 area ID sub-TLV carries an IPv6 OSPF area identifier. It has
   the following format:
        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            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                       IPv6                            Area ID                            |
       |                                                               |
       |                                                               |
       |                                                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Type     To be assigned by IANA (suggested value =2)     1
         Length   16
         IPv6 OSPF area ID: The IPv6 identifier of the   4
         Value   Four octet OSPF area

5.1.3.3. Area ID

4.1.3.2. AS Number sub-TLV

   The AS Number sub-TLV carries an AS number. It has the following
   format:

                            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            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                       AS Number                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Type     To be assigned by IANA (suggested value =3)     2
         Length   4
         AS Number:  AS number identifying an AS. When coded on in two
                     bytes (which is the current defined format as the
                     time of writing this document), the AS Number field
                     MUST have its left two bytes set to 0.

5.1.4. PCE-DEST-DOMAINS

4.1.4. PCE-NEIG-DOMAINS sub-TLV

   The PCE-DEST-DOMAINS PCE-NEIG-DOMAINS sub-TLV specifies the set of destination neighbour domains
   (areas, AS) ASes) toward which a PCE can compute paths. It means that the
   PCE can compute or take part in the computation of inter-domain LSPs
   whose destinations are located within path transits one of these domains. It contains a set of one or
   more sub-TLVs where each sub-TLV identifies a domain.

   The PCE-DEST-DOMAINS PCE-NEIG-DOMAINS sub-TLV has the following format:

                        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            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   //                    DOMAIN sub-TLVs                          //
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Type     To be defined by IANA (suggested value =3) =4)
         Length   Variable
         Value    This comprises a set of one or more Area and/or AS
                  DOMAIN sub-TLVs where each DOMAIN sub-TLV identifies a
                  neighbour domain toward which a PCE can compute paths.

   The PCE-DEST-DOMAINS PCE-NEIG-DOMAINS sub-TLV MUST be present if the R bit is set and
   the Rd bit is cleared, and/or, if the S bit is set and the Sd bit is
   cleared.

   The PCE-DEST-DOMAINS PCE-NEIG-DOMAINS sub-TLV MUST include at least one DOMAIN sub-
   TLV. It MUST include at least one area Area ID sub-TLV, if the R bit of
   the PATH-SCOPE TLV is set and the Rd bit of the PATH-SCOPE TLV is
   cleared. Similarly, it MUST include at least one AS number sub-TLV if
   the S bit of the PATH-SCOPE TLV is set and the Sd bit of the PATH-
   SCOPE TLV is cleared.

5.1.5. GENERAL-CAP

4.1.5. PCE-CAP-FLAGS sub-TLV

   The GENERAL-CAP PCE-CAP-FLAGS sub-TLV is an optional TLV used to indicate PCEP
   related PCE
   capabilities. It MAY be present within the PCED TLV. It MUST
   not NOT be
   present more than once.

   The value field of the GENERAL-CAP PCE-CAP-FLAGS sub-TLV is made up of a 32-bit flag,
   where each bit corresponds to a general PCE capability. It MAY also
   include optional sub-TLVs to encode more complex capabilities. an array
   of units of 32 flags numbered from the most significant as bit zero,
   where each bit represents one PCE capability.

   The format of the GENERAL-CAP PCE-CAP-FLAGS sub-TLV is as follows:

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |              Type             |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                 General Capabilities Flag                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     //                    Optional sub-TLVs                 PCE Capability Flags                          //
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Type     To be assigned by IANA (suggested value =1) =5)
         Length   Variable.   Multiple of 4 bytes
         Value    This comprises a 32-bit flag. The bits are indexed contains an array of units of 32 bit flags
                  numbered from the most significant to the least significant, as bit zero, where
                  each bit represents one general PCE capability.
                  Optional TLVs may be added to specify more complex
                  capabilities: there is no optional TLV currently
                  defined.

   IANA is requested to manage the space of the General Capabilities 32-
   bit flag. PCE Capability Flags

   The following bits are to be assigned by IANA:

     Bit       Capabilities

      0      P bit:        Capability to handle GMPLS link constraints
      1        Capability to compute bidirectional paths
      2        Capability to compute PSC path
      3        Capability to compute a TDM path
      4        Capability to compute a LSC path
      5        Capability to compute a FSC path
      6        Capability to compute link/node/SRLG diverse paths
      7        Capability to compute load-balanced paths
      8        Capability to compute a set of paths in a
               synchronized Manner
      9        Support for multiple objective functions
      10       Capability to handle path constraints (e.g. max hop count,
               max path metric)
      11       Support for Request prioritization.
      1      M bit:
      12       Support for multiple messages requests within the same
               request message.

     2-31

     13-31    Reserved for future assignments by IANA.

5.1.6.

   Reserved bits SHOULD be set to zero on transmission and MUST be
   ignored on receipt.

4.1.6. The PATH-COMP-CAP CONGESTION sub-TLV

   The PATH-COMP-CAP CONGESTION sub-TLV is an optional sub-TLV used to indicate
   path computation specific capabilities. It a PCE's processing
   congestion state and may optionally include the expected PCE
   congestion duration.
   The CONGESTION sub-TLV is optional, it MAY be present carried within the PCED
   TLV. It MUST not NOT be present more than once.
   It is made of a 32-bit flag, where each bit corresponds to a path
   computation capability. It MAY also include optional sub-TLVs to
   encode more complex capabilities.

   The format of the PATH-COMP-CAP CONGESTION sub-TLV is as follows:

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |              Type             |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |C|       Reserved              |             Path Computation Capabilities Flag      Congestion Duration      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      //                    Optional sub-TLVs                         //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Type     To be assigned by IANA (suggested value =1) =6)
         Length   Variable.   4
         Value    This comprises a 32 bit flag. Bits are indexed from
                  the most significant to the least significant, where
                  each bit represents one path computation capability.

                  Optional TLVs may be defined to specify more complex
                  capabilities. Three optional sub-TLVs are currently
                  defined.

   IANA is requested to manage the space of the Path Commutation
   Capabilities 32-bit flag.

   The following bits are to be assigned by IANA:

     Bit       Capabilities

      0      G bit: Capability to handle GMPLS link constraints
      1      B bit: Capability to compute bidirectional paths
      2      D bit: Capability to compute link/node/SRLG diverse paths
      3      L bit: Capability to compute load-balanced paths
      4      S bit: Capability to compute a set of paths in a
                    synchronized Manner
      5      O bit: Support for multiple objective functions
      6      P bit: Capability to handle path constraints (e.g. hop
             count, metric bound)

     7-31    Reserved for future assignments by IANA.

   The G, B, D, L, S, O and P bits are not exclusive.

   Three optional sub-TLVs are currently defined for the PATH-COMP-CAP
   TLV:
   - The Objective Functions sub-TLV (type to be defined, suggested
      value =1) that carries a list of supported objective functions,
      where each objective function is identified by a 16 bit integer.
   - The Opaque Objective Function sub-TLV (type to be defined,
      suggested value =2) that allows the user to encode a specific
      objective function in any appropriate language.
   - The Switch Caps sub-TLV (type to be defined, suggested value =3)
      that carries a list of supported switching capabilities. It means
      that the PCE can compute path for the listed switching
      capabilities.

5.1.6.1. Objective Functions sub-TLV

   The format of the Objective Functions sub-TLV is as follows

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |              Type             |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |             function 1        |   function 2                  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      //                                                             //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |             function N        |                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Type     To be defined by IANA (suggested value =1)
         Length   Variable (N*2), where N is the number of supported
                  objective functions.
         Value    This comprises a set of one or more 16 bit function
                  ids, where each function id identifies a supported
                  objective function.

   Objectives functions and their identification will be defined in a
   separate document.

   The Objective Functions sub-TLV is optional, it MAY be present with
   the PATH-COMP-CAP TLV. When present it MUST be present only once in
   the PATH-COMP-CAP TLV.

5.1.6.2. Opaque Objective Function sub-TLV

The format of the Opaque Objective Function sub-TLV is as follows

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |              Type             |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |             Opaque objective function                         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Type     To be defined by IANA (suggested value =2)
         Length   Variable
         Value    This encode a specific objective function in any
                  appropriate language.

The Opaque Objective Function sub-TLV is optional. The PATH-COMP-CAP TLV
MAY comprise 0, one or more Opaque Objective Function sub-TLVs.

5.1.6.3. Switch Caps sub-TLV

The format of the Switch Caps sub-TLV is as follows

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |              Type             |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |   SC type     |   SC type     |   SC type     |               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      //                                                             //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Type     To be defined by IANA (suggested value =3)
         Length   Variable = N, where N is the number of supported
                  switching capabilities
         Value    This comprises a set of one or more 8-bit switching
                  types, where each switching type identifies a
                  supported switching capability.

Switching type values are defined in [RFC4203].

The Switch Caps sub-TLV is optional, it MAY be present in the PATH-COMP-
CAP TLV. When present it MUST be present only once in the PATH-COMP-CAP
TLV.

5.2. The OSPF PCES TLV

   The OSPF PCE Status TLV (PCES TLV) carries information related to PCE
   processing congestion state.
   The PCES TLV is carried within an OSPF Router Information LSA which
   is defined in [OSPF-CAP].

   The OSPF PCES TLV has the following format:

    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            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   //                      PCE ADDRESS sub-TLV                     //
   //                     CONGESTION sub-TLV                     //
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Type     To be defined by IANA (suggested value=3)
         Length   Variable
         Value    This comprises a PCE ADDRESS sub-TLV, identifying the
                  PCE and a CONGESTION sub-TLV that contains congestion
                  information.

   Sub-TLV types are under IANA control.

   Currently two sub-TLVs are defined (type values to be assigned by
   IANA):
         Sub-TLV type  Length               Name
               1      variable     PCE-ADDRESS sub-TLV
               2         4         CONGESTION sub-TLV

   There MUST be exactly one occurrence of the PCE-ADDRESS and
   CONGESTION sub-TLVs within a PCES TLV. The PCE-ADDRESS sub-TLV is
   defined in section 5.1.1.
   It carries one of the PCE IP addresses and is used to identify
           -C bit: When set this indicates that the PCE experiencing a processing congestion state. This
   is required as the PCES and PCED TLVs may be carried in separate
   Router Information LSAs.A PCE implementation MUST use the same IP
   address for the PCE-ADDRESS sub-TLV carried within the PCED TLV and
   the PCE-ADDRESS TLV carried within the PCES sub-TLV.

   Any non recognized sub-TLV MUST be silently ignored.

   Additional sub-TLVs could be added in the future to advertise
   additional congestion information.

5.2.1. The CONGESTION sub-TLV

   The CONGESTION sub-TLV is used to indicate whether a PCE experiences
   a processing congestion state or not along with optionally the
   expected PCE congestion duration.
   The CONGESTION sub-TLV is mandatory. There MUST be a single instance
   of the CONGESTION sub-TLV within the PCES TLV.

   The format of the CONGESTION sub-TLV is as follows:

       0                   1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |              Type             |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |C|       Reserved              |      Congestion Duration      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Type     To be assigned by IANA (suggested value =2)
         Length   4

         Value
           -C bit: When set this indicates that the PCE experiences experiencing
                   congestion and cannot accept any new request. When
                   cleared this indicates that the PCE does is not
                   experience
                   experiencing congestion and can accept new requests.

           -Congestion Duration: 2-bytes, the estimated PCE congestion
                                 duration in seconds.

   When C is set and the Congestion Duration field is equal to 0, this
   means that the Congestion Duration is unknown.

   When C is cleared the Congestion Duration MUST SHOULD be set to 0.

6. 0 and MUST
   be ignored.

5. Elements of Procedure

   The PCES and PCED TLV are is advertised within an OSPFv2 Router Information LSA LSAs
   (Opaque type of 4 and Opaque ID of 0) or OSPFv3 Router information LSA
   LSAs (function code of 12) which are defined in [OSPF-CAP].  As such,
   elements of procedure are inherited from those defined in [OSPF-CAP].

   As the PCES information is likely to change more frequently than the
   PCED information, it is RECOMMENDED to carry PCES and PCED TLVs in
   separate Router Information LSAs, so as not to carry all PCED
   information each time the PCE status changes.

   In OSPFv2 the flooding scope is controlled by the opaque LSA type (as
   defined in [RFC2370]) and in OSPFv3 by the S1/S2 bits (as defined in
   [RFC2740]). If the flooding scope is local to an area then the PCED
   or PCES
   TLV MUST be carried within an OSPFv2 type 10 router information LSA
   or an OSPFV3 Router Information LSA with the S1 bit set and the S2
   bit cleared. If the flooding scope is the entire domain then the PCED or PCES
   TLV MUST be carried within an OSPFv2 type 11 Router Information LSA
   or OSPFv3 Router Information LSA with the S1 bit cleared and the S2
   bit set. When only the L bit of the PATH-SCOPE sub-TLV is set, the flooding
   scope MUST be local.
   Note that set, the
   flooding scope of the PCED and PCES TLVs may be
   distinct, in which case they will MUST be carried in separate LSA. local.

   A router PCE MUST originate a new OSPF router information Router Information LSA whenever the
   content of the PCED TLV or PCES TLV changes or whenever required by the regular
   OSPF procedure (LSA refresh (every LSRefreshTime)). procedure.

   When the PCE function is deactivated on a node, the node MUST
   originate a new Router Information LSA that does no longer contain
   the PCED and PCES sub-TLVs are TLV. A PCC MUST be able to detect that the PCED TLV has been
   removed from a Router Information LSA.

   The PCE address, i.e. the address indicated within the PCE ADDRESS
   TLV, MUST be distributed as part of OSPF routing; this allows
   speeding up the detection of a PCE failure. Note that when the PCE
   address is no longer reachable, this means that the PCE node has
   failed or has been torn down, or that there is no longer IP
   connectivity to the PCE node.

   The PCED TLV is OPTIONAL. When an OSPF LSA does not contain any PCED or PCES sub-TLV,
   TLV, this means that the PCE information of that node is unknown.

   A change in PCED or PCES information MUST not NOT trigger any SPF computation. computation at
   a receiving router.

   The way PCEs retrieve their own determine the information they advertise is out of the
   scope of this document. Some information may be configured on the PCE (e.g.
   (e.g., address, preferences, scope) and other information may be
   automatically retrieved determined by the PCE (e.g. (e.g., areas of visibility).

6.1.1. PCES TLV

5.1. CONGESTION sub-TLV specific procedures

   When a PCE enters into a processing congestion state, the conditions
   of which are implementation dependent, it SHOULD MAY originate a Router
   Information LSA with a PCES TLV CONGESTION sub-TLV with the C bit set, and
   optionally a non-null expected congestion duration.

   When a PCE exits from the processing congestion state, the conditions
   of which are implementation dependent, two cases are considered:
        - If the congestion duration in the previously originated PCES
   TLV
   CONGESITON sub-TLV was null, it SHOULD originate a PCES TLV CONGESTION sub-TLV
   with the C bit cleared and a null congestion duration;
        - If the congestion duration in the previously originated PCES
   TLV
   CONGESTION sub-TLV was non null, it MAY originate a PCES TLV. CONGESTION sub-
   TLV with the C bit cleared. Note that in some particular cases it may
   be desired to originate a PCES TLV CONGESTION sub-TLV with the C bit cleared
   if the congestion duration was over estimated.

   The congestion duration allows reducing a reduction in the amount of OSPF
   flooding, as only uncongested-to-congested state transitions are need to
   be advertised.

   An

   A PCE implementation SHOULD support an appropriate dampening
   algorithm so as to dampen OSPF flooding in order to not impact the
   OSPF scalability. It is RECOMMENDED to introduce some hysteresis for
   congestion state transition, so as to avoid state oscillations that
   may impact OSPF performances. performance. For instance two thresholds MAY be
   configured: A resource congestion upper-threshold and a resource
   congestion lower-threshold. An LSR enters the congested state when
   the CPU load reaches the upper threshold and leaves the congested
   state when the CPU load goes under the lower threshold.

   Upon receipt of an updated PCES TLV CONGESTION sub-TLV a PCC should SHOULD take
   appropriate actions. In particular, the PCC SHOULD stop sending
   requests to a  congested PCE, and SHOULD gradually start sending
   again requests to a PCE that is no longer congested PCE.

7. congested.

6. Backward compatibility

   The PCED and PCES TLVs TLV defined in this document do does not introduce any
   interoperability issue. issues.

   A router not supporting the PCED/PCES TLVs PCED TLV will just silently ignore the TLVs
   TLV as specified in [OSPF-CAP].

8.

7. IANA considerations

8.1. Considerations

7.1. OSPF TLVs TLV

   Once a registry for the Router Information LSA defined in
   [OSPF-CAP] will have been assigned, IANA will assign two a new codepoints
   OSPF TLV code-point for the PCED and PCES sub-TLVs TLV carried within the Router
   Information LSA defined in [OSPF-CAP].

   Type     Description         Reference

    1 LSA.

   Value      Sub-TLV                   References
   -----     --------                   ----------
     5    PCED              [OSPF-CAP]
    2        PCES              [OSPF-CAP]

   8.1.1 TLVs carried within the TLV                      (this document)

7.2. PCED sub-TLVs registry

   The PCED TLV referenced above is constructed from sub-TLVs. Each sub-
   TLV includes a 16-bit type identifier.

   The IANA is requested to manage sub-TLV types for the PCED TLV.

   Five sub-TLVs types are defined for the PCED sub-TLV create a new registry and should be
   assigned by IANA: manage TLV type
   identifiers as follows:

   - TLV Type     Description
   - TLV Name
   - Reference

   This document defines five TLVs as follows (suggested values):

   Value      TLV name                   References
   -----     --------                   ----------
    1       PCE-ADDRESS               This document
    2       PATH-SCOPE                This document
    3       PCE-DOMAINS               This document
    4      PCE-DEST-DOMAINS       PCE-NEIG-DOMAINS          This document
    5      GENERAL-CAP       PCE-CAP-FLAGS             This document
    6      PATH-COMP-CAP       CONGESTION                This document

   TLVs carried within the PCE-DOMAINS and PCE-DEST-DOMAINS

   New TLV

   Three TLVs types are defined for the PCE-DOMAINS and PCE-DEST-DOMAINS
   TLVs and should type values may be assigned allocated only by IANA:

   Type     Description        Reference

    1       IPv4 Area ID       This document
    2       IPv6 Area ID       This document
    3       AS number an IETF Consensus
   action.

7.3. PCE Capability Flags registry

   This document

   TLV carried within the PATH-COMP-CAP sub-TLV

   Three sub-TLV types provides new capability bit flags, which are defined for the PATH-COMP-CAP TLV and should
   be assigned by IANA:

   Type  Description               Reference

    1    Objective Functions       This document
    2    Opaque Objective Function This document
    3    Switch Caps sub-TLV       This document

8.1.2 TLVs carried within present
   in the PCES PCE-CAP-FLAGS TLV referenced in section 4.1.5.

   The IANA is requested to manage TLV types for the PCES TLV.

   Type     Description         Reference

    1      PCE-ADDRESS          This document
    2      CONGESTION           This document

8.2. Capability bits

   IANA is requested create a new registry and to manage the
   space of the General Capabilities
   32-bit flag and the Path Computation Capabilities 32-bit flag defined
   in this document, PCE capability bit flags numbering them in the usual IETF
   notation starting at zero and continuing at least through 31. 31, with
   the most significant bit as bit zero.

   The same registry is defined for IS-IS based PCE discovery [PCED-
   ISIS]. A single registry must be defined for both protocols.

   New bit numbers may be allocated only by an IETF Consensus action.
   Each bit should be tracked with the following qualities:
      - Bit number
      - Defining RFC
      - Name of bit

   Currently two bits are defined in the General Capabilities flag. Here
   are the suggested values:
      -0: Support for Request prioritization.
      -1: Support for multiple messages within by an IETF Consensus action.

   Each bit should be tracked with the same request message

   Currently seven following qualities:

   - Bit number
   - Defining RFC
   - Capability Description

   Several bits are defined in the Path Computation Capabilities
   flag. this document. Here are the suggested
   values:

      -0:

     Bit       Capability to handle Description

      0        GMPLS Constraints
      -1: Capability to compute bidirectional link constraints
      1        Bidirectional paths
      -2: Capability to compute link/node/SRLG diverse
      2        PSC paths
      -3: Capability to compute load-balanced
      3        TDM paths
      -4: Capability to compute a set of
      4        LSC paths in a
          synchronized Manner
      -5: Support for multiple
      5        FSC paths
      6        Diverse paths
      7        Load-balanced paths
      8        Synchronized computation
      9        Multiple objective function
      -6: Capability to handle functions
      10       Additive path constraints (e.g. max hop count, metric
          bound)

9. count)
      11       Request prioritization
      12       Multiple requests per message

8. Security Considerations

   Any new

   This document defines OSPF extensions for PCE discovery within an
   administrative domain. Hence the security of the PCE discovery relies
   on the security issues raised of OSPF.

   Mechanisms defined to ensure authenticity and integrity of OSPF LSAs
   [RFC2154], and their TLVs, can be used to secure the PCE Discovery
   information as well.

   OSPF provides no mechanism for protecting the privacy of LSAs, and in
   particular the PCE discovery information.

9. Manageability Considerations

   Manageability considerations for PCE Discovery are addressed in
   section 4.10 of [RFC4674].

9.1. Control of Policy and Functions

   Requirements on the configuration of PCE discovery parameters on PCCs
   and PCEs are discussed in section 4.10.1 of [RFC4674].

   Particularly, a PCE implementation SHOULD allow configuring the
   following parameters on the PCE:
        -The PCE IPv4/IPv6 address(es) (see section 4.1.1)
        -The PCE Scope, including the inter-domain functions (inter-
         area, inter-AS, inter-layer), the preferences, and whether the
         PCE can act as default PCE (see section 4.1.2)
        -The PCE domains (see section 4.1.3)
        -The PCE neighbour domains (see section 4.1.4)
        -The PCE capabilities (see section 4.1.5)

9.2. Information and Data Model

   A MIB module for PCE Discovery is defined in [PCED-MIB].

9.3. Liveness Detection and Monitoring

   PCE Discovery Protocol liveness detection relies upon OSPF liveness
   detection. OSPF already includes a liveness detection mechanism
   (Hello protocol), and PCE discovery does not require additional
   capabilities.

   Procedures defined in section 5 allow a PCC detecting when a PCE has
   been deactivated, or is no longer reachable.

9.4. Verify Correct Operations

   The correlation of information advertised against information
   received can be achieved by comparing the procedures PCED information in this document
   depend upon the opportunity for LSAs to be snooped, PCC
   and in the
   ease/difficulty of PCE, which has not been altered. As is stored in the LSAs may now
   contain additional information regarding PCE capabilities, this
   new PCED MIB [PCED-MIB].  The
   number of dropped, corrupt, and rejected information would also become available. Mechanisms elements are
   stored in the PCED MIB.

9.5. Requirements on Other Protocols and Functional Components

   The OSPF extensions defined to
   secure in this documents does not imply any
   requirement on other protocols.

9.6. Impact on network operations

   Frequent changes in PCE information, and particularly in PCE
   congestion information, may have a significant impact on OSPF LSAs [RFC2154], and their TLVs, can be used
   might destabilize the operation of the network by causing the PCCs to secure
   swap between PCEs.

   As discussed in section 5, a PCE implementation SHOULD support an
   appropriate dampening algorithm so as to dampen OSPF flooding in
   order to not impact the
   PCED and PCES TLVs OSPF scalability.

   Also, as well.

10. Manageability Considerations

   Manageability considerations for PCE Discovery are addressed discussed in section 4.10 4.10.4 of [RFC4674].

11. [RFC4674], it MUST be
   possible to apply at least the following controls:

      - Configurable limit on the rate of announcement of changed
        parameters at a PCE.
      - Control of the impact on PCCs such as through discovery messages
        rate-limiting.
      - Configurable control of triggers that cause a PCC to swap to
        another PCE.

10. Acknowledgments

We would like to thank Lucy Wong and Adrian Farrel for their useful
comments and suggestions.

12.

11. References

12.1.

11.1. Normative references

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3667] Bradner, S., "IETF Rights in Contributions", BCP 78, RFC
   3667, February 2004.

   [BCP79] Bradner, S., "Intellectual Property Rights in IETF
   Technology", RFC 3979, March 2005.

   [OSPF-v2] Moy, J., "OSPF Version 2", RFC 2328, April 1998.

   [OSPF-v3]

   [RFC2740] Coltun, R., Ferguson, D., and J. Moy, "OSPF for IPv6",
             RFC 2740, December 1999.

   [RFC2370] Coltun, R., “The OSPF Opaque LSA Option”, RFC 2370, July
   1998.

   [RFC3630] Katz, D., Yeung, D., Kompella, K., "Traffic Engineering
   Extensions to OSPF Version 2", RFC 3630, September 2003.

   [OSPF-CAP] Lindem, A., Shen, N., Aggarwal, R., Shaffer, S., Vasseur,
   J.P., "Extensions to OSPF for advertising Optional Router
   Capabilities", draft-ietf-ospf-cap, work in progress.

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

   [RFC4674] Le Roux, J.L., et al. "Requirements for PCE discovery",
   RFC4674, October 2006.

   [RFC4203] Kompella, Rekhter, " OSPF Extensions in Support of
   Generalized Multi-Protocol Label Switching (GMPLS)", RFC4203, October
   2005.

   [RFC2154] Murphy, S., Badger, M., and B. Wellington, "OSPF with
   Digital Signatures", RFC 2154, June 1997.

12.2.

11.2. Informative references

   [RFC4657] Ash, J., Le Roux, J.L., " PCE Communication Protocol
   Generic Requirements", RFC4657, September 2006.

   [PCEP] Vasseur Vasseur, Le Roux, et al., “Path "Path Computation Element (PCE)
   communication Protocol (PCEP) - Version 1”, 1", draft-ietf-pce-pcep, work
   in progress.

13.

   [PCED-MIB] Stephan, E., "Definitions of Managed Objects for Path
   Computation Element Discovery", draft-ietf-pce-disc-mib-00, work in
   progress.

   [PCED-ISIS] Le Roux, Vasseur, et al. "IS-IS protocol extensions for
   Path Computation Element (PCE) Discovery", draft-ietf-pce-disco-
   proto-isis, work in progress.

12. Editor's Addresses:

   Jean-Louis Le Roux (Editor)
   France Telecom
   2, avenue Pierre-Marzin
   22307 Lannion Cedex
   FRANCE
   Email: jeanlouis.leroux@orange-ftgroup.com

   Jean-Philippe Vasseur (Editor)
   Cisco Systems, Inc.
   1414 Massachusetts avenue
   Boxborough , MA - 01719
   USA
   Email: jpv@cisco.com

14.

13. Contributors' Addresses:

   Yuichi Ikejiri
   NTT Communications Corporation
   1-1-6, Uchisaiwai-cho, Chiyoda-ku
   Tokyo 100-8019
   JAPAN
   Email: y.ikejiri@ntt.com

   Raymond Zhang
   BT Infonet
   2160 E. Grand Ave.
   El Segundo, CA 90025
   USA
   Email: raymond_zhang@infonet.com

15. raymond_zhang@bt.infonet.com

14. Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.

   Disclaimer of Validity

   This document and the information contained herein are provided
   on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
   REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE
   IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL
   WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
   WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE
   ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS
   FOR A PARTICULAR PURPOSE.

   Copyright Statement

   Copyright (C) The IETF Trust (2006). (2007). This document is subject to the
   rights, licenses and restrictions contained in BCP 78, and except as
   set forth therein, the authors retain all their rights.