Internet Draft                                              Igor Bryskin
Category: Standards Track                                     Lou Berger
Expiration Date: September 5, 2007

                                                           March 5, 2007


           Path Computation Policy Information Model (PCPIM)


                     draft-bryskin-pce-pcpim-01.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/1id-abstracts.html

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

   This Internet-Draft will expire on September 5, 2007.

Copyright Notice

   Copyright (C) The IETF Trust (2007).

Abstract

   The Policy-Enabled Path Computation Framework [PCE-POLICY] introduced
   the use of the Policy Core Information Model (PCIM), [RFC3060], as a
   framework for supporting path computation policy within the context
   of the Path Computation Element (PCE)-Based Architecture, [RFC4655].
   This document defines the Path Computation Policy Information Model
   (PCPIM), which provides the specifics of using PCIM as the method for
   supporting path computation policy.  PCPIM includes classes that
   model constraints, conditions, actions, variables and values
   associated with supporting path computation policy. While PCPIM was
   conceived to operate within the path computation element (PCE)-based



Bryskin & Berger        Expires September 5, 2007               [Page 1]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   architecture, it can be applied to any path computation methodology.



Contents

 1    Introduction  ................................................   3
 1.1  PC Policy Definition  ........................................   4
 1.2  Design Goals and Ramifications  ..............................   6
 1.3  Modeling of Abstract PC Policies  ............................  12
 1.4  Rule Hierarchy  ..............................................  14
 1.5  Extensibility of the path computation process via PCPIM  .....  15
 1.6  Requirements for PCC-PCE communication protocol  .............  16
 1.7  Intended Audiences  ..........................................  17
 2    Class Hierarchies  ...........................................  18
 2.1  Inheritance Hierarchy  .......................................  18
 2.2  Relationship Hierarchy  ......................................  24
 3    PC Policies  .................................................  25
 3.1  Modeling PC constraints  .....................................  25
 3.2  Modeling PC capabilities  ....................................  43
 3.3  Modeling PC policy relationships  ............................  55
 3.4  Modeling PC actions  .........................................  61
 3.5  Modeling PC variables  .......................................  66
 3.6  Modeling PC values  ..........................................  73
 4    PCPIM class definition  ......................................  74
 5    Security Considerations  .....................................  74
 6    IANA Considerations  .........................................  74
 7    References  ..................................................  74
 7.1  Normative References  ........................................  74
 7.2  Informative References  ......................................  75
 8    Authors' Addresses  ..........................................  76
 9    Full Copyright Statement  ....................................  76
10    Intellectual Property  .......................................  76



















Bryskin & Berger        Expires September 5, 2007               [Page 2]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


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


1. Introduction

   This document defines the Path Computation Policy Information Model,
   or PCPIM.  PCPIM identifies a framework and specific constructs for
   specifying and representing policies for the path computation process
   typically found with MPLS-TE and GMPLS LSPs, see [RFC3209] and
   [RFC3473].  PCPIM is intended to be consistent with the policy-
   enabled path computation framework defined in [PCE-POLICY].  PCPIM
   was conceived to operate within the path computation element
   (PCE)-based architecture, see [RFC4655], but can be applied to any
   path computation methodology.

   Consistent with [PCE-POLICY], PCPIM as defined in this document is
   based on the IETF Policy Core Information Model, see [RFC3060], and
   its extensions, see [RFC3460].  PCPIM builds upon these two documents
   to define an information model for the path computation governed by
   policy.  This document also adopts the terminology for policy-based
   management defined in [RFC3198].

   The policies that can be represented in PCPIM are referred to in this
   document as Path Computation (or PC) policies. The framework defined
   by PCPIM consists of a set of classes and relationships that are
   organized in an object-oriented information model. The definition is
   independent of any specific Policy Decision Point (PDP) or Policy
   Enforcement Point (PEP) implementation, see [RFC3198] for
   definitions.

   PCPIM is designed to represent PC policy information for policy
   domains, see [RFC3198].  The goal of this information model is to
   assist administrators in their definition of policies to control the
   path computation process typically associated with MPLS and GMPLS LSP
   establishment.  The process of creating PCPIM class instances is fed
   by business rules, network topology and PC methodology.  Examples of
   PC methodologies include centralized, distributed, remote PCE, and
   local PCE.

   It is important to note that PCPIM is independent of any particular
   data storage mechanism and access protocol.  This enables various
   data models (e.g., directory schemata, relational database schemata,
   and SNMP MIBs) to be designed and implemented according to a single
   uniform model.



Bryskin & Berger        Expires September 5, 2007               [Page 3]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


1.1. PC Policy Definition

   Figure 1 shows a notional process for the definition of PC policy for
   a policy domain. The figure illustrates information flow rather than
   an actual procedure.

       ----------        ----------       -----------
      | Business |      | Topology |     |   PC      |
      | Policy   |      |          |     |Methodology|
       ----------        ----------       -----------
           |                  |               |
           |                  |               |
           ------------------------------------
                              |
                              V
                       ---------------
                      |  PCPIM/PCIM(e)|
                      |   modeling    |
                       ---------------
                              |
          -------------       |            --------------
         | Service      |     |<----------| PCE info,    |
         | provisioning |---->|           | capabilities |
         | info         }     |            --------------
          -------------       V
                       (---------------)
                       ( PC action     )---)
                       ( (request/     )   )
                       (  response     )   )---)
                       (  processing   )   )   )
                       (---------------)   )   )
                            (--------------)   )
                                 (-------------)

             Figure 1: The PC definition information flow

   The process of defining PC policy is dependent on three types of
   information: the topology of network resources under management, the
   particular type of PC methodology used and the business rules and
   requirements for specifying service(s) delivered by the network. Both
   topology and business rules are outside of the scope of PCPIM.
   However, the important facets of both must be known and understood
   for the PC policy to be correctly specified.

   Typically the process of PC policy definition relies on one or more
   PC methodologies.  For example, the methodology of distributed path
   computation using remote PCE(s), per [RFC4655], may be considered in
   the PC policy definition process.



Bryskin & Berger        Expires September 5, 2007               [Page 4]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   Network topology consists of an inventory of network resources that
   make up a network. This inventory is usually automatically discovered
   and distributed via a Control Plane or a Management Plane, and made
   available to a network's path computation engines which perform the
   actual path computation.

   Business rules are informal sets of requirements for specifying the
   behavior of various services that may be provisioned on a network.
   Business rules directly or indirectly prescribe specific attributes
   for the services such as cost, availability, resilience to failures,
   end-to-end delay expectations and relative priority. This information
   is required by the overall policy management system that uses PCPIM
   rather than by PCPIM itself.  PCPIM is used to map business rules
   into semantics that control service related path computation, so that
   paths computed for a specific service can be successfully provisioned
   and will conform to a network's policy requirements and expectations.

   Information related to topology, PC methodology and business rules
   are necessary prerequisites for computing paths for services.  PCPIM
   enables a set of tools for specifying PC policy in a standard manner.
   Using a standard PC policy information model such as PCPIM is needed
   also because different network elements may have markedly different
   path computation capabilities and levels of visibility into the
   resources available within a network. Even the same type of equipment
   can have different functionality depending on operating system and
   software running in those devices. Therefore, a means is required to
   specify PC functionality in a standard way that is independent of the
   capabilities of different vendors' devices.  This is the role of
   PCPIM.

   In a typical scenario, the administrator will first determine the
   role(s) that each network element plays in the overall path
   computation process.  These roles define the path computation
   functions supplied by a given network element independent of vendor
   and element type. Examples of roles are: "Edge Path Computation
   Client", "Intra-Area Path Computation Element" and "Inter-AS Path
   Computation Element". For example, a network administrator may assign
   an edge IP router or GMPLS enabled OADM using remote path computation
   service a role of "Edge Path Computation Client". This enables the
   administrator to design policies that define how to constrain and/or
   optimize the path selection process for different types of services,
   how to select a PCE that can honor the specified constraints and
   objective functions, what to do if path computation fails (e.g. relax
   some of constraints, or send the request to another PCE) independent
   of the actual devices themselves.  PCPIM supports the concept of
   roles based on [RFC3060] and [RFC3460] definition of role.  PCPIM
   uses roles to help the administrator map a given set of network
   elements to a given set of PC policy constructs.



Bryskin & Berger        Expires September 5, 2007               [Page 5]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   Within PCPIM, PC policy constructs define the functionality required
   to perform desired path computation.  The functions themselves depend
   on the particular type of PC methodology chosen. For example, the
   outcome of applying policies on an edge IP router in case of the
   centralized path computation using a remote PCE is the contents of
   the path computation request sent to the PCE, while in case of the
   distributed path computation using local path computation engines the
   outcome is a particular call to the local engine.

   PCPIM class definitions are used to create instances of various
   policy constructs, such as PC constraints, in a form of policy rules
   that may be hierarchically organized in a higher level rules and
   groups.  Again, [RFC3060] and [RFC3460] serve as the foundation for
   these definitions, see [RFC3060] and [RFC3460] for definitions of
   PolicyGroup and PolicyRule classes.

   A hierarchical organization was chosen because it tends to reflect
   the way humans tend to think about complex policy. It is important to
   note that the described policy definition process is done
   independently of any specific device capabilities and configuration
   options. The policy definition is completely independent from details
   of implementation and configuration interface of individual network
   elements, as well as of the mechanisms that a network element may
   participate in the path selection process.


1.2. Design Goals and Ramifications

   This section explains PCPIM major design goals and how these goals
   are addressed.  This section also describes some of the ramifications
   of the design goals and the design decisions made in developing
   PCPIM.


1.2.1. Policy definition oriented

   The primary design goal of PCPIM is to model policies controlling the
   path selection process in a way that, as closely as possible,
   reflects the way humans tend to think about policy.  Therefore, PCPIM
   is designed to address the needs of policy definition and management,
   and not device or network configuration.

   There are several significant ramifications of this design goal.
   First, PCPIM uses rules to define policies based on [RFC3060] and
   [RFC3460]. Second, PCPIM uses hierarchical organizations of policies
   and policy information extensively.  Third, PCPIM does not force the
   policy writer to specify all implementation details; rather, it
   assumes that configuration agents, i.e. PEPs, interpret the policies



Bryskin & Berger        Expires September 5, 2007               [Page 6]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   and match them to suit the needs of device-specific configurations.


1.2.1.1. Rule-based modeling

   PCPIM describes PC policy using rule-based modeling as introduced in
   [RFC3060] and [RFC3460]. A PC policy rule is structured as a
   condition clause and an action clause. The semantics are simple: if
   the condition clause evaluates to TRUE then a set of actions, as
   specified in the action clause, can be executed.  For example, the
   rule:

      If bandwidth requirement is specified in the service provisioning
      message, then restrict the path selection to TE links advertising
      unreserved bandwidth to no less than the specified value.

   Could be formalized as:

      <If provBandwidth != 0 > then
          <require minimum BW = provBandwidth>"

   Where the first angle bracketed clause is a policy condition, and the
   second angle bracketed clause is a policy action.

   Note that the approach taken in PCPIM specifically does not define
   subclasses for the PolicyCondition class, and it uses subclasses of
   the PolicyAction class in a limited way.  Rather, PCPIM relies
   predominantly on use of the SimplePolicyCondition,
   CompoundPolicyCondition, SimplePolicyAction, and CompoundPolicyAction
   classes defined in [RFC3460]. This approach enables PCPIM to be
   easily extended. New path computation capabilities may be introduced
   without modifications of PCC - PCE communication, PCE discovery
   protocols or PDP/PEP/network element software (apart, of course, from
   the network elements (PCEs) actually implementing the new
   capabilities).


1.2.1.2. Hierarchical organization of information

   The organization of the information represented by PCPIM is designed
   to be hierarchical. PCPIM utilizes the PolicySetComponent aggregation
   class, see [RFC3460], to provide an arbitrarily nested organization
   of policy information.  A policy group provides a construct that
   represents policy rules and policy groups.  A policy rule can also
   contain other policy rules and groups, thus enabling a rule/sub-rule
   relationship.

   The hierarchical design approach is based on the observation that it



Bryskin & Berger        Expires September 5, 2007               [Page 7]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   is natural to organize policy rules in groups. Breaking down a
   complex policy into a set of simple rules is a process that follows
   the way many people tend to think and analyze systems.  The
   complexity of the abstract business-oriented policy is simplified and
   translated into a hierarchy of simple rules and grouping of simple
   rules.


1.2.1.3. Goal-oriented policy definition

   PCPIM facilitates goal-oriented PC policy definition.  This means
   that the process of defining PC policies is focused on the desired
   effect of policies, as opposed to the means of implementing the
   policy on network elements.

   PCPIM is intended to define a minimal specification of desired
   network behavior. It is the role of device-specific configuration
   agents, i.e., PEPs, to interpret policy expressed in a standard way
   and fill in the necessary configuration details. This helps ensure a
   common interpretation of the general policy as well as aid the
   administrator in specifying a common policy to be implemented by
   different devices.  This is analogous to the fundamental object-
   oriented paradigm of separating specification from implementation.

   With the help of PCPIM the path computation process can be specified
   in a general manner that can facilitate different implementations to
   satisfy a common goal. For example, a valid policy may include only a
   single rule that specifies that path selection must be limited to TE
   links with particular link protection capabilities. The rule does not
   need to include any of the various other details that may be needed
   for issuing a particular call to a local path computation engine or
   sending a request to a remote PCE.

   It is assumed that PEPs will fill in the device-specific details.
   The policy writer needs only to specify the main goal of the policy,
   making sure that the preferred path computation engine receives a
   properly constructed path computation request, so that the produced
   paths will be sufficiently detailed and include links best suiting
   the path(s) for the service in question.


1.2.2. Policy domain model

   An important design goal of PCPIM is to allow for policies that span
   numerous network elements.  This goal differentiates PCPIM from
   device-level information models which are designed for modeling
   policy that controls a single network element.




Bryskin & Berger        Expires September 5, 2007               [Page 8]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   This design goal has several ramifications. First, roles may be used
   to define policies across multiple network elements.  Second, the use
   of abstract policies frees the policy definition process from having
   to deal with individual network element peculiarities, and leaves
   interpretation and configuration to be modeled by PEPs. Third, the
   PCPIM allows extensive reuse of all policy building blocks in
   multiple rules and groups of rules used within different network
   elements.


1.2.2.1. Model PC policy in a device- and vendor-independent manner

   PCPIM models PC policy in a way designed to be independent of any
   particular device or vendor.  This enables to control the path
   computation process on networks made up of different network elements
   that (with respect to the path computation) have different
   capabilities using a single set of policies. This is important,
   because, otherwise, the policy will itself reflect and depend upon
   the differences between different implementations.


1.2.2.2. Use roles for mapping policy to network elements

   The use of roles enables a policy definition to be targeted to the
   network function of a network element, rather, than to the element's
   type and capabilities. The use of roles for mapping policy to network
   elements provides an efficient and simple method for compact and
   abstract policy definition.  A given abstract policy may be mapped to
   a group of network elements (for example, set of edge IP routers)
   without the need to specify configuration for each of these elements
   based on the capabilities of any one individual element.


1.2.2.3. Reuse

   Reusable objects as defined by [RFC3060] and [RFC3460] enable sharing
   policy building blocks, thus allowing central management of global
   concepts.  PCPIM provides the ability to reuse all policy building
   blocks: variables and values, conditions and actions, policy rules
   and policy groups.  This provides the required flexibility to manage
   large sets of policy rules over large policy domains.

   For example, the following rule makes use of centrally defined
   objects being reused (referenced):

      If <SourceAddress == DomainA>
          then <RecoveryPathDisjoitedness = SRLGDisjoint>




Bryskin & Berger        Expires September 5, 2007               [Page 9]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   In this rule the condition refers to an object named DomainA, which
   is a value (or possibly a set of values) defined and maintained in a
   reusable object container. The rule action makes use of a value named
   SRLGDisjoint, which is also a reusable object. The advantage of
   specifying a policy in this way is its inherent flexibility. For
   example, when business needs require a change in the domain
   definition for the organization, all that needed is to change the
   reusable value DomainA centrally. All referencing rules are
   immediately affected without the need to modify them individually.
   Without this capability the repository that is used to store the
   rules would have to be searched for all rules that refer to the
   domain DomainA, and then each matching rule's condition would have to
   be individually updated.  Such an approach would be much less
   efficient and would be more error prone.

   For a complete description of reusable objects, refer to [RFC3060]
   and [RFC3460].


1.2.3. Enforceable Policy

   Policy defined by PCPIM is assumed to be enforceable.  This means
   that a PDP and a PEP can use PCPIM's policy definition in order to
   make the necessary decisions and enforce the required policy rules.
   For example, a policy related to the selection of the remote PCE for
   a given path computation request could be made based entirely on the
   policy definitions specified by PCPIM.

   A PDP, associated with a given PCE or PCC, should be capable of
   extracting all policies written for each of the PCE's or PCC's roles
   and delivering them to the PCE's or PCC's PEP, which, it turn, should
   be able to map the policies into sets of PCE's or PCC's configuration
   commands, so that the desired behavior will be achieved.

   As previously mentioned, PCPIM is designed to be independent of any
   particular vendor-dependent technology. However, PCPIM's constructs
   should always be interpreted so that policy-compliant behavior can be
   enforced on the network under management.  Therefore, there are three
   fundamental requirements that PCPIM must satisfy:

   1. Policy specified by PCPIM must be able to be mapped to
      sets of configuration instructions specific to network
      elements where the policy is intended to be applied.

   2. Policy specified by PCPIM must be able to be enforced
      on the network elements, meaning that expected behavior of
      network elements must be achievable solely by applying the
      policy.



Bryskin & Berger        Expires September 5, 2007              [Page 10]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   3. Policy specified by PCPIM must be able to control path
      computation functions without making reference to a
      specific type of network element or vendor.

   PCPIM satisfies requirements (1) and (2) above by using the concept
   of roles. Specifically, through the PolicyRoles property defined in
   [RFC3060] and further refined in [RFC3460].  By matching roles
   assigned to policy groups and to network elements, a PDP can
   determine what policy should be applied to a given network element or
   group of network elements.

   The use of roles in mapping policy to network elements supports model
   scalability.  PCPIM policy can be mapped to large-scale policy
   domains by assigning a single role to a group of network elements.
   This can be done even when the policy domain contains heterogeneous
   devices.  So, a small set of policies can be deployed to large
   networks without having to re-specify the policy for each device
   separately.  This PCPIM property is important for PC policy
   management applications that strive to ease the task of policy
   definition for large policy domains.

   Requirement (2) is also satisfied by making PCPIM domain-oriented,
   see [RFC3198] for the definition of "domain".  In other words, the
   target of the policy is a domain as opposed to a specific network
   element.

   Requirement (3) is satisfied by modeling PC actions that are commonly
   configured on various PCCs and PCEs.  Additionally, PCPIM is
   extensible to allow for modeling of actions that are not included yet
   into the PCPIM.

   It is important to note that different PEPs will have different
   capabilities and functions. This necessitates different individual
   configurations, even if the different PEPs are controlled by the same
   policy.


1.2.4. PCPIM and path computation methodologies

   PCPIM is independent of the PC methodology used on the network. This
   means that on any given network element the same PC Policy actions
   can be translated into different sets of operations, depending on the
   PC methodology used in the network. For example, the PC Policy action
   "Request Path Computation", when applied on PCC using remote path
   computation service, will cause the PCC to send a request to a remote
   PCE (e.g. via the protocol defined in [PCEP]). On the other hand, the
   same PC Policy action applied on a IP router using a local path
   computation engine will cause the router to call the engine. Such



Bryskin & Berger        Expires September 5, 2007              [Page 11]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   independence is important, because it allows introduction of new
   methodologies without (re-)writing the policies governing a path
   computation.


1.3. Modeling of Abstract PC Policies

   As previously mentioned, the main goal of PCPIM is to create an
   information model that can be used to help bridge the conceptual gap
   between a human policy maker and a network element that is capable to
   enforce the policy. Clearly this wide gap implies several translation
   levels from the abstract to the concrete. At the abstract end are the
   business path computation considerations and rules. Once the business
   rules are known, a network administrator must interpret them as
   network PC policy and represent this PC policy using PCPIM
   constructs.  PCPIM facilitates a formal representation of PC rules,
   thus, providing the first concentration level.

   When a human business executive defines network policy, it is usually
   done using informal business terms and language.  For example, a
   human may define a policy of:

      Service A must be available 99.999% through its lifetime.

   In the context of path computation the statement above could be
   translated into the following policy:

      Service A must have an end-to-end backup path which is
      sufficiently disjoint from its primary path to guarantee that a
      single network failure will not make both paths simultaneously
      unusable for the service.

   While this statement clearly defines a PC policy at the business
   level, it isn't specific enough to be enforceable by a network
   element (i.e. for the service ingress GMPLS LSR responsible for the
   path computation for the service).

   On the other end of the scale, a network element functioning as a PEP
   (e.g. GMPLS LSR) can be configured with specific commands which
   determine a particular set of parameters (e.g. path computation
   constraints) that could control the path selection for the service in
   such a way that the goal expressed in the informal statement could be
   achieved. The element-specific configuration command on a PEP
   controlling a PCC could read:

      For service A, require that a remote PCE provide an end-to-end
      backup path and that the primary and backup path be link-disjoint.




Bryskin & Berger        Expires September 5, 2007              [Page 12]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   On a different network element on the same network the same policy
   may take different element specific form, in spite of the element
   playing the same role in the path computation process. This is may be
   due to the second network element being from a different vendor than
   the first, or that the second has a different set of functions (and
   hence implementation) even though it is from the same vendor.

   The "human" policy mentioned above is an example of an "abstract
   policy", while the "path computation" policy illustrates a "concrete
   configuration".  Furthermore, the first statement illustrates an end-
   to-end policy that covers all necessary path computations for the
   service which could include several requested by several PCCs and
   performed by several PCEs.  The second statement illustrates
   configuration for a particular PEP or a set thereof.

   The translation process from abstract business policy to concrete PEP
   configuration can be expressed as follows:

   1. Informal business PC policy is expressed by a human policy
      maker.

   2. A network administrator analyzes the policy domain's topology
      and determines the roles of particular network elements.  A
      role may be assigned to a large group of elements, which will
      result in mapping a particular policy to a large group of
      elements.

   3. The network administrator models the informal policy using the
      PCPIM constructs, thus creating a formal representation of the
      abstract policy. The administrator places these models in a
      Policy Repository that is accessible to PDPs in the network.

   4. The network administrator assigns roles to the policy groups
      created in the previous step, matching the network elements'
      roles assigned in step (2) above, and then places the roles
      in the Policy Repository.

   5. A PDP extracts the abstract policies from the Policy Repository
      and delivers them to PEPs associated with the elements that are
      assigned roles matching the policies and roles.

   6. The PEPs apply and enforce the polices by translating them into
      sets of network element-specific configuration instructions.

   PCPIM (with PCIM and PCIMe) are used in steps (3) and (4) above.






Bryskin & Berger        Expires September 5, 2007              [Page 13]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


1.4. Rule Hierarchy

   As with [RFC3060] and [RFC3460], PCPIM policy is described by a set
   of policy rules that may be grouped together. Policy rules and policy
   groups can be nested within other policy rules, providing a
   hierarchical policy definition. Nested rules are also called sub-
   rules, and we use both terms in this document interchangeably.  The
   aggregation PolicySetComponent class, as defined in [RFC3460], is
   used to represent the nesting of a policy rule or group in another
   policy rule or group.

   The hierarchical policy rule definition enhances policy readability
   and reuse. Within the PC policy information model, hierarchy is used
   to model context or scope for the sub-rule actions.

   Consider the following example, where the informal policy reads:

      In a WDM service, path computation requires a wavelength
      continuity constraint within each transparent segment of the
      service; for such path computation also constrain the OSNR to be
      no less than K at each point of optical signal regeneration and at
      the service end-points

   In this context, the wavelength continuity constraint means the
   requirement to select WDM links that have at least one lambda channel
   with the same wavelength available on all links selected for the path
   segment. The wavelength continuity constraint is necessary due to
   inability of transparent optical switches to perform the wavelength
   conversion.

   OSNR, or Optical Signal To Noise Ratio, is a characteristic that
   defines the optical signal quality. It has a lower bound, meaning
   that the characteristic needs to be no lower than a certain value at
   the points of the signal regeneration and at the service end-points
   for the signal to be usable.

   This policy could be modeled by PCPIM using the following rules:

   IF (Service Switching Type == LAMBDA && Service Data Type == LAMBDA)
      THEN (Set WavelengthContinuityConstraint = TRUE)
   IF (Service Switching Type == LAMBDA && Service Data Type == LAMBDA)
      THEN (Set MinimalOSNR = MINIMAL_OSNR)

   Assume that these two rules are grouped within a reusable group named
   SetOpticalConstraints. Than the policy above could be expressed as
   follows:

   IF (Service Switching Type == LAMBDA && Service Data Type == LAMBDA)



Bryskin & Berger        Expires September 5, 2007              [Page 14]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


       THEN (SetOpticalConstraints)

   This results in a more readable policy.  Additionally, and more
   importantly, policy nesting facilitates future modification of
   optical constraints (e.g.adding maximum allowable Polarization Mode
   Dispersion, PMD). In the case where a modification is needed, all
   that would need to be done is to modify the SetOpticalConstraints
   policy group, rather, than modifying all policies that use the group.


1.5. Extensibility of the path computation process via PCPIM

   Traditionally, a path computation entity was integrated with an LSR's
   control plane and always co-located with the LSR's signaling and
   routing subsystems. This architectural approach allowed for unlimited
   flexibility in providing various path computation enhancements.  For
   example, adding new types of constraints and their relaxation
   strategies, adopting new objective functions and optimization
   criteria.  With this approach, all that had to be done to support a
   PC related enhancement was to upgrade the control plane software of a
   particular LSR (and no other LSRs or any other network elements).

   This model doesn't hold for the PCE architecture, [RFC4655].  When
   the PCE architecture is used, the introduction of new PCE
   capabilities is more complicated and more than a single element's
   software must be modified to introduce new PC capabilites. In order
   to take advantage of a new PCE capability, new PCEP, advertising and
   signaling objects may be needed, all PCCs may need to be upgraded,
   and new interoperability problems may need to be resolved.

   Within the context of the PCE architecture it is therefore highly
   desirable to find a way to introduce new path computation
   capabilities without requiring modifications of either the
   discovery/communication protocols or PCC software. One way to achieve
   this objective is to model path selection constraints, their
   relaxations and objective functions as path computation request
   specific policies using PCPIM. Within PCPIM such policies may be
   modeled via policy rules with:

   - condition clauses made up entirely of a combination of instances
     of the SimplePolicyCondition class and/or instances of the
     CompoundPolicyCondition class, see [RFC3460], aggregating
     instances of the SimplePolicyCondition class.

   - action clauses made up entirely of a combination of instances
     of the SimplePolicyAction class and/or instances of the
     CompoundPolicyAction class, see [RFC3460], aggregating instances
     of the SimplePolicyAction class.



Bryskin & Berger        Expires September 5, 2007              [Page 15]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   Such an approach makes policy rule engines running on the PEPs
   insensitive to the semantics of the policies describing PC
   constraints and capabilities. Hence the only PC component that needs
   to understand such semantics is the PCE advertising the capabilities
   and actually using the constraints in the path selection. Under these
   circumstances PCCs can select a PCE that suits the best a given path
   computation request, as well as require necessary constraints without
   actually understanding what these capabilities or constraints mean.

   The SimplePolicyCondition, SimplePolicyAction,
   CompoundPolicyCondition and CompoundPolicyAction classes are defined
   [RFC3460]

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

   - New path computation capabilities may be introduced without
     changing PCC-PCE communication and discovery protocols or PCC
     software.

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

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

   - PCCs and PCEs need to handle other (that is, not request
     specific) policies.  (For example, a policy instructing the PCE
     whether to accept or reject a path computation request issued by
     a PCC.) Path computation related policies of all types can be
     modeled by PCPIM, placed within the same policy
     repositories, can be managed by the same policy management tools
     and can be interpreted using the same mechanisms.


1.6. Requirements for PCC-PCE communication protocol

   When remote path computation service is used, peer PCC and PCE will
   communicate via some request-response communication protocol. The
   protocol is expected to provide the following minimal capabilities:

   For the PCC to signal in a path computation request:

   - One or more service source addresses.
   - One or more service destination addresses or point-to-multipoint



Bryskin & Berger        Expires September 5, 2007              [Page 16]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


     service IDs.
   - The number of paths/trees connecting set of sources to set of
     destinations to be computed.
   - Zero or more opaque objects carrying instances of PCPIM classes
     that model path computation policies (e.g. policy variables,
     values, constraints, objective functions, and their relaxations)
     pertinent to the request.

   For the PCE to signal in a path computation response:

   - Status/completion code of the path computation request.
   - One or more computed paths/trees.
   - Zero or more opaque objects carrying instances of PCPIM classes
     that model path computation policies pertinent to the response
     (e.g. constraints that needed to be relaxed and path/tree costs.)


   The communication protocol introduced in [PCEP] provides such
   capabilities.


1.7. Intended Audiences

   PCPIM is intended for several audiences.  The following lists some of
   the possible audiences and their respective uses:

   1. Developers of PC policy management applications can use this
      model as an extensible framework for defining policies to
      control PEPs and PDPs in an interoperable manner.

   2. Developers of PDPs and PEPs designed to control the path
      computation process.

   3. Builders of large organization data and knowledge bases who
      define ways to combine PC policy information with other
      networking policy information (for example, service recovery
      policy), assuming all modeling is based on sub-classes of
      [RFC3060] and [RFC3460].

   4. Authors of various standards may use constructs introduced in
      this document to enhance their work.  Authors of data models
      wishing to map a storage specific technology to PCPIM must
      use this document as well.








Bryskin & Berger        Expires September 5, 2007              [Page 17]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


2. Class Hierarchies

   PCPIM's class and association inheritance hierarchies are rooted in
   [RFC3060] and [RFC3460].  This section provides figures that
   represent these PCPIM inheritance hierarchies, while noting their
   relationships to [RFC3060] and[RFC3460] classes.  Note that many
   other classes used to form PCPIM policies (for example, the
   SimplePolicyCondition class) are defined in [RFC3060] and [RFC3460].
   Thus the figures in this section do not represent all necessary
   classes and relationships for defining PCPIM policies.  Rather, the
   designer using PCPIM should use appropriate classes and relationships
   from [RFC3060] and [RFC3460] in conjunction with those defined below.


2.1. Inheritance Hierarchy

   Figure 2 shows the PCPIM inheritance hierarchy.

   ManagedElement (abstract, PCIM)
      |
      +--Policy (abstract, PCIM)
      |  |
      |  +---PolicyAction (abstract, PCIM)
      |  |     |
      |  |     +---PcPolicyAction (abstract, PCPIM)
      |  |     |   |
      |  |     |   +--- PcPolicyActionRequestPathComputation (PCPIM)
      |  |     |   |
      |  |     |   +--- PcPolicyActionSendPathComputationResponse
      |  |     |   |                                             (PCPIM)
      |  |     |   |
      |  |     |   +--- PcPolicyActionProcessPathComputationResponse
      |  |     |                                                 (PCPIM)
      |  |     +--- PcPolicyActionEvaluatePCE (PCPIM)
      |  |
      |  +---PolicySet (abstract, PCIMe)
      |  |     |
      |  |     +---PolicyRule (abstract, PCIM/PCIMe)
      |  |     |   |
      |  |     |   +---PcPolicyPcReqRspComponent(PCPIM, abstract)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyBandwidthConstraint(PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyAffinityConstraint (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyLinkProtectionConstraint PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyLinkSwitchCapConstraint(PCPIM)



Bryskin & Berger        Expires September 5, 2007              [Page 18]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


      |  |     |   |   |
      |  |     |   |   +--- PcPolicyPathElement (PCPIM, abstract)
      |  |     |   |   |      |
      |  |     |   |   |      +--- PcPolicyExcludeLinkConstraint (PCPIM)
      |  |     |   |   |      |
      |  |     |   |   |      +--- PcPolicyExcludeNodeConstraint (PCPIM)
      |  |     |   |   |      |
      |  |     |   |   |      +--- PcPolicySharedLinkConstraint (PCPIM)
      |  |     |   |   |      |
      |  |     |   |   |      +--- PcPolicyIncludePathElement (PCPIM,
      |  |     |   |   |              |                        abstract)
      |  |     |   |   |              |
      |  |     |   |   |              +--- PcPolicyIncludeLinkConstraint
      |  |     |   |   |              |                        (PCPIM)
      |  |     |   |   |              |
      |  |     |   |   |              +--- PcPolicyIncludeNodeConstraint
      |  |     |   |   |                                       (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyStrictPathsConstraint (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicySecondaryPathRequest (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicySecondaryPathDisjoitedness (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyShortestPathObjectiveFunction
      |  |     |   |   |                                         (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyMinimalE2EDelayObjectiveFunction
      |  |     |   |   |                                         (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyShortestPathUpperBoundConstraint
      |  |     |   |   |                                         (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyE2EDelayUpperBoundConstraint (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyGMPLSWavelengthContinuityConstraint
      |  |     |   |   |                                         (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyGMPLSMaximalOSNRObjectiveFunction
      |  |     |   |   |                                         (PCPIM)
      |  |     |   |   +--- PcPolicyGMPLSMinimalDispersion
      |  |     |   |   |                 ObjectiveFunction       (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyGMPLSMinimalAttenuation
      |  |     |   |   |                 ObjectiveFunction       (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyGMPLSMinimalRegeneration
      |  |     |   |   |                 ObjectiveFunction       (PCPIM)



Bryskin & Berger        Expires September 5, 2007              [Page 19]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


      |  |     |   |   |
      |  |     |   |   +--- PcPolicyGMPLSOSNRLowerBoundConstraint
      |  |     |   |   |                                         (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyGMPLSDispersionUpperBoundConstraint
      |  |     |   |   |                                         (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyGMPLSAttenuationUpperBoundConstraint
      |  |     |   |   |                                         (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyGMPLSRegenerationUpperBound
      |  |     |   |   |                 Constraint              (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyGMPLSTransparentPathUpperBound
      |  |     |   |   |                 Constraint              (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyReturnPathCost (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyReturnPathE2EDelay (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- .... (to be extended)
      |  |     |   |
      |  |     |   +--- PcPolicyPcCapabilityComponent (PCPIM, abstract)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyPCELocation (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyPCEAdminPriority (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyTEVisibilityDomains (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyDestinationDomains (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyInterDomainCapability (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyRequestPrioritizationSupport (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyLinkBanwidthConstraintSupport
      |  |     |   |   |                                         (PCPIM)
      |  |     |   |   |
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyLinkAffinitiesConstraintSupport
      |  |     |   |   |                                         (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyLinkProtectionConstraintSupport
      |  |     |   |   |                                         (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyLinkSwitchCapConstraintSupport
      |  |     |   |   |                                         (PCPIM)



Bryskin & Berger        Expires September 5, 2007              [Page 20]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


      |  |     |   |   |
      |  |     |   |   +--- PcPolicyExclusionConstraintSupport   (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicySharedLinkConstraintSupport  (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyInclusionConstraintSupport   (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyConcurrentPathComputationCapability
      |  |     |   |   |                                         (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyShortestPathObjectiveSupport (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyCostUpperBoundConstraint
      |  |     |   |   |                Support                  (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyE2EDelayObjectiveSupport     (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyE2EDelayUpperBoundConstraintSupport
      |  |     |   |   |                                        (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--PcPolicyGMPLSWavelengthContinuity
      |  |     |   |   |                ConstraintSupport       (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyGMPLSOSNRObjectiveSupport    (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyGMPLSDispersionObjectiveSupport
      |  |     |   |   |                                        (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyGMPLSAttenuationObjectiveSupport
      |  |     |   |   |                                        (PCPIM)
      |  |     |   |   |
      |  |     |   |   +---PcPolicyGMPLSMinimalRegenerations
      |  |     |   |   |                ObjectiveFunction       (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- PcPolicyGMPLSOSNRLowerBound
      |  |     |   |   |                ConstraintSupport       (PCPIM)
      |  |     |   |   |
      |  |     |   |   +-- PcPolicyGMPLSDispersionUpperBound
      |  |     |   |   |                ConstraintSupport       (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--PcPolicyGMPLSAttenuationUpperBound
      |  |     |   |   |                ConstraintSupport       (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--PolicyGMPLSRegenerationsUpperBound
      |  |     |   |   |                ConstraintSupport       (PCPIM)
      |  |     |   |   |
      |  |     |   |   +-- PcPolicyGMPLSTransparentPathUpper
      |  |     |   |   |                BoundConstraintSupport  (PCPIM)



Bryskin & Berger        Expires September 5, 2007              [Page 21]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


      |  |     |   |   |
      |  |     |   |   +---PcPolicyGMPLSMinimalRegenerations
      |  |     |   |   |                ObjectiveFunction       (PCPIM)
      |  |     |   |   |
      |  |     |   |   +---PcPolicyGMPLSMinimalRegenerations
      |  |     |   |   |                ObjectiveFunction       (PCPIM)
      |  |     |   |   |
      |  |     |   |   +--- .... (to be extended)
      |  |     |
      |  |     +---PolicyGroup (abstract, PCIM/PCIMe)
      |  |     |   |
      |  |     |   +--- PcPolicyPcReqRspSet (PCPIM)
      |  |     |   |
      |  |     |   +--- PcPolicyPcCapabilitySet (PCPIM)
      |  |
      |  +---PolicyVariable (abstract, PCIMe)
      |  |   |
      |  |   +---PolicyImplicitVariable (abstract, PCIMe)
      |  |       |
      |  |       +--- PcPolicyServiceSourceIPv4Variable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServiceSourceIPv6Variable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServiceDestinationIPv4Variable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServiceDestinationIPv6Variable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServiceMcstGroupIDVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServiceEncodingTypeVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServiceSwitchingTypeVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServiceGPIDVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServiceBandwidthVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServiceBandwidthDirectionalityVariable
      |  |       |                                               (PCPIM)
      |  |       +--- PcPolicyServiceBandwidthPriorityVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServicePathRecoveryFlagsVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServiceLinkProtectionFlagsVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServiceSessionNameVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServiceIncludeAnyVariable (PCPIM)



Bryskin & Berger        Expires September 5, 2007              [Page 22]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


      |  |       |
      |  |       +--- PcPolicyServiceExcludeAnyVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServiceIncludeAllVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServiceEROVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServiceRROVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServiceReferencePointIDVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyUserIDVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServiceQOSVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServiceCOSVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyServiceAvailabilityVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyLocalPCCIDVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyLocalPCEIDVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyPeerPCEIDVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyPeerPCEMetricVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyEvaluatedPCEIDVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyEvaluatedPCEMetricVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyPeerPCCIDVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyLocalPCDomainIDVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicySourcePCDomainIDVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyDestinationPCDomainIDVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyTransitPCDomainIDVariable (PCPIM)
      |  |       |
      |  |       +--- PcPolicyPcRequestResponseCodeVariable (PCPIM)
      |  |       |
      |  |       +---  .... (may be extended)
      |  |
      |  +---PolicyValue (abstract, PCIMe)
      |  |   |
      |  |   +--- PCPolicyFPValue (PCPIM)



Bryskin & Berger        Expires September 5, 2007              [Page 23]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


      |  |   |
      |  |   +--- PCPolicyUnnumLinkIDValue (PCPIM)
      |  |   |
      |  |   +--- PCPolicyROElementValue (PCPIM)
      |  |   |
      |  |   +--- PCPolicyROValue (PCPIM)
      |  |   |
      |  |   +---  .... (may be extended)

            Figure 2. PCPIM Class Inheritance Hierarchy


2.2. Relationship Hierarchy

   Figure 3 shows the PCPIM relationship hierarchy.

   [unrooted] (abstract, PCIM)
     |
     +---Dependency (abstract)
     |   |
     |   +--- PcPolicyPcReqRspComponentInPcReqRspSet (PCPIM)
     |   |
     |   +--- PcPolicyPcReqRspSetInPcReqRspSet (PCPIM)
     |   |
     |   +--- PcPolicyPcCapabilityComponentInPcCapabilitySet (PCPIM)
     |   |
     |   +--- PcPolicyPcCapabilitySetInPcCapabilitySet (PCPIM)
     |   |
     |   +--- PcPolicyPcReqRspComponentInPcSecondaryPathRequest
     |   |                                                    (PCPIM)
     |   |
     |   +--- PcPolicyPcReqRspSetInPcPolicyAction (PCPIM)
     |   |
     |   +--- PolicyImplicitVariableInPcPolicyAction (PCPIM)
     |   |
     |   +--- PcPolicyPcCapabilitySetInPcPolicyActionEvaluatePCE
     |   |                                                    (PCPIM)

         Figure 3. PCPIM Association Class Inheritance Hierarchy












Bryskin & Berger        Expires September 5, 2007              [Page 24]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


3. PC Policies

   This section describes PC policies that are modeled by PCPIM.  PC
   policies are policy related network behaviors that are specific to
   the path computation. Examples of PC policies are "Set path
   computation constraint" , "Evaluate a PCE for a path computation
   request", "Request path computation", "Send response to path
   computation request" and "Process path computation response". PC
   policies are modeled using the class hierarchies introduced in
   [RFC3060] and [RFC3460] as well as the PCPIM classes introduced in
   this document. PCPIM classes are sub-classes of [RFC3060]/[RFC3460]
   classes.



3.1. Modeling PC constraints

   A PC constraint is modeled based on the PcPolicyPcReqRspComponent
   abstract class introduced in this document.
































Bryskin & Berger        Expires September 5, 2007              [Page 25]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


         +-----------------------+    +-------------------------+
         | SimplePolicyCondition |    | CompoundPolicyCondition |
         |    class instances    |    |     class instances     |
         |       (PCIMe)         |    |         (PCIMe)         |
         +-----------------------+    +-------------------------+
                    * PolicyConditionInPolicyRule *
                    *       class instances       *
                    *           (PCIM)            *
                    *******************************
                                   *
                                   *
                    +--------------------------------+
                    |    PcPolicyPcReqRspComponent   |
                    |      sub-class instance        |
                    |           (PCPIM)              |
                    +--------------------------------+
                                   #
                                   #
                    ###############################
                    #  PolicyActionInPolicyRule   #
                    #       class instances       #
                    #           (PCIM)            #
         +-----------------------+    +-------------------------+
         |   SimplePolicyAction  |    |    CompoundPolicyAction |
         |    class instances    |    |      class instances    |
         |       (PCIMe)         |    |         (PCIMe)         |
         +-----------------------+    +-------------------------+

               Figure 4. Modeling PC Constraint

   The abstract class is derived from the PolicyRule class introduced in
   [RFC3060]. The rules of using the PolicyRule class, and its sub-
   classes, require that for each instance of PolicyRule class and sub-
   class:

   - There should be one or more instances of PolicyCondition
     classes or sub-classes associated with the PolicyRule class
     or sub-class instance in question via separate instances of
     the PolicyConditionInPolicyRule class or sub-class;

   and

   - there should be one or more instances of PolicyAction
     classes or sub-classes associated with the PolicyRule class
     or sub-class instance in question via separate instance of
     the PolicyActionInPolicyRule class or sub-class.

   The approach taken in PCPIM with respect to the use of sub-classes of



Bryskin & Berger        Expires September 5, 2007              [Page 26]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   the PcPolicyPcReqRspComponent class is to limit:

   - the conditions that can be associated with an instance of
     PcPolicyPcReqRspComponent sub-class to be instances of the
     SimplePolicyCondition class ([RFC3460]) and/or sets of instances
     of the SimplePolicyCondition class aggregated into instances of
     the CompoundPolicyCondition class ([RFC3460]) via instances of the
     PolicyConditionInPolicyCondition class ([RFC3460]) (see Figure 7.);

   and

   - the actions that can be associated with an instance of
     PcPolicyPcReqRspComponent sub-class to be instances of the
     SimplePolicyAction class ([RFC3460]) and/or sets of instances of
     the SimplePolicyAction class aggregated into instances of the
     CompoundPolicyAction class ([RFC3460]) via instances of the
     PolicyActionInPolicyAction class ([RFC3460]) (see Figure 7).

   The rationale for this decision is that the SimplePolicyCondition and
   SimplePolicyAction classes are fully defined within the policy realm.
   The classes are modeled as shown on Figure 5 and Figure 6
   respectively.

   +-----------------------+ PolicyValueInSimplePo- +----------------+
   |  SimplePolicyCondition| licyCondition class    | PolicyValue    |
   |      class instance   | instance(PCIMe)        | class instance |
   |         (PCIMe)       |xxxxxxxxxxxxxxxxxxxxxxxx|     (PCIMe)    |
   +-----------------------+                        +----------------+
                 v
                 v PolicyVariableInSimplePolicyCondition
                 v class instance (PCIMe)
                 v
   +-----------------------+ ExpectedPolicyValues-  +----------------+
   |    PolicyVariable     | ForPolicyVariable      | PolicyValue    |
   |    class instance     | class instances (PCIMe)| class instances|
   |       (PCIMe)         |========================|     (PCIMe)    |
   +-----------------------+                        +----------------+

                    Figure 5. Modeling Simple Policy Condition












Bryskin & Berger        Expires September 5, 2007              [Page 27]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   +-----------------------+ PolicyValueInSimplePo-+----------------+
   |    SimplePolicyAction | licyAction class      | PolicyValue    |
   |        class instance | instance(PCIMe)       | class instance |
   |           (PCIMe)     |xxxxxxxxxxxxxxxxxxxxxxx|     (PCIMe)    |
   +-----------------------+                       +----------------+
                 v
                 v PolicyVariableInSimplePolicyAction
                 v class instance (PCIMe)
                 v
   +-----------------------+ ExpectedPolicyValues-  +----------------+
   |    PolicyVariable     | ForPolicyVariable      | PolicyValue    |
   |    class instance     | class instances (PCIMe)| class instances|
   |       (PCIMe)         |========================|     (PCIMe)    |
   +-----------------------+                        +----------------+

                    Figure 6. Modeling Simple Policy Action

   As defined in [RFC3460], SimplePolicyCondition class can be expressed
   as:

      if(<PolicyVariable> MATCH <PolicyValue>)

   and SimplePolicyAction could be expressed as:

      SET <PolicyVariable> TO <PolicyValue>

   where <PolicyVariable> and <PolicyValue> are instances of
   PolicyVariable and PolicyValue classes and sub-classes associated
   with the instances of the SimplePolicyCondition and
   SimplePolicyAction classes. In the PCPIM context, the variables that
   could be associated with instances of the SimplePolicyCondition and
   SimplePolicyAction classes could be either instances of
   ImplicitPolicyVariable ([RFC3460]) sub-classes, as these are PC
   policy variable classes introduced and discussed later in this
   document (e.g. PcPolicyServiceBandwidthVariable), or instances of the
   ExplicitPolicyVariable ([RFC3460]) class bound to properties of PC
   Policy classes (e.g. mandatory property of the
   PcPolicyPcReqRspComponent class).













Bryskin & Berger        Expires September 5, 2007              [Page 28]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


                 +-----------------------+ +-------------------------+
                 | SimplePolicyCondition | |   SimplePolicyAction    |
                 |    class instances    | |     class instances     |
                 |        (PCIMe)        | |         (PCIMe)         |
                 +-----------------------+ +-------------------------+
                                    $          %
   PolicyConditionInPolicyCondition $          % PolicyActionInPolicy
                                    $          %               Action
        class instances             $          %      class instances
            (PCIMe)                 $          %          (PCIMe)
                                    $          %
                 +------------------------+ +-------------------------+
                 |CompoundPolicyCondition | |  CompoundPolicyAction   |
                 |    class instance      | |     class instance      |
                 |        (PCIMe)         | |         (PCIMe)         |
                 +------------------------+ +-------------------------+


              Figure 7.  Modeling Compound Policy Condition and Action

   It should be noted that all components of the SimplyPolicyCondition
   and SimplePolicyAction classes (e.g., variables, values, their
   associations and the definition of operators "MATCH" and "SET") are
   fully defined within the policy realm. This means that the rule
   engines running on PEPs do not need to understand semantics of the
   rules based on the SimplePolicyCondition and SimplePolicyAction
   classes. Indeed, applying such policies cause only comparing
   variables against values and setting variables to new values, rather,
   than performing actual (re-)configuration of network elements.
   Therefore, adding new constraint types is a fairly simple and
   "painless" operation. All what required is an introduction of new
   sub-classes of the PcPolicyPcReqRspComponent class, while the
   modification of the software running on the PEPs is not needed.


3.1.1. PcPolicyPcReqRspComponent class

   PcPolicyPcReqRspComponent is a class derived from the PolicyRule
   class introduced in [RFC3060]. PcPolicyPcReqRspComponent class is an
   abstract class, that is, it cannot be directly instantiated. All PC
   policy classes describing path computation constraints, objective
   functions, path disjointedness, SHOULD be derived from the
   PcPolicyPcReqRspComponent class. The class has two properties:
   mandatory and relaxation_round. The former is a Boolean identifying
   whether the constraint modeled by an instance of the
   PcPolicyPcReqRspComponent sub-class is mandatory (could not be
   relaxed) or optional (could be relaxed). The relaxation_round
   property is an integer from the range {1 ...M-1}, where M is a policy



Bryskin & Berger        Expires September 5, 2007              [Page 29]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   defined value specifying the maximum number of attempts a PCE should
   take on a given path computation request (with each attempt relaxing
   one or more constraints) before giving up and sending a negative
   response to the requesting PCC. This property specifies the priority
   of the constraint relaxation. For example, if the property equals to
   1, the constraint will be relaxed after initial path computation
   (with full set of constraints) fails, that is, before the second
   computation attempt; if the property equals to 2, the constraint will
   be relaxed after a failure of the path computation with all optional
   constraints that have the relaxation_round property 1 relaxed, and so
   forth.

   Provided that conditions of the policy modeled by a
   PcPolicyPcReqRspComponent sub-class evaluate to TRUE, there MUST be
   one or more actions associated with the policy that set either the
   mandatory or relaxation_priority properties to TRUE/non-zero value.
   Otherwise, (mandatory is FALSE and relaxation_priority is 0) the
   constraint is considered as NOT specified and will not be accounted
   in the path computation.

   Multiple instances of PcPolicyPcReqRspComponent sub-classes could be
   aggregated into a constraint set - an instance of the container class
   PcPolicyPcReqRspSet - using the
   PcPolicyPcReqRspComponentInPcReqRspSet aggregation class. Instances
   of PcPolicyPcReqRspSet classes could be nested within each other.
   Zero, one or more instances of the PcPolicyPcReqRspSet class could be
   associated with a single path computation request or response modeled
   by the PcPolicyActionRequestPathComputation and
   PcPolicyActionSendPathComputationResponse respectively.

   Note that a path computation constraint set (an instance of the
   PcPolicyPcReqRspSet class) may contain several instances of the same
   PcPolicyPcReqRspComponent sub-class. For example, the set may contain
   two instances of the PcPolicyBandwidthConstraint class (described in
   the following section): the first, mandatory, specifying 10Mb of
   bandwidth, and the second, optional, specifying 12Mb of bandwidth. It
   is assumed that when several constraints of the same type are
   specified in the request, the PCE will use the most stringent one
   (12Mb, in our example). If the path computation fails, optional
   constraints will be relaxed, and the computation will be attempted
   again. Thus, the policy that could be expressed as "Try, first, to
   compute a 12Mb path, if the computation fails, then compute a 10Mb
   path" could be easily achieved.








Bryskin & Berger        Expires September 5, 2007              [Page 30]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


3.1.2. PcPolicyBandwidthConstraint class

   PcPolicyBandwidthConstraint is a class derived from the
   PcPolicyPcReqRspComponent. It specifies the link bandwidth
   availability constraint. The class has the following properties:

     bandwidth - an integer specifying minimum bandwidth in Kb to be
                 available on a TE link in order for the link to be
                 considered as a valid candidate for a resulting path

     priority -  an integer from the range {0...7} specifying the
                 lowest priority at which the bandwidth must be
                 available

     directionality - an integer specifying the direction in which
                      the bandwidth must be available; the valid
                      values are:
                  1 - the bandwidth must be available only in forward
                      (from the source to the destination) direction
                  2 - the bandwidth must be available only in reverse
                      (from the destination to the source) direction
                  3 - the bandwidth must be available in both directions

   A policy of setting the bandwidth constraint may (but does not have
   to) be associated with instances of PcPolicyServiceBandwidthVariable,
   PcPolicyServiceBandwidthDirectionalityVariable and
   PcPolicyServiceBandwidthPriorityVariable classes (bandwidth
   parameters provisioned for the service for which the path computation
   is requested). For example, the policy could be expressed as follows:

     if(PcPolicyServiceBandwidthVariable !=0)
       then banwidthConstraint. bandwidth =
                 PcPolicyServiceBandwidthVariable;
            bandwidthConstraint.directionality =
                 PcPolicyServiceBandwidthDirectionalityVariable;
            bandwidthConstraint.priority =
                 PcPolicyServiceBandwidthPriorityVariable;


3.1.3. PcPolicyAffinityConstraint class

   PcPolicyAffinityConstraint is a class derived from the
   PcPolicyPcReqRspComponent. It specifies types (advertised as colors)
   of TE links the path selection must be constrained to.

   The class has the following properties:

    includeAny - a bit field specifying a subset of colors. A given



Bryskin & Berger        Expires September 5, 2007              [Page 31]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


                 TE link may be considered in the path selection only
                 if it advertises at least one of these colors

    excludeAny - a bit field specifying a subset of colors. A given
                 TE link must be excluded from the path selection if
                 it advertises at least one of these colors

    includeAll - a bit field specifying a subset of colors. A given
                 TE link may be considered in the path selection only
                 if it advertises all of these colors

   A policy of setting the affinity constraint may (but does not have
   to) be associated with instances of
   PcPolicyServiceIncludeAnyVariable, PcPolicyServiceExcludeAnyVariable
   and PcPolicyServiceIncludeAllVariable classes (affinities provisioned
   for the service for which the path computation is requested) in a
   similar way as described in 3.1.1


3.1.4. PcPolicyLinkProtectionConstraint class

   PcPolicyLinkProtectionConstraint is a class derived from the
   PcPolicyPcReqRspComponent. It specifies minimal link protection
   capabilities for a TE link to be considered in the path selection.

   The class has a single property:

     linkProtection - an integer specifying the link capability code
                      according to [RFC4202].

   A given TE link may be considered in the path selection only if it
   advertises the link protection capability numerically greater or
   equal to the value of this property

   A policy of setting the link protection capability constraint may
   (but does not have to) be associated with an instance of the
   PcPolicyServiceLinkProtectionFlagsVariable class (link protection
   capability provisioned for the service for which the path computation
   is requested) in a similar way as described in 3.1.1


3.1.5. PcPolicyLinkSwitchCapConstraint class

   PcPolicyLinkSwitchCapConstraint is a class derived from the
   PcPolicyPcReqRspComponent. It specifies the network layer of the
   requested path(s). Specifically, it constraints the path selection to
   TE links with particular switching capabilities, that is, TE links,
   advertising data switching and encoding capabilities matching the



Bryskin & Berger        Expires September 5, 2007              [Page 32]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   values specified in the properties (see below) of the
   PcPolicyLinkSwitchCapConstraint class instance.

   The class has the following properties:

     switchType - an integer specifying the link switching type
                  according to [RFC3471]

     encodeType - an integer specifying the link data encoding type
                  according to [RFC3471]

   A policy of setting the link switching capability constraint may (but
   does not have to) be associated with instance of the
   PcPolicyServiceSwitchingTypeVariable and
   PcPolicyServiceEncodingTypeVariable classes (link switching
   capabilities provisioned for the service for which the path
   computation is requested) in a similar way as described in 3.1.1


3.1.6. PcPolicyPathElement class

   PcPolicyPathElement is class derived from the
   PolicyPcReqRspComponent.  PcPolicyPathElement is an abstract class to
   be used as a base class for the classes, describing explicit path
   constraints such as exclusions and inclusions (see the following
   sections).

   The PcPolicyPathElement class has a single property:

     teNodeID - network unique number identifying the node associated
                with the path element (for example, a TE link to be
                included or excluded)


3.1.7. PcPolicyExcludeLinkConstraint and PcPolicyExcludeNodeConstraint
   classes

   PcPolicyExcludeLinkConstraint and PcPolicyExcludeNodeConstraint are
   classes derived from the PcPolicyPathElement class. Instances of
   these classes specify TE links and nodes respectively that must be
   explicitly excluded from the path computation.

   The PcPolicyExcludeLinkConstraint class has a single property:

     teLinkID - network unique number identifying a numbered link or
                node unique number identifying (along with the
                teNodeID property of the PcPolicyPathElement class)
                an unnumbered link



Bryskin & Berger        Expires September 5, 2007              [Page 33]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   The PcPolicyExcludeNodeConstraint class has no properties

   Several instances of PcPolicyExcludeLinkConstraint and/or
   PcPolicyExcludeNodeConstraint classes associated with a path
   computation request specify an unordered set of TE links/nodes that
   are explicitly prohibited to appear in the resulting path(s).


3.1.8. PcPolicySharedLinkConstraint class

   PcPolicySharedLinkConstraint is a class derived from the
   PcPolicyPathElement class. Instances of this class specify TE links
   which resources could be shared between two or more service paths
   and, therefore, may be considered in the path computation even if
   they do not have sufficient resources (bandwidth) available

   The PcPolicySharedLinkConstraint class has a single property:

     teLinkID - network unique number identifying a numbered link or
                node unique number identifying (along with the
                teNodeID property of the PcPolicyPathElement) an
                unnumbered link


3.1.9. PcPolicyIncludePathElement class

   PcPolicyIncludePathElement is class derived from the
   PcPolicyPathElement class. PcPolicyIncludePathElement is an abstract
   class to be used as a base class for the classes describing inclusion
   constraints

   The PcPolicyIncludePathElement class has the following properties:

     order  -  an integer number specifying the order of appearing of
               this path element in the path (the smaller number, the
               closer the path element to the path head)

     loose  -  a Boolean specifying whether this path element is loose
               (TRUE) or strict (FALSE). Path element is considered to
               be loose with respect to the path element that appears
               immediately before in the path, if it is permissible to
               insert one or more other path elements between the two
               path elements








Bryskin & Berger        Expires September 5, 2007              [Page 34]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


3.1.10. PcPolicyIncludeLinkConstraint and PcPolicyIncludeNodeConstraint
   classes

   PcPolicyIncludeLinkConstraint and PcPolicyIncludeNodeConstraint are
   classes derived from the PcPolicyIncludePathElement class. Instances
   of these classes specify TE links and nodes respectively that must
   appear in the resulting path(s) in the specified order.

   The PcPolicyExcludeLinkConstraint class has a single property:

     teLinkID  - network unique number identifying a numbered link
                 or node unique number identifying (along with the
                 teNodeID property of the PcPolicyPathElement class)
                 an unnumbered link

   The PcPolicyExcludeNodeConstraint class does not have any properties.

   Several instances of PcPolicyIncludeLinkConstraint and/or
   PcPolicyIncludeNodeConstraint classes associated with a path
   computation request specify an ordered set of TE links/nodes that
   must appear in the resulting path(s).


3.1.11. PcPolicyStrictPathsConstraint class

   PcPolicyStrictPathsConstraint is a class derived from the
   PolicyPcReqRspComponent class. An instance of the
   PcPolicyStrictPathsConstraint class requires the resulting path(s) to
   be explicit, that is, to contain only strict path elements.

   The PcPolicyStrictPathsConstraint class does not have any properties


3.1.12. PcPolicySecondaryPathRequest class

   PcPolicySecondaryPathRequest is a class derived from the
   PolicyPcReqRspComponent class. An instance of the
   PcPolicySecondaryPathRequest class requests computation of a
   secondary path (backup path or path to a point-to-multipoint service
   leaf) to be performed concurrently with the primary and other
   secondary paths.

   The PcPolicySecondaryPathRequest class has the following properties:

     pathSource - an IPv4 or IPv6 value specifying the source of the
                  secondary path; if specified as 0, it MUST be
                  assumed that the source of the secondary path is
                  the same as of the primary path



Bryskin & Berger        Expires September 5, 2007              [Page 35]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


     pathDestination - an IPv4 or IPv6 value specifying the
                  destination of the secondary path; if specified as
                  0, it MUST be assumed that the destination of the
                  secondary path is the same as of the primary path

   PCPIM allows direct associations of an instance of the
   PcPolicySecondaryPathRequest class with one or more instances of any
   of PolicyPcReqRspComponent sub-classes via instances of the
   PcPolicyPcReqRspComponentInPcSecondaryPathRequest association class.
   This is useful for requesting an individual set of constraints for
   the secondary path distinct from one for the primary path and other
   secondary paths. If such associations are not provided between some
   of the constraints, specified for the primary path, and a given
   instance of the PcPolicySecondaryPathRequest class, it MUST be
   interpreted as a requirement for the secondary path computation to
   use the same such constraints as for the primary path computation.
   For example, suppose that an instance of the
   PcPolicySecondaryPathRequest class is associated only with several
   instances of the PcPolicyIncludeLinkConstraint classes (in order to
   specify, say, a preferred path between a branch and a leaf of a
   point- to-multipoint tunnel). Although, the bandwidth constraint in
   this case is not explicitly specified for this secondary path, the
   path will be computed with the bandwidth constraint specified for the
   primary path/tree.


3.1.13. PcPolicySecondaryPathDisjoitedness class

   PcPolicySecondaryPathDisjoitedness is a class derived from the
   PolicyPcReqRspComponent class. An instance of the
   PcPolicySecondaryPathDisjoitedness class describes how a secondary
   path should be disjoint from (or converged with) the primary and
   other secondary paths.

   In section 3.1.12 it was mentioned that an instance of any
   PolicyPcReqRspComponent sub-class can be associated with an instance
   of the PcPolicySecondaryPathRequest class.  If such association is
   specified for an instance of the PcPolicySecondaryPathDisjoitedness
   class, the disjointedness parameters provided by the instance apply
   only for the secondary path in question (but not for any other
   secondary paths).  Otherwise, (that is, the association is not
   specified), the disjointedness parameters apply for all secondary
   paths in the request (specified via instances of the
   PcPolicySecondaryPathRequest class aggregated into the same instance
   of the PcPolicyPcReqRspSet class).

   The PcPolicySecondaryPathDisjoitedness class has the following
   properties:



Bryskin & Berger        Expires September 5, 2007              [Page 36]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


    disjointedness - an integer specifying the path disjointedness
                 code that could take one of the following values:
            1    - link-disjoint (no links in common);
            2    - node-disjoint (no nodes in common);
            3    - SRLG-disjoint (no Shared Risk Link
                                  Groups in common);
            4    - best- disjoint (best available
                   disjointedness with applying penalties
                   for sharing links, nodes and SRLGs)
            5    - converged (as many links in common as
                   possible, useful for point-to-
                   multipoint path/tree computations)

    linkSharingCostPenalty - an integer specifying by how much the
                 cost of the secondary path must be increased for
                 every link shared with the primary or other secondary
                 paths; this property is only meaningful
                 when the disjointedness property set to 4

    nodeSharingCostPenalty - an integer specifying by how much the
                 cost of the secondary path must be increased for
                 every node shared with the primary or other secondary
                 paths; this property is only meaningful
                 when the disjointedness property set to 4

    SRLGSharingCostPenalty - an integer specifying by how much
                 cost of the secondary path must be increased for
                 every SRLG shared with the primary or other secondary
                 paths; this property is only meaningful
                 when the disjointedness property set to 4


3.1.14. PcPolicyShortestPathObjectiveFunction class

   PcPolicyShortestPathObjectiveFunction is a class derived from the
   PolicyPcReqRspComponent class. An instance of the
   PcPolicyShortestPathObjectiveFunction class instructs the path
   computation engine to optimize the path selection according to the
   shortest path criteria.

   The PcPolicyShortestPathObjectiveFunction class has a single
   property:

    optimization - a Boolean specifying whether the path selection
                   should be optimized according to minimal summary
                   TE metric (TRUE) or minimal number of hops (FALSE)
                   criteria




Bryskin & Berger        Expires September 5, 2007              [Page 37]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


3.1.15. PcPolicyMinimalE2EDelayObjectiveFunction class

   PcPolicyMinimalE2EDelayObjectiveFunction is a class derived from the
   PolicyPcReqRspComponent class. An instance of the
   PcPolicyMinimalE2EDelayObjectiveFunction class instructs the path
   computation engine to optimize the path selection according to the
   minimal end-to-end delay criteria.

   The PcPolicyMinimalE2EDelayObjectiveFunction class does not have
   properties.


3.1.16. PcPolicyShortestPathUpperBoundConstraint class

   PcPolicyShortestPathUpperBoundConstraint is a class derived from the
   PolicyPcReqRspComponent class. An instance of the
   PcPolicyShortestPathUpperBoundConstraint class sets upper bound on
   the cost of the resulting paths in terms of either summary TE metric
   or number of hops or both.

   The PcPolicyShortestPathUpperBoundConstraint class has the following
   properties:

     maxMetric    - an integer specifying maximally acceptable summary
                    path TE metric
     maxHopNumber - an integer specifying maximally acceptable number
                    of hops in the path(s)


3.1.17. PcPolicyE2EDelayUpperBoundConstraint class

   PcPolicyE2EDelayUpperBoundConstraint is a class derived from the
   PolicyPcReqRspComponent class. An instance of the
   PcPolicyE2EDelayUpperBoundConstraint class sets upper bound on the
   end- to-end delay characteristic of each of the resulting paths.

   The PcPolicyE2EDelayUpperBoundConstraint class has a single property:

     maxE2Edelay - an integer specifying maximally acceptable value
                   of the path end-to-end delay characteristic


3.1.18. PcPolicyGMPLSWavelengthContinuityConstraint class

   PcPolicyGMPLSWavelengthContinuityConstraint is a class derived from
   the PolicyPcReqRspComponent class. This class is meaningful in the
   context of transparent optical network path computation. An instance
   of the PcPolicyGMPLSWavelengthContinuityConstraint class constrains



Bryskin & Berger        Expires September 5, 2007              [Page 38]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   the path computation engine to consider only WDM links for the
   resulting path(s) that have at least one lambda channel with the same
   wavelength available on all links selected for any given transparent
   path segment (that is, path segment between optical signal (OS)
   regeneration points). The wavelength continuity constraint is
   necessary due to inability of transparent optical switches to perform
   the wavelength conversion.

   The PcPolicyGMPLSWavelengthContinuityConstraint class does not have
   properties.


3.1.19. PcPolicyGMPLSMaximalOSNRObjectiveFunction class

   PcPolicyGMPLSMaximalOSNRObjectiveFunction is a class derived from the
   PolicyPcReqRspComponent class. This class is meaningful in the
   context of transparent optical network path computation. An instance
   of the PcPolicyGMPLSMaximalOSNRObjectiveFunction class instructs the
   path computation engine to optimize the path selection according to
   the maximal Optical Signal to Noise Ratio (OSNR) criteria at points
   of OS regeneration and path destination(s).

   The PcPolicyGMPLSMaximalOSNRObjectiveFunction class does not have
   properties.


3.1.20. PcPolicyGMPLSMinimalDispersionObjectiveFunction class

   PcPolicyGMPLSMinimalDispersionObjectiveFunction is a class derived
   from the PolicyPcReqRspComponent class. This class is meaningful in
   the context of transparent optical network path computation. An
   instance of the PcPolicyGMPLSMinimalDispersionObjectiveFunction class
   instructs the path computation engine to optimize the path selection
   according to the minimal OS dispersion criteria at points of OS
   regeneration and path destination(s).

   The PcPolicyGMPLSMinimalDispersionObjectiveFunction class does not
   have properties.


3.1.21. PcPolicyGMPLSMinimalAttenuationObjectiveFunction class

   PcPolicyGMPLSMinimalAttenuationObjectiveFunction is a class derived
   from the PolicyPcReqRspComponent class. This class is meaningful in
   the context of transparent optical network path computation. An
   instance of the PcPolicyGMPLSMinimalAttenuationObjectiveFunction
   class instructs the path computation engine to optimize the path
   selection according to the minimal OS attenuation criteria at points



Bryskin & Berger        Expires September 5, 2007              [Page 39]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   of OS regeneration and path destination(s).

   The PcPolicyGMPLSMinimalAttenuationObjectiveFunction class does not
   have properties.


3.1.22. PcPolicyGMPLSMinimalRegenerationObjectiveFunction class

   PcPolicyGMPLSMinimalRegenerationObjectiveFunction is a class derived
   from the PolicyPcReqRspComponent class. This class is meaningful in
   the context of transparent optical network path computation. An
   instance of the PcPolicyGMPLSMinimalRegenerationObjectiveFunction
   class instructs the path computation engine to optimize the path
   selection according to the minimal number of OS regenerations
   criteria.

   The PcPolicyGMPLSMinimalRegenerationObjectiveFunction class does not
   have properties.


3.1.23. PcPolicyGMPLSOSNRLowerBoundConstraint class

   PcPolicyGMPLSOSNRLowerBoundConstraint is a class derived from the
   PolicyPcReqRspComponent class. This class is meaningful in the
   context of transparent optical network path computation. An instance
   of the PcPolicyGMPLSOSNRLowerBoundConstraint class sets a lower bound
   on the OSNR characteristic at the resulting path(s) destination(s)
   and points of OS regeneration.

   The PcPolicyGMPLSOSNRLowerBoundConstraint class has a single
   property:

     minOSNR - an integer specifying minimally acceptable value of
               OSNR characteristic


3.1.24. PcPolicyGMPLSDispersionUpperBoundConstraint class

   PcPolicyGMPLSDispersionUpperBoundConstraint is a class derived from
   the PolicyPcReqRspComponent class. This class is meaningful in the
   context of transparent optical network path computation. An instance
   of the PcPolicyGMPLSDispersionUpperBoundConstraint class sets upper
   bound on the OS dispersion characteristic at the resulting path(s)
   destination(s) and points of OS regeneration.

   The PcPolicyGMPLSDispersionUpperBoundConstraint class has a single
   property:




Bryskin & Berger        Expires September 5, 2007              [Page 40]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


     maxDispersion - an integer specifying maximally acceptable value
                     of OS dispersion characteristic


3.1.25. PcPolicyGMPLSAttenuationUpperBoundConstraint class

   PcPolicyGMPLSAttenuationUpperBoundConstraint is a class derived from
   the PolicyPcReqRspComponent class. This class is meaningful in the
   context of transparent optical network path computation. An instance
   of the PcPolicyGMPLSAttenuationUpperBoundConstraint class sets upper
   bound on the  OS attenuation characteristic at the resulting path(s)
   destination(s) and points of OS regeneration.

   The PcPolicyGMPLSAttenuationUpperBoundConstraint class has a single
   property:

     maxAttenuation - an integer specifying maximally acceptable value
                      of OS attenuation characteristic


3.1.26. PcPolicyGMPLSRegenerationUpperBoundConstraint class

   PcPolicyGMPLSRegenerationUpperBoundConstraint is a class derived from
   the PolicyPcReqRspComponent class. This class is meaningful in the
   context of transparent optical network path computation. An instance
   of the PcPolicyGMPLSRegenerationUpperBoundConstraint class sets upper
   bound on the number of OS regenerations along each of the resulting
   path(s).

   The PcPolicyGMPLSRegenerationUpperBoundConstraint class has a single
   property:

     maxRenerations - an integer specifying maximally acceptable number
                      of OS regenerations


3.1.27. PcPolicyGMPLSTransparentPathUpperBoundConstraint class

   PcPolicyGMPLSTransparentPathUpperBoundConstraint is a class derived
   from the PolicyPcReqRspComponent class. This class is meaningful in
   the context of transparent optical network path computation. An
   instance of the PcPolicyGMPLSTransparentPathUpperBoundConstraint
   class sets an upper bound on the length of a transparent path segment
   (path segment between two points of OS regeneration) of each of the
   resulting path(s).

   The PcPolicyGMPLSTransparentPathUpperBoundConstraint class has a
   single property:



Bryskin & Berger        Expires September 5, 2007              [Page 41]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


     maxLenTranspSegment - an integer specifying maximally acceptable
                           length of a transparent path segment


3.1.28. PcPolicyReturnPathCost class

   PcPolicyReturnPathCost is a class derived from the
   PolicyPcReqRspComponent class. An instance of the
   PcPolicyReturnPathCost class requests information on a computed path
   actual cost in terms of summary TE link metric and hop number. An
   instance of the PcPolicyReturnPathCost class could be associated with
   an instance of the PcPolicySecondaryPathRequest class via an instance
   of the PcPolicyPcReqRspComponentInPcSecondaryPathRequest class. Such
   association instructs the peer PCE which (of possibly several) paths
   the actual cost must be returned for. If the association is not
   specified the cost characteristics will be returned for the computed
   primary path.

   The PcPolicyReturnPathCost class has the following properties:

     pathMetric - an integer specifying computed path summary TE metric
     hopNumber  - an integer specifying computed path hop number


3.1.29. PcPolicyReturnPathE2EDelay class

   PcPolicyReturnPathE2EDelay is a class derived from the
   PolicyPcReqRspComponent class. An instance of the
   PcPolicyReturnPathE2EDelay class requests information on a computed
   path actual end-to-end delay characteristic. An instance of the
   PcPolicyReturnPathE2EDelay class could be associated with an instance
   of the PcPolicySecondaryPathRequest class via an instance of the
   PcPolicyPcReqRspComponentInPcSecondaryPathRequest class. Such
   association instructs the peer PCE which (of possibly several) paths
   the actual end-to-end delay characteristic must be returned for. If
   the association is not specified, the characteristic will be returned
   for the computed primary path.

   The PcPolicyReturnPathE2EDelay class has a single property:

     pathE2Edelay - an integer specifying computed path end-to-end
                    delay characteristic









Bryskin & Berger        Expires September 5, 2007              [Page 42]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


3.2. Modeling PC capabilities

   There could be several PCEs serving on the network at the same time
   because:

   - the PCEs may have different PC capabilities and, therefore, be
     suited for different types of the path computation.

   - the PCEs may have different visibility into the network
     resources and hence compute paths within and across different
     path computation domains.

   - the PCEs may have different security restraints on accessing
     their services.

   - two or more PCEs with identical capabilities and TE visibility
     may be deployed for the purpose of path computation load
     balancing.

   Furthermore, one should keep in mind that PCCs may have access to
   local path computation engine(s) capable of certain types of the path
   computation, but not of others, for which they may request a remote
   PCE service. Therefore, a PCC must be capable to decide for a given
   path computation on whether local or remote PCE should be used, and,
   in the latter case, select the PCE that suits best the path
   computation in question.

   In 3.1 we discussed a PC constraint as a policy that influences the
   outcome of the path selection process. It was noted that PCPIM makes
   it possible for a PCC, while not understanding what a given PC
   constraint means, to request it anyway simply because the policy
   tells the PCC to do so. This is achieved via modeling PC constraints
   as policy rules (based on the [RFC3060] PolicyRule sub-classes) and
   associating them with conditions and actions based on the
   SimplePolicyCondition and SimplePolicyAction sub-classes
   respectively. Such an approach allows for requesting the constraints
   via applying some logic defined/governed by policy on a limited set
   of variables which values are defined outside of the policy realm
   (e.g. information provided by signaling or provisioning messages or
   SLAs) without actually understanding the semantics of the
   constraints. However, in a multi-PCE environment requesting PC
   constraints would be of a little use, if the PC request with the
   constraints is sent to a PCE that does not recognize or support the
   constraints.

   In this section we will discuss a PC capability as a policy that
   could be used by a PCC while selecting a PCE for a given path
   computation request. As in case of the PC constraints, it is



Bryskin & Berger        Expires September 5, 2007              [Page 43]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   important for PCPIM (in order to be open for future path computation
   process enhancements) to make it possible for a PCC to use/apply PC
   capabilities without understanding their semantics.

   Suppose an IP router is about to setup a tunnel going through an
   optical domain. In order for such tunnel to be successfully set up
   and operational, it is important to request the wavelength continuity
   constraint (discussed in 3.1). However, neither of software
   components on the router needs to understand what does the constraint
   mean. Nor it needs to understand what does the capability to support
   the constraint mean. The goal is to have the PCC, associated with the
   router, request the constraint and send the request to a PCE capable
   to support the constraint, solely because the PC policy instructs the
   PCC to do so (one reason for such instruction could be the fact that
   the tunnel is provisioned with the transparent optical switching
   capability requirements).

   In PCPIM a PC capability is modeled based on the
   PcPolicyPcCapabilityComponent class (see the next sub-section).
































Bryskin & Berger        Expires September 5, 2007              [Page 44]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


       +-----------------------+    +-------------------------+
       | SimplePolicyCondition |    | CompoundPolicyCondition |
       |    class instances    |    |     class instances     |
       |       (PCIMe)         |    |         (PCIMe)         |
       +-----------------------+    +-------------------------+
                  * PolicyConditionInPolicyRule *
                  *       class instances       *
                  *           (PCIM)            *
                  *******************************
                                 *
                                 *
                  +--------------------------------+
                  |  PcPolicyPcCapabilityComponent |
                  |      sub-class instance        |
                  |           (PCPIM)              |
                  +--------------------------------+
                                 #
                                 #
                  ###############################
                  #  PolicyActionInPolicyRule   #
                  #       class instances       #
                  #           (PCIM)            #
       +-----------------------+    +-------------------------+
       |   SimplePolicyAction  |    |    CompoundPolicyAction |
       |    class instances    |    |      class instances    |
       |       (PCIMe)         |    |         (PCIMe)         |
       +-----------------------+    +-------------------------+

                  Figure 8.  Modeling PC Capability

   The approach taken in PCPIM with respect to the use of sub-classes of
   the PcPolicyPcCapabilityComponent class is similar to one taken for
   the use of PcPolicyPcReqRspComponent sub-classes (described at the
   top of 3.1).

   Specifically, it was decided to limit:

   - the conditions that could be associated with an instance of a
     PcPolicyPcCapabilityComponent sub-class to be instances of the
     SimplePolicyCondition class([RFC3460]) and/or sets of instances of
     the SimplePolicyCondition class aggregated into instances of the
     CompoundPolicyCondition class ([RFC3460]) via instances of the
     PolicyConditionInPolicyCondition class ([RFC3460]) (see Figure 7);

   - the actions that could be associated with an instance of a
     PcPolicyPcCapabilityComponent sub-class to be instances of the
     SimplePolicyAction class ([RFC3460]) and/or sets of instances of
     the SimplePolicyAction class aggregated into instances of the



Bryskin & Berger        Expires September 5, 2007              [Page 45]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


     CompoundPolicyAction class ([RFC3460]) via instances of the
     PolicyActionInPolicyAction class ([RFC3460]) (see Figure 7).

   It should be noted that in the majority of cases PC capabilities
   introduced in 3.2 match PC constraints introduced in 3.1. Therefore,
   instances of matching PC constraint and capability classes may use
   (that is, may be associated with) the same conditions (the same
   instances of the SimplePolicyCondition sub-classes). For example, the
   same conditions that cause a PCC PEP to ask for the end-to-end delay
   optimization in a particular path computation request may "encourage"
   the PCC PEP to select for the path computation a PCE that actually
   supports this path computation objective.


3.2.1. PcPolicyPcCapabilityComponent class

   PcPolicyPcCapabilityComponent is a class derived from the PolicyRule
   class introduced in [RFC3060]. PcPolicyPcCapabilityComponent class is
   an abstract class, that is, it cannot be directly instantiated. All
   PC policy classes describing path computation capabilities SHOULD be
   derived from the PcPolicyPcCapabilityComponent class. The class has
   two properties:  domains and pceMetric.

   The domains property is a set of IPv4 or IPv6 values, each of which
   uniquely identifying one path computation domain in the network. A
   given PCE may perform differently when processing requests from
   and/or computing paths across different path computation domains
   Therefore, the domains property of the  PcPolicyPcCapabilityComponent
   class is necessary to specify for which of the domains the
   information provided by the properties of a given instance of the
   PcPolicyPcCapabilityComponent sub- class is valid.

   The pceMetric property is a small integer expressing a PCC's
   preference to use the PCE that claims this PC capability (modeled by
   this instance of a PcPolicyPcCapabilityComponent sub-class) for a
   particular path computation request. The pceMetric property has a
   special role in the PCE evaluation process. This is the only writable
   property of the PcPolicyPcCapabilityComponent class and any of its
   sub-classes. In other words, this is the only property whose value
   could be overwritten as a result of associated policy action(s). It
   is important to note that in contrast with PcPolicyPcReqRspComponent
   sub-classes (describing PC constraints, see 3.1), which properties
   are set via associated policy actions, all properties of
   PcPolicyPcCapabilityComponent sub-classes are pre-set (normally, by
   Policy Management Tool), and, as far as a PCC PEP is concerned, are
   read-only: they could be used as condition variables, but not as
   action variables. The only exception is the pceMetric property, which
   value is re-set during the PCE evaluation process. The process could



Bryskin & Berger        Expires September 5, 2007              [Page 46]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   be described as follows. It starts after a PC request is built.
   During the process policies, modeling PC capabilities (instances of
   PcPolicyPcCapabilityComponent sub-classes) associated with a given
   PCE are applied. If conditions of a such policy are evaluated to
   TRUE, its actions are expected to set the pceMetric policy property
   to some positive integer, thus, making the PCE "more attractive" for
   the path computation request.

   For example, an instance of the PcPolicyE2EDelayObjectiveSupport
   class, modeling the PC capability to support minimal end-to-end delay
   objective function, may be associated with one condition and one
   action in a way that could be expressed as follows:

     if(E2EDelayOptimizationIsRequested)
        then e2eDelayOptimizationSupport.pceMetric =
                                                 E2E_DELAY_OPT_METRIC;

   where

   E2EDelayOptimizationIsRequested is a policy (Boolean) variable which
   is set to TRUE if the minimal end-to-end delay optimization is
   specified in the path computation request, for which a PCE is being
   evaluated.  E2E_DELAY_OPT_METRIC is a policy value expressing the
   attractiveness of a PCE claiming to support such optimization.

   After all PC capability policies associated with a given PCE are
   applied, a PC policy action "Evaluate PCE For PC Request" (an
   instance of the PcPolicyActionEvaluatePCE class) is expected to be
   executed. The action enables the selection of PCE that suits the best
   for a given path computation request (see more details in 3.4.5).

   Multiple instances of PcPolicyPcCapabilityComponent sub-classes could
   be aggregated into a capability set - an instance of the container
   class PcPolicyPcCapabilitySet - using the aggregation class
   PcPolicyPcCapabilityComponentInPcCapabilitySet. Instances of the
   PcPolicyPcCapabilitySet class could be nested within each other. One
   or more instances of the PcPolicyPcCapabilitySet class could be
   associated with a given instance of the PcPolicyActionEvaluatePCE
   class.


3.2.2. PcPolicyPCELocation class

   PcPolicyPCELocation is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyPCELocation class specifies the IP address which the PCE
   could be reached at.




Bryskin & Berger        Expires September 5, 2007              [Page 47]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   The class has a single property:

     pceAddress  - IPv4 or IPv6 value specifying an IP address
                   associated with the PCE.


3.2.3. PcPolicyPCEAdminPriority class

   PcPolicyPCEAdminPriority is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyPCEAdminPriority class specifies the network operator
   preference for the associated PCE to be used for path computations.
   The ability to express the PCE administrative priority is necessary
   to balance path computation load.

   The class has a single property:

     pcePriority  - an integer expressing the PCE's administratively
                    assigned priority


3.2.4. PcPolicyTEVisibilityDomains class

   PcPolicyTEVisibilityDomains is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyTEVisibilityDomains class specifies a set of path computation
   domains for which the associated PCE has an access to the information
   about inventory and availability of network resources, and hence
   across which it can compute explicit TE paths. This information is
   useful in the PCE selection process, when it is known a prior which
   domains the resulting path(s) will cross.

   The class has a single property:

     teDomains  - a set of IPv4 or IPv6 addresses, each address from
                  the set identifies one path computation domain that
                  is TE visible to the PCE


3.2.5. PcPolicyDestinationDomains class

   PcPolicyDestinationDomains is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyDestinationDomains class specifies a set of path computation
   domains towards which the associated PCE can compute (perhaps, non-
   explicit) TE paths, even when the PCE does not have full TE
   visibility into these domains. This information is useful in the PCE
   selection process, when it is known a prior which domains the



Bryskin & Berger        Expires September 5, 2007              [Page 48]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   requested path destination(s) might be located.

   The class has a single property:

     destDomains  - a set of IPv4 or IPv6 addresses, each address from
                    the set identifies one path computation domain in
                    direction towards which the PCE can compute paths


3.2.6. PcPolicyInterDomainCapability class

   PcPolicyInterdomainCapability is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyPCELocation class specifies the scope(s) of the paths that
   could be computed by the associated PCE.

   The class has the following properties:

     fIntraArea - a Boolean indicating whether the PCE is capable
                  (TRUE) to compute paths that do not cross IGP area
                  boundaries

     fInterArea - a Boolean indicating whether the PCE is capable
                  (TRUE) to compute paths that may cross IGP area
                  boundaries, but not AS boundaries

     fInterAS   - a Boolean indicating whether the PCE is capable
                  (TRUE) to compute paths that may cross inter-AS
                  boundaries

     fInterLayer - a Boolean indicating whether the PCE is capable
                  (TRUE) to compute paths that span multiple (more
                  than two) network layers


3.2.7. PcPolicyRequestPrioritizationSupport class

   PcPolicyRequestPrioritizationSupport is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyRequestPrioritizationSupport class indicates that the
   associated PCE honors the path computation request prioritization.

   The class does not have any properties.








Bryskin & Berger        Expires September 5, 2007              [Page 49]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


3.2.8. PcPolicyLinkBanwidthConstraintSupport class

   PcPolicyLinkBanwidthConstraintSupport is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyLinkBanwidthConstraintSupport class indicates that the
   associated PCE supports the link available bandwidth constraint (see
   3.1.2).

   The class does not have any properties.


3.2.9. PcPolicyLinkAffinitiesConstraintSupport class

   PcPolicyLinkAffinitiesConstraintSupport is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyLinkAffinitiesConstraintSupport class indicates that the
   associated PCE supports the link affinity constraint (see 3.1.3).

   The class does not have any properties.


3.2.10. PcPolicyLinkProtectionConstraintSupport class

   PcPolicyLinkProtectionConstraintSupport is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyLinkProtectionConstraintSupport class indicates that the
   associated PCE supports the link protection capability constraint
   (see 3.1.4).

   The class does not have any properties.


3.2.11. PcPolicyLinkSwitchCapConstraintSupport class

   PcPolicyLinkSwitchCapConstraintSupport is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyLinkSwitchCapConstraintSupport class indicates that the
   associated PCE supports the link switching capability constraint (see
   3.1.5).

   The class does not have any properties.










Bryskin & Berger        Expires September 5, 2007              [Page 50]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


3.2.12. PcPolicyExclusionConstraintSupport class

   PcPolicyExclusionConstraintSupport is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyExclusionConstraintSupport class indicates that the
   associated PCE supports the exclusion constraints (see 3.1.7).

   The class does not have any properties.


3.2.13. PcPolicySharedLinkConstraintSupport class

   PcPolicySharedLinkConstraintSupport is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicySharedLinkConstraintSupport class indicates that the
   associated PCE supports the shared link constraint (see 3.1.8).

   The class does not have any properties.


3.2.14. PcPolicyInclusionConstraintSupport class

   PcPolicyInclusionConstraintSupport is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyInclusionConstraintSupport class indicates that the
   associated PCE supports the inclusion constraints (see 3.1.10).

   The class does not have any properties.


3.2.15. PcPolicyConcurrentPathComputationCapability class

   PcPolicyConcurrentPathComputationCapability is a class derived from
   the PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyConcurrentPathComputationCapability class indicates that the
   associated PCE is capable of concurrent computation of several (more
   than one) paths between the specified sets of sources and
   destinations.

   The class has the following properties:

     maxPathNumber - an integer specifying the maximal number of paths
                     that could be computed concurrently
     fLinkDisjoint - a Boolean indicating whether the PCE is capable
                     (TRUE) to compute link-disjoint paths (see
                     discussions on path disjointedness in 3.1.13)
     fNodeDisjoint - a Boolean indicating whether the PCE is capable
                     (TRUE) to compute node-disjoint paths



Bryskin & Berger        Expires September 5, 2007              [Page 51]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


     fSRLGDisjoint - a Boolean indicating whether the PCE is capable
                     (TRUE) to compute SRLG-disjoint paths
     fBestDisjoint - a Boolean indicating whether the PCE is capable
                     (TRUE) to compute best-disjoint paths
     fConverged    - a Boolean indicating whether the PCE is capable
                     (TRUE) to compute paths that share maximum TE links


3.2.16. PcPolicyShortestPathObjectiveSupport class

   PcPolicyShortestPathObjectiveSupport is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyShortestPathObjectiveSupport class indicates that the
   associated PCE supports path selection optimization according to the
   shortest path criteria (see 3.1.14).

   The class does not have any properties.


3.2.17. PcPolicyCostUpperBoundConstraintSupport class

   PcPolicyCostUpperBoundConstraintSupport is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyCostUpperBoundConstraintSupport class indicates that the
   associated PCE supports the upper bound path cost constraint (see
   3.1.16).

   The class does not have any properties.


3.2.18. PcPolicyE2EDelayObjectiveSupport class

   PcPolicyE2EDelayObjectiveSupport is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyE2EDelayObjectiveSupport class indicates that the associated
   PCE supports path selection optimization according to the minimal
   end- to-end delay criteria (see 3.1.15).

   The class does not have any properties.


3.2.19. PcPolicyE2EDelayUpperBoundConstraintSupport class

   PcPolicyE2EDelayUpperBoundConstraintSupport is a class derived from
   the PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyE2EDelayUpperBoundConstraintSupport class indicates that the
   associated PCE supports the upper bound end-to-end delay constraint
   (see 3.1.17).



Bryskin & Berger        Expires September 5, 2007              [Page 52]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   The class does not have any properties.


3.2.20. PcPolicyGMPLSWavelengthContinuityConstraintSupport class

   PcPolicyGMPLSWavelengthContinuityConstraintSupport is a class derived
   from the PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyGMPLSWavelengthContinuityConstraintSupport class indicates
   that the associated PCE supports the OS wavelength continuity
   constraint (see 3.1.18).

   The class does not have any properties.


3.2.21. PcPolicyGMPLSOSNRObjectiveSupport class

   PcPolicyGMPLSOSNRObjectiveSupport is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyGMPLSOSNRObjectiveSupport class indicates that the associated
   PCE supports path selection optimization according to the maximal
   OSNR criteria (see 3.1.19).

   The class does not have any properties.


3.2.22. PcPolicyGMPLSDispersionObjectiveSupport class

   PcPolicyGMPLSDispersionObjectiveSupport is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyGMPLSDispersionObjectiveSupport class indicates that the
   associated PCE supports path selection optimization according to the
   minimal OS dispersion criteria (see 3.1.20).

   The class does not have any properties.


3.2.23. PcPolicyGMPLSAttenuationObjectiveSupport class

   PcPolicyGMPLSAttenuationObjectiveSupport is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyGMPLSAttenuationObjectiveSupport class indicates that the
   associated PCE supports path selection optimization according to the
   minimal OS attenuation criteria (see 3.1.21).

   The class does not have any properties.






Bryskin & Berger        Expires September 5, 2007              [Page 53]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


3.2.24. PcPolicyGMPLSMinimalRegenerationsObjectiveFunction class

   PcPolicyGMPLSMinimalRegenerationsObjectiveFunction is a class derived
   from the PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyGMPLSMinimalRegenerationsObjectiveFunction class indicates
   that the associated PCE supports path selection optimization
   according to the minimal number of OS regenerations criteria (see
   3.1.22).

   The class does not have any properties.


3.2.25. PcPolicyGMPLSOSNRLowerBoundConstraintSupport class

   PcPolicyGMPLSOSNRLowerBoundConstraintSupport is a class derived from
   the PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyGMPLSOSNRLowerBoundConstraintSupport class indicates that the
   associated PCE supports the OSNR lower bound constraint (see 3.1.23).

   The class does not have any properties.


3.2.26. PcPolicyGMPLSDispersionUpperBoundConstraintSupport class

   PcPolicyGMPLSDispersionUpperBoundConstraintSupport is a class derived
   from the PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyGMPLSDispersionUpperBoundConstraintSupport class indicates
   that the associated PCE supports the OS dispersion upper bound
   constraint (see 3.1.24).

   The class does not have any properties.


3.2.27. PcPolicyGMPLSAttenuationUpperBoundConstraintSupport class

   PcPolicyGMPLSAttenuationUpperBoundConstraintSupport is a class
   derived from the PcPolicyPcCapabilityComponent class. An instance of
   the PcPolicyGMPLSAttenuationUpperBoundConstraintSupport class
   indicates that the associated PCE supports the OS attenuation upper
   bound constraint (see 3.1.25).

   The class does not have any properties.









Bryskin & Berger        Expires September 5, 2007              [Page 54]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


3.2.28. PcPolicyGMPLSRegenerationsUpperBoundConstraintSupport class

   PcPolicyGMPLSRegenerationsUpperBoundConstraintSupport is a class
   derived from the PcPolicyPcCapabilityComponent class. An instance of
   the PcPolicyGMPLSRegenerationsUpperBoundConstraintSupport class
   indicates that the associated PCE supports the number of OS
   regenerations upper bound constraint (see 3.1.26).

   The class does not have any properties.


3.2.29. PcPolicyGMPLSTransparentPathUpperBoundConstraintSupport class

   PcPolicyGMPLSTransparentPathUpperBoundConstraintSupport is a class
   derived from the PcPolicyPcCapabilityComponent class. An instance of
   the PcPolicyGMPLSTransparentPathUpperBoundConstraintSupport class
   indicates that the associated PCE supports the maximal length
   transparent segment constraint (see 3.1.27).

   The class does not have any properties.


3.2.30. PcPolicyP2MPComutationSupport class

   PcPolicyP2MPComutationSupport is a class derived from the
   PcPolicyPcCapabilityComponent class. An instance of the
   PcPolicyP2MPComutationSupport class indicates that the associated PCE
   can perform point-to-multipoint tree computations.

   The class does not have any properties.



3.3. Modeling PC policy relationships

   PC policies of the same type need to be aggregated together, and,
   then, associated with PC actions (for discussions on PC actions see
   3.4).  For example, in order for PC constraints to be considered in a
   given path computation, they should be aggregated into one or more
   constraint sets which, in turn, should be associated with the PC
   action "Request Path Computation".  In the PCPIM PC policy
   aggregations and associations are modeled via container and
   association classes described in this section.








Bryskin & Berger        Expires September 5, 2007              [Page 55]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


3.3.1. PcPolicyPcReqRspSet class

   PcPolicyPcReqRspSet is a class derived from the PolicyGroup class
   (introduced in [RFC3060]). This is a container class. It allows for
   aggregating of one or more instances of PcPolicyPcReqRspComponent
   sub- classes (modeling PC constraints) into a single set, using
   instances of the PcPolicyPcReqRspComponentInPcReqRspSet class.

   The sets may be unlimitedly nested within each other via instances of
   the PcPolicyPcReqRspSetInPcReqRspSet classes. The
   PcPolicyPcReqRspComponentInPcReqRspSet and
   PcPolicyPcReqRspSetInPcReqRspSet association classes are discussed
   later in this section.

   The PcPolicyPcReqRspSet does not have properties.


3.3.2. PcPolicyPcCapabilitySet class

   PcPolicyPcCapabilitySet is a class derived from the PolicyGroup class
   (introduced in [RFC3060]). This is a container class. It allows for
   aggregating of one or more instances of PcPolicyPcCapabilityComponent
   sub-classes (modeling PC capabilities) into a single set via
   instances of the PcPolicyPcCapabilityComponentInPcCapabilitySet
   class.  The sets may be unlimitedly nested within each other via
   instances of the  PcPolicyPcCapabilitySetInPcCapabilitySet classes.
   The PcPolicyPcCapabilityComponentInPcCapabilitySet and
   PcPolicyPcCapabilitySetInPcCapabilitySet are discussed later in this
   section.

   The PcPolicyPcCapabilitySet does not have properties.


3.3.3. PcPolicyPcReqRspComponentInPcReqRspSet class

   PcPolicyPcReqRspComponentInPcReqRspSet is a class derived from the
   PolicyComponentSet class (introduced in [RFC3460]). This is an
   association class. It is used for aggregating an instance of a
   PcPolicyPcReqRspComponent sub-class into an instance of the
   PcPolicyPcReqRspSet class.

   The PcPolicyPcReqRspComponentInPcReqRspSet has the following
   properties:

     GroupComponent [ref PcPolicyPcReqRspSet[0..n]]- a pointer to the
                  instance of the containing (PcPolicyPcReqRspSet)
                  class; the cardinality [0..n] means that zero, one or
                  more instances of the PcPolicyPcReqRspSet class could



Bryskin & Berger        Expires September 5, 2007              [Page 56]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


                  be associated with (that is, contain within itself)
                  the same instance of the PcPolicyPcReqRspComponent
                  sub-class by this association

     PartComponent [ref PcPolicyPcReqRspComponent[1..n]]- a pointer to
                  the instance of the contained
                  (PcPolicyPcReqRspComponent sub-) class; the
                  cardinality [1..n] means that one or more instances
                  of PcPolicyPcReqRspComponent sub-classes could be
                  associated with (that is, contained in) the same
                  instance of the PcPolicyPcReqRspSet class by this
                  association


3.3.4. PcPolicyPcReqRspSetInPcReqRspSet class

   PcPolicyPcReqRspSetInPcReqRspSet is a class derived from the
   PolicyComponentSet class (introduced in [RFC3460]). This is an
   association class. It is used for nesting an instance of the
   PcPolicyPcReqRspSet class into another instance of the
   PcPolicyPcReqRspSet class.

   The PcPolicyPcReqRspSetInPcReqRspSet has the following properties:

     GroupComponent [ref PcPolicyPcReqRspSet[0..n]]- a pointer to the
                 nesting instance of the PcPolicyPcReqRspSet class; the
                 cardinality [0..n] means that zero, one or more
                 instances of the PcPolicyPcReqRspSet class could nest
                 the same instance of this class by this association

     PartComponent [ref PcPolicyPcReqRspSet [0..n]]- a pointer to the
                 nested instance of the PcPolicyPcReqRspSet class; the
                 cardinality [0..n] means that zero, one or more
                 instances of the PcPolicyPcReqRspSet class could be
                 nested within the same instance of this class by this
                 association


3.3.5. PcPolicyPcCapabilityComponentInPcCapabilitySet class

   PcPolicyPcCapabilityComponentInPcCapabilitySet is a class derived
   from the PolicyComponentSet class (introduced in [RFC3460]). This is
   an association class. It is used for aggregating an instance of a
   PcPolicyPcCapabilityComponent sub-class into an instance of the
   PcPolicyPcCapabilitySet class.

   The PcPolicyPcCapabilityComponentInPcCapabilitySet has the following
   properties:



Bryskin & Berger        Expires September 5, 2007              [Page 57]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   GroupComponent [ref PcPolicyPcCapabilitySet[1..n]]- a pointer to
         the instance of the containing (PcPolicyPcCapabilitySet)
         class; the cardinality [1..n] means that one or more
         instances of the PcPolicyPcCapabilitySet class could be
         associated with (that is, contain within itself) the same
         instance of the PcPolicyPcCapabilityComponent sub-class by
         this association

   PartComponent [ref PcPolicyPcCapabilityComponent[1..n]]- a pointer
         to the instance of the contained (PcPolicyPcCapabilityComponent
         sub-) class; the cardinality [1..n] means that one or more
         instances of PcPolicyPcCapabilityComponent sub-class could
         be associated with (that is, contained in) the same instance
         of the PcPolicyPcCapabilitySet class by this association


3.3.6. PcPolicyPcCapabilitySetInPcCapabilitySet class

   PcPolicyPcCapabilitySetInPcCapabilitySet is a class derived from the
   PolicyComponentSet class (introduced in [RFC3460]). This is an
   association class. It is used for nesting an instance of the
   PcPolicyPcCapabilitySet class into another instance of the same
   class.

   The PcPolicyPcCapabilitySetInPcCapabilitySet has the following
   properties:

   GroupComponent [ref PcPolicyPcCapabilitySet[0..n]]- a pointer to the
             nesting instance of the PcPolicyPcCapabilitySet class;
             the cardinality [0..n] means that zero, one or more
             instances of the PcPolicyPcCapabilitySet class could nest
             the same instance of this class by this association

   PartComponent [ref PcPolicyPcCapabilitySet [0..n]]- a pointer to the
             nested instance of the PcPolicyPcCapabilitySet class;
             the cardinality [0..n] means that zero, one or more
             instances of the PcPolicyPcCapabilitySet class could be
             nested within the same instance of this class by this
             association


3.3.7. PcPolicyPcReqRspComponentInPcSecondaryPathRequest class

   It was mentioned in 3.1.12 that PCPIM allows for requesting a
   distinct set of PC constraints for each of secondary paths that is
   computed concurrently with the primary and zero or more other
   secondary paths.  Such a complex structure of the path computation
   request is modeled by associating an instance of the



Bryskin & Berger        Expires September 5, 2007              [Page 58]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   PcPolicyPcSecondaryPathRequest class with zero or more instances of
   any of PcPolicyPcReqRspComponent sub-class via separate instances of
   the PcPolicyPcReqRspComponentInPcSecondaryPathRequest class. The
   class is derived from the Dependency class (introduced in [RFC3060]).

   The PcPolicyPcReqRspComponentInPcSecondaryPathRequest has the
   following properties:

   Antecendent [ref PcPolicySecondaryPathRequest [0..n]]- a pointer to
           an instance of the PcPolicySecondaryPathRequest class; the
           cardinality [0..n] means that zero, one or more instances
           of the PcPolicySecondaryPathRequest class could be associated
           with (share) a given instance of a PcPolicyPcReqRspComponent
           sub-class by this association

   Dependent [ref PcPolicyPcReqRspComponent [0..n]]- a pointer to an
           instance of a PcPolicyPcReqRspComponent sub-class; the
           cardinality [0..n] means that zero, one or more instances of
           PcPolicyPcReqRspComponent sub-classes could be associated
           with the same instance of the PcPolicySecondaryPathRequest
           class by this association


3.3.8. PcPolicyPcReqRspSetInPcPolicyAction and
   PolicyImplicitVariableInPcPolicyAction classes

   PC policy actions (such as "Request Path Computation" modeled by the
   PcPolicyActionRequestPathComputation class (see 3.4) need to have an
   access to the properties of the PC constraints and/or PC policy
   variables related to the request.

   The access to the PC constraints is modeled by associating an
   instance of a PcPolicyAction sub-class with one or more instances of
   the PcPolicyPcReqRspSet class via separate instances of the
   PcPolicyPcReqRspSetInPcPolicyAction class.

   The access to the PC policy variables is modeled by associating an
   instance of a PcPolicyAction sub-class with one or more instances of
   PolicyImplicitVariable ([RFC3460]) sub-class(es) via separate
   instances of the PolicyImplicitVariableInPcPolicyAction class.

   The PcPolicyPcReqRspSetInPcPolicyAction class is derived from the
   Dependency class (introduced in [RFC3060]).

   The class has the following properties:

   Antecendent [ref PcPolicyAction [0..n]]- a pointer to an instance of
           a PcPolicyAction sub-class; the cardinality [0..n] means that



Bryskin & Berger        Expires September 5, 2007              [Page 59]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


           zero, one or more instances of one or more PcPolicyAction
           sub-class(es) could be associated with (share) a given
           instance of the PcPolicyPcReqRspSet class by this association

   Dependent [ref PcPolicyPcReqRspSet [0..n]]- a pointer to an instance
           of the PcPolicyPcReqRspSet class; the cardinality [0..n]
           means that zero, one or more instances of the
           PcPolicyPcReqRspSet class could be associated with the
           same instance of a PcPolicyAction sub-class by this
           association

   The PolicyImplicitVariableInPcPolicyAction class is also derived from
   the Dependency class.

   The class has the following properties:

   Antecendent [ref PcPolicyAction [0..n]]- a pointer to an instance of
           a PcPolicyAction sub-class; the cardinality [0..n] means that
           zero, one or more instances of one or more PcPolicyAction
           sub-class(es) could be associated with (share) a given
           instance of a PolicyImplicitVariable sub-class by this
           association

   Dependent [ref PolicyImplicitVariable [0..n]]- a pointer to an
           instance of a PolicyImplicitVariable sub-class; the
           cardinality [0..n] means that zero, one or more instances
           of one or more PolicyImplicitVariable sub-class(es) could
           be associated with the same instance of a PcPolicyAction
           sub-class by this association


3.3.9. PcPolicyPcCapabilitySetInPcPolicyActionEvaluatePCE class

   The "Evaluate PCE" PC action (modeled by the
   PcPolicyActionEvaluatePCE class (see 3.4)) needs to have an access to
   the properties of the PC capabilities published for any given PCE.
   This access is modeled by associating an instance of the
   PcPolicyActionEvaluatePCE class with one or more instances of the
   PcPolicyPcCapabilitySet class via separate instances of the
   PcPolicyPcCapabilitySetInPcPolicyActionEvaluatePCE class. The class
   is derived from the Dependency class (introduced in [RFC3060]).

   The PcPolicyPcCapabilitySetInPcPolicyActionEvaluatePCE has the
   following properties:

     Antecendent [ref PcPolicyActionEvaluatePCE [0..n]]- a pointer to an
           instance of the PcPolicyActionEvaluatePCE class; the
           cardinality [0..n] means that zero, one or more instances



Bryskin & Berger        Expires September 5, 2007              [Page 60]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


           of the PcPolicyActionEvaluatePCE class could be associated
           with (share) a given instance of the PcPolicyPcCapabilitySet
           class by this association

     Dependent [ref PcPolicyPcCapabilitySet [1..n]]- a pointer to an
           instance of the PcPolicyPcCapabilitySet class; the
           cardinality [1..n] means that one or more instances of the
           PcPolicyPcCapabilitySet class could be associated with the
           same instance of the PcPolicyActionEvaluatePCE class by this
           association


3.4. Modeling PC actions

   PC policies introduced in 3.1 and 3.2 - PC constraints and PC
   capabilities - are modeled based on the SimplePolicyCondition and
   SimplePolicyAction classes. Applying such policies on a PCC or PCE
   PEP results in setting new values for properties of the policy class
   instances and/or PC policy variables (see 3.5), but does not require
   any processing outside of the rule engine, such as PCC/PCE
   reconfiguration or invoking other PCC/PCE software modules.  As was
   mentioned on several occasions in this document, such approach is
   beneficial, because it allows great deal of flexibility in
   introducing new policies (that is, new PC constraints and
   capabilities) without requiring modification of the PCC/PCE software.

   Clearly, not all of the PC policies could be modeled this way. A PCC
   PEP, for example, after applying all policies for building a path
   computation request (setting necessary PC constraints) and selecting
   suitable PCE for the request, needs to actually send the request to
   the PCE, that is, invoke a PCC-PCE communication protocol to encode
   and deliver the request. Let's call such PC action "Request Path
   Computation" action (see more 3.4.2). Note that the PCC PEP rule
   engine, while applying PC actions such as the "Request Path
   Computation" action, (in sharp contrast with all previously discussed
   PC policies) DOES need to understand the semantics of the action,
   because it needs to translate the action into actual API call(s).
   Also note that the same PC action may be interpreted differently on
   different PEPs. For example, the result of the interpretation of the
   "Request Path Computation" action on a PCE PEP is one or more calls
   to local path computation engine(s), while on a PCC PEP is a local
   call to a PCC- PCE communication protocol, such as one introduced in
   [PCEP].

   Furthermore, two PCC or PCE PEPs may translate the same PC action
   into a different set of vendor- and device-specific operations.

   An important design goal of PCPIM is to model PC actions via a small



Bryskin & Berger        Expires September 5, 2007              [Page 61]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   number of well defined classes, while allowing and encouraging
   unlimited introduction (by PC policy writers) of new PC constraints
   and capabilities via sub-classing the PCPIM classes, introduced in
   sections 3.1 and 3.2, as well as adding new similar classes. PCPIM
   classes, modeling the PC actions, are discussed in the remainder of
   this section.


3.4.1. PcPolicyAction class

   PcPolicyAction is a class derived from the PolicyAction class
   introduced in [RFC3060]. PcPolicyAction class is an abstract class,
   and hence cannot be directly instantiated. The
   PcPolicyActionRequestPathComputation,
   PcPolicyActionSendPathComputationResponse and
   PcPolicyActionProcessPathComputationResponse are derived from the
   PcPolicyAction class. The class has the following properties:

     PCEID - IPv4 or IPv6 value specifying the peer PCE ID
     PCCID - IPv4 or IPv6 value specifying the peer PCC ID


3.4.2. PcPolicyActionRequestPathComputation class

   PcPolicyActionRequestPathComputation is a class derived from the
   PcPolicyAction class.  The PcPolicyActionRequestPathComputation class
   models the "Request Path Computation" PC policy action, mentioned at
   the top of 3.4. An instance of the
   PcPolicyActionRequestPathComputation class can be associated with
   zero or more instances of the PcPolicyPcReqRspSet class(see 3.3.1)
   via separate instances of the PcPolicyPcReqRspSetInPcPolicyAction
   class (see 3.3.8) and zero or more instances of
   PolicyImplicitVariable sub-class(es) (see 3.5) via separate instances
   of the PolicyImplicitVariableInPcPolicyAction class (see 3.3.8).

   This PC policy action could be informally stated as: "Request path
   computation, using the specified set of path computation constraints
   and/or path computation policy variables".

   The interpretation of the "Request Path Computation" PC policy action
   on a PCC PEP informally sounds as: "Encode the associated PC
   constraints and PC policy variables into a path computation request;
   send the request to the specified peer PCE and wait for the
   response". It is assumed that:

   a) the PCC-PCE protocol has a transport tool (an opaque object) which
      could be used for delivery of the associated PC constraint
      policies and PC policy variables;



Bryskin & Berger        Expires September 5, 2007              [Page 62]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   b) the transferred by the PCC-PCE protocol PC constraint policies and
      PC policy variables could be presented to the PCE PEP in the same
      format as local policies (the ones that are delivered to the PCE
      PEP from the PCE PDP)

   The interpretation of the "Request Path Computation" PC policy action
   on a PCE PEP informally could be expressed as follows:

   a) Use associated with the path computation request constraints
      (properties of PC constraint policy instances) to configure a call
      to a local path computation engine;

   b) Call the path computation engine;

   c) If the path computation fails, relax optional constraints of the
      first round of the constraint relaxation (see 3.1.1.) and call the
      path computation engine again;

   d) If the path computation fails, relax optional constraints of the
      next round of the constraint relaxation, and call the path
      computation engine again;

   e) Repeat the previous step until either the path computation
      succeeds or there are no more optional constraints left to relax.

   Note that in addition to constraints arriving in the path computation
   request a PCE may need to apply a set of local PC constraint policies
   (those that are delivered by the PCE PDP). The latter policies could
   be specific to a particular request and/or requesting PCC and/or
   source/destination/transit PC domains. For example, for certain PCCs
   there could be a policy to further constrain the path computation or,
   on the contrary, relax some constraints, specified by the PCC. The PC
   policy variables sent by the PCC in the request are likely to be an
   input for the PCE PEP local policies.

   Obviously, the final configuration of the call to the path
   computation engine should reflect both local and remote (coming in
   the request) policies. It is quite possible that some policies from
   one set will contradict the similar policies from another set. For
   example, a PCC may require the end-to-end delay optimization for the
   path selection, and a local PCE policy may explicitly require not to
   ask for such optimization. The PolicyRule priority mechanism,
   introduced in [RFC3060] and further enhanced in [RFC3460], could be
   used to make sure that local PCE policies always "win".

   The PcPolicyActionRequestPathComputation class does not have any
   properties.




Bryskin & Berger        Expires September 5, 2007              [Page 63]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


3.4.3. PcPolicyActionSendPathComputationResponse class

   PcPolicyActionSendPathComputationResponse is a class derived from the
   PcPolicyAction class.  The PcPolicyActionRequestPathComputation class
   models the "Send Response For the Path Computation Request" PC policy
   action. An instance of the PcPolicyActionSendPathComputationResponse
   class can be associated with zero or more instances of the
   PcPolicyPcReqRspSet class(see 3.3.1) via separate instances of the
   PcPolicyPcReqRspSetInPcPolicyAction class (see 3.3.8) and zero or
   more instances of PolicyImplicitVariable sub-class(es) (see 3.5) via
   separate instances of the PolicyImplicitVariableInPcPolicyAction
   class (see 3.3.8).

   This PC policy action could be informally expressed as follows:

      Send a path computation response for the processed path
      computation request, providing details on the resulting path(s)
      (e.g., actual path costs or end-to-end delay characteristics) and
      conditions on which their computation was possible to achieve
      (e.g., set of constraints that were relaxed, additionally imposed
      or overruled by the PCE), and PC policy variables pertinent to the
      response.

   This PC policy action is meaningful/applicable only on PCE PEPs.

   The PcPolicyActionSendPathComputationResponse class does not have
   properties.


3.4.4. PcPolicyActionProcessPathComputationResponse class

   PcPolicyActionProcessPathComputationResponse is a class derived from
   the PcPolicyAction class.  The
   PcPolicyActionProcessPathComputationResponse class models the
   "Process the Response For the Path Computation Request" PC policy
   action. An instance of the
   PcPolicyActionProcessPathComputationResponse class can be associated
   with zero or more instances of the PcPolicyPcReqRspSet class(see
   3.3.1) via separate instances of the
   PcPolicyPcReqRspSetInPcPolicyAction class (see 3.3.8) and zero or
   more instances of PolicyImplicitVariable sub- class(es) (see 3.5) via
   separate instances of the PolicyImplicitVariableInPcPolicyAction
   class (see 3.3.8).

   The instances of the PcPolicyPcReqRspSet class and
   PolicyImplicitVariable sub-class(es) model policy information sent by
   the PCE to the requesting PCC about computed paths.  Examples include
   path costs, end-to-end delay characteristics, relaxed constraints,



Bryskin & Berger        Expires September 5, 2007              [Page 64]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   constraints additionally imposed or overruled by the PCE, and the
   list of path computation domain IDs the paths will traverse.

   This PC policy action could be informally expressed as follows:

      "Process a path computation response for the requested path
      computation request, possibly generating a new set of constraints
      and requesting an additional path computation possibly from a
      different PCE".

   For example, the result of the processing could be setting new values
   for one or more PC policy variables, which PC policies for setting
   constraints and selecting PCE depend on.

   This PC policy action is meaningful/applicable only on PCC PEPs.

   The PcPolicyActionProcessPathComputationResponse class does not have
   properties.


3.4.5. PcPolicyActionEvaluatePCE class

   PcPolicyActionEvaluatePCE is a class derived directly from the
   PolicyAction [RFC3060] class, rather, than from the PcPolicyAction
   class as each of the previously described PC policy action classes.
   The PcPolicyActionEvaluatePCE class models the "Evaluate PCE For PC
   Request" PC policy action. In order to be meaningful an instance of
   the PcPolicyActionEvaluatePCE class needs to be associated with one
   or more instances of the PcPolicyPcCapabilitySet class (see 3.3.2)
   via separate instances of the
   PcPolicyPcCapabilitySetInPcPolicyActionEvaluatePCE class (see 3.3.9).

   The process of PCE evaluation is described in 3.2.1

   This PC policy action could be informally expressed as follows:

      "Summarize the pceMetric property of all associated instances of
      PcPolicyPcCapabilityComponent sub-classes; store the computed sum
      in the PcPolicyEvaluatedPCEMetricVariable and the PCEID of the
      evaluated PCE in the PcPolicyEvaluatedPCEIDVariable".

   The "Evaluate PCE For PC Request" PC policy action enables the
   selection of a PCE for a given path computation request via an
   instance of the PolicyRule class ([RFC3060], [RFC3460]) modeling the
   following logic:

        if(PcPolicyEvaluatedPCEMetricVariable >
                                      PcPolicyPeerPCEMetricVariable)



Bryskin & Berger        Expires September 5, 2007              [Page 65]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


             then PcPolicyPeerPCEMetricVariable =
                          PcPolicyEvaluatedPCEMetricVariable;
                  PcPolicyPeerPCEIDVariable =
                          PcPolicyEvaluatedPCEIDVariable;

   This PC policy action is meaningful/applicable only on PCC PEPs.  The
   PcPolicyActionEvaluatePCE does not have properties.


3.5. Modeling PC variables

   PC policy provides the necessary flexibility for the network operator
   to influence on a provisioned service path selection. To accomplish
   this objective PC policy needs some input, generated outside of the
   policy realm, to be used as conditions for the policy actions.
   Specifically, PCPIM needs to connect the PC policies modeled by PCPIM
   with the information that is important for the path selection such as
   service provisioning/signaling message or SLA contents. For example,
   in order to constrain the path computation for a given service, PC
   policy needs information about the service setup parameters. In a
   model, based on the [RFC3060]/[RFC3460] policy class hierarchies,
   such input is modeled via policy implicit variables (the
   PolicyImplicitVariable sub-classes). The policy framework defines the
   value type and acceptable values for such variables, however, their
   actual values are expected to be set before the policy is applied.
   Under these circumstances the variables could be associated with
   policy conditions and hence produce necessary connection between the
   policy and the network state. For instance, the
   PcPolicyServiceLinkProtectionFlagsVariable is expected to contain the
   link protection flags provisioned for a GMPLS tunnel. The variable
   could be associated with one or more instances of the
   SimplePolicyCondition class ([RFC3460]),  which, in turn, could be
   associated with the PC policies, constraining the path computation
   request (instances of PcPolicyPcReqRspComponent sub-classes) and/or
   selecting a PCE for the computation (instances of
   PcPolicyPcCapabilityComponent sub-classes).

   The purpose of this section is to define frequently used variables in
   PC policy domains that could be used to form PC policy conditions and
   actions. The described set could be easily extended. Notice that this
   section only adds to the variable classes as defined in [RFC3460] and
   reuses the mechanism defined there.









Bryskin & Berger        Expires September 5, 2007              [Page 66]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


3.5.1. PcPolicyServiceSourceIPv4Variable

   PcPolicyServiceSourceIPv4Variable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   unordered set of IPv4 values specifying all source address(es) of the
   provisioned service.


3.5.2. PcPolicyServiceSourceIPv6Variable

   PcPolicyServiceSourceIPv6Variable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   unordered set of IPv6 values specifying all source address(es) of the
   provisioned service.


3.5.3. PcPolicyServiceDestinationIPv4Variable

   PcPolicyServiceDestinationIPv4Variable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   unordered set of IPv4 values specifying all destination address(es)
   of the provisioned service.


3.5.4. PcPolicyServiceDestinationIPv6Variable

   PcPolicyServiceDestinationIPv6Variable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   unordered set of IPv6 values specifying all destination address(es)
   of the provisioned service.


3.5.5. PcPolicyServiceMcstGroupIDVariable

   PcPolicyServiceMcstGroupIDVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   integer value specifying network scope unique multicast group ID of
   the provisioned point-to-multipoint service.


3.5.6. PcPolicyServiceEncodingTypeVariable

   PcPolicyServiceEncodingTypeVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   integer value specifying the provisioned service data encoding type
   according to [RFC3471].





Bryskin & Berger        Expires September 5, 2007              [Page 67]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


3.5.7. PcPolicyServiceSwitchingTypeVariable

   PcPolicyServiceSwitchingTypeVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   integer value specifying the provisioned service data switching type
   according to [RFC3471].


3.5.8. PcPolicyServiceGPIDVariable

   PcPolicyServiceGPIDVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   integer value specifying the provisioned service GPID type according
   to [RFC3471].


3.5.9. PcPolicyServiceBandwidthVariable

   PcPolicyServiceBandwidthVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   IEEE floating point format value (PCPolicyFPValue class see 3.6.1)
   specifying the provisioned service bandwidth requirements in bytes
   per second units.


3.5.10. PcPolicyServiceBandwidthDirectionalityVariable

   PcPolicyServiceBandwidthDirectionalityVariable is a class derived
   from the PolicyImplicitVariable ([RFC3460]) class. The variable
   contains an integer specifying the provisioned service bandwidth
   directionality requirements. The acceptable values are:

      1 - requested bandwidth must be available only in forward (from
          service source to service destination) direction
      2 - requested bandwidth must be available only in reverse (from
          service destination to service source) direction
      3 - requested bandwidth must be available in both directions


3.5.11. PcPolicyServiceBandwidthPriorityVariable

   PcPolicyServiceBandwidthPriorityVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   integer from the range {0...7}, specifying the priority level at
   which the bandwidth must be available for the service.






Bryskin & Berger        Expires September 5, 2007              [Page 68]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


3.5.12. PcPolicyServicePathRecoveryFlagsVariable

   PcPolicyServicePathRecoveryFlagsVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains a bit
   field specifying the provisioned service path recovery flags as
   encoded in the PROTECTION object according to [RFC3471] and
   [E2ERECOVERY].


3.5.13. PcPolicyServiceLinkProtectionFlagsVariable

   PcPolicyServiceLinkProtectionFlagsVariable is a class derived from
   the PolicyImplicitVariable ([RFC3460]) class. The variable contains a
   bit field specifying the provisioned service link protection flags as
   encoded in the PROTECTION object according to [RFC3471].


3.5.14. PcPolicyServiceNameVariable

   PcPolicyServiceNameVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains a
   character string specifying the provisioned service readable name.


3.5.15. PcPolicyServiceIncludeAnyVariable

   PcPolicyServiceIncludeAnyVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains a bit
   field specifying the "IncludeAny" link affinities provisioned for the
   service according to [RFC3209].


3.5.16. PcPolicyServiceExcludeAnyVariable

   PcPolicyServiceExcludeAnyVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains a bit
   field specifying the "ExcludeAny" link affinities provisioned for the
   service according to [RFC3209].


3.5.17. PcPolicyServiceIncludeAllVariable

   PcPolicyServiceIncludeAllVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains a bit
   field specifying the "IncludeAll" link affinities provisioned for the
   service according to [RFC3209].





Bryskin & Berger        Expires September 5, 2007              [Page 69]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


3.5.18. PcPolicyServiceEROVariable

   PcPolicyServiceEROVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   unordered set of the PCPolicyROValue (see 3.6.4 ) values specifying
   all Explicit Route Objects (EROs), provisioned for the service
   according to [RFC3209].


3.5.19. PcPolicyServiceRROVariable

   PcPolicyServiceRROVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   unordered set of the PCPolicyROValue (see 3.6.4 ) values specifying
   all Record Route Objects (EROs), generated for the service according
   to [RFC3209].

   One use of this PC policy variable is to associate it with a path
   computation request for a service requiring the "make-before-break"
   re- routing.


3.5.20. PcPolicyServiceReferencePointIDVariable

   PcPolicyServiceReferencePointIDVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   integer specifying network unique ID of a reference point/SAP/port
   the service provisioning/signaling SETUP message was received from.


3.5.21. PcPolicyUserIDVariable

   PcPolicyUserIDVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   integer specifying network unique ID of the provisioned service
   user/customer as stated in the SLA.


3.5.22. PcPolicyServiceQOSVariable

   PcPolicyServiceQOSVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   integer specifying the provisioned service QOS as stated in the SLA.








Bryskin & Berger        Expires September 5, 2007              [Page 70]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


3.5.23. PcPolicyServiceCOSVariable

   PcPolicyServiceCOSVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   integer specifying the provisioned service COS as stated in the SLA.


3.5.24. PcPolicyServiceAvailabilityVariable

   PcPolicyServiceAvailabilityVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   integer specifying the provisioned service availability
   characteristic as stated in the SLA.


3.5.25. PcPolicyLocalPCCIDVariable

   PcPolicyLocalPCCIDVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   IPv4 or IPv6 value specifying the local PCC ID (the ID of a PCC
   controlled by the PCC-PEP applying the PC policy).


3.5.26. PcPolicyLocalPCEIDVariable

   PcPolicyLocalPCEIDVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   IPv4 or IPv6 value specifying the local PCE ID ( the ID of a PCE
   controlled by the PCE-PEP applying the PC policy).


3.5.27. PcPolicyPeerPCEIDVariable

   PcPolicyPeerPCEIDVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   IPv4 or IPv6 value specifying the peer PCE ID ( the ID of a PCE
   currently used or selected for a given path computation).


3.5.28. PcPolicyPeerPCEMetricVariable

   PcPolicyPeerPCEMetricVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   integer value specifying the PCE metric of a PCE currently used or
   selected for a given path computation (PCE metric is described in
   3.2.1 and 3.4.5).





Bryskin & Berger        Expires September 5, 2007              [Page 71]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


3.5.29. PcPolicyEvaluatedPCEIDVariable

   PcPolicyEvaluatedPCEIDVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   IPv4 or IPv6 value specifying the ID of a PCE candidate (the ID of a
   PCE currently evaluated for a given path computation).


3.5.30. PcPolicyEvaluatedPCEMetricVariable

   PcPolicyEvaluatedPCEMetricVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   integer value specifying the PCE metric of a PCE candidate (a PCE
   currently evaluated for a given path computation).


3.5.31. PcPolicyPeerPCCIDVariable

   PcPolicyPeerPCCIDVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   IPv4 or IPv6 value specifying the peer PCC ID ( the ID of a PCC
   requested currently undergoing path computation).


3.5.32. PcPolicyLocalPCDomainIDVariable

   PcPolicyLocalPCDomainIDVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   IPv4 or IPv6 value specifying a network unique ID of the local path
   computation domain.


3.5.33. PcPolicySourcePCDomainIDVariable

   PcPolicySourcePCDomainIDVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   unordered set of IPv4 or IPv6  values, specifying network unique IDs
   of all path computation domains, where the sources of the provisioned
   service are located.


3.5.34. PcPolicyDestinationPCDomainIDVariable

   PcPolicyDestinationPCDomainIDVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   unordered set of IPv4 or IPv6 values, specifying network unique IDs
   of all path computation domains, where the destinations of the
   provisioned service are located.



Bryskin & Berger        Expires September 5, 2007              [Page 72]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


3.5.35. PcPolicyTransitPCDomainIDVariable

   PcPolicyTransitPCDomainIDVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   ordered set of IPv4 or IPv6 values, specifying network unique IDs of
   all path computation domains which the provisioned service paths are
   expected to traverse.


3.5.36. PcPolicyPcRequestResponseCodeVariable

   PcPolicyPcRequestResponseCodeVariable is a class derived from the
   PolicyImplicitVariable ([RFC3460]) class. The variable contains an
   integer value, specifying the response code for the completed path
   computation request.


3.6. Modeling PC values

   Values are used in the policy information model as building blocks
   for the policy conditions and policy actions, as described in
   [RFC3060] and [RFC3460].  This section defines a set of value types
   that are used for PC policies. All value classes extend the
   PolicyValue class [RFC3460].  The sub-classes specify specific
   data/value types that are not defined in [RFC3460].


3.6.1. PCPolicyFPValue

   PCPolicyFPValue is a class derived from the PolicyValue ([RFC3460])
   class.  The values of PC variables and properties of PCPIM classes of
   this type must be interpreted as IEEE floating point format values.
   For example, this is the only acceptable value type for the
   PcPolicyServiceBandwidthVariable class (introduced in 3.5.8).


3.6.2. PCPolicyUnnumLinkIDValue

   PCPolicyUnnumLinkIDValue is a class derived from the PolicyValue
   ([RFC3460]) class. This value type is a combination of IPv4 and
   integer values. The values of PC variables and properties of PCPIM
   classes, containing unnumbered TE link IDs, are of the
   PCPolicyUnnumLinkIDValue type.








Bryskin & Berger        Expires September 5, 2007              [Page 73]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


3.6.3. PCPolicyROElementValue

   PCPolicyROElementValue is a class derived from the PolicyValue
   ([RFC3460]) class. This value type is a union of IPv4, IPv6,
   PCPolicyUnnumLinkIDValue and integer value types used to specify
   values for IPv4 numbered TE link IDs, IPv6 numbered TE link IDs,
   unnumbered TE link IDs and resource labels respectively in the RSVP-
   TE style Route Objects (EROs and RROs).


3.6.4. PCPolicyROValue

   PCPolicyROValue is a class derived from the PolicyValue ([RFC3460])
   class. This value type describes an ordered set of
   PCPolicyROElementValue values, specifying one RSVP-TE style route
   object (ERO or RRO).


4. PCPIM class definition

   [This section to be completed based on Section 3.]


5. Security Considerations

   The Policy Core Information Model [RFC3060] describes the general
   security considerations related to the general core policy model. The
   extensions defined in this document do not introduce any additional
   considerations related to security.


6. IANA Considerations

    None.


7. References

7.1. Normative References

   [PCE-POLICY] I. Bryskin, D. Papadimitriou, L. Berger, J. Ash,
                "Policy-Enabled Path Computation Framework",
                draft-ietf-pce-policy-enabled-path-comp-01.txt,
                March 2007

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




Bryskin & Berger        Expires September 5, 2007              [Page 74]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


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

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


7.2. Informative References

   [E2ERECOVERY] J.P. Lang, Ed., Y. Rekhter, Ed., D. Papadimitriou, Ed.,
                 "RSVP-TE Extensions in support of End-to-End
                 Generalized Multi-Protocol Label Switching (GMPLS)-
                 based Recovery",
                 draft-ietf-ccamp-gmpls-recovery-e2e-signaling-03.txt,
                 April 2005

   [PCEP]    J. P. Vasseur, Ed., "Path Computation Element (PCE)
             communication Protocol PCEP) - Version 1",
             draft-ietf-pce-pcep-02.txt, June 2006

   [RFC3198] Westerinen, A., et al., "Terminology for Policy-based
             Management", RFC 3198, November 2001

   [RFC3209] Awduche, D., et al., "Extensions to RSVP for LSP
             Tunnels", RFC 3209, December 2001.

   [RFC3471] L. Berger, Ed.," Generalized Multi-Protocol Label Switching
             (GMPLS). Signaling Functional Description", RFC 3741,
             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.

   [RFC4202] K. Kompella, Ed., Y. Rekhter, Ed. "Routing Extensions in
             Support of Generalized Multi-Protocol Label Switching
             (GMPLS)", RFC 4202, October 2005

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









Bryskin & Berger        Expires September 5, 2007              [Page 75]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


8. Authors' Addresses

   Igor Bryskin
   Email: i_bryskin@yahoo.com

   Lou Berger
   LabN Consulting, L.L.C.
   Email: lberger@labn.net


9. Full 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.

   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.



10. Intellectual Property

   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



Bryskin & Berger        Expires September 5, 2007              [Page 76]

Internet-Draft       draft-bryskin-pce-pcpim-01.txt        March 5, 2007


   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.

Acknowledgement

   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).











































Bryskin & Berger        Expires September 5, 2007              [Page 77]

Generated on: Sun Mar 4 09:16:35 EST 2007