Princeton University MW 1100am1220pm Programmable Data Planes COS 597E Software Defined Networking Data Plane Streaming algorithms that act on packets Matching on some bits taking a simple action ID: 571688
Download Presentation The PPT/PDF document "Jennifer Rexford" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Jennifer RexfordPrinceton UniversityMW 11:00am-12:20pm
Programmable Data Planes
COS 597E: Software Defined NetworkingSlide2
Data PlaneStreaming algorithms that act on packets
Matching on some bits, taking a simple action
… at behest of control and management plane
Wide range of functionalityForwarding and access controlBuffering, marking, shaping, and schedulingRewriting header fields (e.g., NAT)Traffic monitoring and deep packet inspectionEncryption, compression, and transcoding
2Slide3
A Need for SpeedHigh link speed10
Gbps
, 40
Gbps, 100 GbpsSmall packets40-byte TCP ACK packetsSmall time per packet40 Gbps =124 Mpps with 320-bit packets8 ns to process a packetRouters need low latencyRelatively limited opportunity to batch or pipeline3Slide4
A Range of TechnologiesASIC (App-Specific Integrated Circuit)
Fast, dense chip, but expensive to change
FPGAs and network processors
Fast, reconfigurable, hard to program Graphics Processing UnitsMassive parallel computation on small coresSoftware on commodity computerEasy to program, but I/O bandwidth, memory copying, and interrupt overheads4Slide5
Click Modular Router
5Slide6
Click Motivation
Flexibility
Add new features and enable experimentation
OpennessAllow users/researchers to build and extend(In contrast to most commercial routers)ModularitySimplify the composition of existing featuresSimplify the addition of new featuresSpeed/efficiencyOperation (optionally) in the operating systemWithout user needing to grapple with OS internals
6Slide7
Router as a Graph of Elements
Large number of small elements
Each performing a simple packet function
E.g., IP look-up, TTL decrement, bufferingConnected together in a graphElements inputs/outputs snapped togetherBeyond elements in series to a graphE.g., packet duplication or classificationPacket flow as main organizational primitiveConsistent with data-plane operations on a router(Larger elements needed for, say, control planes)7Slide8
Push vs. Pull
Packet hand-off between elements
Directly inspired by properties of routers
Annotations on packets to carry temporary statePush processingInitiated by the source endE.g., when an unsolicited packet arrives (e.g., from a device)Pull processingInitiated by the destination endE.g., to control timing of packet processing (e.g., based on a timer or packet scheduler)8Slide9
Click Language
Declarations
Create elements
ConnectionsConnect elementsCompound elementsCombine multiple smaller elements, and treat as single, new element to use as a primitive classLanguage extensions through element classesConfiguration strings for individual elementsRather than syntactic extensions to the language9
src :: FromDevice(eth0);
ctr :: Counter;
sink :: Discard;
src -> ctr;
ctr -> sink;Slide10
Handlers and Control Socket
Access points for user interaction
Appear like files in a file system
Can have both read and write handlersExamplesInstalling/removing forwarding-table entriesReporting measurement statisticsChanging a maximum queue length Control socketAllows other programs to call read/write handlersCommand sent as single line of text to the server10Slide11
An Observation…
Click is widely used
And the paper on Click is widely cited
Click elements are created by othersEnabling an ecosystem of innovationTake-away lessonCreating useful systems that others can use and extend has big impact in the research communityAnd brings tremendous professional valueCompensating amply for the time and energy 11