Network Working Group                                         I. Bryskin
Request for Comments: 5394                                  Adva Optical
Category: Informational                                 D. Papadimitriou
                                                                Alcatel
                                                              L. Berger
                                                        LabN Consulting
                                                                 J. Ash
                                                                   AT&T
                                                          December 2008


              Policy-Enabled Path Computation Framework

Status of This Memo

  This memo provides information for the Internet community.  It does
  not specify an Internet standard of any kind.  Distribution of this
  memo is unlimited.

Copyright Notice

  Copyright (c) 2008 IETF Trust and the persons identified as the
  document authors.  All rights reserved.

  This document is subject to BCP 78 and the IETF Trust's Legal
  Provisions Relating to IETF Documents (http://trustee.ietf.org/
  license-info) in effect on the date of publication of this document.
  Please review these documents carefully, as they describe your rights
  and restrictions with respect to this document.

Abstract

  The Path Computation Element (PCE) architecture introduces the
  concept of policy in the context of path computation.  This document
  provides additional details on policy within the PCE architecture and
  also provides context for the support of PCE Policy.  This document
  introduces the use of the Policy Core Information Model (PCIM) as a
  framework for supporting path computation policy.  This document also
  provides representative scenarios for the support of PCE Policy.












Bryskin, et al.              Informational                      [Page 1]

RFC 5394            Policy-Enabled Path Computation        December 2008


Table of Contents

  1. Introduction ....................................................2
     1.1. Terminology ................................................3
  2. Background ......................................................4
     2.1. Motivation .................................................4
     2.2. Policy Attributes ..........................................6
     2.3. Representative Policy Scenarios ............................7
          2.3.1. Scenario: Policy Configured Paths ...................7
          2.3.2. Scenario: Provider Selection Policy ................10
          2.3.3. Scenario: Policy Based Constraints .................12
          2.3.4. Scenario: Advanced Load Balancing (ALB) Example ....14
  3. Requirements ...................................................16
  4. Path Computation Policy Information Model (PCPIM) ..............18
  5. Policy-Enabled Path Computation Framework Components ...........20
  6. Policy Component Configurations ................................21
     6.1. PCC-PCE Configurations ....................................21
     6.2. Policy Repositories .......................................24
     6.3. Cooperating PCE Configurations ............................25
     6.4. Policy Configuration Management ...........................27
  7. Inter-Component Communication ..................................27
     7.1. Policy Communication ......................................27
     7.2. PCE Discovery Policy Considerations .......................29
  8. Path Computation Sequence of Events ............................29
     8.1. Policy-Enabled PCC, Policy-Enabled PCE ....................29
     8.2. Policy-Ignorant PCC, Policy-Enabled PCE ...................31
  9. Introduction of New Constraints ................................32
  10. Security Considerations .......................................33
  11. Acknowledgments ...............................................33
  12. References ....................................................34
     12.1. Normative References .....................................34
     12.2. Informative References ...................................34

1.  Introduction

  The Path Computation Element (PCE) Architecture is introduced in
  [RFC4655].  This document describes the impact of policy-based
  decision making when incorporated into the PCE architecture and
  provides additional details on, and context for, applying policy
  within the PCE architecture.

  Policy-based Management (PBM), see [RFC3198], is a network management
  approach that enables a network to automatically perform actions in
  response to network events or conditions based on pre-established
  rules, also denoted as policies, from a network administrator.  PBM
  enables network administrators to operate in a high-level manner
  through rule-based strategy (policies can be defined as a set of
  rules and actions); the latter are translated automatically (i.e.,



Bryskin, et al.              Informational                      [Page 2]

RFC 5394            Policy-Enabled Path Computation        December 2008


  dynamically, without human interference) into individual device
  configuration directives, aimed at controlling a network as a whole.
  Two IETF Working Groups have considered policy networking in the
  past: The Resource Allocation Protocol (RAP) working group and the
  Policy Framework working group.

  A framework for policy-based admission control [RFC2753] was defined
  and a protocol for use between Policy Enforcement Points (PEP) and
  Policy Decision Points (PDP) was specified: Common Open Policy
  Service (COPS) [RFC2748].  This document uses the terms PEP and PDP
  to refer to the functions defined in the COPS context.  This document
  makes no assumptions nor does it require that the actual COPS
  protocol be used.  Any suitable policy exchange protocol (for
  example, Simple Object Access Protocol (SOAP) [W3CSOAP]) may be
  substituted.

  The IETF has also produced a general framework for representing,
  managing, sharing, and reusing policies in a vendor-independent,
  interoperable, and scalable manner.  It has also defined an
  extensible information model for representing policies, called the
  Policy Core Information Model (PCIM) [RFC3060], and an extension to
  this model to address the need for QoS management, called the Quality
  of Service (QoS) Policy Information Model (QPIM) [RFC3644].  However,
  additional mechanisms are needed in order to specify policies related
  to the path computation logic as well as its control.

  In Section 2, this document presents policy-related background and
  scenarios to provide a context for this work.  Section 3 provides
  requirements that must be addressed by mechanisms and protocols that
  enable policy-based control over path computation requests and
  decisions.  Section 4 introduces PCIM as a core component in a
  framework for providing policy-enabled path computation.  Section 5
  introduces a set of components that may be used to support policy-
  enabled path computation.  Sections 6, 7, and 8 provide details on
  possible component configurations, communication, and events.
  Section 10 discusses the ability to introduce new constraints with
  minimal impact.  It should be noted that this document, in Section 4,
  only introduces PCIM; specific PCIM definitions to support path
  computation will be discussed in a separate document.

1.1.  Terminology

  The reader is assumed to be familiar with the following terms:

  BEEP:    Blocks Extensible Exchange Protocol, see [RFC3080].
  CIM:     Common Information Model, see [DMTF].
  COPS:    Common Open Policy Service, see [RFC2748].
  CSPF:    Constraint-based Shortest Path First, see [RFC3630].



Bryskin, et al.              Informational                      [Page 3]

RFC 5394            Policy-Enabled Path Computation        December 2008


  LSP:     Label Switched Path, see [RFC3031].
  LSR:     Label Switching Router, see [RFC3031].
  PBM:     Policy-Based Management, see [RFC3198].
  PC:      Path Computation.
  PCC:     Path Computation Client, see [RFC4655].
  PCCIM:   Path Computation Core Information Model.
  PCE:     Path Computation Element, see [RFC4655].
  PCEP:    Path Computation Element Communication Protocol,
           see [PCEP].
  PCIM:    Policy Core Information Model, see [RFC3060].
  PDP:     Policy Decision Point, see [RFC2753].
  PEP:     Policy Enforcement Point, see [RFC2753].
  QPIM:    QoS Policy Information Model, see [RFC3644].
  SLA:     Service Level Agreement.
  SOAP:    Simple Object Access Protocol, see [W3CSOAP].
  TE:      Traffic Engineering, see [RFC3209] and [RFC3473].
  TED:     Traffic Engineering Database, see [RFC3209] and [RFC3473].
  TE LSP:  Traffic Engineering MPLS Label Switched Path, see
           [RFC3209] and [RFC3473].
  WDM:     Wavelength Division Multiplexing

2.  Background

  This section provides some general background on the use of policies
  within the PCE architecture.  It presents the rationale behind the
  use of policies in the TE path computation process, as well as
  representative policies usage scenarios.  This information is
  intended to provide context for the presented PCE policy framework.
  This section does not attempt to present an exhaustive list of
  rationales or scenarios.

2.1.  Motivation

  The PCE architecture as introduced in [RFC4655] includes policy as an
  integral part of the PCE architecture.  This section presents some of
  the rationale for this inclusion.

  Network operators require a certain level of flexibility to shape the
  TE path computation process, so that the process can be aligned with
  their business and operational needs.  Many aspects of the path
  computation may be governed by policies.  For example, a PCC may use
  policies configured by the operator to decide which optimization
  criteria, constraints, diversities and their relaxation strategies to
  request while computing path(s) for a particular service.  Depending
  on SLAs, TE and cost/performance ratio goals, path computation
  requests may be issued differently for different services.  A given
  Service A, for instance, may require two Shared Risk Link Group
  (SRLG)-disjoint paths for building end-to-end recovery scheme, while



Bryskin, et al.              Informational                      [Page 4]

RFC 5394            Policy-Enabled Path Computation        December 2008


  for a Service B link-disjoint paths may be sufficient.  Service A may
  need paths with minimal end-to-end delay, while Service B may be
  looking for shortest (minimal-cost) paths.  Different constraint
  relaxation strategies may be applied while computing paths for
  Service A and for Service B, and so forth.  So, based on distinct
  service requirements, distinct or similar policies may be adopted
  when issuing/handling path computation requests.

  Likewise, a PCE may apply policies to decide which algorithm(s) to
  use while performing path computations requested from a particular
  PCC or for a particular domain, see [RFC4927]; whether to seek the
  cooperation of other PCEs to satisfy a particular request or to
  handle a request on its own (possibly responding with non-explicit
  paths), or how the request should be modified before being sent to
  other member(s) of a group of cooperating PCEs, etc.

  Additional motivation for supporting policies within the PCE
  architecture can be described as follows.  Historically, a path
  computation entity was an intrinsic part of an LSR's control plane
  and always co-located with the LSR's signaling and routing
  subsystems.  This approach allowed for unlimited flexibility in
  providing various path computation enhancements, such as: adding new
  types of constraints, diversities and their relaxation strategies,
  adopting new objective functions and optimization criteria, etc.  All
  that had to be done to support an enhancement was to upgrade the
  control plane software of a particular LSR (and no other LSRs or any
  other network elements).

  With the introduction of the PCE architecture, the introduction of
  new PCE capabilities becomes more complicated: it isn't enough for a
  PCE to upgrade its own software.  In order to take advantage of a
  PCE's new capabilities, new advertising and signaling objects may
  need to be standardized, all PCCs may need to be upgraded with new
  software, and new interoperability problems may need to be resolved,
  etc.

  Within the context of the PCE architecture, it is therefore highly
  desirable to find a way to introduce new path computation
  capabilities without requiring modifying either the
  discovery/communication protocols or the PCC software.  One way to
  achieve this objective is to consider path selection constraints,
  their relaxations, and objective functions, as path computation
  request-specific policies.  Furthermore, such policies may be
  configured and managed by a network operator as any other policies
  and may be interpreted in real time by PCCs and PCEs.






Bryskin, et al.              Informational                      [Page 5]

RFC 5394            Policy-Enabled Path Computation        December 2008


  There are a number of advantages and useful by-products of such an
  approach:

  - New path computation capabilities may be introduced without
    changing PCE-PCC communication and discovery protocols or PCC
    software.  Only the PCE module providing the path computation
    capabilities (referred to in this document as a path computation
    engine) needs to be updated.

  - Existing constraints, objective functions and their relaxations may
    be aggregated and otherwise associated, thus producing new, more
    complex objective functions that do not require a change of code
    even on the PCEs supporting the functions.

  - Different elements such as conditions, actions, variables, etc.,
    may be reused by multiple constraints, diversities, and
    optimizations.

  - PCCs and PCEs need to handle other (that is, not request-specific)
    policies.  Path computation-related policies of all types can be
    placed within the same policy repositories, managed by the same
    policy management tools, and interpreted using the same mechanisms.
    Also, policies need to be supported by PCCs and PCEs independent of
    the peculiarities of a specific PCC-PCE communication protocol, see
    [PCEP].  Thus, introducing a new (request-specific) type of policy
    describing constraints and other elements of a path computation
    request will be a natural and relatively inexpensive addition to
    the policy-enabled path computation architecture.

2.2.  Policy Attributes

  This section provides a summary listing of the policy attributes that
  may be included in the policy exchanges described in the scenarios
  that follow.  This list is provided for guidance and is not intended
  to be exclusive.  Implementation of this framework might include
  additional policy attributes not listed here.

     Identities

     - LSP head-end
     - LSP destination
     - PCC
     - PCE








Bryskin, et al.              Informational                      [Page 6]

RFC 5394            Policy-Enabled Path Computation        December 2008


     LSP identifiers

     - LSP head-end
     - LSP destination
     - Tunnel identifier
     - Extended tunnel identifier
     - LSP ID
     - Tunnel name

     Requested LSP qualities

     - bandwidth
     - traffic parameters
     - LSP attributes
     - explicit path inclusions
     - explicit path exclusions
     - link protection level
     - setup priority
     - holding priority
     - preexisting LSP route

     Requested path computation behavior

     - objective function
     - other LSPs to be considered

     Additional policy information

     - Transparent policy information as received in Resource
       Reservation Protocol (RSVP)-TE

2.3.  Representative Policy Scenarios

  This section provides example scenarios of how policies may be
  applied using the PCE policy framework within the PCE architecture
  context.  Actual networks may deploy one of the scenarios discussed,
  some combination of the presented scenarios, or other scenarios (not
  discussed).  This section should not be viewed as limiting other
  applications of policies within the PCE architecture.

2.3.1.  Scenario: Policy Configured Paths

  A very simple usage scenario for PCE policy would be to use PCE to
  centrally administer configured paths.  Configured paths are composed
  of strict and loose hops in the form of Explicit Route Objects
  (EROs), see [RFC3209], and are used by one or more LSPs.  Typically,
  such paths are configured at the LSP ingress.  In the context of
  policy-enabled path computation, an alternate approach is possible.



Bryskin, et al.              Informational                      [Page 7]

RFC 5394            Policy-Enabled Path Computation        December 2008


  In particular, service-specific policies can be installed that will
  provide configured path(s) for a specific service request.  The
  request may be identified based on service parameters such as
  endpoints, requested QoS, or even a token that identifies the
  initiator of a service request.  The configured path(s) would then be
  used as input to the path computation process, which would return
  explicit routes by expanding of all specified loose hops.

  Example of policy:
   if(service_destination matches 10.132.12.0/24)
      Use path: 10.125.13.1 => 10.125.15.1 => 10.132.12.1.
   else
      Compute path dynamically.

         ----------------------
        |              -----   |
        |             | TED |<-+------------>
        |              -----   |  TED synchronization
        |                |     |  mechanism (e.g., routing protocol)
        |                |     |
        |                v     |
        |  ------      -----   |  Inter-PCE Request/Response
        | |Policy|<-->| PCE |<.+...........>  (when present)
        |  ------      -----   |
         ----------------------
                         ^
                         | Request/
                         | Response
                         v
          Service  -------------  Signaling
          Request |[PCC][Policy]| Protocol
          <------>|    Node     |<------->
     or Signaling  -------------
        Protocol

                    Figure 1: Policy Enabled PCC and PCE

  Path computation policies may be applied at either a PCC or a PCE,
  see Figure 1.  In the PCC case, the configured path would be
  processed at the PCC and then passed to the PCE along with the PCE
  request, probably in the form of (inclusion) constraints.  When
  applied at the PCE, the configured path would be used locally.  Both
  cases require some method to configure and manage policies.  In the
  PCC case, the real benefit would come when there is an automated
  policy distribution mechanism.






Bryskin, et al.              Informational                      [Page 8]

RFC 5394            Policy-Enabled Path Computation        December 2008


      ------------------       -------------------
     |                  |     |                   |
     |        PCE       |     |        PCE        |
     |                  |     |                   |
     |  ------   -----  |     |   -----   ------  |
     | |Policy| | TED | |     |  | TED | |Policy| |
     |  ------   -----  |     |   -----   ------  |
      ------------------       -------------------
              ^                       ^
              | Request/              | Request/
              | Response              | Response
              v                       v
  Service --------  Signaling  ------------  Signaling  ------------
  Request|Head-End| Protocol  |Intermediate| Protocol  |Intermediate|
    ---->|  Node  |<--------->|    Node    |<--------->|    Node    |
          --------             ------------             ------------

                 Figure 2: Multiple PCE Path Computation

   ------------------                              ------------------
  |                  | Inter-PCE Request/Response |                  |
  |       PCE        |<-------------------------->|       PCE        |
  |                  |                            |                  |
  |  ------   -----  |                            |  ------   -----  |
  | |Policy| | TED | |                            | |Policy| | TED | |
  |  ------   -----  |                            |  ------   -----  |
   ------------------                              ------------------
              ^
              | Request/
              | Response
              v
  Service ----------  Signaling   ----------  Signaling   ----------
  Request| Head-End | Protocol   | Adjacent | Protocol   | Adjacent |
    ---->|  Node    |<---------->|   Node   |<---------->|   Node   |
          ----------              ----------              ----------

  Figure 3: Multiple PCE Path Computation with Inter-PCE Communication

  Policy-configured paths may also be used in environments with
  multiple (more than one) cooperating PCEs (see Figures 2 and 3).  For
  example, consider the case when there is limited TE visibility and
  independent PCEs are used to determine path(s) within each area of
  the TE visibility.  In such a case, it may not be possible (or
  desirable) to configure entire explicit path(s) on a single PCE.
  However, it is possible to configure explicit path(s) for each area
  of the TE visibility and each responsible PCE.  One by one, the PCEs
  would then map an incoming signaling request to appropriate
  configured path(s).  Note that to make such a scenario work, it would



Bryskin, et al.              Informational                      [Page 9]

RFC 5394            Policy-Enabled Path Computation        December 2008


  likely be necessary to start and finish the configured paths on TE
  domain boundary nodes.  Clearly, consistent PCE Policy Repositories
  are also critical in this example.

2.3.2.  Scenario: Provider Selection Policy

  A potentially more interesting scenario is applying PC policies in
  multi-provider topologies.  There are numerous interesting policy
  applications in such topologies.  A rudimentary example is simple
  access control, that is, deciding which PCCs are permitted to request
  inter-domain path computation.

  A more complicated example is applying policy to determine which
  domain or network provider will be used to support a particular PCE
  request.  Consider the topology presented in Figure 4.  In this
  example, there are multiple transit domains available to provide a
  path from a source domain to a destination domain.  Furthermore, each
  transit domain may have one or more options for reaching a particular
  domain.  Each domain will need to select which of the multiple
  available paths will be used to satisfy a particular PCE request.

  In today's typical path computation process, TE reachability,
  availability, and metric are the basic criteria for path selection.
  However, policies can provide an important added consideration in the
  decision process.  For example, transit domain A may be more
  expensive and provide lower delay or loss than transit domain B.
  Likewise, a transit domain may wish to treat PCE requests from its
  own customers differently than requests from other providers.  In
  both cases, computation based on traffic engineering databases will
  result in multiple transit domains that provide reachability, and
  policies can be used to govern which PCE requests get better service.




















Bryskin, et al.              Informational                     [Page 10]

RFC 5394            Policy-Enabled Path Computation        December 2008


                             +-------+
                  +----------+Transit+----------+
              +---+---+      | Domain|      +---+---+
              |Transit|      |   C   |      |Transit|
     +--------+ Domain|      +---+---+      | Domain+--------+
     |        |   A   +--+       |       +--+   F   |        |
  +--+---+    +---+---+  |       |       |  +---+---+     +--+---+
  |Source|        |      |   +---+---+   |      |         |Target|
  |Domain|        |      +---+Transit+---+      |         |Domain|
  +--+---+        |      +---+ Domain|---+      |         +--+---+
     |        +---+---+  |   |   D   |   |  +---+---+        |
     |        |Transit|  |   +---+---+   |  |Transit|        |
     +--------+ Domain+--+       |       +--+ Domain+--------+
              |   B   |          |          |   G   |
              +---+---+      +---+---+      +---+---+
                  |          |Transit|          |
                  +----------+ Domain+----------+
                             |   E   |
                             +-------+

      Figure 4: Multi-Domain Network with Multiple Transit Options

  There are multiple options for differentiating which PCE requests use
  a particular transit domain and get a particular (better or worse)
  level of service.  For example, a PCE in the source domain may use
  user- and request-specific policies to determine the level of service
  to provide.  A PCE in the source domain may also use domain-specific
  policies to choose which transit domains are acceptable.  A PCE in a
  transit domain may use request-specific policies to determine if a
  request is from a direct customer or another provider, and then use
  domain-specific policies to identify how the request should be
  processed.

  Example of policy:
   if(path computation request issued by a PCC within Source Domain)
      Route the path through Transit Domain A.
   else
      Route the path through Transit Domain B.













Bryskin, et al.              Informational                     [Page 11]

RFC 5394            Policy-Enabled Path Computation        December 2008


2.3.3.  Scenario: Policy Based Constraints

  Another usage scenario is the use of policy to provide constraints in
  a PCE request.  Consider an LSR with a policy enabled PCC, as shown
  in Figure 1, which receives a service request via signaling,
  including over a Network-Network Interface (NNI) or User Network
  Interface (UNI) reference point, or receives a configuration request
  over a management interface to establish a service.  In either case,
  the path(s) needed to support the service are not explicitly
  specified in the message/request, and hence path computation is
  needed.

  In this case, the PCC may apply user- or service-specific policies to
  decide how the path selection process should be constrained, that is,
  which constraints, diversities, optimization criterion, and
  constraint relaxation strategies should be applied in order for the
  service LSP(s) to have a likelihood to be successfully established
  and provide necessary QoS and resilience against network failures.
  When deciding on the set of constraints, the PCC uses as an input all
  information it knows about the user and service, such as the contents
  of the received message, port ID over which message was received,
  associated VPN ID, signaling/reference point type, request time, etc.
  Once the constraints and other parameters of the required path
  computation are determined, the PCC generates a path computation
  request that includes the request-specific policies that describe the
  determined set of constraints, optimizations, and other parameters
  that indicate how the request is to be considered in the path
  computation process.

  Example of policy:
   if(LSP belongs to a WDM layer network)
      Compute the path with wavelength continuity constraint with the
      maximum Optical Signal Noise Ratio (OSNR) at the path end
      optimization.
   else if(LSP belongs to a connection oriented Ethernet layer network)
      Compute the path with minimum end-to-end delay.
   else
      Compute the shortest path.

  The PCC may also apply server-specific policies in order to select
  which PCE to use from the set of known (i.e., discovered or
  configured) PCEs.  The PCC may also use server-specific policies to
  form the request to match the PCE's capabilities so that the request
  will not be rejected and has a higher likelihood of being satisfied
  in an efficient way.  An example of a request modification as the
  result of a server-specific policy is removing a constraint not
  supported by the PCE.  Once the policy processing is completed at the




Bryskin, et al.              Informational                     [Page 12]

RFC 5394            Policy-Enabled Path Computation        December 2008


  PCC, and the path computation request resulting from the original
  service request is updated by the policy processing, the request is
  sent to the PCE.

  Example of policy:
   if(LSP belongs to a WDM layer network)
      Identify a PCE supporting wavelength continuity and optical
      impairment constraints;
      Send a request to such PCE, requesting path computation with the
      following constraints:
         a) wavelength continuity;
         b) maximum Polarization Mode Dispersion (PMD) at the path end.
      if(the path computation fails) remove the maximum PMD constraint
         and try the computation again.

  The PCE that receives the request validates and otherwise processes
  the request, applying the policies found in the request as well as
  any policies that are available at the PCE, e.g., client- and domain-
  specific policies.  As a result of the policy processing, the PCE may
  decide to reject the request.

  Example of policy:
   Authenticate the PCC requesting the path computation using the
   PCC ID found in the path computation request;
   Reject the request if the authentication fails.

  The PCE also may decide to respond with one or several pre-computed
  paths if user- or client-specific policies instruct the PCE to do so.
  If the PCE decides to satisfy the request by performing a path
  computation, it determines if it needs the cooperation of other PCEs
  and defines parameters for path computations to be performed locally
  and remotely.  After that, the PCE instructs a co-located path
  computation engine to perform the local path computation(s) and, if
  necessary, sends path computation requests to one or more other PCEs.
  It then waits for the responses from the local path computation
  engine and, when used, the remote PCE.  It then combines the
  resulting paths and sends the result back to the requesting PCC.  The
  response may indicate policies describing the resulting paths, their
  characteristics (summary cost, expected end-to-end delay, etc.), as
  well as additional information related to the request, e.g., which
  constraints were honored, which were dismissed, and which were
  relaxed and in what way.









Bryskin, et al.              Informational                     [Page 13]

RFC 5394            Policy-Enabled Path Computation        December 2008


  Example of policy:
   if(the path destination belongs to domain A)
      Instruct local path computation engine to perform the path
      computation;
   else
      Identify the PCE supporting the destination domain;
      Send path computation request to such PCE;
      Wait for and process the response.
   Send the path computation response to the requesting PCC.

  The PCC processes the response and instructs the LSR to encode the
  received path(s) into the outgoing signaling message(s).

2.3.4.  Scenario: Advanced Load Balancing (ALB) Example

  Figure 5 illustrates a problem that stems from the coupling between
  BGP and IGP in the BGP decision process.  If a significant portion of
  the traffic destined for the data center (or customer network) enters
  a PCE-enabled network from AS 1 and all IGP links' weights are the
  same, then both PE3 and PE4 will prefer to reach the data center
  using the routes advertised by PE2.  PE5 will use the router-IDs of
  PE1 and PE2 to break the tie and might therefore also select to use
  the path through PE2 (if the router ID of PE2 is smaller than that of
  PE1).  Either way, the net result is that the link between PE2 and CE
  will carry most of the traffic while the link between PE1 and the
  Customer Edge (CE) will be mostly idle.

























Bryskin, et al.              Informational                     [Page 14]

RFC 5394            Policy-Enabled Path Computation        December 2008


                          ..............................
                          .          AS 1              .
                          .                            .
                          .   +---+   +---+   +----+   .
                          ....|PE8|...|PE9|...|PE10|....
                              +---+   +---+   +----+
                                |       |       |
                              +---+   +---+   +---+
                        ......|PE3|...|PE4|...|PE5|......
                        .     +---+   +---+   +---+     .
   ..............     +---+     \      /    ___/      +---+
   .            .    _|PE2|_____+--+__/    /         _|PE6|
   .           +--+ / +---+     |P1|_____+--+_______/ +---+
   . Customer  |CE|=    .       +--+     |P2|           .
   . Network   +--+ \_+---+        \     +--+           .
   .            .     |PE1|________+--+___/|     x===x  .  PCE used
   ..............     +---+        |P3|    |     |PCE|  .  by all
                        .          +--+    |     x===x  .  AS0 nodes
                        .    AS 0         +---+         .
                        ..................|PE7|..........
                                          +---+

                    Figure 5: Advanced Load Balancing

  This is a common problem for providers and customers alike.  Analysis
  of Netflow records, see [IRSCP], for a large ISP network on a typical
  day has shown that for 71.8% of multi-homed customers, there is a
  complete imbalance, where the most loaded link carries all the
  traffic and the least loaded link carries none.

  PCE policies can address this problem by basing the routing decision
  at the ingress routers on the offered load towards the multi-homed
  customer.  For example, in Figure 5, PCE policies could be configured
  such that traffic load is monitored (e.g., based on Netflow data) at
  ingress routers PE3 to PE7 towards the data center prefixes served by
  egress routers PE1 and PE2.  Using this offered load information, the
  path computations returned by PCE, based on the enabled PCE policies,
  can direct traffic to the appropriate egress router, on a per-ingress
  router basis.  For example, the PCE path computation might direct
  traffic from both PE4 and PE5 to egress PE1, thus overriding the
  default IGP based selection.  Alternatively, traffic from each
  ingress router to each egress link could be split 50-50.

  This scenario is a good example of how a policy-governed PCE can
  account for some information that was not or cannot be advertised as
  TE link/node attributes, and, therefore, cannot be subject for
  explicit path computation constraints.  More generally, such
  information can be pretty much anything.  For example, traffic demand



Bryskin, et al.              Informational                     [Page 15]

RFC 5394            Policy-Enabled Path Computation        December 2008


  forecasts, flow monitoring feedback, any administrative policies,
  etc.  Further examples are described in [IRSCP] of how PCE policies
  might address certain network routing problems, such as selective
  distributed denial-of-service (DDoS) blackholing, planned
  maintenance, and VPN gateway selection.

  Example of policy:
   for(all traffic flows destined to Customer Network)
      if(flow ingresses on PE3, PE4, or PE5)
         Route the flow over PE1.
      else
         Route the flow over PE2.

3.  Requirements

  The following requirements must be addressed by mechanisms and
  protocols that enable policy-based control over path computation
  requests and decisions:

  - (G)MPLS path computation-specific
    The mechanisms must meet the policy-based control requirements
    specific to the problem of path computation using RSVP-TE as the
    signaling protocol on MPLS and GMPLS LSRs.

  - Support for non-(G)MPLS PCCs
    The mechanisms must be sufficiently generic to support non-(G)MPLS
    (LSR) clients such as a Network Management System (NMS), or network
    planner, etc.

  - Support for many policies
    The mechanisms must include support for many policies and policy
    configurations.  In general, the determination and configuration of
    viable policies are the responsibility of the service provider.

  - Provision for monitoring and accounting information
    The mechanisms must include support for monitoring policy state and
    provide access information.  In particular, mechanisms must provide
    usage and access information that may be used for accounting
    purposes.

  - Fault tolerance and recovery
    The mechanisms must include provisions for fault tolerance and
    recovery from failure cases such as failure of PCC/PCE PDPs,
    disruption in communication that separate a PCC/PCE PDP from its
    associated PCC/PCE PEPs.






Bryskin, et al.              Informational                     [Page 16]

RFC 5394            Policy-Enabled Path Computation        December 2008


  - Support for policy-ignorant nodes
    The mechanisms should not be mandatory for every node in a network.
    Policy-based path computation control may be enforced at a subset
    of nodes, for example, on boundary nodes within an administrative
    domain.  These policy-capable nodes will function as trusted nodes
    from the point of view of the policy-ignorant nodes in that
    administrative domain.  Alternatively, policy may be applied solely
    on PCEs with all PCCs being policy-ignorant nodes.

  - Scalability
    One of the important requirements for the mechanisms is
    scalability.  The mechanisms must scale at least to the same extent
    that RSVP-TE signaling scales in terms of accommodating multiple
    LSPs and network nodes in the path of an LSP.  There are several
    sensitive areas in terms of scalability of policy-based path
    computation control.  First, not every policy-aware node in an
    infrastructure should be expected to contact a remote PDP.  This
    would cause potentially long delays in verifying requests.
    Additionally, the policy control architecture must scale at least
    as well as RSVP-TE protocol based on factors such as the size of
    RSVP-TE messages, the time required for the network to service an
    RSVP-TE request, local processing time required per node, and local
    memory consumed per node.  These scaling considerations are of
    particular importance during re-routing of a set of LSPs.

  - Security and denial-of-service considerations
    The policy control architecture, protocols, and mechanisms must be
    secure as far as the following aspects are concerned:

     o First, the mechanisms proposed must minimize theft and denial-
       of-service threats.

     o Second, it must be ensured that the entities (such as PEPs and
       PDPs) involved in policy control can verify each other's
       identity and establish necessary trust before communicating.

  - Inter-AS and inter-area requirements
    There are several inter-AS policy-related requirements discussed in
    [RFC4216] and [RFC5376], and inter-area policy-related requirements
    discussed in [RFC4927].  These requirements must be addressed by
    policy-enabled PCE mechanisms and protocols.

  It should be noted that this document only outlines the communication
  elements and mechanisms needed to allow a wide variety of possible
  policies to be applied for path computation control.  It does not
  include any discussion of any specific policy behavior, nor does it
  define or require use of specific policies.




Bryskin, et al.              Informational                     [Page 17]

RFC 5394            Policy-Enabled Path Computation        December 2008


4.  Path Computation Policy Information Model (PCPIM)

  The Policy Core Information Model (PCIM) introduced in [RFC3060] and
  expanded in [RFC3460] presents the object-oriented information model
  for representing general policy information.

  This model defines two hierarchies of object classes:

  - Structural classes representing policy information and control of
    policies.

  - Association classes that indicate how instances of the structural
    classes are related to each other.

  These classes can be mapped to various concrete implementations, for
  example, to a directory that uses Lightweight Directory Access
  Protocol version 3 (LDAPv3) as its access protocol.

  Figure 6 shows an abstract from the class inheritance hierarchy for
  PCIM.































Bryskin, et al.              Informational                     [Page 18]

RFC 5394            Policy-Enabled Path Computation        December 2008


  ManagedElement (abstract)
     |
     +--Policy (abstract)
     |  |
     |  +---PolicySet (abstract)
     |  |   |
     |  |   +---PolicyGroup
     |  |   |
     |  |   +---PolicyRule
     |  |
     |  +---PolicyCondition (abstract)
     |  |   |
     |  |   +---PolicyTimePeriodCondition
     |  |   |
     |  |   +---VendorPolicyCondition
     |  |   |
     |  |   +---SimplePolicyCondition
     |  |   |
     |  |   +---CompoundPolicyCondition
     |  |       |
     |  |       +---CompoundFilterCondition
     |  |
     |  +---PolicyAction (abstract)
     |  |   |
     |  |   +---VendorPolicyAction
     |  |   |
     |  |   +---SimplePolicyAction
     |  |   |
     |  |   +---CompoundPolicyAction
     |  |
     |  +---PolicyVariable (abstract)
     |  |   |
     |  |   +---PolicyExplicitVariable
     |  |   |
     |  |   +---PolicyImplicitVariable
     |  |       |
     |  |       +---(subtree of more specific classes)
     |  |
     |  +---PolicyValue (abstract)
     |      |
     |      +---(subtree of more specific classes)

                    Figure 6: PCIM Class Inheritance

  The policy classes and associations defined in PCIM are sufficiently
  generic to allow them to represent policies related to anything.





Bryskin, et al.              Informational                     [Page 19]

RFC 5394            Policy-Enabled Path Computation        December 2008


  Policy models for application-specific areas such as the Path
  Computation Service may extend the PCIM in several ways.  The
  preferred way is to use the PolicyGroup, PolicyRule, and
  PolicyTimePeriodCondition classes directly as a foundation for
  representing and communicating policy information.  Then, specific
  subclasses derived from PolicyCondition and PolicyAction can capture
  application-specific definitions of conditions and actions of
  policies.

  The Policy Quality of Service Information Model [RFC3644] further
  extends the PCIM to represent QoS policy information for large-scale
  policy domains.  New classes introduced in this document describing
  QoS- and RSVP-related variables, conditions, and actions can be used
  as a foundation for the PCPIM.

  Detailed description of the PCPIM will be provided in a separate
  document.

5.  Policy-Enabled Path Computation Framework Components

  The following components are defined as part of the framework to
  support policy-enabled path computation:

  - PCE Policy Repository
    A database from which PCE policies are available in the form of
    instances of PCPIM classes.  PCE Policies are configured and
    managed by PCE Policy Management Tools;

  - PCE Policy Decision Point (PCE-PDP)
    A logical entity capable of retrieving relevant path computation
    policies from one or more Policy Repositories and delivering the
    information to associated PCE-PEP(s);

  - PCE Policy Enforcement Point (PCE-PEP)
    A logical entity capable of issuing device-specific Path
    Computation Engine configuration requests for the purpose of
    enforcing the policies;

  - PCC Policy Decision Point (PCC-PDP)
    A logical entity capable of retrieving relevant path computation
    policies from one or more Policy Repositories and delivering the
    information to associated PCC-PEP(s);

  - PCC Policy Enforcement Point (PCC-PEP)
    A logical entity capable of issuing device-specific Path
    Computation Service User configuration requests for the purpose of
    enforcing the policies.




Bryskin, et al.              Informational                     [Page 20]

RFC 5394            Policy-Enabled Path Computation        December 2008


  From the policy perspective a PCC is logically decomposed into two
  parts: PCC-PDP and PCC-PEP.  When present, a PCC-PEP is co-located
  with a Path Computation Service User entity that requires remote path
  computation (for example, the GMPLS control plane of an LSR).  The
  PCC-PEP and PCC-PDP may be physically co-located (as per [RFC2748])
  or separated.  In the latter case, they talk to each other via such
  protocols as SOAP [W3CSOAP] or BEEP [RFC3080].

  Likewise, a PCE is logically decomposed into two parts: PCE-PEP and
  PCE-PDP.  When present, PCE-PEP is co-located with a Path Computation
  Engine entity that actually provides the Path Computation Service
  (that is, runs path computation algorithms).  PCE-PEP and PCE-PDP may
  be physically co-located or separated.  In the later case, they
  communicate using such protocols as SOAP and/or BEEP.

  PCC-PDP/PCE-PDP may be co-located with, or separated from, an
  associated PCE Policy Repository.  In the latter case, the PDPs use
  some access protocol (for example, LDAPv3 or SNMP).  The task of PDPs
  is to retrieve policies from the repository (or repositories) and
  convey them to respective PEPs either in an unsolicited way or upon
  the PEP's requests.

  A PCC-PEP may receive policy information not only from PCC-PDP(s) but
  also from PCE-PEP(s) via PCC-PCE communication and/or PCE discovery
  protocols.  Likewise, a PCE-PEP may receive policy information not
  only from PCE-PDP(s) but also from PCC-PEP(s), via the PCC-PCE
  communication protocol [PCEP].

  Any given policy can be interpreted (that is, translated into a
  sequence of concrete device specific configuration requests) either
  on a PDP or on the associated PEP or partly on the PDP and partly on
  the PEP.

  Generally speaking, the task of the PCC-PEP is to select the PCE and
  build path computation requests applying service-specific policies
  provided by the PCC-PDP.  The task of the PCE-PEP is to control path
  computations by applying request-specific policies found in the
  requests as well as client-specific and domain-specific policies
  supplied by the PCE-PDP.

6.  Policy Component Configurations

6.1.  PCC-PCE Configurations

  The PCE policy architecture supports policy being applied at a PCC
  and at a PCE.  While the architecture supports policy being applied
  at both, there is no requirement for policy to always be applied at
  both, or even at either.  The use of policy in a network, on PCCs,



Bryskin, et al.              Informational                     [Page 21]

RFC 5394            Policy-Enabled Path Computation        December 2008


  and on PCEs, is a specific network design choice.  Some networks may
  choose to apply policy only at PCCs (Figure 7), some at PCEs (Figure
  8), and others at both PCCs and PCEs (Figure 9).  Regardless of where
  policy is applied, it must be applied in a consistent fashion in
  order to achieve the intended results.

                        .........................
                        .                       .
                        . PCE Policy Management .
                        .                       .
                        .........................
                                    .
                                    .
   ---------  Policy     -----------------------
  | PCC-PDP |<--------- | PCE Policy Repository |
   ---------             -----------------------
       ^
       | e.g., SOAP
       v
   ---------                     PCEP                      ---------
  | PCC-PEP |<------------------------------------------->|   PCE   |
   ---------         PCC-PCE Communication Protocol        ---------

                 Figure 7: Policies Applied on PCC Only

  Along with supporting flexibility in where policy may be applied, the
  PCE architecture is also flexible in terms of where specific types of
  policies may be applied.  Also, the PCE architecture allows for the
  application of only a subset of policy types.  [RFC4655] defines
  several PC policy types.  Each of these may be applied at either a
  PCC or a PCE or both.  Clearly, when policy is only applied at PCCs
  or at PCEs, all PCE policy types used in the network must be applied
  at those locations.


















Bryskin, et al.              Informational                     [Page 22]

RFC 5394            Policy-Enabled Path Computation        December 2008


                        .........................
                        .                       .
                        . PCE Policy Management .
                        .                       .
                        .........................
                                    .
                                    .
                         -----------------------  Policy    ---------
                        | PCE Policy Repository | -------->| PCE-PDP |
                         -----------------------            ---------
                                                               ^
                                                    e.g., SOAP |
                                                               v
   ---------                     PCEP                      ---------
  |   PCC   |<------------------------------------------->| PCE-PEP |
   ---------         PCC-PCE Communication Protocol        ---------

                   Figure 8: Policies Applied on Only

  In the case where policy is only applied at a PCE, it is expected
  that the PCC will pass to the PCE all information about the service
  that it can gather in the path computation request (most likely in
  the form of PCPIM policy variables).  The PCE is expected to
  understand this information and apply appropriate policies while
  defining the actual parameters of the path computation to be
  performed.  Note that in this scenario, the PCC cannot apply server-
  specific or any other policies, and PCE selection is static.

  When applying policy at both the PCC and PCE, it is necessary to
  select which types of policies are applied at each.  In such
  configurations, it is likely that the application of policy types
  will be distributed across the PCC and PCE rather than applying all
  of them at both.  For example, user-specific and server-specific
  policies may be applied at a PCC, request- and client-specific
  policies may be applied at a PCE, while domain-specific policies may
  be applied at both the PCC and PCE.

  In the case when policy is only applied at a PCC, the PCC must apply
  all the types of required policies, for example user-, service-,
  server-, and domain-specific policies.  The PCC uses the policies to
  construct a path computation request that appropriately represents
  the applied policies.  The request will necessarily be limited to the
  set of "basic" (that is, non-policy capable) constraints explicitly
  defined by the PCC-PCE communication protocol.







Bryskin, et al.              Informational                     [Page 23]

RFC 5394            Policy-Enabled Path Computation        December 2008


6.2.  Policy Repositories

  Within the policy-enabled path computation framework policy
  repositories may be used in a single or multiple PCE policy
  repository configuration:

  o) Single PCE Policy Repository

  In this configuration, there is a single PCE Policy Repository shared
  between PCCs and PCEs.

                        .........................
                        .                       .
                        . PCE Policy Management .
                        .                       .
                        .........................
                                    .
                                    .
   ---------  Policy a   -----------------------  Policy b  ---------
  | PCC-PDP |<--------- | PCE Policy Repository | -------->| PCE-PDP |
   ---------             -----------------------            ---------
       ^                                                       ^
       | e.g., SOAP                                 e.g., SOAP |
       v                                                       v
   ---------                     PCEP                      ---------
  | PCC-PEP |<------------------------------------------->| PCE-PEP |
   ---------         PCC-PCE Communication Protocol        ---------

               Figure 9: Single PCC/PCE Policy Repository

  o) Multiple PCE Policy Repositories

  The repositories in this case may be fully or partially synchronized
  by some discovery/synchronization management protocol or may be
  completely independent.  Note that the situation when PCE Policy
  Repository A exactly matches PC Policy Repository B, results in the
  single PCE Policy Repository configuration case.














Bryskin, et al.              Informational                     [Page 24]

RFC 5394            Policy-Enabled Path Computation        December 2008


            --------------                   --------------
           |  PCE Policy  |                 |  PCE Policy  |
        ---| Repository A |                 | Repository B |---
       |    --------------                   --------------    |
       |                                                       |
       | Policy a                                     Policy b |
       |                                                       |
       v                                                       v
   ---------                                               ---------
  | PCC-PDP |                                             | PCE-PDP |
   ---------                                               ---------
       ^                                                       ^
       | e.g., SOAP                                 e.g., SOAP |
       v                                                       v
   ---------                     PCEP                      ---------
  | PCC-PEP |<------------------------------------------->| PCE-PEP |
   ---------         PCC-PCE Communication Protocol        ---------

             Figure 10: Multiple PCE/PCC Policy Repositories

6.3.  Cooperating PCE Configurations

  The previous section shows the relationship between PCCs and PCEs.  A
  parallel relationship exists between cooperating PCEs, and, in fact,
  this relationship can be viewed as the same as the relationship
  between PCCs and PCEs.  The one notable difference is that there will
  be cases where having a shared PCE Policy Repository will not be
  desirable, for example, when the PCEs are managed by different
  entities.  Note that in this case, it still remains necessary for the
  policies to be consistent across the domains in order to identify
  usable paths.  The other notable difference is that a PCE, while
  processing a path computation request, may need to apply requester-
  specific (that is, client-specific) policies in order to modify the
  request before sending it to other cooperating PCE(s).  This
  relationship is particularly important as the PCE architecture allows
  for configuration where all PCCs are not policy-enabled.

  The following are example configurations.  These examples do not
  represent an exhaustive list and other configurations are expected.

  o) Single Policy Repository

  In this configuration, there is a single PCE Policy Repository shared
  between PCEs.  This configuration is likely to be useful within a
  single administrative domain where multiple PCEs are provided for
  redundancy or load distribution purposes.





Bryskin, et al.              Informational                     [Page 25]

RFC 5394            Policy-Enabled Path Computation        December 2008


                        .........................
                        .                       .
                        . PCE Policy Management .
                        .                       .
                        .........................
                                    .
                                    .
   ---------  Policy a   -----------------------  Policy b  ---------
  | PCE-PDP |<--------- | PCE Policy Repository | -------->| PCE-PDP |
   ---------             -----------------------            ---------
       ^                                                       ^
       | e.g., SOAP                                 e.g., SOAP |
       v                                                       v
   ---------                                               ---------
  | PCE-PEP |<------------------------------------------->| PCE-PEP |
   ---------         PCE-PCE Communication Protocol        ---------

                 Figure 11: Single PCC Policy Repository

  o) Multiple Policy Repositories

  The repositories in this case may be fully or partially synchronized
  by some discovery/synchronization management protocol(s) or may be
  completely independent.  In the multi-domain case, it is expected
  that the repositories will be distinct, providing, however,
  consistent policies.

            --------------                   --------------
           |  PCE Policy  |                 |  PCE Policy  |
        ---| Repository A |                 | Repository B |---
       |    --------------                   --------------    |
       |                                                       |
       | Policy a                                     Policy b |
       |                                                       |
       v                                                       v
   ---------                                               ---------
  | PCE-PDP |                                             | PCE-PDP |
   ---------                                               ---------
       ^                                                       ^
       | e.g., SOAP                                 e.g., SOAP |
       v                                                       v
   ---------                     PCEP                      ---------
  | PCE-PEP |<------------------------------------------->| PCE-PEP |
   ---------         PCC-PCE Communication Protocol        ---------

               Figure 12: Multiple PCC Policy Repositories





Bryskin, et al.              Informational                     [Page 26]

RFC 5394            Policy-Enabled Path Computation        December 2008


6.4.  Policy Configuration Management

  The management of path computation policy information used by PCCs
  and PCEs is largely out of scope of the described framework.  The
  framework assumes that such information is installed, removed, and
  otherwise managed using typical policy management techniques.  Policy
  Repositories may be populated and managed via static configuration,
  standard and proprietary policy management tools, or even dynamically
  via policy management/discovery protocols and applications.

7.  Inter-Component Communication

7.1.  Policy Communication

  Flexibility in the application of policy types is imperative from the
  architecture perspective.  However, this commodity implies added
  complexity on the part of the PCE-related communication protocols.

  One added complexity is that PCE communication protocols must carry
  certain information to support various policy types that may be
  applied.  For example, in the case where policy is only applied at a
  PCE, a PCC-PCE request must carry sufficient information for the PCE
  to apply service- or user-specific policies.  This does imply that a
  PCC must have sufficient understanding of what policies can be
  applied at the PCE.  Such information may be obtained via local
  configuration, static coding, or even via a PCE discovery mechanism.
  The PCC must also have sufficient understanding to properly encode
  the required information for each policy type.

  Another added complexity is that PCE communication protocols must
  also be able to carry information that may result from a policy
  decision.  For example, user- or service-specific policy applied at a
  PCC may result in policy-related information that must be carried
  along with the request for use by a PCE.  This complexity is
  particularly important as it may be used to introduce new path
  computation parameters (e.g., constraints, objection functions, etc.)
  without modification of the core PCC and PCE.  This communication
  will likely simply require the PCE communication protocols to support
  opaque policy-related information elements.

  A final added complexity is that PCE communication protocols must
  also be able to support updated or unsolicited responses from a PCE.
  For example, changes in PCE policy may force a change to a previously
  provided path.  Such updated or unsolicited responses may contain
  information that the PCC must act on, and may contain policy
  information that must be provided to a PCC.





Bryskin, et al.              Informational                     [Page 27]

RFC 5394            Policy-Enabled Path Computation        December 2008


  PCC-PEP and PCE-PEP or a pair of PCE-PEPs communicate via a request-
  response type PCC-PCE Communication Protocol, i.e., [PCEP].  This
  document makes no assumptions as to what exact protocol is used to
  support this communication.  This document does assume that the
  semantics of a path computation request are sufficiently abstract and
  general, and support both PCE-PCC and PCE-PCE communication.

  From a policy perspective, a path computation request should include
  at a minimum:

  o One or more source addresses;
  o One or more destination addresses;
  o Computation type (P2P (point to point), P2MP (point to multipoint),
    MP2P (multipoint to point), etc.);
  o Number of required paths;
  o Zero or more policy descriptors in the following format:
    <policy name>,
    <policy variable1 name>, <param11>, <param12>,...,<param1N>
    <policy variable2 name>, <param21>, <param12>,...,<param2N>
    ...
    <policy variableM name>, <paramM1>, <paramM2>,...,<paramMN>

  A successful path computation response, at minimum, should include
  the list of computed paths and may include policies (in the form of
  policy descriptors as in path computation request, see above) for use
  in evaluating and otherwise applying the computed paths.

  PCC-PCE Communication Protocol provides transport for policy
  information and should not understand nor make any assumptions about
  the semantics of policies specified in path computation requests and
  responses.

  Note: This document explicitly allows for (but does not require) the
  PCC to decide that all necessary constraints, objective functions,
  etc.  pertinent to the computation of paths for the service in
  question are to be determined by the PCE performing the computation.
  In this case, the PCC will use a set of policies (more precisely,
  PCPIM policy variables) describing the service-specific information.
  These policies may be placed within the path computation request and
  delivered to the PCE via a PCC-PCE communication protocol such as
  [PCEP].  The PCE (more precisely, PCE-PEP) is expected to understand
  this information and use it to determine the constraints and
  optimization functions applying local policies (that is, policies
  locally configured or provided by the associated PCE-PDP(s)).







Bryskin, et al.              Informational                     [Page 28]

RFC 5394            Policy-Enabled Path Computation        December 2008


7.2.  PCE Discovery Policy Considerations

  Dynamic PCE discovery allows for PCCs and PCEs to automatically
  discover a set of PCEs (including information required for the PCE
  selection).  It also allows for PCCs and PCEs to dynamically detect
  new PCEs or any modification of PCEs status.  Policy can be applied
  in two ways in this context:

  1. Restricting the scope of information distribution for the
     mandatory set of information (in particular the PCE presence and
     location).

  2. Restricting the type and nature of the optional information
     distributed by the discovery protocol.  The latter is also subject
     to policy since the PCE architecture allows for distributing this
     information using either PCE discovery protocol(s) or PCC-PCE
     communication protocol(s).  One important policy decision in this
     context is the nature of the information to be distributed,
     especially, when this information is not strictly speaking
     "discovery" information, rather, the PCE state changes.  Client-
     specific and domain-specific policies may be applied when deciding
     whether this information should be distributed and to which
     clients of the path computation service (that is, which PCCs
     and/or PCEs).

  Another place where policy applies is at the administrative
  boundaries.  In multi-domain networks, multiple PCEs will communicate
  with each other and across administrative boundaries.  In such cases,
  domain-specific policies would be applied to 1) filter the
  information exchanged between peering PCEs during the discovery
  process (to the bare minimum in most cases if at all allowed by the
  security policy) and 2) limit the content of information being passed
  in path computation request and responses.

8.  Path Computation Sequence of Events

  This section presents a non-exhaustive list of representative
  scenarios.

8.1.  Policy-Enabled PCC, Policy-Enabled PCE

  When a GMPLS LSR receives a Setup (RSVP Path) message from an
  upstream LSR, the LSR may decide to use a remote Path Computation
  Entity.  The following sequence of events occurs in this case:

  - A PCC-PEP co-located with the LSR applies the service-specific
    policies to select a PCE for the service path computation as well
    as to build the path computation request (that is, to select a list



Bryskin, et al.              Informational                     [Page 29]

RFC 5394            Policy-Enabled Path Computation        December 2008


    of policies, their variables, conditions and actions expressing
    constraints, diversities, objective functions and relaxation
    strategies appropriate for the service path computation).  The
    policies may be:

    a) Statically configured on the PCC-PEP;

    b) Communicated to the PCC-PEP by a remote or local PCC-PDP via
       protocol such as SOAP either proactively (most of the cases) or
       upon an explicit request by the PCC-PEP in cases when some
       specifics of the new service have not been covered yet by the
       policies so far known to the PCC-PEP).

    The input for the decision process on the PCC-PEP is the
    information found in the signaling message as well as any other
    service-specific information such as port ID over which the message
    was received, associated VPN ID, the reference point type (UNI,
    E-NNI, etc.) and so forth.  After the path computation request is
    built, it is sent directly to the PCE-PEP using the PCC-PCE
    Communication Protocol, e.g., [PCEP].

  - PCE-PEP validates and otherwise processes the request applying the
    policies found in the request- as well as client- and domain-
    specific policies.  The latter, again, may be either statically
    configured on the PCE-PEP or provided by the associated local or
    remote PCE-PDP via a protocol such as SOAP.  The outcome of the
    decision process is the following information:

    a) Whether the request should be satisfied, rejected, or dismissed.

    b) The sets of sources and destinations for which paths should be
       locally computed.

    c) The set of constraints, diversities, optimization functions, and
       relaxations to be considered in each of locally performed path
       computation.

    d) The address of the next-in-chain PCE.

    e) The path computation request to be sent to the next-in-chain
       PCE.

    The PCE-PEP instructs a co-located path computation engine to
    perform the local path computation(s) and, if necessary, sends the
    path computation request to the next-in-chain PCE using a PCC-PCE
    Communication Protocol.  Then, it waits for the responses from the
    local path computation engine and the remote PCE, combines the
    resulting paths, and sends them back to the PCC-PEP using the PCC-



Bryskin, et al.              Informational                     [Page 30]

RFC 5394            Policy-Enabled Path Computation        December 2008


    PCE Communication Protocol.  The response contains the resulting
    paths as well as policies describing some additional information
    (for example, which of constraints were honored, which were
    dismissed, and which were relaxed and in what way).

  - PCC-PEP instructs the signaling subsystem of the GMPLS LSR to
    encode the received path(s) into the outgoing Setup message(s).

8.2.  Policy-Ignorant PCC, Policy-Enabled PCE

  This case parallels the previous example, but the user- and service-
  specific policies should be applied at the PCE as the PCC is policy
  ignorant.  Again, when a GMPLS LSR has received a Setup (RSVP Path)
  message from an upstream LSR, the LSR may decide to use a non-co-
  located Path Computation Entity.  The following sequence of events
  occurs in this case:

  - The PCC constructs a PCE request using information found in the
    signaling/provisioning message as well as any other service-
    specific information such as port ID over which the message was
    received, associated VPN ID, the reference point type (UNI, E-NNI,
    etc.) and so forth.  This information is encoded in the request in
    the form of policy variables.  After the request is built, it is
    sent directly to the PCE-PEP using a PCC-PCE Communication
    Protocol.

  - PCE-PEP validates and otherwise processes the request interpreting
    the policy variables found in the request and applying user-,
    service-, client-, and domain-specific policies to build the actual
    path computation request.  The policies, again, may be either
    statically configured on the PCE-PEP or provided by the associated
    local or remote PCE-PDP via a protocol such as SOAP.  The outcome
    of the decision process is the following information:

    a) Whether the request should be satisfied, rejected, or dismissed.

    b) The sets of sources and destinations for which paths should be
       locally computed.

    c) The set of constraints, diversities, optimization functions, and
       relaxations to be considered in each of locally performed path
       computation.

    d) The address of the next-in-chain PCE.

    e) The path computation request to be sent to the next-in-chain
       PCE.




Bryskin, et al.              Informational                     [Page 31]

RFC 5394            Policy-Enabled Path Computation        December 2008


    The PCE-PEP instructs a co-located path computation engine to
    perform the local path computation(s) and, if necessary, sends the
    path computation request to the next-in-chain PCE using the PCC-PCE
    Communication Protocol.  Then, it waits for the responses from the
    local path computation engine and the remote PCE, combines the
    resulting paths, and sends them back to the PCC-PEP using the PCC-
    PCE Communication Protocol.  The response contains the resulting
    paths as well as policies describing some additional information
    (for example, which of constraints were honored, which were
    dismissed, and which were relaxed and in what way)

  - PCC-PEP instructs the signaling sub-system of the GMPLS LSR to
    encode the received path(s) into the outgoing Setup message(s).

9.  Introduction of New Constraints

  An important aspect of the policy-enabled path computation framework
  discussed above is the ability to introduce new constraints with
  minimal impact.  In particular, only those components and mechanisms
  that will use a new constraint need to be updated in order to support
  the new constraint.  Importantly, those components and mechanisms
  that will not use the new constraint must not require any change in
  order for the new constraint to be utilized.  For example, the PCE
  communication protocols must not require any changes to support new
  constraints.  Likewise, PCC and PCEs that will not process new
  constraints must not require any modification.

  Consider the case where a PCE has been upgraded with software
  supporting optical physical impairment constraint, such as
  Polarization Mode Dispersion (PMD), that previously was not supported
  in the domain.  In this case, one or more new policies will be
  installed in the PCE Policy Repository (associated with the PCE)
  defining the constraint (rules that determine application criteria,
  set of policy variables, conditions, actions, etc.) and its
  relaxation strategy (or strategies).  The new policies will be also
  propagated into other PCE Policy Repositories within the domain via
  discovery and synchronization protocols or via local configuration.
  PCE-PDPs and PCC-PDPs will then retrieve the corresponding policies
  from the repository (or repositories).  From then on, PCC-PDPs will
  instruct associated PCC-PEPs to add the new policy information into
  path computation requests for services with certain parameters (for
  example, for services provisioned in the optical channel (OCh)
  layer).

  It is important to note that policy-enabled path computation model
  naturally solves the PCE capability discovery issues.  Suppose a PCE
  working in a single PCE Policy Repository configuration starts to
  support a new constraint.  Once a corresponding policy installed in



Bryskin, et al.              Informational                     [Page 32]

RFC 5394            Policy-Enabled Path Computation        December 2008


  the repository, it automatically becomes available for all repository
  users, that is, PCCs.  In the multi-repository case some policy
  synchronization must be provided; however, this problem is one of the
  management plane which is solved already.

10.  Security Considerations

  This document adds to the policy security considerations mentioned in
  [RFC4655].  In particular, it is now necessary to consider the
  security issues related to policy information maintained in PCE
  Policy Repositories and policy-related transactions.  The most
  notable issues, some of which are also listed in [RFC4655], are:

  - Unauthorized access to the PCE Policy Repositories;

  - Interception of policy information when it is retrieved from the
    repositories and/or transported from PDPs to PEPs;

  - Interception of policy-related information in path computation
    requests and responses;

    o  Impersonation of user and client identities;

    o  Falsification of policy information and/or PCE capabilities;

    o  Denial-of-service attacks on policy-related communication
       mechanisms.

  As with [RFC4655], it is expected that PCE solutions will address the
  PCE aspects of these issues in detail.

11.  Acknowledgments

  Adrian Farrel contributed significantly to this document.  We would
  like to thank Bela Berde for fruitful discussions on PBM and policy-
  driven path computation.  We would also like to thank Kobus Van der
  Merwe for providing insights and examples regarding PCE policy
  applications.













Bryskin, et al.              Informational                     [Page 33]

RFC 5394            Policy-Enabled Path Computation        December 2008


12.  References

12.1.  Normative References

  [RFC2753]  Yavatkar, R., Pendarakis, D., and R. Guerin, "A Framework
             for Policy-based Admission Control", RFC 2753, January
             2000.

  [RFC3060]  Moore, B., Ellesson, E., Strassner, J., and A. Westerinen,
             "Policy Core Information Model -- Version 1
             Specification", RFC 3060, February 2001.

  [RFC3209]  Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
             and G. Swallow, "RSVP-TE: Extensions to RSVP for LSP
             Tunnels", RFC 3209, December 2001.

  [RFC3460]  Moore, B., Ed., "Policy Core Information Model (PCIM)
             Extensions", RFC 3460, January 2003.

  [RFC3473]  Berger, L., Ed., "Generalized Multi-Protocol Label
             Switching (GMPLS) Signaling Resource ReserVation
             Protocol-Traffic Engineering (RSVP-TE) Extensions", RFC
             3473, January 2003.

  [RFC3644]  Snir, Y., Ramberg, Y., Strassner, J., Cohen, R., and B.
             Moore, "Policy Quality of Service (QoS) Information
             Model", RFC 3644, November 2003.

  [RFC4216]  Zhang, R., Ed., and J.-P. Vasseur, Ed., "MPLS Inter-
             Autonomous System (AS) Traffic Engineering (TE)
             Requirements", RFC 4216, November 2005.

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

  [RFC4927]  Le Roux, J.-L., Ed., "Path Computation Element
             Communication Protocol (PCECP) Specific Requirements for
             Inter-Area MPLS and GMPLS Traffic Engineering", RFC 4927,
             June 2007.

12.2.  Informative References

  [DMTF]     Common Information Model (CIM) Schema, version 2.x.
             Distributed Management Task Force, Inc. The components of
             the CIM v2.x schema are available via links on the
             following DMTF web page:
             http://www.dmtf.org/standards/standard_cim.php.



Bryskin, et al.              Informational                     [Page 34]

RFC 5394            Policy-Enabled Path Computation        December 2008


  [IRSCP]    Van der Merwe, J., et al., "Dynamic Connectivity
             Management with an Intelligent Route Service Control
             Point," ACM SIGCOMM Workshop on Internet Network
             Management (INM), Pisa, Italy, September 11, 2006.

  [PCEP]     Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation
             Element (PCE) Communication Protocol (PCEP)", Work in
             Progress, November 2008.

  [RFC2748]  Durham, D., Ed., Boyle, J., Cohen, R., Herzog, S., Rajan,
             R., and A. Sastry, "The COPS (Common Open Policy Service)
             Protocol", RFC 2748, January 2000.

  [RFC3031]  Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol
             Label Switching Architecture", RFC 3031, January 2001.

  [RFC3080]  Rose, M., "The Blocks Extensible Exchange Protocol Core",
             RFC 3080, March 2001.

  [RFC3198]  Westerinen, A., Schnizlein, J., Strassner, J., Scherling,
             M., Quinn, B., Herzog, S., Huynh, A., Carlson, M., Perry,
             J., and S. Waldbusser, "Terminology for Policy-Based
             Management", RFC 3198, November 2001.

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

  [RFC5376]  Bitar, N., Zhang, R., and K. Kumaki, "Inter-AS
             Requirements for the Path Computation Element
             Communication Protocol (PCECP)", RFC 5376, November 2008.

  [W3CSOAP]  Hadley, M., Mendelsohn, N., Moreau, J., Nielsen, H., and
             Gudgin, M., "SOAP Version 1.2 Part 1: Messaging
             Framework", W3C REC REC-soap12-part1-20030624, June 2003.
















Bryskin, et al.              Informational                     [Page 35]

RFC 5394            Policy-Enabled Path Computation        December 2008


Authors' Addresses

  Igor Bryskin
  ADVA Optical
  7926 Jones Branch Drive
  Suite 615
  McLean, VA 22102
  EMail: [email protected]

  Dimitri Papadimitriou
  Alcatel
  Fr. Wellesplein 1,
  B-2018 Antwerpen, Belgium
  Phone: +32 3 240-8491
  EMail: [email protected]

  Lou Berger
  LabN Consulting, LLC
  Phone: +1 301 468 9228
  EMail: [email protected]

  Jerry Ash
  AT&T
  EMail: [email protected]



























Bryskin, et al.              Informational                     [Page 36]