CCU EE&CTR1 Software Architecture Overview Nick Wang & Ting-Chao Hou National Chung Cheng University Control Plane-Platform Development Kit
CCU EE&CTR2 Outline Managing Data Structures Microblock Core Component CP-PDK Overview Control Plane PDK Architecture Control Plane Module Transport Plug-in Forwarding Plane Module CPPUI
CCU EE&CTR3 Managing Data Structures Linked List Management Structure Ring Buffers SRAM Q_Array Controller The Many-to-One Problem
CCU EE&CTR4 Memory Resource Utilization in Processing a Packet
CCU EE&CTR5 Linked List Management Structure
CCU EE&CTR6 Linked List Management Structure
CCU EE&CTR7 Linked List Management Structure
CCU EE&CTR8 Linked List Management Structure
CCU EE&CTR9 Ring and linked list Ring Communication mechanism Fixed-Size Easy for maintenance Next-neighbor register, scratchpad, SRAM Linked List Packet buffering Variable-length SRAM
CCU EE&CTR10 Enqueueing to Cached Q_Array
CCU EE&CTR11 Enqueueing to Non-Cached Q_Array
CCU EE&CTR12 Dequeueing to Cached Q_Array
CCU EE&CTR13 Dequeueing to Non-Cached Q_Array
CCU EE&CTR14 The Many-to-One Problem Many-to-Many Many-to-One
CCU EE&CTR15 Elements of the Intel IXA Portability Framework
CCU EE&CTR16 Microblock A building block represents a unit of packet-processing functionality IPV4 routing, Ethernet bridging Intel Provides two kinds of building block Packet Processing Microblock Driver Microblock
CCU EE&CTR17 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
CCU EE&CTR18 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.
CCU EE&CTR19 Core component overview Core components need to register different types of handlers. Packet Handlers Message Handlers init() and fini() Functions ix_error ix_cc_ _init() ix_error ix_cc_ _fini()
CCU EE&CTR20 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
CCU EE&CTR21 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
CCU EE&CTR22 Control Plane PDK Architecture
CCU EE&CTR23 Control Plane PDK Architecture
CCU EE&CTR24 Control Plane Module
CCU EE&CTR25 Control Plane NP Forum defines two sets of APIs NPF Application API IPv4 API, MPLS API, DiffServ API NPF Management API
CCU EE&CTR26 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
CCU EE&CTR27 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
CCU EE&CTR28 Configuration and Management Module Layer 2 objects bridges and forwarding databases Ports Ethernet Layer 3 IP object Interface, IP route table, IPv6, Diffserv
CCU EE&CTR29 Namespace Module
CCU EE&CTR30 Binding and Capability Discovery Module Responsible for binding and capability discovery of the underlying forwarding planes Provides consistent semantics for heterogeneous forwarding plane
CCU EE&CTR31 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
CCU EE&CTR32 Inter-FE Forwarding Module Assigning labels to be used for inter-FE forwarding on per-router label information base.
CCU EE&CTR33 Callback and Event Handler Module Maintaining all API callbacks registered by the applications and also the callbacks registered for event notifications
CCU EE&CTR34 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
CCU EE&CTR35 CP Multi-client Module Allows the PDK to run with multiple clients on Linux The multi-client module uses RPC.
CCU EE&CTR36 Protocol Support Service Virtual Interface Device Driver (VIDD) CE packet handler Routing Cache Manager (RCM)
CCU EE&CTR37 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.
CCU EE&CTR38 Forwarding Plane Module
CCU EE&CTR39 CPPUI for conformance test
CCU EE&CTR40 Remote CP-PDK
CCU EE&CTR41 Co-located CP-PDK