PhD VIVA Kevin lee 28 th July 2006 “OpenNP: A Generic Programming Model for Network Processors” Brief Introduction
1. History How did the project come about: MSc project: “OpenRouter: A Component Framework for Structuring Software Routers” MSc project: Building Simple PC-based Routers from components An interest in higher speed and more restrictive routing platforms Coincidental donation of cutting edge NPs from Intel as I started my PhD
2.The Field: Network Processors Designed to fill a gap in network technology between ASIC-based routers and PC-based routers Characteristics Highly Programmable Multi Gigabit Speeds Specialised Packet Processors Variety of Hardware Assists
2. Example: The Intel IXP2400 the thesis implementation example Main points: Microengines General Purpose CPU Multiple memory types Internal gigabit bus Programmable Hardware components Gigabit Ethernet ports
3. Motivation: Current NP software Toolkits for NPs consist of: Assembler/ C if lucky Good simulation/monitoring Deployment – by hand Code managing/replacement – by hand No design portability whatsoever No support for runtime reconfiguration
3.Motivation: What would be Ideal? Need for generic models and frameworks for Network Processors Transferable skills Better Application design Design Portability Runtime reconfiguration support in Network Processor software Software Updates Supporting Unforeseen Events Load-balancing Support Active Networks
3. The Approach: Component Model Using a lightweight Component Model as the basis: 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!) Support or Component Frameworks for higher level features Support for Reflection using meta interfaces Architecture, Interception, Resources
3. The Approach: Extensions for NPs OpenCOM gives us a lightweight base to build upon 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 Deployment Roles Structure the development process
4. The Approach: Supporting NP features Demonstrate support of features in different example NPs: Packet Processors Hardware Assists Interconnects and Buses Ports Parallelism Runtime Reconfiguration
5. Publications K. Lee, G. Coulson, “Towards a Generic Programming Model for Network Processors”, Proceedings of IEEE International Conference on Networks (ICON'04), Singapore, November K. Lee, G. Coulson, “Supporting Runtime Reconfiguration on Network Processors”, 20th International Conference on Advanced Information Networking and Applications (AINA'06), Vienna University of Technology, Vienna, Austria, April 2006.
Open for Discussion