Download presentation
Presentation is loading. Please wait.
Published byDavid Lucas Modified over 9 years ago
1
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
2
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..
3
PCE architecture Overview PCE Emulator PCE Server Implementation PCE Client Implementation Challenges In Implementation 3 Outline
4
Path Computation Element (PCE) is a centralized server to facilitate constrained path computation Provide support of complex computation algorithms without increasing complexity of network hardware Easy to deploy and scale with different network sizes. 4 PCE Overview
5
5 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 Plane 1 PCC connects to the PCE and sends a path computation request 2 PCE uses TE information from TED to compute path request 3 PCE communicates the computed path to the PCC 4 Network Node uses computed path info to being reservation 5
6
PCE architecture Overview PCE Emulator PCE Server Implementation PCE Client Implementation Challenges In Implementation 6 Outline
7
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
8
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
9
PCE architecture Overview PCE Emulator PCE Server Implementation PCE Client Implementation Challenges In Implementation 9 Outline
10
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
11 PCEP Package Overview PCEPMessage MessageFrameHeader PCEPObjectHeaderPCEPObject HeaderObjectHeaderObjectHeader 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
12
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
13 Network Layer Overview SelectorMap(Address,Socket) Sockets PCE Protocol Session Handler Map(Address,Statemachine) Computation Handler Graph Library Timer In Msg. New Conn State Machines Thread Pool Register With Session Handler Register new Connection 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 Connection ArrivesConnection Registered
14
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. New Conn 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
15
9 Session Handler Overview SelectorMap(Address,Socket) Sockets PCE Protocol Session Handler Map(Address,Statemachine) Computation Handler Graph Library Timer In Msg. New Conn 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);
16
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
17
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. New Conn State Machines Thread Pool Update State Address, PCEPRequest PCEP Request 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
18
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. New Conn State Machines Thread Pool Update State Address, PCEPResponse PCEP Response 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
19
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. New Conn 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 PCEP Request Assign request to available thread in thread pool Use Graph Lib to compute path Send Response to Computation Handler PCEP Response Path Computation Completed
20
PCE architecture Overview PCE Emulator PCE Server Implementation PCE Client Implementation Challenges In Implementation 20 Outline
21
12 PCE Client Implementation SelectorMap(Address,Socket) Sockets PCE Protocol Session Handler Map(Address,Statemachine) Timer In Msg. New Conn 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);
22
12 PCE Client GUI Server Address Flags Source Address Dest Address Event/Message Logging Window
23
PCE architecture Overview PCE Emulator PCE Server Implementation PCE Client Implementation Challenges In Implementation 23 Outline
24
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.