Upload
david-lucas
View
216
Download
0
Tags:
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);
• 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