230 likes | 375 Views
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.
E N D
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
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
PCC PCE Overview PCE TED Database to store Traffic Engineering information used by PCE Responsible for serving computation requests R2 Client on Network Nodes to send requests to PCE R6 TED updated using TE information from Network control/management Plane 1 R4 R1 R5 R3 Network Node uses computed path info to being reservation 5 PCC connects to the PCE and sends a path computation request PCE uses TE information from TED to compute path request PCE communicates the computed path to the PCC • Three Primary Components • Path Computation Element (PCE) • Path Computation Client (PCC) • Traffic Engineering Database (TED) 2 3 4 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 Computation 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. Session Handler Network Layer 10
PCEP Package Overview PCEPMessage Header MessageFrame Header PCEPObject PCEPObject Header Header Object 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 • 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 Thread Pool Computation Handler Graph Library Timer State Machines Map(Address,Statemachine) Session Handler Register With Session Handler PCE Protocol Map(Address,Socket) Selector Register new Connection Sockets New Conn Socket In Msg. In Msg. In Msg. New Connection Arrives Connection Registered 13
Network Layer Overview • 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 Thread Pool Computation Handler Graph Library Timer State Machines Map(Address,Statemachine) Session Handler Address, PCEPMessage Register With Session Handler Address Byte[] PCE Protocol Address, Byte[] Map(Address,Socket) Selector Get Socket via Address Register new Connection Sockets New Conn Socket In Msg. In Msg. In Msg. Response From Session Handler New Message Arrives Message Sent To Peer 8
Session Handler Overview • 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 Thread Pool Computation Handler Graph Library 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); Timer State Machines Map(Address,Statemachine) Session Handler PCE Protocol Map(Address,Socket) Selector Sockets New Conn Socket In Msg. In Msg. In Msg. 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 • 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 Thread Pool Computation Handler Graph Library PCEP Request Reset Timeout Event Timer State Machines Map(Address,Statemachine) Session Handler Forward to computation handler Update State Address, PCEPRequest PCE Protocol Map(Address,Socket) Selector Sockets New Conn Socket In Msg. In Msg. In Msg. Request Sent to Computation Layer PCEP Request Arrives 11
Session Handler Overview • 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 Thread Pool Computation Handler Graph Library PCEP Response Reset Timeout Event Timer State Machines Map(Address,Statemachine) Session Handler Forward to Network Layer Update State Address, PCEPResponse PCE Protocol Map(Address,Socket) Selector Sockets New Conn Socket In Msg. In Msg. In Msg. Response received from Computation Layer Response sent to Network Layer 11
Computation Layer Overview Assign request to available thread in thread pool Send Response to Computation Handler • 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 Thread Pool Use Graph Lib to compute path Computation Handler Graph Library PCEP Request PCEP Response Timer State Machines Map(Address,Statemachine) Session Handler PCE Protocol Map(Address,Socket) Selector Sockets New Conn Socket In Msg. In Msg. In Msg. Request received from Session Handler Send Response To Session Handler Path Computation Completed 12
Outline • PCE architecture Overview • PCE Emulator • PCE Server Implementation • PCE Client Implementation • Challenges In Implementation 20
PCE Client Implementation Client (GUI Implementation) • 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 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); Timer State Machines Map(Address,Statemachine) Session Handler PCE Protocol Map(Address,Socket) Selector Sockets New Conn Socket In Msg. In Msg. In Msg. 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