Internet DRAFT - draft-choi-pce-metric-protocol

draft-choi-pce-metric-protocol



Network Working Group                            Jun Kyun Choi (BcN ERC)
Internet Draft                                     Dipnarayan Guha (NTU)
Category: Informational                             

Expires: January 2007                                       August 2006


                 Path Computation Element Metric Protocol (PCEMP)

                      draft-choi-pce-metric-protocol-05.txt


 Status of this Memo


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

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

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

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

   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.

   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.

   Copyright (C) The Internet Society (2006).

 Abstract

   In this draft, we propose an analysis of a Path Computation 
   Element Metric Protocol (PCEMP) that acts as a generic computation
   model for path based metrics in large multi-domain or multi-layer
   networks. The mechanism that is described in this draft is generic
   and can serve as an application path computation framework for any
   Path Computation Element (PCE). We describe a protocol message
   format for PCE-PCC and PCE-PCE communications derived from this 
   computation model. 

   This draft proposes to elucidate protocol independent metrics
   defining path quality measurement criteria, algorithm complexity
   and scalability criteria related to path computation techniques 
   through the PCEMP along with a PCE peer communication protocol 
   and is in line with the PCE WG Charter. 
  

Choi, Guha                     Informational                   [Page 1]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006

Table of Contents

   1  Terminology .................................................   3
   2  Introduction ................................................   4
   3  Key features of PCEMP .......................................   4
      3.1 Other features of PCEMP .................................   4
      3.2 Cost of the protocol metrics ............................   6         
   4  Overview of Soft Memory and Path Computing Unit 
      requirements.................................................   7
      4.1 Protocol level hierarchy architecture on the control 
      plane.........................................................  7
      4.2 PCE unit architecture as seen by the PCEMP protocol......   9
   5  The Path Computing Element Metric Protocol Data Structure 
      (PCEMP DS)...................................................   9
   6  Implementation considerations of the PCEMP protocol 
      architecture.................................................  10
      6.1 PCEMP State Machines Design..............................  10
      6.2 Functional Parameters for PCEMP DS processing of long 
      sequence data................................................  11
      6.3 Realization of fast path computing unit architecture 
      using PCEMP..................................................  11 
      6.4 Fundamentals of the PCEMP Algorithm as a function of 
      CPCA ........................................................  12
      6.5 PCEMP FSM Diagrams ......................................  13
          6.5.1  PCEMP Events .....................................  14
          6.5.2  Changing data vector profile PCEMP FSM ...........  15
          6.5.3  Static data vector profile PCEMP FSM .............  16
      6.6 Flow Logic of the PCEMP FSM and design considerations ...  17
   7  PCEMP message formats .......................................  17
      7.1 PCEMP Common Header .....................................  18
      7.2 PCEMP ESTABLISH message .................................  19
      7.3 PCEMP RESPONSE message ..................................  21
      7.4 PCEMP ERROR message .....................................  22
      7.5 PCEMP TEARDOWN message ..................................  23
      7.6 PCEMP ACK message .......................................  24
   8  Analysis of the PCEMP metrics in terms of protocol cost .....  24
      8.1 Link Bandwidth ..........................................  24
      8.2 Router memory ...........................................  24
      8.3 Router CPU usage ........................................  25  
      8.4 Role of CC and SPC ......................................  26
   9  Conclusion ..................................................  26
   10 Security Considerations .....................................  27
   11 IANA Considerations .........................................  27
   12 Acknowledgements ............................................  27
   13 Intellectual Property Considerations ........................  27
   14 Normative References ........................................  28
   15 Informational References ....................................  28
   16 Authors' Addresses ..........................................  29
   17 Full Copyright Statement ....................................  29




Choi, Guha                     Informational                   [Page 2]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006

1. Terminology
    
   This memo makes use of the following terms: 
    
     1. Path Computation Element (PCE): an entity that is responsible 
        for computing/finding inter/intra domain LSPs. This entity can 
        simultaneously act as a client and a server. Several PCEs can 
        be deployed in a given Autonomous System (AS).                                      

     2. Path Computation Element node (PCE Node): a network processing 
        unit comprising of a PCE unit. This can be embedded in a router
        or a switch.  
 
     3. Domain: Denotes an Autonomous system (AS) within the scope of
        this draft.



































Choi, Guha                     Informational                   [Page 3]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006

2. Introduction

  This draft addresses the metric definition and analysis requirements 
  of PCE models set forth by the PCE WG Charter for an internet routing 
  protocol. Some of these requirements are stated as follows. The next
  sections of this draft go on to show how PCEMP can be a satisfactory
  answer to efficient intra and inter domain path computation and 
  routing.

  -> Key algorithm feature of the proposed protocol mechanism

  -> PCE controller memory and controller CPU cycle costs of protocol

  -> Scalability of the algorithm and protocol metrics in large multi
     domain and multi-layer networks. 

  -> Limits of protocol metrics

  -> Adaptibility of algorithm for different centralized and 
     distributed path computation scenarios

  -> Genericness of the mechanism and easy integrability with current
     PCEs and router hardwares

3.  Key features of PCEMP 

  This section summarizes the key features of the PCEMP protocol. PCEMP 
  is a generic domain routing and path computation protocol that runs 
  on any PCE unit that is capable of computing a path based on an 
  ordered graph. PCEMP uses data vector techniques for path computation. 
  Individual link state advertisements (LSAs) are mapped onto the 
  computation units directly at TE-LSP setup time. Each PCE unit 
  maintains this mapping information through the controller unit [1] 
  and the mapping synchronization of the Link State Databases (LSDBs) 
  are performed using PCEMP finite state machines. From this central 
  controller sub-units, each PCE constructs a routing table by 
  calculating a shortest data vector tree, the root being the 
  calculating PCE node itself.

3.1 Other features of PCEMP

The other features of the PCEMP protocol are:

  1. Central Controller (CC). The central controller acts as the 
 



Choi, Guha                     Informational                   [Page 4]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006


  originator of the network's local information environment. The 
  controller also acts in the global scenario of inter domain PCEs and 
  inter layer networks. It serves as the key functional point of the 
  data vector driven algorithm for all PCE information and link state 
  synchronizations by co-ordinating LSP advertisements from other PCEs 
  and LSRs (All PCE peers). 

  2. Soft PCE Controller (SPC). A Soft PCE Controller is an entity 
  designed primarily for protection and fast route establishment in 
  conjunction with the Central Controller. The SPC's primary 
  functionality is to provide a robust and real-time path computation 
  adjacency without crossover delays for the data driven algorithm 
  mechanism. Also, this enables the LSP state and path computation 
  state retention in case of nodal faults and hardware failures. 

  3. Support for peer adjacency through non-participating interior 
  nodes. PCEMP treats these nodes opaquely and is able to maintain 
  the PCE adjacencies over inter-domains and inter-layer networks. 
  The protocol is generic and can be easily carried over existing 
  routing mechanisms over non-supporting network clouds. There is no 
  necessity for any additional configuration updates for PCEs 
  attached to such networks for initial discovery as the data driven 
  mechanism is flow based. 

  4. PCE domain areas (PCEDA). PCEMP allows the formation of distinct 
  PCE domain areas in a specific domain for end-to-end peer 
  participations. This is useful for several reasons. This is in line 
  with the protocol architecture that provides a granularity of data 
  protection within an autonomous system and isolation of data to 
  local branches of the tree. This is also helpful for the design of 
  the PCE units using soft memory techniques and reduces the 
  algorithm operation costs.

  5. Data driven mapping of external routing information. In PCEMP, 
  each external route is imported into the PCE domain area in 
  separate data driven computation strategies. This reduces the 
  amount of instantaneous re-computation of routing traffic data. 
  It also enables partial controller database updates when there is 
  a partial external route change. 

  6. Three level functional control hierarchy. PCEMP has a three 
  level controller hierarchy, intra-PCE-domain, inter-PCE-domain 
  and external-PCE-domain. This is discussed in the context of the 
  Centralized Controller [1]. 




Choi, Guha                     Informational                   [Page 5]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006




  7. Virtual link mapping. This is done via the real-time configuration 
  of logical local links based on the data-driven strategy of the 
  algorithm. The mechanism is thus made topology independent and 
  generic. 

  8. Soft Computation Memory (SCM). This is a novel feature in terms of 
  path computation in the CC and SPC. It helps split the tree into a 
  combination of sparse subtrees for fast computation. SCM can be used
  to assign metrics of path computation as well as compute data-driven
  flow based mappings in the PCE.
   
  9. Data-driven routing metric. In PCEMP, the computation metrics are 
  assigned to the outbound router interfaces and the soft memory cycles
  in the PCE controller unit. The cost of a path is then the weighted
  sum of the path's component interfaces and the soft memory cycles. 
  The routing and external path metrics can be assigned externally. 

  10. Flow-based routing. Separate sets of paths can be computed for
  each type of service. This is done by assigning flow-based metrics 
  to each outgoing router interface.


3.2  Cost of the protocol metrics

  This section analyzes the metrics that build up the PCEMP protocol 
  metrics

  1. Link Bandwidth. In PCEMP, the link state synchronizations are done 
  using a data-driven strategy scheduling mechanism as will be shown 
  later on in this draft. There is still backward compatibility with 
  existing mechanisms like OSPF that physically advertise using 
  reliable flooding schemes. Synchronization of link state databases 
  reduces to a degeneration of individual link state machines' 
  management in the CCs. This fits in well to the case where size of 
  the TE-LSDB (Traffic Engineering Link State Database) increases and 
  there is practically no change in the amount of link bandwidth used. 

  2. Router hardware memory and CPU usage. To consider the constraints 
  of router hardware memory, PCEMP uses finite state machines in the 
  SCM model for path computation. Still, this can be an imposing 
  constraint even in the presence of many external LSAs. Dividing the 
  path computation domain into multiple PCEDA can reduce this to a 
  large extent. The length of time it takes to run PCEMP is a function 
  of the finite state machine tree alignment on a given CC and SPC. 


Choi, Guha                     Informational                   [Page 6]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006


  Once the end-to-end peer PCE systems are determined, this becomes 
  independent of the number of participating entities. 

  3. Role of the CC and SPC. The CC is responsible for handling data 
  vectors and synchronization of different link states. The SPC acts a 
  fast path computation mechanism in case of crossover and faults. 
  This conjunction makes the PCE's functioning much more efficient. 


4. Overview of Soft Memory and Path Computing Unit requirements


  This draft describes the architecture of the PCEMP protocol using 
  soft memory concepts in the context of path computing block
  requirements. The network graph is constructed and analyzed real
  time inside the core of the PCE node with the aid of soft decision
  algebraic polynomial algorithms. The system is robust and 
  guarantees efficient path computation for large scale data 
  vectors and handles efficient segmentation of inter-domains and 
  inter-layer networks into PCEDAs during path computation. It also 
  reduces computational complexity of data intensive processing. We 
  define a structure called the Path Computing Element Metric Protocol 
  Data Structure (PCEMP DS) that makes up the system map for PCEMP 
  state machines. The CC and SPC executes transforms as core 
  computational units where the path computing algorithms for 
  handling the entire data vector is processed, thereby reducing the 
  computational complexity to a large extent. 

  This draft addresses the requirements of a PCE unit block that 
  helps to ease computationally intensive data processing for 
  integrated provisioning in inter-domain and inter-layer networks. 
  The PCEMP along with the CC and SPC as part of the PCE unit enables 
  an integrated network architecture where each network layer can 
  freely exchange topology and resource information. This allows 
  network performance to be globally optimized across all layers. In 
  addition, a single control plane and the central controller that 
  manages all network layers greatly simplifies network management 
  tasks.

4.1 Protocol level hierarchy architecture on the control plane 

  In an integrated control plane, three levels of functional control 
  hierarchy are mapped into one PCE node in the core of the Network 
  Processing engine and implemented as a single unit. PCEMP thus has a 
  three level controller hierarchy, intra-PCE-domain, inter-PCE-domain 
  and external-PCE-domain. 


Choi, Guha                     Informational                   [Page 7]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006


  The functional blocks involved in the PCE node are: the network 
  processor (the network management system with extended 
  functionalities), the domain processor (the network element management 
  system with extended functionalities), and the node processor. These 
  are invoked by the PCEMP state machines and comprise the fundamental 
  protocol level hierarchies on the control plane. In the first level, 
  the network processor acts as an interface between users and all 
  sub-network domains. Its' main functionality is to oversee the 
  provisioning of new connections across multiple sub-networks and to 
  maintain the network-wide topological view by reducing the 
  computational domains to PCEDAs. The domain processor supervises tasks 
  within a sub-network domain, such as service provisioning and network 
  status monitoring. It handles requests for connection setup and 
  teardown, and computes explicit paths that meet the SLA of each 
  request. The network monitor observes the overall network health and 
  detects failure and repair events. The databases maintained by the 
  domain processor include the domain topology, the domain link state 
  database gathered via the LSA protocol within its domain, and the 
  domain connection database which keeps track of all established 
  connections in the domain. The node processor manages specific 
  functionalities that can be done in a distributed manner at each node, 
  such as overload handling, failure recovery, and status monitoring. 
  It also detects sudden link overloads, conducts a countermeasure and 
  provides rapid protection and restoration capability in times of 
  failure. The databases maintained by the node processor are the local 
  link state and the local connection databases. The local link state 
  is obtained automatically via the neighbor discovery protocol, while 
  the list of local connections is obtained from all connections that 
  traverse the node. These are implemented using soft memory concepts 
  and synchronized using PCEMP. 

  For the purpose of establishing a guaranteed a disjoint backup path 
  and fast restoration techniques in the participating PCEDAs, it is 
  essential that the large scale data processing in the CC and SPC have 
  minimum overhead and processing delay. The CC manages the entire 
  domain network, as discussed before. In this architecture, backup 
  paths can be easily established end-to-end using the logical 
  configuration in the SPCs using PCEMP. Based on the data driven 
  routing metric table, which is configured at each PCE node by the CC, 
  one can make a robust real-time path between a source node and a 
  destination node and many intermediate nodes between the two. This 
  is done using soft decision PCEMP algorithms.



Choi, Guha                     Informational                   [Page 8]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006


4.2 PCE unit architecture as seen by the PCEMP protocol

  These are the PCE unit architectures as seen by the PCEMP protocol 
  state machines during path computation: 

  1. A matrix and parallel vector arithmetic unit that provides 
  parallel data processing capabilities on the commonly used matrix and 
  vector mathematical data types. Performance of this unit is 
  independent of the size of the data vector under computation. This is 
  implemented in the CC and SPC. 

  2. The processing core that provides the ease of programming and 
  flexibility to address changing algorithms and standards. There 
  exists a one-to-one map from the transform computed by the core to 
  the high-level code generated by the PCE application. This is 
  implemented using soft memory techniques in the CC, SPC and SCM.  

  3. A high-speed I/O system that allows complex, adaptive algorithms 
  to be partitioned cost-effectively across multiple sub PCE unit 
  blocks by providing dual ports. These ports are logically 
  indistinguishable across the ordered pair of a data vector and the 
  corresponding transform that is executed. 

  These units are images of the PCE computing unit that are mapped onto
  the PCEMP state machines.


5. The Path Computing Element Metric Protocol Data Structure (PCEMP DS)

  This data structure is ideally a multidimensional array of ordered 
  pairs of a data vector S, a transform T, and a mapping * to the 
  system computing code. The description of the PCE unit block and 
  memory architecture is in terms of this fundamental unit of 
  computation. There are unique maps that exist between the PCEMP DS 
  and the transform library that forms part of the PCE unit core. The 
  elements of the vector S is again thought of as a key-record pair 
  R (k,t) where k is the pointer of the components of the data vector 
  S and t is the associated structure or a pointer to the structure to 
  the corresponding executable transform T. 

  Investigations into the methods to achieve parallelism of operations 
  in different protocol engine architectures comprise solutions in 
  form of machine architectures designed to execute transforms 
  effectively; and of algorithms that allow concurrent accesses to 
  search PCEMP DS'. If a complex transform is executed by a number of 
  multiprocessors in the engine in parallel, then the best speed-up 
  possible is logarithmic in the number of processors. The suggestion 
  is therefore to increase the total throughput in the executing 


Choi, Guha                     Informational                   [Page 9]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006


  transforms and operations by increasing the number of instructions 
  that can be handled by the protocol state machine at the same time 
  rather than the speed-up of individual instructions. This is what 
  makes the processing of large sequence data vectors so effective with 
  a high degree of parallelism in the context of Path Computing.  


6. Implementation considerations of the PCEMP protocol architecture

  This section discusses about the architecture of the PCEMP DS, outlay 
  and mapping of protocol iterator instantiates to PCE unit blocks. 

  -> Protocol System Architecture: PCEMP DS decoder architecture and 
  path computing core that interfaces with the network processing engines 
  in the PCE nodes. 

  -> Protocol System Specifications: An efficient algorithm for running 
  in the computing core of the PCE units, called the Combinatorial Path
  Computing Algorithm (CPCA). This algorithm is the fundamental block
  that co-ordinates the PCEMP state machines and describes the decoder 
  that processes arbitrarily large input data sequences using SCM. 
  The memory structure of the protocol processing engine is implemented 
  in terms of these soft decoder algorithms. The method reduces hardware 
  and path computing complexity considerably.

  -> Protocol System Requirements: High Level Path Computing Transform 
  Library


6.1 PCEMP State Machines Design

  Definition: A unifying concept that ties together the CPCA and protocol 
  level processing. These mathematical programs are selected on the PCE
  node block structure by the PCEMP DS based on the input data sequence 
  real-time and implemented as a dynamic data driven tree partitioning.  

  Concept: A function that is mapped onto the CPCA and PCE computation 
  (PCEC) classes and outputs the path computation unit length. This 
  parameter is benchmarked for performance in processing time and 
  computational complexity of the PCE unit and invoked CC and SPC metrics. 

  Iterator Self-Reflection of Types Design: The PCEMP DS is a general 
  framework supporting CPCA and PCEC modes of computation in the PCE unit. 
  Self-reflection of type instantiates two iterators that share a common 
  constructor class. The iterator types are of type CPCA and PCEC, and 
  called during compile-time to generate the necessary control structure 
  output. This helps in implementing the data-driven strategy for path
  computing real-time and forms the basis of PCEMP State Machines design. 


Choi, Guha                     Informational                  [Page 10]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006

6.2 Functional Parameters for PCEMP DS processing of long sequence data

  The input data sequence is arranged into an ordered set called the Input 
  Data Type (IDT) which is a subset of the input vector S and a function 
  of the control transform to be computed T. A State Subset is a member 
  of the cardinal product of S and T. It is shown to be isomorphic with 
  the logical decoder outputs. The IDS invokes the hardware for computing 
  across the partitioned kernel in the PCE nodes.

  Input: IDT Tj, State Subsets Sl and Sm, Integers l and m, Label Lb, 
  Semi-Ring R; 
 
  Output: Flow metric/measure p(A,B)

6.3 Realization of fast path computing unit architecture using PCEMP

  Concept: Iterative applications of the PCEMP DS. Two or more IDT encoders 
  separated by an interleaver (respectively CC and SPC). This structure 
  suggests a decoding strategy based on the iterative passing of 
  soft-computing information between two decoding algorithms. This is 
  equivalent to dynamically partitioning the path computing engine core 
  into sub-units that are linked together real-time based on the input data 
  and the protocol handler. 

  Basic Computation: Configure PCEMP DS to compute soft-decisions in terms 
  of measures. An assigned measure is given to each branch of the IDT. This 
  algorithm makes the data intensive path computing much easier and reduces 
  overhead and complexity and is incorporated in the computing core. It 
  also guarantees disjoint path computation that enables fast end-to-end 
  backup and protections.  




















Choi, Guha                     Informational                  [Page 11]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006


6.4 Fundamentals of the PCEMP Algorithm as a function of CPCA

  Let A belong to Sm and B belong to Sl. 
  A and B are thus sets of states with m and l.

  Initialization: For each s in Sm, r(Sj,s) = 1 when s is in A else 0
 
  xt(0) =1, xt(m) = 0, m is not zero

  Loop: 

     	/* For Decoder i to Decoder k, CC and SPC */
         
      	/* For j = m+1, m+2,...,l, for each s2 in Si, */

        /* Label branch bout with input m and three outputs (c0,c1,x1); */

        /* c0 = common symbols between the two encoders, CC and SPC */
        /* c1,x1 = PCE unit inputs */ 

        call decoder_private;  /* populates decoder specific private data*/

        /* This is populated by data driven mapping of external routing */
        /* information. In PCEMP, each external route is imported into */
        /* the PCE domain area in separate data driven computation */
        /* strategies */

        u(y|c0) = load file_channel; /* populates PCE unit kernel */
        /* specific data */

        /* This is populated by the peer-to-peer information exchange */
        /* by the functional blocks involved in the PCE node. i.e. the */ 
        /* network processor, the domain processor and the node */
        /* processor */ 

        u(y|m) = rel (u(y|c0), u(c1,x1|c0,y); 

        /* This is SCM specific kernel computation that involves a data- */
        /* driven partitioning of the ordered graph based on iterator */
        /* instantiates */

        assign p = probability(c0); 

        /* This is the probability that the PCE computing is actually */
        /* invoked for computing upon data vectors that show a significant */ 
        /* change in the data profile sequence, else it is just buffered */
        /* and tagged for decision making. */
        /* This reduces computational overhead and unnecessary kernel */
        /* calls for data intensive path computing */

        assign y = u(c0).u(y|c0).decoder_private;

        log p(Si, xj) = log sum (si, xj-1) + log sum (zj) over all b in Bi,

        y(b) = u(m).u(y|m).decoder_private;

        invoke Fast_Decoding_Procedure;

        /* This procedure has been described in the context of iterator */
        /* self-reflection types in Section 5.1 */


Choi, Guha                     Informational                  [Page 12]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006

        /* This essentially means this: */
 
        /* for m to l all the state indices, */ 

        /* for all the branches on the corresponding graph of the PCEMP DS */
        /* IDT, obtain the sum of the logarithms of the corresponding */
        /* weights and optimize it for choosing the correct points on */
        /* the graph. This a continuous, cumulative and dynamic process */ 
        /* which involves minimum computation overhead and provides a */
        /* guaranteed fast crossover for path computation and backup */
        /* protection */

  Stop: 

        p(si,xj) = min log (sum (si, xj -1)

        /* Store the sums obtained in the Loop and then equate to the */ 
        /* final sum */ 

  /* Fast path computing procedure for large sequence input data: */ 

  /* 1. Setup: Use the received kernel data to compute the common */
  /* and private soft channel information */

  /* 2. Iterate: Repeatedly update, for the outer and inner decoder, */
  /* the iterative information by updating u(c0) and u(m). The */
  /* computation involves a forward and backward application of the */
  /* PCEMP DS with the complete branch measure. */ 

  /* The extracted measure for the common symbol is computed based on */
  /* (x,y1,z) using the private branch measure */ 

  /* 3. Conclude: The extracted measure for the control symbol m is */
  /* computed based on (x,y1,z) using the complete branch measure z */

6.5 PCEMP FSM Diagrams

  Based on the above algorithm and analysis, we can consider two distinct
  finite state machine diagrams of the PCEMP protocol architecture: 

  1. The case where the PCE unit block is invoked for constantly 
  changing data profiles within the time of test of goodness of fit
  (MAX_PCE_TIME_FIT)

  2. The case where the PCE unit block is invoked only once for a 
  variable data profile and then the data is tagged (tags) within the 
  time of test of goodness of fit (MAX_PCE_TIME_FIT). max tags is an 
  important parameter to determine the computing potential within 
  MAX_PCE_TIME_FIT 


Choi, Guha                     Informational                  [Page 13]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006
 
6.5.1  PCEMP Events

  PCEMP events are generated by the protocol processing routine
  iterators and by the state machines of the associated TE-LSP links.



  Every event has its number and a symbolic name. Here is a possible
  description of PCEMP events:

  1 :PCEStart:    This is when the PCE node receives a request from 
                  an adjacent peer

  2 :PCEEnd:      This is when the PCE node receives a request from
                  its adjacent peer that the path computation has 
                  ended and the exchanged metrics acknowledged

  3 :PCETest:     This is an event that signifies the formation of 
                  PCEDAs and invokes the exchange of data vectors 
                  over the link. 

  4 :PCEResponse: This is an internal PCE unit kernel event that 
                  listens for the received data vectors.

  5 :PCETestACK:  The initial information exchange between a pair of
                  adjacent PCE peers has been successful and 
                  acknowledged.
                        (a) This event indicates the CPCA and PCEC 
                            classes have been instantiated by the 
                            initial exchange of information and the 
                            data driven mapping of external routing
                            information is complete. 
                        (b) This event indicates the PCE unit is ready 
                            for path computation, but the ACK has not
                            been explicitly taken into account. This 
                            is done to minimize unnecessary packet
                            overhead during path computation 
                            information exchange. Tags are sufficient
                            to convey this information. 
                            

  6 :PCEMPTest:  Data vector was successfully received over the 
                 designated port and a PCEMP Fast_Decoding_Procedure 
                 has been invoked and the message sent to the peer. 
                   

  7 :PCEMPFail:  This is when there is a protocol error in processing
                 the PCEMP fast decode output messages or when there
                 is a failure message received from the PCE peer. 


Choi, Guha                     Informational                  [Page 14]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006


  8 :PCEMPDetectFail: This indicates that a PCEMP fast decode output 
                    failed to compute within the specified alive timer.

  9 :PCECompute:   The CC and SPC have been invoked in the PCE node.

  10:PCEDeCompute: The CC and SPC have been released in the PCE node.

  11:PCEMPRetransmit:  The peer sends another refresh message to the
                       PCE node


  12:PCELocalFail:  Port and/or interface mismatches with the data
                    vectors and output written metrics

  13:PCEDataFail:  There is a local fault related to the receiving of
                   the data vectors and this is taken into consideration
                   while assigning the measures to the output graph.

  14:PCEDataDown:  The data vector stream has terminated

 
6.5.2. Changing data vector profile PCEMP FSM

  Figure 1 illustrates the FSM transition diagram in this case. 

                             +------+
                             |      |<-------+
                  +--------->| Down |        |
                  |     +----| End  |<-----+ |
                  |     |    +------+      | |
                  |     |5b   3|  ^        | |
                  |     |      |  |7       | |
                  |     |      v  |        | |
                  |     |    +------+      | |
                  |     |    |PCEMP |<-+   | |
                  |     |    |Test  |  |11 | |
                  |     |    |Resp. |--+   | |
                  |     |    +------+      | |
                  |     |     5a| 3^       | |
                  |     |       |  |       | |
                  |     |       v  |       | |
                  |12   |   +---------+    | |
                  |     +-->|         |14  | |
                  |         | Start/  |----+ |
                  +---------| Compute |      |
                            +---------+      |
                               9| ^          |
                                | |          |
                                v |10        |
                            +---------+      |
                            |         |13    |
                            |Compute/ |------+
                            |DeCompute|
                            +---------+

         Figure 1: Changing data vector profile PCEMP FSM


Choi, Guha                     Informational                  [Page 15]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006

6.5.3  Static data vector profile PCEMP FSM

  Figure 2 illustrates the FSM transition diagram in this case.



                             +------+
                             |      |<------+
                 +---------->| Down |       |
                 |     +-----| End  |<----+ |
                 |     |     +------+     | |
                 |     |5b    4|  ^       | |
                 |     |       |  |8      | |
                 |     |       v  |       | |
                 |     |    +----------+  | |
                 |     |    | PCEMPTest|  | |
                 |     |    | Resp.    |  | |
                 |     |    +----------+  | |
                 |     |       6|  4^     | |
                 |     |        |   |     | |
                 |     |        v   |     | |
                 |12   |    +---------+   | |
                 |     +--->| Start/  |14 | |
                 |          | Compute |---+ |
                 +----------|         |     |
                            +---------+     |
                                9| ^        |
                                 | |        |
                                 v |10      |
                            +---------+     |
                            |         |13   |
                            |Compute/ |-----+
                            |DeCompute|
                            +---------+

          Figure 2: Static data vector profile PCEMP FSM














Choi, Guha                     Informational                  [Page 16]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006


6.6 Flow Logic of the PCEMP FSM and design considerations

   This shows the flow logic of the PCEMP FSM and the design 
   considerations on the PCE node

   Data --> CC and SPC ---> (Network Processor,   dynamic data
   (PCE                      Domain Processor,::  fitness 
   peer1)                    Node Processor)      function
                              |
                              |                       
                              v                 <                 
                         Test goodness of fit  ---> Execute
                         : compare data profile     FSM for
                              |                     static data                            
                              | >                   profile **
                              |                                          
                              v 
                        Instantiate PCE unit
                        kernel threads with
                        data driven strategy                     
                              |                         
                              |                              
                              |
                              v
                        Send PCE descriptor ID 
                              |
                              |
                              v                           
                         optimize data driven
                         strategy for path 
                           computation
                              |
   (PCE                       |
   peer2)                     v
   Data <--  CC and SPC** <--Execute FSM for changing data profile   
 
 
           Figure 3: PCEMP FSM implementations on the PCE nodes   


7. PCEMP message formats

   Based on the PCEMP FSM and the path computation metric protocol 
   handling considerations, there are 5 primary message formats in 
   the PCEMP protocol, the Common Header, the Establish, the Respond, 
   the PCEMP Teardown, Error and the ACK. It is important to keep the 
   protocol messaging light-weight primarily to consider one protocol 
   for both PCC-PCE and PCE-PCE, and to keep the protocol metric costs 
   to a minimum and facilitate greater reuse of existing objects in 
   other signaling and routing messages. The PCEMP messages can also be 
   encapsulated generically and carried as a sub-object/TLV in existing 
   routing/signaling protocols like RSVP-TE, LDP and BGP.


Choi, Guha                     Informational                  [Page 17]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006


7.1 PCEMP Common Header 

        0              1              2              3              4
        +--------------+--------------+--------------+--------------+ 
        |   Version    |  PCEMode     |    PCEFlag   |   PCEStatus  |
        +--------------+--------------+--------------+--------------+ 
        |          PCEObject          |      PCEMP Message Length   |
        +--------------+--------------+--------------+--------------+ 

  The Header fields in the PCEMP message are as follows:

  1. Version : 8 bits. The current version is 1

  2. PCEMode : 8 bits. Currently this supports the following codes:

     1: COMPUTE_PATH: This means to perform the TE LSP path
        computation only. The result is passed onto the corresponding
        routing/signaling protocol that is used for LSP setup in the
        participating PCE node. There is no explicit PCEMP message 
        exchanges

     2: ESTABLISH_PATH: This means to perform the TE LSP path
        computation and invoke the PCEMP message exchanges from the 
        protocol finite state-machine executions

     3: TRANSPARENT: This means enable the PCEMP message to be passed
        through transparently through a non-supporting node in the
        establishment of inter-domain PCEDAs

     4: COMPUTE_LSP_TYPE: This is currently an optional feature. When
        set, this means the path computation is performed for p2mp TE
        LSPs and for QoS-enabled path computation. When set, this is
        used with the BANDWIDTH OBJECT field in conjunction. 

  3. PCEFlag : 8 bits. Currently this supports the following codes:

     1: ACK requested: This means that the immediate next PCEMP
        adjacent peer is requested to send an ACK about the PCEMP
        message

     2. ACK not requested: This means that the immediate next PCEMP
        adjacent peer does not need to inform the initiator about 
        the status of path computation 

  4. PCEStatus: 8 bits. Currently this supports the following codes:

    1: Protocol mode: PCEMP used as a soft-state protocol and path
       computation mode, in the usual format

    2: Peer-to-peer mode: PCEMP used in conjunction with QoS related
       metrics. Set if COMPUTE_LSP_TYPE in PCEMode set. This is set to
       0 if the peer is a single node, 1 if the peers form a set of
       nodes and 2 if the peers form a set of node(s) in a different
       AS.

    3: Discovery mode: PCEMP is used as a PCE peer discovery mode for
       mobile nodes across different PCEDAs. 


Choi, Guha                     Informational                  [Page 18]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006


    4. Protection mode: PCEMP is used for explicit protection and 
       restoration of paths across the PCEDAs. The ACK is suggested
       in this mode of operations. 

  5. PCEObject: 16 bits. This contains any specific requested support
     for the next PCEMP peer node. Requests could be suggested values
     of data driven maps of external routing information, suggested 
     values of the MAX_PCE_TIME_FIT (in case of protection mode), etc.

  6. PCE Message Length: 16 bits. This contains the length of the 
     PCEMP message. 
     

7.2 PCEMP ESTABLISH message

          0             1             2             3             4
          +-------------------------------------------------------+ 
          |    MAX_PCE_TIME_FIT       |     Flag    | Suggest Time| 
          +-------------+-------------+-------------+-------------+ 
          |                     PCEDA-NUMBER                      | 
          +-------------+-------------+-------------+-------------+  
          |                    OTHER AS-NUMBER                    | 
          +-------------+-------------+-------------+-------------+ 
          |        PCEDA_COUNT        |          AS_COUNT         |
          +-------------+-------------+-------------+-------------+ 
          |                  PCE DESCRIPTOR ID                    | 
          +-------------------------------------------------------+ 
          |                  GLOBAL-PCE-TAG-ID                    | 
          +-------------+-------------+-------------+-------------+
          |             PCEMP-LOCAL-INITIATOR-ADDRESS             | 
          +-------------+-------------+-------------+-------------+ 
          |             PCEMP-LOCAL-RESPONDER-ADDRESS             | 
          +-------------+-------------+-------------+-------------+  
          |         PCEMP-EXTERNAL-ROUTE-INITIATOR-ADDRESS        | 
          +-------------+-------------+-------------+-------------+ 
          |         PCEMP-EXTERNAL-ROUTE-RESPONDER-ADDRESS        | 
          +-------------+-------------+-------------+-------------+ 
          |                    BANDWIDTH OBJECT                   |
          +-------------------------------------------------------+
          |                    PCE SUBOBJECT 1                    |
          +-------------------------------------------//----------+
          |                    PCE SUBOBJECT n                    |
          +-------------------------------------------------------+

  The fields in the PCEMP ESTABLISH message are as follows:

  1. MAX_PCE_TIME_FIT: 16 bits. This is to advertise the path computation 
     timer of the instantaneous (initiator) node and to inform the peer 
     node that it sets the keep-alive time within which it calculates the 
     path computation on its own side and expects an ACK from the adjacent 
     peer within this time. 


Choi, Guha                     Informational                  [Page 19]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006

  2. Flag: 8 bits. This shows whether the MAX_PCE_TIME_FIT is static or 
     variable for PCEMP FSM synchronization on the two adjacent PCE peers.
     Currently this supports the following codes:

     1. STATIC 

     2. VARIABLE (in which case the first ACK from the PCE peer will need
        to suggest a different value of the MAX_PCE_TIME_FIT. This value
        if agreed upon by the initiator will be used for its own path
        computation, else there would be an error message generated)

  3. Suggest Time: 8 bits. This value indicates the suggested value of 
     the MAX_PCE_TIME_FIT when the Flag is set to Variable. 

  4. PCEDA-NUMBER: 32 bits. This value indicates the number of PCEDAs 
     that are traversed by the TE-LSP once the path computation takes 
     place in the corresponding PCE peers. This has local significance 
     to every participating PCE node. Non-supporting nodes just pass 
     this field transparently.

  5. OTHER AS-NUMBER: 32 bits. This value indicates the number of other
     Autonomous Systems that are traversed by the TE-LSP during path 
     computation in the corresponding PCE peers. This basically indicates
     the strict or loose hop routes that comprise different AS-s which 
     do not comprise the PCEDAs as determined by a single PCE node. 

  6. PCEDA_COUNT: 16 bits. Keeps a total count of the PCEDAs traversed by
     a TE-LSP at any one PCE node. This has local significance to the CC
     and the SPC and the total count takes into consideration all the 
     different multiple TE-LSPs that pass through a single PCE node. 

  7. AS_COUNT: 16 bits. Keeps a total count of the ASs traversed by a 
     TE-LSP at any one PCE node. This has local significance to the CC
     and the SPC and the total count takes into consideration all the 
     different multiple TE-LSPs that pass through a single PCE node. 

  8. PCE DESCRIPTOR ID: 32 bits. PCEMP assigns an IDT (input data type)
     with each TE-LSP that is set up through the corresponding PCE node 
     entity. For path computation using PCEMP FSMs, the PCE descriptor 
     ID is returned after every computation is complete. If the 
     computation is successful, a random 32 bit number is generated 
     which holds the path computation status at that PCE node. If the 
     path computation fails, a value of -1 is generated in the PCE 
     descriptor ID field which is communicated to the immediate PCE peer 
     and automatic protection of the TE LSP begins and a reoptimization 
     is calculated by the last stored random number for this node by the 
     neighboring PCE peer.

  9. GLOBAL-PCE-TAG-ID: 32 bits. This is a global ID w.r.t. to a fixed
     TE LSP that is assigned by external routing information and is 
     populated by data driven mapping of external routing information. 
     In PCEMP, each external route is imported into the PCE domain area 
     in separate data driven computation strategies. This, along with 
     the PCE DESCRIPTOR ID, provides a unique identification of the 


Choi, Guha                     Informational                  [Page 20]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006


     TE-LSP and also helps in granularity protection of the main LSP. 

 10. PCE-LOCAL-INITIATOR-ADDRESS: 32 bits. This is the local TE-LSP
     specific head-end address of the participating node. It is local
     to each CC and SPC and is specific to the PCEDA which is assigned
     to that PCE node. This address is PCEDA specific to the initiator

 11. PCE-LOCAL-RESPONDER-ADDRESS: 32 bits. This is the local TE-LSP
     specific tail-end address of the corresponding participating PCE
     node. It is also local to each CC and SPC and is specific to the
     PCEDA which is assigned to the immediate PCE hop node of the 
     initiator.

 12. PCEMP-EXTERNAL-ROUTE-INITIATOR-ADDRESS: 32 bits. This is the 
     global TE-LSP head-end address (consisting of different AS-s)
     which are used for tunneling. This address is the TE-LSP
     tunnel address that is assigned to the initiator.

 13. PCEMP-EXTERNAL-ROUTE-RESPONDER-ADDRESS: 32 bits. This is the 
     global TE-LSP tail-end address (consisting of different AS-s)
     which are used for tunneling. This address is the TE-LSP
     tunnel address that is assigned to the responder. 

 14. BANDWIDTH OBJECT: 32 bits. This is used for conveying bandwidth
     support and QoS requirements imposed by the initiator as well 
     as the global TE-LSP tunneling. Used in conjunction with the 
     COMPUTE_LSP_TYPE set in the PCE Header if used. An absence of 
     this object when the COMPUTE_LSP_TYPE is set signifies a protocol
     error and the PCE peer SHOULD generate a PCEMP ERROR message with
     the ERROR CODE field set to 3. Further Details TBD. 

 15. PCE SUBOBJECT 1: 32 bits. Used to insert any local information
     like protection requirements, diversities, etc. This is an 
     optional component of the PCEMP ESTABLISH Message. 

7.3 PCEMP RESPOND message

          0             1             2             3             4
          +-------------------------------------------------------+ 
          |    MAX_PCE_TIME_FIT       |     Flag    | Suggest Time| 
          +-------------------------------------------------------+
          |        PCEDAType          |         PathType          |          
          +-------------+-------------+-------------+-------------+  
          |                  PCE DESCRIPTOR ID                    | 
          +-------------------------------------------------------+ 
          |                  GLOBAL-PCE-TAG-ID                    | 
          +-------------------------------------------------------+
          |             PCEMP-LOCAL-INITIATOR-ADDRESS             | 
          +-------------+-------------+-------------+-------------+ 
          |             PCEMP-LOCAL-RESPONDER-ADDRESS             | 
          +-------------+-------------+-------------+-------------+  
          |         PCEMP-EXTERNAL-ROUTE-INITIATOR-ADDRESS        | 
          +-------------+-------------+-------------+-------------+ 
          |         PCEMP-EXTERNAL-ROUTE-RESPONDER-ADDRESS        | 
          +-------------+-------------+-------------+-------------+ 
          |                    BANDWIDTH OBJECT                   |
          +-------------------------------------------------------+
          |                    PCE SUBOBJECT 1                    |
          +-------------------------------------------//----------+
          |                    PCE SUBOBJECT n                    |
          +-------------------------------------------------------+



Choi, Guha                     Informational                  [Page 21]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006

   The fields in the PCEMP RESPOND message are as follows: 

   1. PCEDAType: 16 bits. This basically indicates the nature of the 
      TE-LSP within the specific PCEDA, i.e. whether it is composed
      of AS-s, or a non-supporting entity, etc. 

   2. PathType: 16 bits. This indicates the nature of the path that
      is returned after computation. Also indicates the presence of 
      loose and strict route paths, or if an explicit route is 
      requested, or if an explicit re-computation is necessary by the
      initiator. 

   All the other fields are derived similarly from the ESTABLISH
   message. The RESPOND message may also contain information about 
   backup path suggestions, alternative route computation and support
   of the bandwidth/path computation etc. It is important that the 
   PCEMP protocol FSMs are synchronized at the beginning of mutual
   path computation, so it might be necessary to send a couple of 
   ESTABLISH-RESPOND messages to negotiate about the MAX_PCE_TIME_FIT
   field. This is particularly true when the PCEStatus Flag of the 
   PCEMP Common Header is either 2 (Peer-to-peer mode), 3 (Discovery
   mode) or 4 (Protection mode). Alternatively, the timing info MAY
   be carried by a PCE SUBOBJECT directly with a PCEMP header and the 
   ACKs may be requested by setting the PCEFlag field to ACK requested =
   true in the PCEMP Common Header. The state machines follow from
   Sections 6.5.2 and 6.5.3. 

7.4 PCEMP ERROR message

          0             1             2             3             4
          +-------------------------------------------------------+ 
          |         ERROR TYPE        |        ERROR CODE         |         
          +-------------+-------------+-------------+-------------+ 
          |                  PCEMP NEGOTIATE OBJECT               |
          +-------------------------------------------------------+
          |                  PCE DESCRIPTOR ID                    | 
          +-------------------------------------------------------+ 
          |                  GLOBAL-PCE-TAG-ID                    | 
          +-------------------------------------------------------+
          |             PCEMP-LOCAL-INITIATOR-ADDRESS             | 
          +-------------+-------------+-------------+-------------+ 
          |             PCEMP-LOCAL-RESPONDER-ADDRESS             | 
          +-------------+-------------+-------------+-------------+  
          |         PCEMP-EXTERNAL-ROUTE-INITIATOR-ADDRESS        | 
          +-------------+-------------+-------------+-------------+ 
          |         PCEMP-EXTERNAL-ROUTE-RESPONDER-ADDRESS        | 
          +-------------+-------------+-------------+-------------+ 
          |                    BANDWIDTH OBJECT                   |
          +-------------------------------------------------------+
          |                    PCE SUBOBJECT 1                    |
          +-------------------------------------------//----------+
          |                    PCE SUBOBJECT n                    |
          +-------------------------------------------------------+


Choi, Guha                     Informational                  [Page 22]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006


   The fields in the PCEMP ERROR message are as follows:

   1. ERROR TYPE: 16 bits. This denotes the type of Path Computation 
      Error that has happened, e.g. lack of bandwidth, allocation not 
      possible etc. A full list is TBD.

   2. ERROR CODE: 16 bits. This denotes the corresponding error
      descriptor generated. Currently, the ERROR CODE supports the 
      following codes:

      1. FAILED PATH COMPUTATION: Only if the PCE DESCRIPTOR ID has the
      value -1, as explained in Section 7.2

      2. OUT OF TIME: If the MAX_PCE_TIME_FIT timer operated in the 
      variable mode expires before a RESPOND or an ACK message arrives.

      3. PROTOCOL ERROR: If the requested path computation cannot be 
      supported. 

   3. PCEMP NEGOTIATE OBJECT: 32 bits. This denotes the suggested
      object (in terms of bandwidth support, path computation support 
      etc.) that are supported by the responder for the corresponding 
      Error Code generated. 


7.5 PCEMP TEARDOWN message

          0             1             2             3             4
          +-------------------------------------------------------+ 
          |         RequestType       |        REQUEST ID         |         
          +-------------+-------------+-------------+-------------+ 
          |                  PCE DESCRIPTOR ID                    | 
          +-------------------------------------------------------+ 
          |                  GLOBAL-PCE-TAG-ID                    | 
          +-------------------------------------------------------+
          |             PCEMP-LOCAL-INITIATOR-ADDRESS             | 
          +-------------+-------------+-------------+-------------+ 
          |             PCEMP-LOCAL-RESPONDER-ADDRESS             | 
          +-------------+-------------+-------------+-------------+  
    
    The fields in the PCEMP TEARDOWN message are as follows:

    1. RequestType: 16 bits. This denotes the type of request 
       associated with the path computation termination and bringing
       back the PCEMP event state to PCEDataDown. Normally, this is 
       done when the processing data stream has terminated. However
       there might be an administrative requirement to do this, in 
       which case either the initiator or the responder might issue
       this message. Currently there are two codes supported here:

       1. DELETE PATH STATE: The complete PCEMP FSM is brought back
       to the initial state and PCEMP messages stop.

Choi, Guha                     Informational                  [Page 23]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006



       2. CHANGE IN COMPUTATION STYLE: This means that though the
       PCEMP messages stop, the state of the participating PCE 
       peers go to the COMPUTE_PATH state. Ideally, then the PCEMode
       field in the PCEMP Common Header SHOULD be set to the
       COMPUTE_PATH code. 


7.6 PCEMP ACK message

          0             1             2             3             4  
          +-------------+-------------+-------------+-------------+ 
          |             PCEMP-LOCAL-RESPONDER-ADDRESS             | 
          +-------------+-------------+-------------+-------------+  
          |                    PCE SUBOBJECT 1                    |
          +-------------------------------------------//----------+
          |                    PCE SUBOBJECT n                    |
          +-------------------------------------------------------+

    The PCEMP ACK message is local between two PCEDA peers and contains
    the local responder address without any argument. There may be
    optional PCE subobjects with the ACK message, as discussed earlier. 

8. Analysis of the PCEMP metrics in terms of protocol cost:

8.1  Link Bandwidth 

  In PCEMP, we have shown that the link state synchronizations are done 
  using a data-driven strategy scheduling mechanism which minimizes
  kernel calls and invokes the computation unit only when there is a
  significant change in the data profile within the time of goodness of
  fit. Wastage of link bandwidth by ACKs and soft-state preservation
  messages are minimized. Synchronization of link state databases reduces 
  to a degeneration of individual link state machines' management in the 
  CCs and SPCs. This fits in well to the case where size of the TE-LSDB 
  increases and there is practically no change in the amount of link 
  bandwidth used. 


8.2  Router memory

  Memory requirements in PCEMP are a function of the SCM realizations 
  of the CC and SPC. External LSAs comprise the majority of peer 
  advertisements. 

  The PCEMP DS processing application benefits from an 
  architecture consisting of multiple register files in the PCE unit, 
  each conforming to the following properties:

Choi, Guha                     Informational                  [Page 24]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006


  1. Each register file supports a number of multiple read/write 
  ports that is at least equal to the number of states in the IDT 
  sequence. Typical numbers range from 4096 to 65536.

  2. The memory access pattern of the register file highly structured. 
  Data is alternatively written in the forward and backward directions. 
  The same applies to the read pattern. There will be 128 read accesses 
  for every written data.

  3. In-place storage and single cycle read/write, where data is read 
  during the first half cycle, followed by a write during the second 
  half. The structured access pattern makes it redundant to implement 
  an address decoder that is commonly found in register file and 
  general purpose embedded memory designs of routers. Our architecture 
  that implements the address decode utilizes this functionality in 
  the PCE node.  

  The CPCA algorithm indicates that the size of memory is of order
  ~ O (N x D x B), where

  N = Number of states in the IDT, 
  D = Depth of the trace forward/backward path, 
  B = Number of bits in the fixed-point algorithm.  

  The states of the IDT can be drawn from any arbitrary number of 
  permutations of the input data sequence. Typical values of N range 
  from 1024 to 4096 .Values of D are expected to be between 512 and 
  1024.  Bit resolution B is set at 4 or less.

  CPCA time execution = 0.5 s for N 1024 and D 512 with B 4

  A database can thus support 100,000 external LSAs with a router
  memory block of 512K bytes. This can be extended in the hardware
  architecture of the PCE unit as per configuration. 

8.3  Router CPU usage

  As the size of the PCEDA grows, the number of interfaces per router 
  stays bounded. Thus the order of computation is order (n * log (n)), 
  where n is the number of routers in the routing domain. The
  approach in PCEMP is to achieve parallelism of operations in 
  different protocol engine architectures comprising of solutions in 
  form of machine architectures designed to execute transforms 
  effectively. If a complex transform is executed by a number of 
  multiprocessors in the engine in parallel, then the best speed-up 
  possible is logarithmic in the number of processors. The suggestion 
  is therefore to increase the total throughput in the executing 
  transforms and operations by increasing the number of instructions 
  that can be handled by the protocol state machine at the same time 
  rather than the speed-up of individual instructions. This is what 
  makes the processing of large sequence data vectors so effective 
  with a high degree of parallelism in the context of Path Computing.  

Choi, Guha                     Informational                  [Page 25]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006



8.4  Role of CC and SPC

  The CC is responsible for handling data vectors and synchronization 
  of different link states. The SPC acts a fast path computation 
  mechanism in case of crossover and faults. This conjunction makes the 
  PCE unit's functioning much more efficient. 

  This has the same implications as the LSA protocol used for peer
  advertisement and topology discovery. A significant improvement by
  using PCEMP is that the number of routers that can be attached to a 
  single PCEDA is quite arbitrary. As traffic increases, the SPC eases
  the stringency of backup path computation and the CC-SPC combination
  guarantees a disjoint alternate path calculation with the minimum
  crossover time. 

  This follows from Section 4.1 


9.  Conclusion

  In summary, we have proposed an algorithm and protocol metrics for an
  efficient Path Computation model that does away the obvious limitation
  about the size of the computing hardware system with respect to 
  physical memory requirements.

  This method utilizes pipelined access by the PCE units to the PCEMP DS 
  by distributing the levels among the multiprocessors in the array of 
  invoked computing logic in the CC and SPC. The objectives achieved in 
  this method, are, firstly, achieving a coarse grained transform engine 
  with a small number of multiprocessors connected in a simple topology 
  of a linear array. The accesses are highly localized within the 
  structure topology. Secondly, performing load balancing among the 
  computing units along with the execution of transforms increases the 
  pipeline interval only by a constant. This helps in automatic 
  buffering and synchronization of individual scalar elements of the 
  input data vector across adjacent PCE peers, which is a big plus for 
  reducing computational complexity and overhead. A number of issues 
  related to the PCEMP DS tree restructuring operations and data 
  redistribution for load balancing thus get resolved in a much simpler 
  and more efficient manner in this architecture, which effectively 
  means that there is greater possibility of increasing the number of 
  scalar points in the input data vector for path computation. 

  The algorithm is generic and can easily be integrated onto existing 
  network processing engines and routers. There might not be physical
  hardware requirement for PCEMP support, it can be soft configured 
  on the participating PCE peers. 



Choi, Guha                     Informational                  [Page 26]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006


10. Security Considerations

  The impact of the use of the PCEMP architecture is relatively much 
  secure as the PCEDA are computed and distributed internal to the PCE 
  unit. An increase in inter-domain information flows and the 
  facilitation of inter-domain path establishment through PCEMP does not 
  increase the existing vulnerability to security attacks. It should be 
  remembered that PCEMP works by an invoked logic scheme local to each 
  participating PCE unit, and the protocol invoke is brought into play 
  only when there is a significant change in the data profile within the 
  time of goodness of fit.

  However, it is expected that the PCE solutions will address security
  issues mentioned in [Ash] in details using authentication and 
  security techniques. 


11. IANA Considerations

  The different PCEMP message field values might be needed to be a
  assigned specific numbers. 

12. Acknowledgements

  This work was supported by the Ministry of Information and 
  Communications (MIC), Republic of Korea

13. Intellectual Property Considerations

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

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

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

Choi, Guha                     Informational                  [Page 27]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006



14. Normative References


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

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

  [RFC3668] Bradner, S., "Intellectual Property Rights in IETF 
  Technology", BCP 79, RFC 3668, February 2004.


15. Informational References

  [1] Choi, J.K., et al., "Fast End-to-End Restoration Mechanism with 
  SRLG using Centralized Control", draft-choi-pce-e2e-centralized-
  -restoration-srlg-06.txt, August 2006 (work in progress) 

  Le Roux, J.L., Ed., "Requirements for Path Computation Element (PCE)
  Discovery", draft-ietf-pce-discovery-reqs-05.txt, June 2006

  Ash, J., and Le Roux, J.L., Ed., "PCE Communication Protocol Generic
  Requirements", draft-ietf-pce-comm-protocol-gen-reqs-07.txt, June
  2006

  [RFC2702] Awduche, D., Malcolm, J., Agogbua, J., O'Dell and J. McManus, 
  "Requirements for Traffic Engineering over MPLS", RFC 2702, September 
  1999.

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

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

  [INTER-AREA] Le Roux, J., Vasseur, JP, Boyle, J., "Requirements for 
  Support of Inter-Area and Inter-AS MPLS Traffic Engineering", 
  draft-ietf-tewg- interarea-mpls-te-req-00.txt, March 2004 (work in 
  progress).

  [INTER-AS] Zhang, R., Vasseur, JP., et. al., "MPLS Inter-AS Traffic 
  Engineering requirements", draft-ietf-tewg-interas-mpls-te-req-06.txt, 
  January 2004 (work in progress).

  [MRN] Papadimitriou, D., et. al., "Generalized MPLS Architecture for
  Multi-Region Networks,"draft-vigoureux-shiomoto-ccamp-gmpls-mrn-04.txt,
  February 2004 (work in progress).


Choi, Guha                     Informational                  [Page 28]

Internet Draft    draft-choi-pce-metric-protocol-05.txt      August 2006


  [Ash] Farrel, A., Vasseur, JP., and Ash, J., "Path Computation Element
  (PCE) Architecture", draft-ietf-pce-architecture-05.txt, April 2006
  (in queue to become a RFC)


16. Authors' Addresses

    Jun Kyun Choi
    BcN Engineering Research Center
    103-6 Munji-Dong, Yuseong-gu, Daejeon, 305-732, Republic of Korea
    Phone: +82-42-866-6122
    Email: jkchoi@icu.ac.kr

    Dipnarayan Guha
    Nanyang Technological University, Singapore
    Email: dg236@cornell.edu


17. Full Copyright Statement

   Copyright (C) The Internet Society (2006).  All Rights Reserved. 
   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 translations of it MAY be copied and furnished to 
   others, and derivative works that comment on or otherwise explain it 
   or assist in its implementation MAY be prepared, copied, published 
   and distributed, in whole or in part, without restriction of any kind, 
   provided that the above copyright notice and this paragraph are 
   included on all such copies and derivative works. However, this 
   document itself MAY not be modified in any way, such as by removing 
   the copyright notice or references to the Internet Society or other 
   Internet organizations, except as needed for the purpose of 
   developing Internet standards in which case the procedures for 
   copyrights defined in the Internet Standards process MUST be followed, 
   or as required to translate it into languages other than English. 

   The limited permissions granted above are perpetual and will not be 
   revoked by the Internet Society or its successors or assigns.    

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






Choi, Guha                     Informational                  [Page 29]

Internet Draft    draft-choi-pce-metric-protocol-05.txt     August 2006