410 likes | 573 Views
Software Architecture Overview. Control Plane-Platform Development Kit. Nick Wang & Ting-Chao Hou National Chung Cheng University. Outline. Managing Data Structures Microblock Core Component CP-PDK Overview Control Plane PDK Architecture Control Plane Module Transport Plug-in
E N D
Software Architecture Overview Control Plane-Platform Development Kit Nick Wang & Ting-Chao Hou National Chung Cheng University
Outline • Managing Data Structures • Microblock • Core Component • CP-PDK Overview • Control Plane PDK Architecture • Control Plane Module • Transport Plug-in • Forwarding Plane Module • CPPUI
Managing Data Structures • Linked List Management Structure • Ring Buffers • SRAM Q_Array Controller • The Many-to-One Problem
Ring and linked list • Ring • Communication mechanism • Fixed-Size • Easy for maintenance • Next-neighbor register, scratchpad, SRAM • Linked List • Packet buffering • Variable-length • SRAM
The Many-to-One Problem Many-to-Many Many-to-One
Microblock • A building block represents a unit of packet-processing functionality • IPV4 routing, Ethernet bridging • Intel Provides two kinds of building block • Packet ProcessingMicroblock • Driver Microblock
Core component overview • During initialization, each core component does the following: • Sets up memory for shared tables • Patches symbols • Processing exception packets • Non-IP Packets • Packets with no route information • Packets that require fragmentation • Packets for local IP addresses • Packets with IP options
Core component Functions • Configures its microblock (static configuration by means of imported variables and dynamic configuration through control blocks). • Initializes and maintains common data structures that may be updated by other applications. • Provides exception as well as control message handler to process packets/messages sent by the microblock.
Core component overview • Core components need to register different types of handlers. • Packet Handlers • Message Handlers • init() and fini() Functions • ix_error ix_cc_<component-name>_init() • ix_error ix_cc_<component-name>_fini()
CP-PDK Overview • Three logical operational components • Control Plane • Control and configure the Forwarding Plane • Signaling and routing protocol • Forwarding Plane • Manipulate the network traffic • Forwarding, classification, filtering • Management Plane • Manage the control and forwarding planes • Start or stop routing process • Performance logging
NPF (Network Processing Forum) API • Standardized the APIs within the three planes • mix and match components available from different vendors • presents a flexible and well-known programming interface to the control plane applications • the protocol stacks and network processors available can be easily integrated with the NPF APIs
Control Plane • NP Forum defines two sets of APIs • NPF Application API • IPv4 API, MPLS API, DiffServ API • NPF Management API
Features of Control Plane module • One-to-many mapping • Inter-forwarding plane forwarding • Binding and capability discovery of the forwarding planes • OS abstraction layer achieve independence from the control plane hardware and OS
Application API Implementation Module • IPv4 and IPv6 Unicast Forwarding API • Configuration and management objects • Ex. IP route and ARP tables • Receiving notification • Ex. ARP events • MPLS API • Configuring the MPLS Core Component • Setup the labels required for label swapping • ATM API • Configuring and management VP,VC parameters • Qos API • Configuration the IntServ and DiffServ CC
Configuration and Management Module • Layer 2 objects • bridges and forwarding databases • Ports • Ethernet • Layer 3 IP object • Interface, IP route table, IPv6, Diffserv
Binding and Capability Discovery Module • Responsible for binding and capability discovery of the underlying forwarding planes • Provides consistent semantics for heterogeneous forwarding plane
Forwarding Plane Topology Manager • The forwarding plane could be connected in a bus, mesh, star • The control data being downloaded must also be slightly modified in some case to simulate the one virtual router
Inter-FE Forwarding Module • Assigning labels to be used for inter-FE forwarding on per-router label information base.
Callback and Event Handler Module • Maintaining all API callbacks registered by the applications and also the callbacks registered for event notifications
CP Module Manager • Initialization and shutdown of CP module • The CP module manager starts all the sub-modules in the CP in a well-defined order, including the CP Agent, which is a part of the transport plug-in
CP Multi-client Module • Allows the PDK to run with multiple clients on Linux • The multi-client module uses RPC.
Protocol Support Service • Virtual Interface Device Driver (VIDD) • CE packet handler • Routing Cache Manager (RCM)
Transport Plug-in • Provide in-process communication between the control plane and the forwarding plane in the case of co-location • Different forwarding plane can be connected to the control plane over different interconnects.