Bowman: A Node OS for Active Networks S. Merugu S. Bhattacharjee E. Zegura K. Calvert College of Computing; Georgia Tech Department of Computer Science; U. of Maryland Department of Computer Science, U. of Kentucky Infocom 2000, Tel Aviv, Israel Outline • • • • • Background - Active Networking Bowman System Design Performance Measurements Configuration for Active Networking Concluding Remarks 2 Active Networking: What • Programmable user-network interface(s) • Control via: – mobile code in packets (capsules) – mobile code fetched from code repositories, based on packet header values – programmable signaling protocols – selection from set of fixed behaviors → Multiple execution environments 3 Active Networking: Why • Faster deployment of new protocols and services • Platform for research • Services that exploit app and network knowledge – – – – reliable multicast application-specific congestion control, e.g., MPEG network caching network monitoring → High performance, access to low-level resources 4 DARPA Node Architecture AN UNIs Execution Environments Node OS ANTS IO ifs CANEs PLAN CPU memory 5 Bowman (and CANEs) AN UNI Execution Environments Node OS CANEs Bowman HostOS (POSIX compliant) 6 Bowman Design Goals • • • • • • Support per-flow processing Provide a fast path Enable a network-wide architecture Maintain reasonable performance Provide modularity and extensibility Leverage existing Host OS n 7 Primary Bowman Abstractions • Channels a-flows – communication endpoints – include protocol processing • A-flows – computation state store • State store – indexed by a unique key – includes named registries for data sharing between a-flows channels 8 Additional Components • Dynamic extension mechanism • Efficient packet classifier – match arbitrary number of header fields – returns first, all, or best match (with costs associated with each field) – dynamically extensible to different protocols • Timers • Network architecture via abstract topologies 9 Packet Processing Path a-flow processing EE code Bowman code input queues cut-through packet classifiers output queues input channels output channels 10 Bowman Network Architecture physical topo abstract links Ethernet virtual topo UDP • Configure abstract links: endpoints plus protocol processing over physical topology (ALP) • Select set of abstract links for virtual topology (ATP) 11 Performance Testing Sun Ultra-5, 300 MHz SunOS 5.7 100 Mbps Sun Ultra-5, 300 MHz SunOS 5.7 100 Mbps Bowman Node Sun Ultra-2, 168 MHz 2 processors Compare to: • Solaris kernel forwarding • C gateway -- socket read/write of UDP segments 12 Forwarding Performance 100 Throughput at receiver (Mbps) 90 80 70 60 50 40 Solaris Kernel C Gateway Bowman Aflow 30 20 10 0 200 400 600 800 1000 1200 1400 1600 Packet Size (Bytes) Saturates 100 Mbps Ethernet for packets over 1400 bytes 13 Packet Processing Overheads Cumulative Time (microseconds) 250 200 System write A-flow processing A-flow dequeue A-flow enqueue Channel processing System read 150 100 50 0 200 400 600 800 1000 1200 1400 Packet Size (bytes) Bowman overhead relatively constant (~25 usec) System read and write calls dominate processing time 14 Effect of Real-time Scheduling Queue Size (packets) 1000 Input Queue (TS) Output Queue (TS) Input Queue (RT) Output Queue (RT) 100 10 2000 2200 2400 2600 2800 3000 Packet Index Comparison of time-sharing (TS) to real-time (RT) mode Three kernel threads: input, a-flow, output 15 Configuration for AN • Monolithic approach – EE creates exactly one a-flow that subscribes to all packets addressed to EE – EE manages own resources • Multi-a-flow approach (CANEs) – EE creates one control a-flow used for EE signaling and management – New a-flow for each user’s packets – Bowman schedules user computation 16 Selected Related Work • Router plug-ins (WashU) – integrated EE (customizable IP) and NodeOS – NetBSD kernel modifications • Janos (Utah) – Java-based NodeOS • Extensible routers (Princeton) – Scout-based NodeOS 17 Future Work • • • • Security mechanism Resource management More complex output queueing disciplines Scalable topology instantiation • EE-developers toolkit to run over DARPA NodeOS implementations? 18 a-flow processing EE code Bowman code input queues cut-through packet classifiers output queues input channels output channels