Presentation - Open Source PCE

advertisement
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
In this Talk We will..
• 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
Outline
• PCE architecture Overview
• PCE Emulator
• PCE Server Implementation
• PCE Client Implementation
• Challenges In Implementation
3
PCE Overview
2
PCC connects
to the PCE andthe
sends
PCE communicates
4
a path
computation
computed
path torequest
the PCC
PCE
3
PCE uses TE information from TED
to compute path request
TED
Database to store Traffic
Engineering information
used by PCE
TED
updated using TE information from
1
Network control/management Plane
Responsible for serving
computation requests
R2
Client on Network
Nodes to send
requests to PCE
R6
PCC
R4
R1
R3
5
R5
Network Node uses computed
path info to being reservation
Three Primary Components
• Path Computation Element (PCE)
• Path Computation Client (PCC)
• Traffic Engineering Database (TED)
5
Outline
• PCE architecture Overview
• PCE Emulator
• PCE Server Implementation
• PCE Client Implementation
• Challenges In Implementation
6
PCE Emulator Overview
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
Outline
• PCE architecture Overview
• PCE Emulator
• PCE Server Implementation
• PCE Client Implementation
• Challenges In Implementation
9
PCE Server Overview
• Three primary layers
Computation Layer
Session Handler
Network Layer
– 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.
10
PCEP Package Overview
PCEPMessage
Header
Header
Header
MessageFrame
PCEPObject
Header
Object
PCEPObject
Header
Object
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
11
PCEP Extensibility
• 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
Network Layer Overview
• Primary function to facilitate
Network I/O with remote peers
Thread Pool
Computation Handler
• Designed to support large number
of concurrent sessions with low
traffic volumes
Graph Library
Timer
State Machines
Map(Address,Statemachine)
Session Handler
Register With
Session
Handler
PCE Protocol
Map(Address,Socket)
Sockets
In Msg.
In Msg.
In Msg.
New Conn
Socket
Register
new
Connection
Selector
• Use of Asynchronous Network I/O
means that one process handles all
incoming messages / connection
requests
New
Connection
Connection
Registered
Arrives
13
Network Layer Overview
• Primary function to facilitate
Network I/O with remote peers
Thread Pool
Computation Handler
• Designed to support large number
of concurrent sessions with low
traffic volumes
Graph Library
Timer
State Machines
Map(Address,Statemachine)
Session Handler
Address,
PCEPMessage
Address
Byte[]
Register With
Session
Handler
PCE Protocol
Address, Byte[]
Map(Address,Socket)
Sockets
In Msg.
In Msg.
In Msg.
Socket
Register
new
Connection
Selector
New Conn
Get
Socket via
Address
• Use of Asynchronous Network I/O
means that one process handles all
incoming messages / connection
requests
Response
Message
New Message
From
Sent
Session
To
Arrives
Peer
Handler
8
Session Handler Overview
Thread Pool
Computation Handler
Graph Library
State Machine Interface: Timer
//Update state due to incoming message from Network
State Machines
Void updateStateNL(PCEPMessage);
Map(Address,Statemachine)
Session Handler
//Update
state due to message from Computattion layer
Void updateStateCL(PCEPMessage);
//Update state due to a timeout
Void updateState(ID nextState);
PCE Protocol
Map(Address,Socket)
Selector
Sockets
• 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
In Msg.
In Msg.
In Msg.
New Conn
Socket
9
State Machine Extensibility
• 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
Session Handler Overview
Thread Pool
Computation Handler
Graph Library
PCEP
Request
Reset Timeout Event
Timer
State Machines
Map(Address,Statemachine)
Session Handler
Address,
PCEPRequest
Forward
Update State
to
computation handler
PCE Protocol
Map(Address,Socket)
Selector
Sockets
• 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
In Msg.
In Msg.
In Msg.
New Conn
Socket
RequestPCEP
SentRequest
to Computation
Arrives Layer
11
Session Handler Overview
Thread Pool
Computation Handler
Graph Library
PCEP
Response
Reset Timeout Event
Timer
State Machines
Map(Address,Statemachine)
Session Handler
ForwardState
Update
to Network
Layer
Address,
PCEPResponse
PCE Protocol
Map(Address,Socket)
Selector
Sockets
In Msg.
In Msg.
In Msg.
New Conn
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
Response
Response
received
sentfrom
to Network
Computation
Layer Layer
11
Computation Layer Overview
Assign request to
Send Response to
available thread
Computation Handler
in thread pool
Thread Pool
Computation Handler
Use Graph Lib to
compute path
Graph Library
PCEP
Request
PCEP
Response
Timer
State Machines
Session Handler
Map(Address,Statemachine)
PCE Protocol
Map(Address,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
Selector
Sockets
In Msg.
In Msg.
In Msg.
New Conn
Socket
Request
Send
Path
Response
received
Computation
To
from
Session
Completed
Session
Handler
Handler
12
Outline
• PCE architecture Overview
• PCE Emulator
• PCE Server Implementation
• PCE Client Implementation
• Challenges In Implementation
20
PCE Client Implementation
Client (GUI Implementation)
State Machine Interface: Timer
//Update state due to incoming message from Network
State Machines
Void updateStateNL(PCEPMessage);
Map(Address,Statemachine)
Session Handler
//Update
state due to message from local Client
Void updateStateClient(PCEPMessage);
//Update state due to a timeout
Void updateState(ID nextState);
PCE Protocol
Map(Address,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
Selector
Sockets
In Msg.
In Msg.
In Msg.
New Conn
Socket
12
PCE Client GUI
Server Address
Source Address
Dest Address
Flags
Event/Message Logging Window
12
Outline
• PCE architecture Overview
• PCE Emulator
• PCE Server Implementation
• PCE Client Implementation
• Challenges In Implementation
23
Challenges in Implementation
• 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
Download