23
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation Element (PCE) Emulator Mohit Chamania, Marek Drogon, Admela Jukan

Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation

Embed Size (px)

Citation preview

Institute of Computer andCommunication Network Engineering

OFC/NFOEC, 6-10 March 2011, Los Angeles, CA

Lessons Learned From Implementing a Path Computation Element (PCE) Emulator

Mohit Chamania, Marek Drogon, Admela Jukan

• Present an overview of the PCE emulator developed at IDA

• Describe the design motivations and subsequent implementations for different PCE components

• Outline areas for innovation in developing and extending the PCE server architecture

2

In this Talk We will..

• PCE architecture Overview

• PCE Emulator

• PCE Server Implementation

• PCE Client Implementation

• Challenges In Implementation

3

Outline

5

PCE Overview

R1

R2

R3

R4

R5

R6

Three Primary Components• Path Computation Element (PCE)• Path Computation Client (PCC)• Traffic Engineering Database (TED)

PCE TED

PCC

Responsible for serving computation requests

Client on Network Nodes to send

requests to PCE

Database to store Traffic Engineering information

used by PCE TED updated using TE information from

Network control/management Plane1

PCC connects to the PCE and sends a path computation request2

PCE uses TE information from TED to compute path request3PCE communicates the

computed path to the PCC4

Network Node uses computed path info to being reservation5

• PCE architecture Overview

• PCE Emulator

• PCE Server Implementation

• PCE Client Implementation

• Challenges In Implementation

6

Outline

Designed as a general purpose PCE with four primary design goals

– Should be easily extensible to evaluate extensions to the PCEP protocol and state machine

– Reusable: Require minimal effort to incorporate topological and network specific path computation features into the PCE

– Scalable: Should have capability to support a large number of PCEP requests in the network.

– Low Overhead: Should run on typical commercial hardware

7

PCE Emulator Overview

• The implementation of the PCE and the PCC contain common functions including State machine, network I/O and PCEP protocol implementations

• Differences include:– PCE implementing a path computation function – PCC implementing an client interface to facilitate other

applications to interact with the PCE.

• TED implemented as a separate package using Java based Graph library

8

PCE Emulator Overview

• PCE architecture Overview

• PCE Emulator

• PCE Server Implementation

• PCE Client Implementation

• Challenges In Implementation

9

Outline

10

PCE Server Overview

Computation Layer

Session Handler

Network Layer

• Three primary layers– Network I/O layer – Session Handler– Computation Layer

• Use of layers with standard Interfaces to facilitate extensibility

• PCE Protocol implemented as a Java package

• Each layer can be duplicated/replaced with a different implementation supporting the defined inter-layer interfaces.

11

PCEP Package Overview

PCEPMessage

MessageFrameHeader

PCEPObjectHeader PCEPObject

Header ObjectHeader ObjectHeader

The PCEP Protocol is used for communication between the PCC and the PCE

•Each PCEP message consists of a Message Header and a Message

Frame

•The Message Frame consists of multiple PCEP Objects

•Each Object itself consists of an Object header and body

• Message hierarchy duplicated in the package which can be extended to add

new messages/objects

• All PCEP messages and objects use a standard interface which can be easily extended

• Use a single Factory to generate all PCEP messages (Single point of logic for ease of implementation)

• Message conformity forced by providing checks on required objects – additional objects can be inserted easily with minimal effort

• All inter-layer interfaces only use PCEPMessage types, and are therefore compatible with new message types

12

PCEP Extensibility

13

Network Layer Overview

SelectorMap(Address,Socket)

Sockets

PCE Protocol

Session Handler Map(Address,Statemachine)

Computation Handler

Graph Library

Timer

In Msg.

In Msg.

In Msg.

New

Con

n

State Machines

Thread Pool

Register With Session Handler

Register new

ConnectionSocket

• Primary function to facilitate Network I/O with remote peers

• Designed to support large number of concurrent sessions with low traffic volumes

• Use of Asynchronous Network I/O means that one process handles all incoming messages / connection requests

New Connection ArrivesConnection Registered

Response From Session Handler

8

Network Layer Overview

SelectorMap(Address,Socket)

Sockets

PCE Protocol

Session Handler Map(Address,Statemachine)

Computation Handler

Graph Library

Timer

In Msg.

In Msg.

In Msg.

New

Con

n

State Machines

Thread Pool

Register With Session Handler

Register new

Connection

Get Socket via Address

Address, Byte[]

Address Byte[]

Address, PCEPMessage

Socket

• Primary function to facilitate Network I/O with remote peers

• Designed to support large number of concurrent sessions with low traffic volumes

• Use of Asynchronous Network I/O means that one process handles all incoming messages / connection requests

New Message ArrivesMessage Sent To Peer

9

Session Handler Overview

SelectorMap(Address,Socket)

Sockets

PCE Protocol

Session Handler Map(Address,Statemachine)

Computation Handler

Graph Library

Timer

In Msg.

In Msg.

In Msg.

New

Con

n

State Machines

Thread Pool

Socket

• Governs the processing of PCEP message based on State Machine

• All state machine transitions based on either incoming messages or timeouts

• State machines implemented as objects with Session Handler and Timer initiating State Changes

State Machine Interface://Update state due to incoming message from Network

Void updateStateNL(PCEPMessage);//Update state due to message from Computattion layer

Void updateStateCL(PCEPMessage);//Update state due to a timeout

Void updateState(ID nextState);

• PCEP State Machines may need to be modified to add additional functions such as AA

• Session Handler can use different State machine implementations which implement the standard interface

• Different implementations can also be run at the same time e.g. different state machines for internal and inter-domain computation requests

• Existing implementation provided with additional (empty) function triggered at every state transition

void stateTransition (ID currState, ID nextState)

10

State Machine Extensibility

Request Sent to Computation Layer

11

Session Handler Overview

SelectorMap(Address,Socket)

Sockets

PCE Protocol

Session Handler Map(Address,Statemachine)

Computation Handler

Graph Library

Timer

In Msg.

In Msg.

In Msg.

New

Con

n

State Machines

Thread Pool

Update StateAddress,

PCEPRequest

PCEPRequest

Socket

• Governs the processing of PCEP message based on State Machine

• All state machine transitions based on either incoming messages or timeouts

• State machines implemented as objects with Session Handler and Timer initiating State Changes

Reset Timeout Event

Forward to computation handler

PCEP Request Arrives

Response received from Computation Layer

11

Session Handler Overview

SelectorMap(Address,Socket)

Sockets

PCE Protocol

Session Handler Map(Address,Statemachine)

Computation Handler

Graph Library

Timer

In Msg.

In Msg.

In Msg.

New

Con

n

State Machines

Thread Pool

Update StateAddress,

PCEPResponse

PCEPResponse

Socket

• Governs the processing of PCEP message based on State Machine

• All state machine transitions based on either incoming messages or timeouts

• State machines implemented as objects with Session Handler and Timer initiating State Changes

Reset Timeout Event

Forward to Network Layer

Response sent to Network Layer

Request received from Session HandlerSend Response To Session Handler

12

Computation Layer Overview

SelectorMap(Address,Socket)

Sockets

PCE Protocol

Session Handler Map(Address,Statemachine)

Computation Handler

Graph Library

Timer

In Msg.

In Msg.

In Msg.

New

Con

n

State Machines

Thread Pool

Socket

• Responsible for Processing Path Computation Requests

• Use of custom Thread pool to serve multiple computation requests in parallel

• A Java Graph Library is used to provide topology information acting as TED

PCEPRequest

Assign request to available thread

in thread pool

Use Graph Lib to compute path

Send Response to Computation Handler

PCEPResponse

Path Computation Completed

• PCE architecture Overview

• PCE Emulator

• PCE Server Implementation

• PCE Client Implementation

• Challenges In Implementation

20

Outline

12

PCE Client Implementation

SelectorMap(Address,Socket)

Sockets

PCE Protocol

Session Handler Map(Address,Statemachine)

Timer

In Msg.

In Msg.

In Msg.

New

Con

n

State Machines

Socket

• Uses the same Session Handler and Network Layer Implementation

• The State Machine provides interface for incoming messages from Client to the Session Handler

• Implemented as a simple GUI in the Emulator

Client (GUI Implementation)

State Machine Interface://Update state due to incoming message from Network

Void updateStateNL(PCEPMessage);//Update state due to message from local Client

Void updateStateClient(PCEPMessage);//Update state due to a timeout

Void updateState(ID nextState);

12

PCE Client GUI

Server Address

Flags

Source AddressDest Address

Event/Message Logging Window

• PCE architecture Overview

• PCE Emulator

• PCE Server Implementation

• PCE Client Implementation

• Challenges In Implementation

23

Outline

• Coordination with TED– TED implementations should be optimized for concurrent access– In order to ensure accurate path information, TED update

announcement should be integrated into the PCE– Current implementation pauses processing of new requests, updates

TED and restarts processing of active requests (not optimal)

• Integration of Security Features– Intelligence in network layer to identify and deal with DDoS attacks

• Implementing Priority and Load balancing– Implementing priority queuing for critical path computation requests

(e.g. backup path computation)– Load-balancing across multiple PCEs implemented in same network

13

Challenges in Implementation