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

tiny packet programs for low4latency network control
SMART_READER_LITE
LIVE PREVIEW

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%


slide-1
SLIDE 1

Tiny%Packet%Programs% for%low4latency%network%control%

Vimal%

Mohammad%Alizadeh,%Yilong%Geng,%Changhoon%Kim,%David%Mazières%

slide-2
SLIDE 2

Timescales%of%Network%FuncFons%

RouFng% Traffic%Engineering% Virtual%Network% Provisioning% Coarse4grained% monitoring% CongesFon% Control% Fine4grained% Monitoring% Forwarding% Debugging% Forwarding%% % AQM% % DPI%

Control'Plane' Data'Plane'

Packet% (ns%to%µs)% RTT% (µs%to%ms)% Seconds% Minutes% Network% Load%Balancing%

August%19,%2014% 2%

slide-3
SLIDE 3

Timescales%of%InnovaFon/Deployment%

RouFng% Traffic%Engineering% Virtual%Network% Provisioning% Coarse4grained% monitoring% CongesFon% Control% Fine4grained% Monitoring% Forwarding% Debugging% Forwarding%% % AQM% % DPI%

Control'Plane' (So.ware)' Data'Plane' (Hardware)'

Years!'' Network% Load%Balancing%

August%19,%2014% 3%

Hours/Days/Weeks% From%Idea%to%ProducFon%

slide-4
SLIDE 4

InnovaFon:%Where%and%How?%

Control%Plane%Interface:% e.g.%OpenFlow%

New'Control'Plane' Func:ons'in' So.ware' New'Data'Plane' Func:ons'in' Hardware'

August%19,%2014% 4%

Data'Plane'Stagna:on'

  • 1. You%have%to%convince%vendors%to%implement%

funcFonality.%

  • 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).%

slide-5
SLIDE 5

This%talk:%Interface%for% programming%Data%Plane%FuncFons%

Control%Plane%Interface:% e.g.%OpenFlow%

So.ware:' New'Control'Plane' Func:ons' Hardware:' Primi:ve'Data'Plane' Func:ons'

August%19,%2014% 5%

New%Data%Plane%Interface% Explicit%visibility%

End'Host:' New'Control'Plane' +'Complex'Data'Plane' Func:ons'

Key'Idea:%Empower%end4hosts%with%low4latency,% high%throughput%network%visibility%to%carry%out%% data%plane%funcFons%at%round4trip%Fmescales.%

Control%

slide-6
SLIDE 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%
  • verwork%it.%

%

August%19,%2014% 6%

slide-7
SLIDE 7

Interface:%Tiny%Packet%Program%

Ethernet Header Payload (e.g., TCP header)

Regular%packet,%forwarded%just% like%other%packets.%

August%19,%2014% 7%

slide-8
SLIDE 8

Tiny%Packet%Program%

Ethernet Header Payload (e.g., TCP header)

1 2 3 4 5

Instructions Packet memory (Initialized by end-hosts)

Up to 20 bytes 40–60 bytes

8%

MTU' 1500B%to% 9000B%

(Not%drawn%to%scale)% August%19,%2014%

Tiny%relaFve%to% usual%x86%programs.%

slide-9
SLIDE 9

Tiny%Packet%Program%

Ethernet Header Payload (e.g., TCP header)

1 2 3 4 5

Instructions Packet memory (Initialized by end-hosts)

Up to 20 bytes 40–60 bytes

Reads%+% Writes%(opFonal)% Program%=%max%5%instrucFons%with%access%to%switch% memory%in%hardware%as%described%by%a%data%sheet.%

9%

Control%Fields%(length,% checksum,%etc.)%

August%19,%2014%

Instruc:on' Purpose' LOAD/PUSH* Copy%state%from%switch%to%packet% STORE/POP* Copy%state%from%packet%to%switch% CSTORE* CondiFonal%store% CEXEC* CondiFonal%execute%

slide-10
SLIDE 10

Useful%State%inside%Switches%

August%19,%2014% 10%

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.%

slide-11
SLIDE 11

Tiny%Packet%Program%

Ethernet Header Payload (e.g., TCP header)

1 2 3 4 5

Instructions Packet memory (Initialized by end-hosts)

Up to 20 bytes 40–60 bytes

11% August%19,%2014%

Packet%memory%contains% space%to%load/store%state.%

slide-12
SLIDE 12

Localising%Micro4Bursts*:% Where%and%Which%app?%

August%19,%2014% 12%

…% …%

*Incast:*Vasudevan*et*al.*SIGCOMM*2009*

Timescales:%100s%of%us%to% milliseconds%

slide-13
SLIDE 13

TPP%workflow%example%

August%19,%2014% 13%

SP = 0x0 PUSH [QSize]

Ethernet Header

PUSH [SwID] PUSH [Util] PUSH [Clock]

PUSH*[SwID]**#*PUSH*[0x100]* % PUSH:%Copy%value%from%switch%to%packet%memory.% % End4host%compiles%the%instrucFon%to%bytecode.%

slide-14
SLIDE 14

InvesFgaFng%Micro4Bursts%

August%19,%2014% 14%

SP = 0x0 PUSH [QSize]

Ethernet Header

PUSH [SwID] PUSH [Util] PUSH [Clock] SP = 0x8 PUSH [QSize] 1,0x10,1,4 PUSH [SwID] PUSH [Util] PUSH [Clock]

slide-15
SLIDE 15

InvesFgaFng%Micro4Bursts%

August%19,%2014% 15%

SP = 0x0 PUSH [QSize]

Ethernet Header

PUSH [SwID] PUSH [Util] PUSH [Clock] SP = 0x8 PUSH [QSize] 1,0x10,1,4 PUSH [SwID] PUSH [Util] PUSH [Clock] SP = 0x10 PUSH [QSize] 1,0x10,1,1 2,0x00,2,3 PUSH [SwID] PUSH [Util] PUSH [Clock] SP = 0x18 PUSH [QSize] 1,0x10,1,1 2,0x00,2,3 3,0xff,1,5 PUSH [SwID] PUSH [Util] PUSH [Clock]

slide-16
SLIDE 16

Mininet:%All%to%all%traffic%at%30%%load% Short%(10kB)%flows% TPP:%50%byte%per%packet%for%5%hops.%

August%19,%2014% 16%

TPP%per%packet% samples% Poll%switch%for%samples% (every%100ms)%

  • 1. Precise,%per4packet%Fmestamps.%
  • 2. Packets%are%annotated%with%their%
  • wn%queue%occupancy.%
slide-17
SLIDE 17

TPPs%help%Beyond%Micro4Bursts%

% % % %

August%19,%2014% 17%

One%interface,%Many%tasks%

Micro4bursts% IdenFfy%compeFng%applicaFons%

  • Packets%!%ApplicaFons%
  • Understand%traffic%pauerns%

CongesFon%Control% Algorithms:%RCP% Use%queue%visibility%for%new% congesFon%control%algorithms.% (Uses%STORE%instrucFons.)% Debugging%Per4Packet% Forwarding%Behaviour:% NetSight% ?% Use%per4packet%visibility% for%detailed%diagnosis.%

slide-18
SLIDE 18

TPP:%End%to%End%Picture%

August%19,%2014% 18%

Switches/ASIC'

Executes%and%forwards%TPPs% at%line%rate%

End'Host' Stack'

4%Create%TPP%apps% 4%Enforce%fine4grained% access%control% VM% Untrusted%code% App%1% App%2% TPP%Control% Plane%Agent% Trusted%code% Auach%TPPs%to%packets% if%needed% TPP%access%control%

slide-19
SLIDE 19

Match% AcFon% Stage%n% Match% AcFon% Stage%1%

ASIC:%How%does%TPP%work?%

August%19,%2014% 19%

Packet% Parser% Memory% Match% AcFon% Stage%2% …%

slide-20
SLIDE 20

Per4stage%TPP%processing%

August%19,%2014% 20%

Registers% Memory% (Match4AcFon)% StaFsFcs% Memory%

PUSH [QSize] PUSH [SwID] PUSH [Util] PUSH [Clock] PUSH [QSize] 1, -, -, 10 PUSH [SwID] PUSH [Util] PUSH [Clock]

Rewrite%Packet%Field%

N%

Just%ALUs%(not%CPUs)% N=Max%#InstrucFons%

]*

1%

dest*ip*=*A*

  • utport*=*?*

A A Lookup% Engine% dest*ip*=*A*

  • utport*=*2*

2%

slide-21
SLIDE 21

Per4stage%TPP%processing%

August%19,%2014% 21%

Registers% Memory% (Match4AcFon)% StaFsFcs% Memory%

PUSH [QSize] PUSH [SwID] PUSH [Util] PUSH [Clock] PUSH [QSize] 1, -, -, 10 PUSH [SwID] PUSH [Util] PUSH [Clock]

Rewrite%Packet%Field%

N%

Just%ALUs%(not%CPUs)% N=Max%#InstrucFons%

]*

1%

dest*ip*=*A*

  • utport*=*?*

A A Lookup% Engine% dest*ip*=*A*

  • utport*=*2*

Key'Idea:'Restrict%data4dependencies% to%permit%out4of4order/parallel%execuFon% to%keep%pipeline%feed4forward.% % InstrucFon%ordering%complexity%

  • ffloaded%to%end4hosts.%
slide-22
SLIDE 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%

%

August%19,%2014% 22%

[1]*Forwarding*Metamorphosis*(RMT)*SIGCOMM*2013*

slide-23
SLIDE 23

TPP:%End%to%End%Picture%

August%19,%2014% 23%

End'Host' Stack' ASIC'

Executes%and%forwards%TPP%at%line%rate% 4%Create%TPP%apps% 4%Enforce%fine4grained% access%control% VM% Untrusted%code% App%1% App%2% TPP%Control% Plane%Agent% Trusted%code% Auach%TPPs%to%packets% if%needed% TPP%access%control%

TPP

rce

TPP

rce

TPP

rce

slide-24
SLIDE 24

Sanity%Check:%TPPs%can%be%made%safe%

August%19,%2014% 24%

Private Network Network Perimeter

slide-25
SLIDE 25

TPP%Access%Control%Policy%for%Safety%

August%19,%2014% 25%

Private Network Network Perimeter

From%Users:%Drop%all%TPPs%with% writes%to%forwarding%state%(say)%

slide-26
SLIDE 26

TPP%Access%Control%Policy%for%Safety%

August%19,%2014% 26%

Private Network Network Perimeter

From%Users:%Drop%all%TPPs%with% writes%to%forwarding%state%(say)% Secure Network (e.g. SDN controller) From%Admin:%Allow%any%TPP%

slide-27
SLIDE 27

TPP%Access%Control%Policy%for%Safety%

August%19,%2014% 27%

Private Network Network Perimeter

Untrusted External Network (Internet) From%Untrusted:% Drop%all%TPPs% From%Users:%Drop%all%TPPs%with% writes%to%forwarding%state%(say)% Secure Network (e.g. SDN controller) From%Admin:%Allow%any%TPP%

slide-28
SLIDE 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%

slide-29
SLIDE 29

Pushing%the%limits%of%TPPs%

August%19,%2014% 29%

What'we'have'done' RCP:%Maxmin%and%proporFonal%fairness% CongesFon%localisaFon%(micro4bursts)% Sketch4based%measurement% Network%debugging%and%troubleshooFng% What'we'think'is'possible' XCP,%QCP,%QCN,%MCP% Performance%IsolaFon:%EyeQ,% Gatekeeper,%FairCloud% Source%RouFng% Dynamic%load4based%packet%rouFng% (DeTail,%etc.)%

This%year’s%best%paper%CONGA,%

  • n%any%TPP4capable%network!%

"% (check%our%paper%for%spoilers.)%

TPP'isn’t'the'right'interface'for:' Introducing%new%headers%(e.g.,%IPv7,% VXLAN,%Geneve,%etc.)% Event4driven%funcFons%(e.g.,%noFfy% when%link%uFlisaFon%>%90%)% Per4packet%queue%management%(e.g.,% pFabric,%deficit%round%robin,%etc.)%