160 likes | 290 Views
A Comparative Study of Extensible Routers. Yitzchak Gottlieb and Larry Peterson. Extensibility: Why?. New Services Packet taggers Filters Firewalls Overlay Networks Old Routers Fixed. Extensibility: How?. Software routers Easy to change Rewrite code Hard to extend Little guidance
E N D
A Comparative Study of Extensible Routers Yitzchak Gottlieb and Larry Peterson
Extensibility: Why? • New Services • Packet taggers • Filters • Firewalls • Overlay Networks • Old Routers • Fixed
Extensibility: How? • Software routers • Easy to change • Rewrite code • Hard to extend • Little guidance • Extensible software routers • Easy to extend • Defined architecture
Extensibility: Who? • Scout • Princeton University • SILK (Scout in Linux Kernel) • Click • MIT • Linux Kernel Module • Router Plugins (Crossbow) • Washington U St. L, ETH Zürich, Ascom • BSD Hack
How To Choose? • Choose Scout • Bias? • Choose at random • Compare strengths and weaknesses • Does your application fit its model? • Does it provide access to what you need? • Is it hard to program?
Modeling Extensible Routers • Basis for comparison • Abstracts implementation • Simple • Few components • Comprehensible • Powerful • Models all three systems
C S F Model: The Players • Queues • FIFO • Classifiers • One to many • Schedulers • Many to one • Forwarders • One to one
Comparing Extensible Routers • Extensibility • Classifiers • Schedulers • Forwarders • Process Scheduling • Flow Isolation
Extensibility: Two approaches • Outside the architecture • Extend the fixed pieces • Why use extensible routers • Within the architecture • Insert • Replace • Program • Parameterize • Add Code
Forwarders in Click • Small (Null element: 8 lines) • Multiple
F F F C S F F S F C F F Forwarders in Crossbow • Bigger (Null plugin: 98 lines) • Restricted placement
S F F Forwarders in Scout C • Biggest (Null module: 200 lines) • Powerful
Process scheduling • Scout • Classify to path • Schedule Path • Click • Pull from upstream queue • Push until downstream queue • Crossbow • Process at arrival
Flow Isolation • Scout • Paths are isolated • Click • Queues isolate subgraphs • Crossbow • No isolation
Conclusions • Powerful default classifier • Programmable substructure • Flow isolation • Schedule whole computation • Small components • Good aggregation tools