180 likes | 296 Views
Supporting Runtime Reconfiguration on Network Processors. Kevin Lee Lancaster University leek@comp.lancs.ac.uk. Overview. Network Processors Motivation Our Approach Implementation Runtime Reconfiguration Support Future Work Summary/Questions. 1. Network Processors.
E N D
Supporting Runtime Reconfiguration on Network Processors Kevin Lee Lancaster University leek@comp.lancs.ac.uk
Overview • Network Processors • Motivation • Our Approach • Implementation • Runtime Reconfiguration Support • Future Work • Summary/Questions Kevin Lee AINA 2006 20th April
1. Network Processors • Designed to fill a gap in network technology • Highly programmable • Gigabit speed-routing • Specialised packet processors Kevin Lee AINA 2006 20th 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 2006 20th 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 2006 20th 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 2006 20th 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 2006 20th 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 2006 20th April
3. OpenCOM cont. Kevin Lee AINA 2006 20th April
3. In Practice Kevin Lee AINA 2006 20th April
4. OpenCOM Implementationon 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 2006 20th April
4. OpenCOM Implementationon the Intel IXP2400 • Diagram • Source Code Kevin Lee AINA 2006 20th 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 2006 20th April
5. Runtime Reconfiguration on the IXP2400 • 1: Dynamically Introduced Transcoding Service for the IXP2400 Kevin Lee AINA 2006 20th April
5. Runtime Reconfiguration on the IXP2400 • 2: Load Balancing of the Microengines on the IXP2400 Kevin Lee AINA 2006 20th April
5. Performance • Reconfiguration takes 60ms per Microengine • Throughput and Latency Measurements of OpenCOM components on the IXP2400 Microengines Kevin Lee AINA 2006 20th 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 2006 20th 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: leek@comp.lancs.ac.uk • Questions??? Kevin Lee AINA 2006 20th April