Supporting Runtime Reconfiguration on Network Processors Kevin Lee Lancaster University
Kevin Lee AINA th April Overview 1. Network Processors 2. Motivation 3. Our Approach 4. Implementation 5. Runtime Reconfiguration Support 6. Future Work 7. Summary/Questions
Kevin Lee AINA th April 1. Network Processors Designed to fill a gap in network technology Highly programmable Gigabit speed-routing Specialised packet processors
Kevin Lee AINA th April 1. The Intel IXP2400 Our Target Platform Main points: MicroEngines General Purpose CPU Multiple memory types Internal gigabit bus Programmable Hardware components Gigabit Ethernet ports
Kevin Lee AINA th April 2. Motivation Network Processors are inherently capable of Runtime Reconfiguration Lack of Runtime Reconfiguration support in Network Processor Software Support Active Networks Software Updates Supporting unforeseen events Load-balancing Reconfiguration of forwarding functions
Kevin Lee AINA th April 3. The Approach Using a Component Model: OpenCOM fine-grained and language-independent small run-time (~27K); simple and efficient components are primitive units of encapsulation and deployment deployed into capsules (for “capsule”, think container rather than active packet!) emphasises third-party composition and dynamic reconfiguration Support for Reflection using meta interfaces Architecture, Interception, Resources, Interface
Kevin Lee AINA th April 3. The Approach cont… OpenCOM enhancements for NPs Pluggable loaders To allow code to be loaded on third party processors Pluggable binders… To allow code to be bound within and between different processors Support for communication channels To allow proxy loading and binding
Kevin Lee AINA th April 3. OpenCOM Kernel API Implements the basic functionalities to support the creation and connection of OpenCOM components Loader API Allows use of loader plug-ins to load component types within specific caplets Binder API Allows use of binder plug-ins to bind specific component types together
Kevin Lee AINA th April 3. OpenCOM cont.
Kevin Lee AINA th April 3. In Practice
Kevin Lee AINA th April 4. OpenCOM Implementation on the Intel IXP2400 Central Runtime on XScale Load/Bind component natively Load plug-ins for third party Loading/Binding Microengine Loader Intra-Microengine Binder Inter-Microengine Binder PC-ARM Comms channel To allow loading/binding from PC/network to IXP
Kevin Lee AINA th April 4. OpenCOM Implementation on the Intel IXP2400 Source Code Diagram
Kevin Lee AINA th April 5. Runtime Reconfiguration on the IXP2400 To perform a reconfiguration Destroy a binding Load and instantiate a new component Bind the components together Implementation complexity hidden from programmer OpenCOM handles pausing of the packet flow Halting of the Microengines Control store is patched Microengines restarted Packet flow resumed
Kevin Lee AINA th April 5. Runtime Reconfiguration on the IXP2400 1: Dynamically Introduced Transcoding Service for the IXP2400
Kevin Lee AINA th April 5. Runtime Reconfiguration on the IXP2400 2: Load Balancing of the Microengines on the IXP2400
Kevin Lee AINA th April 5. Performance Reconfiguration takes 60ms per Microengine Throughput and Latency Measurements of OpenCOM components on the IXP2400 Microengines
Kevin Lee AINA th April 6. Future Work Further IXP2400 Implementation Componentise co-processors and network ports Loaders Support these devices using OpenCOM runtime Binders Between these components and microengine components Implementation on other platforms Current implementations IXP1200/IXP2400 Further platforms with different architecture To prove generality of the approach
Kevin Lee AINA th April Summary Network Processors are capable of supporting runtime reconfiguration Need for software support to enable this OpenCOM and extensions provides a potential solution Some overhead in providing this support Contact for further info: Questions???