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

                                                          Yuichi Ikejiri
                                                      NTT Communications

                                                           Raymond Zhang
                                                              BT Infonet

                                                           February 2007
  IS-IS protocol extensions for Path Computation Element (PCE) Discovery

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

                  draft-ietf-pce-disco-proto-isis-03.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 Elements (PCE),
   along with some of information that can be used for PCE selection. When
   the PCE is a Label Switching Router (LSR) participating in the
   Interior Gateway Protocol (IGP), or even a server participating
   passively in the IGP, a simple and efficient way to discover PCEs
   consists of using IGP flooding. For that purpose this document
   defines extensions to the Intermediate System to Intermediate System
   (IS-IS) routing protocol for the advertisement of PCE Discovery
   information within an IS-IS area or within the entire IS-IS 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.      Terminology.................................................3
   2.      Introduction................................................4
   3.      Overview....................................................5
   3.1.    PCE Information.............................................5
   3.1.1.  PCE Discovery Information...................................5
   3.1.2.  PCE Status Information......................................6 Congestion Information..................................6
   3.2.    Flooding scope..............................................6
   4.      IS-IS extensions............................................6 extensions............................................7
   4.1.    The IS-IS PCED TLV..........................................6 sub-TLV......................................7
   4.1.1.  PCE-ADDRESS sub-TLV.........................................7 sub-TLV.........................................8
   4.1.2.  The PATH-SCOPE sub-TLV......................................8
   4.1.3.  PCE-DOMAINS sub-TLV........................................10
   4.1.3.1.  Area ID DOMAIN sub-TLV...................................10
   4.1.3.2.  AS Number DOMAIN sub-TLV.................................11  PCE-DOMAIN sub-TLV.........................................10
   4.1.4.  PCE-NEIG-DOMAINS sub-TLV...................................11  NEIG-PCE-DOMAIN sub-TLV....................................11
   4.1.5.  PCE-CAP-FLAGS sub-TLV......................................11
   4.1.6.  The CONGESTION sub-TLV.....................................12
   5.      Elements of Procedure......................................13
   5.1.1.  CONGESTION sub-TLV specific procedures.....................14
   6.      Backward compatibility.....................................15
   7.      IANA considerations........................................15
   7.1.    IS-IS sub-TLV..............................................15
   7.2.    PCED sub-TLVs registry.....................................15
   7.3.    PCE Capability Flags registry..............................16
   8.      Security Considerations....................................16
   9.      Manageability Considerations...............................17
   9.1.    Control of Policy and Functions............................17
   9.2.    Information and Data Model.................................17
   9.3.    Liveness Detection and Monitoring..........................17
   9.4.    Verify Correct Operations..................................17
   9.5.    Requirements on Other Protocols and Functional
             Components...............................................17
   9.6.    Impact on network operations...............................18 operations...............................17
   10.     Acknowledgments............................................18
   11.     References.................................................18
   11.1.   Normative references.......................................18
   11.2.   Informative references.....................................19
   12.     Editors' Addresses:........................................19
   13.     Contributors' Adresses:....................................19
   14.     Intellectual Property Statement............................20

1. Terminology

   Terminology used in this document

      ABR: IGP Area Border Router (L1L2 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 (IS-IS).

      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 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 two or more
      ASes or sub-ASes (BGP confederations). That is a TE-LSP that
      crosses at least one AS boundary.

      IS-IS LSP: Link State PDU

      LSR: Label Switching Router.

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

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

      PCE-Domain: In a PCE context this refers to any collection of
      network elements within a common sphere of address management or
      path computational responsibility (referred to as "domain" in
      [RFC4655]). Examples of PCE-Domains include IGP areas and
      Autonomous Systems. This should be distinguished from an IS-IS
      routing domain as defined by [ISO].

      PCEP: Path Computation Element communication Protocol.

      TE LSP: Traffic Engineered Label Switched Path.

2. Introduction

   [RFC4655] describes the motivations and architecture for a Path
   Computation Element (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 Path Computation Client (PCC) (also
   referred to as a non co-
   located 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 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 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. 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 provided in [RFC4674].

   Moreover, it may also be useful to discover when a PCE experiences
   processing congestion and when it exits such a state, in order for
   the PCCs to take some appropriate actions (e.g. 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 in the IGP (OSPF, IS-IS), and PCEs
   are either LSRs or servers also participating in the IGP, an
   effective mechanism for PCE discovery within an IGP routing domain
   consists of utilizing IGP advertisements.

   This document defines IS-IS extensions to allow a PCE in an IS-IS
   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 an IS-IS routing domain to
   advertise its processing congestion state.

   Generic capability advertisement mechanisms for IS-IS are defined in
   [IS-IS-CAP]. These allow a router to advertise its capabilities
   within an IS-IS area or an entire IS-IS routing domain. This document
   leverages this generic capability advertisement mechanism to fully
   satisfy the aforementioned dynamic PCE discovery requirements.

   This document defines a new sub-TLV (named the PCE Discovery (PCED) to be
   carried within the IS-IS Router Capability TLV ([IS-IS-CAP]).

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

   This document does not define any new IS-IS elements of procedure.
   The procedures defined in [IS-IS-CAP] should MUST be used.

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

   This document defines a set of sub-TLVs that are nested within each
   other. When the degree of nesting TLVs is 2 (a TLV is carried within
   another TLV) the TLV carried within a TLV is called a sub-TLV.
   Strictly speaking, when the degree of nesting is 3, a subsub-TLV is
   carried within a sub-TLV that is itself carried within a TLV. For the
   sake of terminology simplicity, we refer to sub-TLV, a TLV carried
   within a TLV regardless of the degree of nesting.

3. Overview

3.1. PCE Information

   The PCE information advertised via IS-IS falls into two categories:
   PCE Discovery information and PCE Status Congestion information.

3.1.1. PCE Discovery Information

   The PCE Discovery information is comprised of:

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

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

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

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

   - A set of communication capabilities (e.g. support for request
     prioritization) and path computation specific capabilities
     (e.g. supported 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, or PCE failure.
   Hence, this information is not expected to change frequently.

3.1.2. PCE Status Congestion Information

   The PCE Status Congestion information is optional and can be used to report
   a PCE's processing 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 congestion state to a
   non-congestion state are beyond the scope of this document, but the
   rate at which a PCE Status change is advertised MUST NOT impact by
   any means the IGP scalability. Particular attention should be given
   on procedures to avoid state oscillations.

3.2. Flooding scope

   The flooding scope for PCE information advertised through IS-IS can
   be limited to one or more IS-IS areas a single L1 area, a L1 area and the PCE belongs to, L2 sub-domain, or can be
   extended across the entire
   IS-IS 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 for a
   L1L2 router for instance advertising its PCE information within the
   L2 area and/or a subset of its attached L1 area(s).

4. IS-IS extensions

4.1. The IS-IS PCED TLV sub-TLV

   The IS-IS PCED TLV sub-TLV is made of a set of non ordered sub-TLVs.

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

   The IS-IS PCED TLV sub-TLV has the following format:

      TYPE: To be assigned by IANA  (suggested value = 5)
      LENGTH: Variable
      VALUE: set of sub-TLVs

   Sub-TLVs types are under IANA control.

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

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

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

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

   The CONGESTION sub-TLV is optional and MAY be present in the PCED
   TLV,
   sub-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 PCE information.

   The PCED TLV sub-TLV is carried within an IS-IS CAPABILITY TLV defined in
   [IS-IS-CAP].

   The following sub-sections describe the sub-TLVs which may be carried
   within the PCED sub-TLV.

4.1.1. PCE-ADDRESS sub-TLV

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

   The PCE-ADDRESS sub-TLV is mandatory; it MUST be present within the
   PCED TLV. sub-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 PCE-ADDRESS sub-TLV has the following format:

      TYPE: To be assigned by IANA (Suggested value =1)
      LENGTH: 5 for IPv4 address and 17 for IPv6 address
      VALUE: This comprises one octet indicating the address-type and 4
             or 16 octets bytes encoding the IPv4 or IPv6 address to be used
             to reach the PCE PCE.

   Address-type:
                  1   IPv4
                  2   IPv6

4.1.2. The PATH-SCOPE sub-TLV

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

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

   The PATH-SCOPE sub-TLV contains a set of bit flags indicating the
   supported path scopes, and four fields indicating PCE preferences.

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

   TYPE: To be assigned by IANA (Suggested value =2)
   LENGTH: 3
   VALUE: This comprises a one-byte flags field where flag
          represents a supported path scope, followed by a 2-bytes
          preferences field indicating PCE preferences.

   Here is the structure of the bits flag:

      +-+-+-+-+-+-+-+-+
      |0|1|2|3|4|5|Res|
      +-+-+-+-+-+-+-+-+

   Bit      Path Scope

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

   Here is the structure of the preferences field

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |PrefL|PrefR|PrefS|PrefY| Res   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Res: Reserved for future usage.

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

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

   Pref-S field: 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, and Y bits are set when the PCE can act as a PCE for
   intra-area, inter-area, inter-AS or inter-layer TE LSPs computation
   respectively. These bits are non-exclusive.

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

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

   Similarly, when the and Sd bit is are set, the PCE-NEIG-DOMAIN TLV PCED sub-TLV MUST NOT contain any AS-DOMAIN sub-TLVs.
   NEIG-PCE-DOMAIN sub-TLV (see 4.1.4).

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

   The PrefL, PrefR, PrefS and PrefY fields are 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. The algorithms used
   by a PCC to balance its path computation requests according to such
   PCE preference are out of the scope of this document and is a matter
   for local or network wide policy. The same or distinct preferences
   may be used for each scopes. 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 L bit, R bit, S bit or Y bit are cleared the PrefL, PrefR,
   PrefS, PrefY fields SHOULD respectively be set to 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 PCE-DOMAIN sub-TLV

   The PCE-DOMAINS PCE-DOMAIN sub-TLV specifies the set of domains a PCE-Domain (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 PCE-DOMAINS

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

   A PCED sub-TLV MAY include multiple PCE-DOMAIN sub-TLVs when the PCE
   has visibility in multiple PCE-Domains.

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

   TYPE: To be assigned by IANA (Suggested value =3)
   LENGTH: Variable
   VALUE: This comprises a set of one octet indicating the domain-type (area ID
   or more DOMAIN sub-TLVs where
          each DOMAIN sub-TLV identifies AS Number) and a domain variable length IS-IS area ID or a 32 bits AS
   number, identifying a PCE-domain where the PCE has
          topology visibility and can compute paths. visibility.

   Two DOMAIN sub-TLVs domain types are defined

            Sub-TLV type   Length        Name defined:
                  1         Variable   Area ID sub-TLV
                  2           4          AS number sub-TLV

   At least one DOMAIN sub-TLV MUST be present in the PCE-DOMAINS sub-
   TLV. Note than when the PCE visibility is an entire AS, the PCE-
   DOMAINS sub-TLV MUST include exactly one   AS number sub-TLV, and MUST
   not contain an area-ID sub-TLV.

4.1.3.1. Number
   The Area ID DOMAIN sub-TLV

   This sub-TLV carries an IS-IS area ID. It has the following format

   TYPE: 1
   LENGTH: Variable
   VALUE: This comprises a variable length IS-IS area ID. This is the
          combination of an Initial Domain Part (IDP) and High Order
          part of the Domain Specific part (HO-DSP)

4.1.3.2. AS Number DOMAIN sub-TLV

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

   TYPE: 2
   LENGTH: 4
   VALUE: AS number identifying an AS. area address as defined in [ISO].

   When coded 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.

4.1.4. PCE-NEIG-DOMAINS NEIG-PCE-DOMAIN sub-TLV

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

   A PCED sub-TLV identifies a
   domain. MAY include several NEIG-PCE-DOMAIN sub-TLVs when the
   PCE can compute paths towards several neighbour PCE-domains.

   The PCE-NEIG-DOMAINS NEIG-PCE-DOMAIN sub-TLV has the following format: same format as the PCE-DOMAIN
   sub-TLV:

   TYPE: To be assigned by IANA (Suggested value =4)
   LENGTH: Variable
   VALUE: This comprises a set of one octet indicating the domain-type (area ID
   or more AS Number) and a variable length IS-IS area or/and ID or a 32 bits AS DOMAIN sub-
          TLVs where each sub-TLV identifies
   number, identifying a neighbour domain toward PCE-domain towards which a the PCE can compute path.
   paths.

   Two domain types are defined:
                  1   Area ID
                  2   AS Number

   The PCE-NEIG-DOMAINS sub-TLV MUST be present if the R bit Area ID is set and the Rd bit area address as defined in [ISO].

   When coded in two bytes (which is cleared, and/or, if the S bit is set and current defined format as the Sd bit is
   cleared.
   time of writing this document), the AS Number field MUST have its
   left two bytes set to 0.

   The PCE-NEIG-DOMAINS NEIG-PCE-DOMAIN sub-TLV MUST include at least one DOMAIN sub-
   TLV. It MUST include at least one Area ID sub-TLV, be present 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 cleared, and/or, if the S bit of the PATH-SCOPE TLV is set and the Sd bit of the PATH-
   SCOPE TLV is
   cleared.

4.1.5. PCE-CAP-FLAGS sub-TLV

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

   The value field of the PCE-CAP-FLAGS sub-TLV is made up of an array
   of units of 32 bit flags numbered from the most significant as bit
   zero, where each bit represents one PCE capability.

   The GENERAL-CAP PCE-CAP-FLAGS sub-TLV has the following format:

      TYPE: To be assigned by IANA (Suggested value =4)
      LENGTH: Multiple of 4
      VALUE: This contains an array of units of 32 bit flags numbered
             from the most significant as bit zero, where each bit
             represents one PCE capability.

   IANA is requested to manage the space of the PCE Capability Flags Flags.

   The following bits are to be assigned by IANA:

     Bit       Capabilities

      0        Capability to handle        Path computation with GMPLS link constraints
      1        Capability to compute bidirectional paths        Bidirectional path computation
      2        Capability to compute PSC        Diverse path computation
      3        Capability to compute a TDM        Load-balanced path computation
      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        Synchronized paths in a
               synchronized Manner
      9 computation
      5        Support for multiple objective functions
      10       Capability to handle
      6        Support for additive path constraints (e.g. max
               (max hop count,
               max path metric)
      11 etc.)
      7        Support for Request prioritization.
      12 request prioritization
      8        Support for multiple requests within the same
               request message.

     13-31 per message

     9-31    Reserved for future assignments by IANA.

   These capabilities are defined in [RFC4657].

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

4.1.6. The CONGESTION sub-TLV

   The CONGESTION sub-TLV is used to indicate that a PCE's experiences PCE is experiencing
   a processing congestion state and may optionally include expected PCE
   congestion duration.
   The CONGESTION sub-TLV is optional, it MAY be carried within the PCED
   TLV.
   sub-TLV. It MUST NOT be present more than once.

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

   TYPE: To be assigned by IANA (Suggested value =6)
   LENGTH: 3
   VALUE: This comprises a one-byte one byte of bit flags indicating the
          congestion status, followed by a 2-bytes field indicating the
          congestion duration.

   Here is the TLV structure

    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |C|     Reserved|      Congestion Duration      |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Value
           -C bit: When set this indicates that the PCE is experiencing
                   congestion and cannot accept any new request. When
                   cleared this indicates that the PCE is not
                   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 SHOULD be set to 0 and MUST
   be ignored.

5. Elements of Procedure

   The PCED TLV sub-TLV is advertised within an IS-IS Router Capability TLV
   defined in [IS-IS-CAP]. A As such, elements of procedures are inherited
   from those defined in [IS-IS-CAP].

   The flooding scope is controlled by the S flag in the IS-IS Router
   Capability TLV (see [IS-IS-CAP]). When the scope of the PCED TLV sub-TLV
   is area local it MUST be carried within an IS-IS CAPABILITY Router Capability
   TLV having the S bit cleared. When the scope of the PCED TLV sub-TLV is
   the entire IGP IS-IS routing domain, itMUST it MUST be carried within an IS-IS CAPABILITY
   Router Capability TLV having the S bit set. When Note that when only the L
   bit of the PATH-SCOPE sub-TLV is set, the flooding scope MUST be area
   local.

   A PCE

   Note that a L1L2 node may include both in its L1 and L2 LSPs a PCED
   TLV in a Router Capability TLV with the S bit cleared. This allows
   restricting the flooding scope to the L1 area and the L2 sub-domain.

   An IS-IS router MUST originate a new IS-IS LSP whenever the content
   of any of the there is a
   change in a PCED TLV changes or whenever required by the regular
   IS-IS procedure. associated with a PCE it advertises.

   When the a PCE function is deactivated on a node, deactivated, the node IS-IS Router advertising this PCE MUST
   originate a new IS-IS LSP with that does no longer any PCED TLV. A PCC MUST be
   able to detect that include the
   corresponding PCED TLV has been removed from an IS-IS LSP. TLV.

   The PCE address, address(s), i.e. the address address(s) indicated within the PCE
   ADDRESS sub-TLV, MUST must be distributed as part of IS-IS routing; reachable via some prefix(es)
   advertised by IS-IS; 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 sub-TLV is OPTIONAL. When an IS-IS LSP does not contain any
   PCED TLV, this means that the PCE information of that node is
   unknown.

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

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

5.1.1.

5.1. CONGESTION sub-TLV specific procedures

   When a PCE enters into a processing congestion state, the conditions
   of which are implementation dependent, it MAY originate a new IS-IS LSP with a
   CONGESTION sub-TLV with the C bit set and optionally a non-null
   expected congestion duration. duration MAY be generated.

   When a PCE exists from the processing congestion state, the
   conditions of which are implementation dependent, two cases are
   considered:
        - If the congestion duration in the previously originated
   CONGESTION sub-TLV was null, it SHOULD originate a CONGESTION sub-TLV with the C bit
   cleared and a null congestion duration; SHOULD be generated;
        - If the congestion duration in the previously originated
   CONGESTION sub-TLV was non null, it MAY originate a CONGESTION sub-
   TLV sub-TLV with the C bit cleared.
   cleared MAY be generated. 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 a reduction in the amount of IS-IS
   flooding, as only uncongested-to-congested state transitions need are
   advertised.

   A PCE

   An IS-IS implementation SHOULD support an appropriate dampening
   algorithm so as to dampen IS-IS flooding of PCE Congestion information in
   order to not impact the IS-IS scalability. It is RECOMMENDED to
   introduce some hysteresis for congestion state transition, so as to
   avoid state oscillations that may impact IS-IS 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 CONGESTION sub-TLV a PCC 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 congested.

6. Backward compatibility

   The PCED TLV sub-TLV defined in this document does not introduce any
   interoperability issues.

   An IS-IS router not supporting the PCED TLV sub-TLV will just silently
   ignore the TLV as specified in [IS-IS-CAP].

7. IANA considerations

7.1. IS-IS sub-TLV

   Once a registry for the IS-IS Router Capability TLV defined in
   [IS-IS-CAP] will have has been assigned, IANA will assign a new TLV code-point
   for the PCED TLV sub-TLV carried within the Router Capability TLV.

   Value      Sub-TLV                   References
   -----     --------                   ----------
     5    PCED TLV sub-TLV                  (this document)

7.2. PCED sub-TLVs registry

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

   The IANA is requested to create a new registry and manage TLV sub-TLV
   type identifiers as follows:

   - TLV sub-TLV Type
   - TLV sub-TLV Name
   - Reference

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

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

   New TLV sub-TLV type values may be allocated only by an IETF Consensus
   action.

7.3. PCE Capability Flags registry

   This document provides new capability bit flags, which are present
   in the PCE-CAP-FLAGS TLV referenced in section 4.1.5.

   The IANA is requested to create a new registry and to manage the
   space of PCE capability bit flags numbering them in the usual IETF
   notation starting at zero, and continuing at least through 31, with
   the most significant bit as bit zero.

   The same registry is defined for OSPF based PCE discovery [PCED-OSPF].
   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
   - Capability Description

   Several bits are defined in this document. Here are the suggested
   values:

     Bit       Capability Description

      0        Path computation with GMPLS link constraints
      1        Bidirectional paths path computation
      2        PSC paths
      3        TDM paths
      4        LSC paths
      5        FSC paths
      6        Diverse paths
      7 path computation
      3        Load-balanced paths
      8 path computation
      4        Synchronized paths computation
      9        Multiple
      5        Support for multiple objective functions
      10       Additive
      6        Support for additive path constraints (e.g. max
               (max hop count)
      11       Request count, etc.)
      7        Support for request prioritization
      12       Multiple
      8        Support for multiple requests per message

8. Security Considerations

   This document defines IS-IS extensions for PCE discovery within an
   administrative domain. Hence the security of the PCE discovery relies
   on the security of IS-IS.

   Mechanisms defined to ensure authenticity and integrity of IS-IS LSPs
   [RFC3567], and their TLVs, can be used to secure the PCED TLV sub-TLV as
   well.

   IS-IS provides no mechanism for protecting the privacy of LSAs, LSPs, and
   in particular the privacy of 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 PCE 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 IS-IS liveness
   detection. IS-IS already includes a liveness detection mechanism
   (Hello PDUs), and PCE discovery does not require additional
   capabilities.

   Procedures defined in section 5 5.1 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 PCED information in the PCC
   and in the PCE, which is stored in the PCED MIB [PCED-MIB].  The
   number of dropped, corrupt, and rejected information elements are
   stored in the PCED MIB.

9.5. Requirements on Other Protocols and Functional Components

   The IS-IS extensions defined in this documents does do 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 IS-IS and
   might destabilize the operation of the network by causing the PCCs to
   swap between PCEs.

   As discussed in section 5, 5.1, a PCE implementation SHOULD support an
   appropriate dampening algorithm so as to dampen IS-IS flooding in
   order to not impact the IS-IS scalability.

   Also, as discussed in section 4.10.4 of [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 Wong, Adrian Farrel Farrel, Les Ginsberg, Mike
   Shand and Lou Berger for their useful comments and suggestions.

11. References

11.1. Normative references

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

   [ISO] "Intermediate System to Intermediate System Intra-Domain
   Routeing Exchange Protocol for use in Conjunction with the
   Protocol for Providing the Connectionless-mode Network Service
   (ISO 8473)", ISO DP 10589, February 1990.

   [RFC3784] Li, T., Smit, H., "IS-IS extensions for Traffic
   Engineering", RFC 3784, June 2004.

   [IS-IS-CAP] Vasseur, J.P. et al., "IS-IS extensions for advertising
   router information", draft-ietf-isis-caps, 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.

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

   [RFC3567] Li, T. and R. Atkinson, "Intermediate System to
   Intermediate System (IS-IS) Cryptographic Authentication", RFC 3567,
   July 2003.

11.2. Informative references

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

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

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

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

12. Editors' 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

13. Contributors' Adresses:

   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@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 (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.