NodeOS Programming Forwarding Functions for Extensible Routers Department of Computer Science Princeton University Router Workshop Yitzchak Gottlieb
Router Workshop Forwarding Functions n Hardware u Static F Users can not easily change n Software u Dynamic F Restart all flows (Reboot) F Restart single flow
Router Workshop n Simple Paths u IP Forwarding n Optimized Paths u Very Limited, High Performance forwarding Forwarding Paths NET IP NETETH—IP—ETH
Router Workshop n Complicated Paths u Filters F Firewalls F Traffic Shapers u Proxies Forwarding Paths TCP IP NET IP TCP Proxy
Router Workshop Demultiplexing and Processsing n Demultiplexing u Path Selection n Processing u Path execution n Does one determine the other? u Protocol Stack u Classical Proxies u Transparent Proxies
Router Workshop More Forwarding Paths n Trusted Components n Distrusted Components NodeOS JVM ANTS IP v N NET IP NET
Router Workshop Distrusted Modules n Why should they be allowed? u Rapid protocol development u Third party software n How should they be allowed? u Provide a trust barrier F Export capabilities F Limit resources Protect the router
Router Workshop Distrusted Modules NETIPNETRSVPIP ETH—IP—ETH Channel Creation
Router Workshop NodeOS Abstractions n Communication u Channels F Processing F Demultiplexing n Resource Accounting u Threads u Memory u Flows
Router Workshop Scout and NodeOS n What Scout provides u Module Composition u Resource Accounting n What it doesn’t u Pattern Matching Demultiplexing u Decoupled processing and Demux u Hardware based trust boundaries (SILK)
Router Workshop Scout and NodeOS n Channels u Left part is inChannel u Right part is outChannel u Processing only NodeOS JVM ANTS IP v N NET IP NET
Router Workshop Scout and NodeOS n CutChannels u Packets avoid NodeOS module in processing WaveDrop NodeOS ETH
Router Workshop Scout and NodeOS Data from a 450 MHz Pentium II
Router Workshop Review n Multiple forwarding paths may exist n Scout provides architecture for many types of paths n NodeOS provides a minimum interface for distrusted applications