tiny packet programs for low4latency network control
play

Tiny%Packet%Programs% for%low4latency%network%control% Vimal % - PowerPoint PPT Presentation

Tiny%Packet%Programs% for%low4latency%network%control% Vimal % Mohammad%Alizadeh,%Yilong%Geng,%Changhoon%Kim,%David%Mazires% Timescales%of%Network%FuncFons% Network% Load%Balancing% Virtual%Network% CongesFon% Forwarding%% Provisioning%


  1. Tiny%Packet%Programs% for%low4latency%network%control% Vimal % Mohammad%Alizadeh,%Yilong%Geng,%Changhoon%Kim,%David%Mazières%

  2. Timescales%of%Network%FuncFons% Network% Load%Balancing% Virtual%Network% CongesFon% Forwarding%% Provisioning% Control% % AQM% Coarse4grained% Fine4grained% RouFng% % monitoring% Monitoring% DPI% Forwarding% Traffic%Engineering% Debugging% Packet% RTT% Seconds% Minutes% (ns%to%µs)% (µs%to%ms)% Control'Plane' Data'Plane' August%19,%2014% 2%

  3. Timescales%of%InnovaFon/Deployment% Network% Load%Balancing% Virtual%Network% CongesFon% Forwarding%% Provisioning% Control% % AQM% Coarse4grained% Fine4grained% RouFng% % monitoring% Monitoring% DPI% Forwarding% Traffic%Engineering% Debugging% Hours/Days/Weeks% Years!'' From%Idea%to%ProducFon% Control'Plane' Data'Plane' (So.ware)' (Hardware)' August%19,%2014% 3%

  4. InnovaFon:%Where%and%How?% New'Control'Plane' New'Data'Plane' Func:ons'in' Func:ons'in' Data'Plane'Stagna:on' So.ware' Hardware' 1. You%have%to%convince%vendors%to%implement% funcFonality.% Control%Plane%Interface:% e.g.%OpenFlow% 2. Even%with%ASIC%team,%design%+%verificaFon%+%tesFng%a% new%feature%takes%a%LONG%Fme.%%Need%to%get%it%right!% 3. Some%funcFons%have%many%“right”%answers%(e.g.,% congesFon%control).% August%19,%2014% 4%

  5. This%talk:%Interface%for% programming%Data%Plane%FuncFons% Control% End'Host:' So.ware:' Hardware:' New'Control'Plane' New'Control'Plane' Primi:ve'Data'Plane' +'Complex'Data'Plane' Explicit%visibility% Func:ons' Func:ons' Func:ons' Control%Plane%Interface:% New%Data%Plane%Interface% e.g.%OpenFlow% Key'Idea :%Empower%end4hosts%with%low4latency,% high%throughput%network%visibility%to%carry%out%% data%plane%funcFons%at%round4trip%Fmescales.% August%19,%2014% 5%

  6. Interface:%Guiding%Principles% • Generic:%FuncFon4agnosFc,%increases%chance%of% adopFon%across%mulFple%switching%vendors%and% plahorms.% • In4band:%Use%data%packets%as%your%minions%to%Fe% network%state% unambiguously %to%specific%packets% (high%throughput%+%low%latency).% • Light4weight:%Hardware%is%your%friend,%don’t% overwork%it.% % August%19,%2014% 6%

  7. Interface:%Tiny%Packet%Program% Regular%packet,%forwarded%just% Ethernet Header like%other%packets.% Payload (e.g., TCP header) August%19,%2014% 7%

  8. Tiny%Packet%Program% Ethernet Header 1 2 3 4 5 Tiny%relaFve%to% Up to 20 bytes usual%x86%programs.% Instructions MTU' 1500B%to% 9000B% 40–60 Packet memory bytes (Initialized by end-hosts) Payload (e.g., TCP header) (Not%drawn%to%scale)% August%19,%2014% 8%

  9. Tiny%Packet%Program% Ethernet Header Control%Fields%(length,% checksum,%etc.)% 1 2 3 4 5 Reads%+% Up to Writes%(opFonal)% 20 bytes Instructions Instruc:on' Purpose' Copy%state%from%switch%to%packet% LOAD/PUSH* 40–60 Packet memory bytes Copy%state%from%packet%to%switch% STORE/POP* (Initialized by end-hosts) CondiFonal%store% CSTORE* CondiFonal%execute% CEXEC* Payload (e.g., TCP header) Program%=%max%5%instrucFons%with%access%to%switch% memory%in%hardware%as%described%by%a%data%sheet.% August%19,%2014% 9%

  10. Useful%State%inside%Switches% Namespace' Examples' Per4Switch% Switch'ID ,%clock/upFme% Per4Port% Link'u:lisa:on ,%bytes%sent/received,%bytes% enqueued,%bytes%dropped% Per4Queue% Bytes%sent/received,% bytes'enqueued ,% bytes%dropped% Per4Packet% Input/output'port /queue,%matched%flow% entry%indices,%packet%fields% For%more%staFsFcs,%please%check%OpenFlow%specificaFon.% August%19,%2014% 10%

  11. Tiny%Packet%Program% Ethernet Header 1 2 3 4 5 Up to 20 bytes Instructions Packet%memory%contains% 40–60 Packet memory bytes space%to%load/store%state.% (Initialized by end-hosts) Payload (e.g., TCP header) August%19,%2014% 11%

  12. Localising%Micro4Bursts*:% Where%and%Which%app?% …% Timescales:%100s%of%us%to% milliseconds% …% August%19,%2014% 12% *Incast:*Vasudevan*et*al.*SIGCOMM*2009*

  13. TPP%workflow%example% Ethernet Header SP = 0x0 PUSH*[SwID]**#*PUSH*[0x100]* PUSH [SwID] % PUSH [QSize] PUSH [Util] PUSH:%Copy%value%from%switch%to%packet%memory.% PUSH [Clock] % End4host%compiles%the%instrucFon%to%bytecode.% August%19,%2014% 13%

  14. InvesFgaFng%Micro4Bursts% Ethernet Header SP = 0x0 SP = 0x8 PUSH [SwID] PUSH [SwID] PUSH [QSize] PUSH [QSize] PUSH [Util] PUSH [Util] PUSH [Clock] PUSH [Clock] 1,0x10,1,4 August%19,%2014% 14%

  15. InvesFgaFng%Micro4Bursts% Ethernet Header SP = 0x0 SP = 0x8 SP = 0x10 SP = 0x18 PUSH [SwID] PUSH [SwID] PUSH [SwID] PUSH [SwID] PUSH [QSize] PUSH [QSize] PUSH [QSize] PUSH [QSize] PUSH [Util] PUSH [Util] PUSH [Util] PUSH [Util] PUSH [Clock] PUSH [Clock] PUSH [Clock] PUSH [Clock] 1,0x10,1,4 1,0x10,1,1 1,0x10,1,1 2,0x00,2,3 2,0x00,2,3 3,0xff,1,5 August%19,%2014% 15%

  16. Mininet:%All%to%all%traffic%at%30%%load% Short%(10kB)%flows% TPP:%50%byte%per%packet%for%5%hops.% 1. Precise,%per4packet%Fmestamps.% 2. Packets%are%annotated%with%their% own %queue%occupancy.% TPP%per%packet% Poll%switch%for%samples% samples% (every%100ms)% August%19,%2014% 16%

  17. TPPs%help%Beyond%Micro4Bursts% One%interface,%Many%tasks% % % Debugging%Per4Packet% CongesFon%Control% Micro4bursts% Forwarding%Behaviour:% Algorithms:%RCP% % NetSight% % ?% IdenFfy%compeFng%applicaFons% Use%queue%visibility%for%new% Use%per4packet%visibility% • Packets% ! %ApplicaFons% congesFon%control%algorithms.% for%detailed%diagnosis.% • Understand%traffic%pauerns% (Uses%STORE%instrucFons.)% August%19,%2014% 17%

  18. TPP:%End%to%End%Picture% Trusted%code% Untrusted%code% TPP%Control% VM% App%1% App%2% Plane%Agent% End'Host' Stack' Auach%TPPs%to%packets% if%needed% 4%Create%TPP%apps% 4%Enforce%fine4grained% TPP%access%control% access%control% Switches/ASIC' Executes%and%forwards%TPPs% at%line%rate% August%19,%2014% 18%

  19. ASIC:%How%does%TPP%work?% Match% Match% Match% Memory% Packet% AcFon% AcFon% AcFon% …% Parser% Stage%1% Stage%2% Stage%n% August%19,%2014% 19%

  20. Per4stage%TPP%processing% Memory% StaFsFcs% Registers% (Match4AcFon)% Memory% 2% 1% Lookup% dest*ip*=*A* A dest*ip*=*A* A Engine% outport*=*?* outport*=*2* Rewrite%Packet%Field% PUSH [SwID] ]* PUSH [SwID] PUSH [QSize] PUSH [QSize] PUSH [Util] PUSH [Util] PUSH [Clock] PUSH [Clock] 1, -, -, 10 N% Just%ALUs%(not%CPUs)% N=Max%#InstrucFons% August%19,%2014% 20%

  21. Per4stage%TPP%processing% Memory% StaFsFcs% Registers% (Match4AcFon)% Memory% 1% Key'Idea:' Restrict%data4dependencies% Lookup% dest*ip*=*A* A dest*ip*=*A* A Engine% outport*=*?* outport*=*2* to%permit%out4of4order/parallel%execuFon% Rewrite%Packet%Field% PUSH [SwID] ]* PUSH [SwID] to%keep%pipeline%feed4forward.% PUSH [QSize] PUSH [QSize] PUSH [Util] % PUSH [Util] PUSH [Clock] PUSH [Clock] InstrucFon%ordering%complexity% 1, -, -, 10 N% offloaded%to%end4hosts.% Just%ALUs%(not%CPUs)% N=Max%#InstrucFons% August%19,%2014% 21%

  22. Feasibility%Check:%Hardware%Costs% • NetFPGA410G:%4%stages%per%port% – 30%%extra%logic%gates%relaFve%to%simple%IP%router% – ≤%10%memory%accesses%per%packet%(by%design)% • Therefore,%≤%10%cycle%execuFon%latency%per%packet% • SpeculaFon%from%single4chip%ASIC%cost%in%[1]% – <%3%%addiFonal%instrucFon%processors%wrt%to%[1]% • ≤%50%nanoseconds%@1GHz% • Contrast%this%to%unloaded%64B%forwarding%latency%of% 200—500ns% % [1]*Forwarding*Metamorphosis*(RMT)*SIGCOMM*2013* August%19,%2014% 22%

  23. TPP:%End%to%End%Picture% Trusted%code% Untrusted%code% TPP%Control% VM% App%1% App%2% Plane%Agent% End'Host' rce rce TPP TPP Stack' rce Auach%TPPs%to%packets% TPP if%needed% 4%Create%TPP%apps% 4%Enforce%fine4grained% TPP%access%control% access%control% ASIC' Executes%and%forwards%TPP%at%line%rate% August%19,%2014% 23%

  24. Sanity%Check:%TPPs%can%be%made%safe% Network Perimeter Private Network August%19,%2014% 24%

  25. TPP%Access%Control%Policy%for%Safety% From%Users:%Drop%all%TPPs%with% writes%to%forwarding%state%(say)% Network Perimeter Private Network August%19,%2014% 25%

  26. TPP%Access%Control%Policy%for%Safety% From%Users:%Drop%all%TPPs%with% writes%to%forwarding%state%(say)% Network Perimeter Private Network Secure Network (e.g. SDN controller) From%Admin:%Allow%any%TPP% August%19,%2014% 26%

  27. TPP%Access%Control%Policy%for%Safety% From%Users:%Drop%all%TPPs%with% writes%to%forwarding%state%(say)% Network Perimeter Private Network Untrusted Secure Network External (e.g. SDN Network controller) (Internet) From%Admin:%Allow%any%TPP% From%Untrusted:% Drop%all%TPPs% August%19,%2014% 27%

  28. Living%on%the%Edge%with%TPPs% • What%is%TPP?% – A%data%plane%memory%interface%to%switch%memory% – A%highly%simplified%formulaFon%of%AcFve%Networks% • Why%is%TPP%useful?% – Implement%new%data%plane%funcFons%in%soware,% without%waiFng%years%for%specific%hardware% features% August%19,%2014% 28%

Recommend


More recommend