Horizontal Vertically integrated Open interfaces Closed, - - PowerPoint PPT Presentation

horizontal vertically integrated open interfaces closed
SMART_READER_LITE
LIVE PREVIEW

Horizontal Vertically integrated Open interfaces Closed, - - PowerPoint PPT Presentation

Forwarding Plane Correctness Nick McKeown Stanford University App App App App App App App App App App App Specialized Open Interface Applications Windows


slide-1
SLIDE 1

Forwarding Plane Correctness

Nick ¡McKeown ¡

Stanford ¡University ¡ ¡

slide-2
SLIDE 2

Vertically integrated Closed, proprietary Slow innovation Small industry

Specialized Operating System Specialized Hardware

App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡

Specialized Applications

Horizontal Open interfaces Rapid innovation Huge industry

Microprocessor

Open Interface

Linux ¡ Mac ¡ OS ¡

Windows ¡ (OS) ¡

  • r
  • r

Open Interface

slide-3
SLIDE 3

Vertically integrated Closed, proprietary Slow innovation

App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡ App ¡

Horizontal Open interfaces Rapid innovation

Control ¡ Plane ¡ Control ¡ Plane ¡ Control ¡ Plane ¡

  • r
  • r

Open Interface

Specialized Control Plane Specialized Hardware Specialized Features Merchant Switching Chips

Open Interface

slide-4
SLIDE 4

What ¡is ¡SDN? ¡

(when ¡we ¡clear ¡away ¡all ¡the ¡hype) ¡

slide-5
SLIDE 5

A ¡network ¡in ¡which ¡the ¡control ¡plane ¡is ¡ ¡ physically ¡separate ¡from ¡the ¡forwarding ¡plane. ¡ ¡ and ¡ ¡ A ¡single ¡control ¡plane ¡controls ¡ ¡ several ¡forwarding ¡devices. ¡ (That’s ¡it) ¡

slide-6
SLIDE 6

How ¡do ¡other ¡industries ¡ ¡ check ¡for ¡correctness? ¡

slide-7
SLIDE 7

Making ¡ASICs ¡Work ¡

$10B ¡tool ¡business ¡ supports ¡a ¡ $250B ¡chip ¡industry ¡ ¡

SpecificaTon ¡

FuncTonal ¡ DescripTon ¡(RTL) ¡ Testbench ¡& ¡ Vectors ¡ FuncTonal ¡ VerificaTon ¡ Logical ¡Synthesis ¡ StaTc ¡Timing ¡ Place ¡& ¡Route ¡ Design ¡Rule ¡ Checking ¡(DRC) ¡ Layout ¡vs ¡ SchemaTc ¡(LVS) ¡ Layout ¡ParasiTc ¡ ExtracTon ¡(LPE) ¡ Manufacture ¡ & ¡Validate ¡

100s ¡of ¡Books ¡ >10,000 ¡Papers ¡ 10s ¡of ¡Classes ¡

slide-8
SLIDE 8

Making ¡So\ware ¡Work ¡

StaTc ¡Code ¡ Analysis ¡ Invariant ¡ ¡ Checker ¡ InteracTve ¡ Debugger ¡ Model ¡ Checking ¡ Run-­‑Tme ¡Checker ¡

SpecificaTon ¡

Testbench ¡ FuncTonal ¡ DescripTon ¡(Code) ¡

$10B ¡tool ¡business ¡ supports ¡a ¡ $300B ¡S/W ¡industry ¡ ¡

100s ¡of ¡Books ¡ >100,000 ¡Papers ¡ 10s ¡of ¡Classes ¡

slide-9
SLIDE 9

Making ¡Networks ¡Work ¡(Today) ¡

traceroute, ping, tcpdump, SNMP, Netflow

¡ …. ¡er, ¡that’s ¡about ¡it. ¡

slide-10
SLIDE 10

Networks ¡are ¡kept ¡working ¡by ¡ ¡ ¡

“Masters ¡of ¡Complexity” ¡ ¡

¡

A ¡handful ¡of ¡books ¡ Almost ¡no ¡papers ¡ No ¡classes ¡

slide-11
SLIDE 11

Philosophy ¡of ¡Making ¡Networks ¡Work ¡

YoYo ¡ ¡

“You’re ¡On ¡Your ¡Own” ¡

slide-12
SLIDE 12

Even ¡simple ¡quesTons ¡are ¡hard ¡

  • 1. Can ¡host ¡A ¡talk ¡to ¡host ¡B? ¡ ¡
  • 2. What ¡are ¡all ¡the ¡packet ¡headers ¡from ¡A ¡that ¡

can ¡reach ¡B? ¡ ¡

  • 3. Are ¡there ¡any ¡loops ¡in ¡the ¡network? ¡ ¡
  • 4. Is ¡Group ¡X ¡provably ¡isolated ¡from ¡Group ¡Y? ¡
  • 5. What ¡happens ¡if ¡I ¡remove ¡a ¡line ¡in ¡the ¡config ¡

file? ¡

12

slide-13
SLIDE 13

A ¡Bug ¡Story ¡

Tue, ¡Oct ¡2, ¡2012 ¡at ¡7:54 ¡PM: ¡ ¡

“Between ¡18:20-­‑19:00 ¡tonight ¡we ¡experienced ¡a ¡ complete ¡network ¡outage ¡in ¡the ¡building ¡when ¡a ¡ loop ¡was ¡accidentally ¡created ¡by ¡CSD-­‑CF ¡staff. ¡We're ¡ invesTgaTng ¡the ¡exact ¡circumstances ¡to ¡understand ¡ why ¡this ¡caused ¡a ¡problem, ¡since ¡automaTc ¡ protecTons ¡are ¡supposed ¡to ¡be ¡in ¡place ¡to ¡prevent ¡ loops ¡from ¡disabling ¡the ¡network.” ¡

13 ¡

slide-14
SLIDE 14

Why ¡TroubleshooTng ¡is ¡Hard ¡

¡ ¡ ¡ ¡ ¡ ¡

14 ¡

slide-15
SLIDE 15

If ¡dst ¡MAC ¡ ¡ address ¡is ¡X ¡ Send ¡out ¡port ¡1 ¡

L2 ¡Switch ¡

If ¡dst ¡port ¡ is ¡22 ¡ Drop ¡packet ¡

Firewall ¡

Match ¡ AcTon ¡

Forwarding ¡State ¡

Why ¡TroubleshooTng ¡is ¡Hard ¡

¡ ¡ ¡ ¡ ¡ ¡

Forwarding ¡

State ¡

15 ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

If ¡dst ¡IP ¡address ¡ ¡ is ¡Y ¡ Decrement ¡TTL, ¡ Update ¡checksum, ¡ Modify ¡dst ¡MAC, ¡ Send ¡out ¡port ¡2 ¡

L3 ¡Router ¡

slide-16
SLIDE 16

Why ¡TroubleshooTng ¡is ¡Hard ¡

¡ ¡ ¡ ¡ ¡ ¡

Forwarding ¡

State ¡

Control ¡Plane ¡

16 ¡

Forwarding ¡

State ¡

Control ¡Plane ¡

Forwarding ¡

State ¡

Control ¡Plane ¡

Forwarding ¡

State ¡

Control ¡Plane ¡

Forwarding ¡

State ¡

Control ¡Plane ¡

slide-17
SLIDE 17

Why ¡TroubleshooTng ¡is ¡Hard ¡

¡ ¡ ¡ ¡ ¡ ¡

17 ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

slide-18
SLIDE 18

TroubleshooTng ¡Today ¡

¡ ¡ ¡ ¡ ¡ ¡

18 ¡

ping traceroute tcpdump SNMP

Forwarding ¡

State ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

  • Tedious ¡and ¡ad ¡hoc ¡
  • Requires ¡skill ¡and ¡experience ¡
  • Not ¡guaranteed ¡to ¡provide ¡helpful ¡answers ¡
slide-19
SLIDE 19

Neither ¡observe ¡or ¡control ¡

Complex ¡interacTon ¡ ¡

– Between ¡mulTple ¡protocols ¡on ¡a ¡switch/router. ¡ – Between ¡state ¡on ¡different ¡switches/routers. ¡

MulTple ¡uncoordinated ¡writers ¡of ¡state. ¡

¡

Operators ¡can’t… ¡

– Observe ¡all ¡state. ¡ – Control ¡all ¡state. ¡

slide-20
SLIDE 20

How ¡SDN ¡helps ¡

slide-21
SLIDE 21

Scoo ¡Shenker ¡at ¡1st ¡ONS ¡in ¡2011 ¡ ¡ ¡

“The ¡Future ¡of ¡Networking ¡and ¡the ¡Past ¡of ¡Protocols” ¡

slide-22
SLIDE 22

So\ware ¡Defined ¡Network ¡(SDN) ¡

Global Network View

Network ¡VirtualizaTon ¡

Packet ¡ Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ ¡

Network ¡OS ¡

Abstract Network View

Control Programs

f View

( )

Control Programs

f View

( )

Control Programs

f View

( )

Abstract Forwarding Model (e.g. OpenFlow)

slide-23
SLIDE 23

The ¡Technical ¡Benefits ¡of ¡SDN ¡

¡

  • 1. Well-­‑defined ¡control ¡abstracTon ¡
  • 2. Well-­‑defined ¡forwarding ¡abstracTon ¡
  • 3. Well-­‑defined ¡forwarding ¡behavior ¡
slide-24
SLIDE 24

The ¡Technical ¡Benefits ¡(1) ¡

Well-­‑defined ¡control ¡abstracTon ¡

– Control ¡plane ¡can ¡run ¡on ¡modern ¡servers ¡ – Can ¡adopt ¡so\ware ¡engineering ¡best-­‑pracTces ¡ – Easier ¡to ¡add ¡new ¡control ¡programs ¡ – …or ¡customize ¡locally ¡ – Solve ¡distributed ¡systems ¡problem ¡once, ¡rather ¡ than ¡for ¡every ¡protocol ¡

slide-25
SLIDE 25

Specialized Hardware

OS ¡

OSPF ¡ ¡

¡ ¡ ¡ ¡

¡

Dijkstra ¡

Network ¡ Map ¡

95% ¡ 5% ¡

OSPF ¡ ¡ Dijkstra ¡ Network ¡OS ¡

Packet ¡ Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ ¡

Global Network Map

slide-26
SLIDE 26

The ¡Technical ¡Benefits ¡of ¡SDN ¡

¡

  • 1. Well-­‑defined ¡control ¡abstracTon ¡
  • 2. Well-­‑defined ¡forwarding ¡abstracTon ¡
  • 3. Well-­‑defined ¡forwarding ¡behavior ¡
slide-27
SLIDE 27

The ¡Technical ¡Benefits ¡(2) ¡

Well-­‑defined ¡forwarding ¡abstracTon ¡

– e.g. ¡OpenFlow ¡ – Vendor-­‑agnosTc ¡interface ¡to ¡forwarding ¡plane ¡ – Simpler, ¡lower-­‑cost, ¡lower-­‑power ¡hardware ¡

slide-28
SLIDE 28

If ¡dst ¡MAC ¡ ¡ address ¡is ¡X ¡ Send ¡out ¡port ¡1 ¡

L2 ¡Switch ¡

If ¡dst ¡port ¡ is ¡22 ¡ Drop ¡packet ¡

Firewall ¡

Match ¡ AcTon ¡

Forwarding ¡State ¡

Match-­‑AcTon ¡Forwarding ¡AbstracTon ¡

¡ ¡ ¡ ¡ ¡ ¡

Forwarding ¡

State ¡

28 ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

If ¡dst ¡IP ¡address ¡ ¡ is ¡Y ¡ Decrement ¡TTL, ¡ Update ¡checksum, ¡ Modify ¡dst ¡MAC, ¡ Send ¡out ¡port ¡2 ¡

L3 ¡Router ¡

slide-29
SLIDE 29

Match Action

F Action(F) G Action(G) H Action(H) H

H’

Ac<on ¡Primi<ves ¡

  • 1. “Forward ¡to ¡ports ¡4 ¡& ¡5” ¡
  • 2. “Push ¡header ¡Y ¡a\er ¡bit ¡12” ¡
  • 3. “Pop ¡header ¡bits ¡8-­‑12” ¡
  • 4. “Decrement ¡bits ¡13-­‑18” ¡
  • 5. “Drop ¡packet” ¡
  • 6. … ¡

Match-­‑AcTon ¡Forwarding ¡AbstracTon ¡

“Plumbing ¡primiTves” ¡

slide-30
SLIDE 30

Match Action

F1 Action(F) G1 Action(G) H1 Action(H)

MulTple ¡Table ¡Match-­‑AcTon ¡

Match Action

Fn Action(F) Gn Action(G) Hn Action(H)

Hn H1 H’

slide-31
SLIDE 31

OpenFlow ¡Philosophy ¡

Long-­‑term, ¡forwarding ¡looking ¡ ¡

Match: ¡Very ¡general, ¡not ¡protocol ¡specific. ¡ ¡ Ac<on: ¡Small ¡instrucTon ¡set, ¡not ¡protocol ¡specific. ¡ – Make ¡it ¡easy ¡to ¡add ¡new ¡headers ¡and ¡acTons. ¡ – Any ¡network ¡(packet, ¡circuit, ¡radio). ¡ ¡

Short-­‑term, ¡backward ¡looking ¡

Match: ¡include ¡well-­‑known ¡header ¡fields. ¡ Ac<on: ¡necessary ¡set ¡for ¡exisTng ¡protocols. ¡ – Support ¡exisTng ¡protocols ¡on ¡exisTng ¡switch ¡chips. ¡

slide-32
SLIDE 32

The ¡Technical ¡Benefits ¡of ¡SDN ¡

¡

  • 1. Well-­‑defined ¡control ¡abstracTon ¡
  • 2. Well-­‑defined ¡forwarding ¡abstracTon ¡
  • 3. Well-­‑defined ¡forwarding ¡behavior ¡
slide-33
SLIDE 33

The ¡Technical ¡Benefits ¡(3) ¡

Well-­‑defined ¡forwarding ¡behavior ¡

– The ¡forwarding ¡tables ¡capture ¡the ¡enTre ¡ forwarding ¡behavior. ¡ – Control ¡plane ¡writes ¡the ¡forwarding ¡state. ¡ – Therefore, ¡we ¡can ¡verify ¡its ¡correctness. ¡

slide-34
SLIDE 34

So\ware ¡Defined ¡Network ¡(SDN) ¡

Global Network Map Packet ¡ Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ ¡ Control Program Control Program Control Program

firewall.c … if( TCP_port == SMTP ) dropPacket(); …

Match Action

F Action(F) G Action(G) H Action(H)

Match Action

A Action(A) G Action(G) D Action(D)

Match Action

A Action(A) B Action(B) C Action(C)

Match Action

X Action(X) Y Action(Y) Z Action(Z)

Match Action

A Action(A) G Action(G) H Action(H)

Network ¡OS ¡

slide-35
SLIDE 35

So\ware ¡Defined ¡Network ¡(SDN) ¡

Global Network Map Packet ¡ Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ ¡ Control Program Control Program Control Program

Match Action

F Action(F) G Action(G) H Action(H)

Match Action

A Action(A) G Action(G) D Action(D)

Match Action

A Action(A) B Action(B) C Action(C)

Match Action

X Action(X) Y Action(Y) Z Action(Z)

Match Action

A Action(A) G Action(G) H Action(H)

Network ¡OS ¡

firewall.c … if( TCP_port == SMTP) dropPacket(); …

slide-36
SLIDE 36

So\ware ¡Defined ¡Network ¡(SDN) ¡

Global Network Map Packet ¡ Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ ¡ Packet ¡ Forwarding ¡ ¡ ¡ Control Program Control Program Control Program

Match Action

F Action(F) G Action(G) H Action(H)

Match Action

A Action(A) G Action(G) D Action(D)

Match Action

A Action(A) B Action(B) C Action(C)

Match Action

X Action(X) Y Action(Y) Z Action(Z)

Match Action

A Action(A) G Action(G) H Action(H)

Network ¡OS ¡

¡ “A ¡can ¡talk ¡to ¡B” ¡ ¡ “Guests ¡can’t ¡reach ¡ PaTentRecords” ¡ ¡ “No ¡loops” ¡

Policy ¡

Forwarding ¡ Behavior ¡

slide-37
SLIDE 37

Methods ¡for ¡Forwarding ¡Correctness ¡

  • 1. StaTc ¡Checking ¡ ¡(e.g. ¡HSA, ¡Anteater) ¡

“Independently ¡checking ¡correctness” ¡

¡

  • 2. Dynamic ¡Checking ¡(e.g. ¡NetPlumber, ¡Veriflow) ¡

“Checking ¡new ¡state ¡before ¡it ¡is ¡added” ¡

  • 3. AutomaTc ¡TesTng ¡(e.g. ¡ATPG) ¡

“Is ¡the ¡datapath ¡behaving ¡correctly?” ¡

  • 4. InteracTve ¡Debugging ¡(e.g. ¡NetSight) ¡

“Finding ¡bugs, ¡and ¡their ¡root ¡cause, ¡ ¡ in ¡an ¡operaTonal ¡network” ¡

slide-38
SLIDE 38

Header ¡Space ¡Analysis ¡

[NSDI ¡‘12] ¡

L

Header ¡ Data ¡

01110011…1 ¡

Header ¡ Data ¡

111..100000 ¡

slide-39
SLIDE 39

Header ¡Space ¡Analysis ¡

1 2

Match ¡+ ¡AcTon ¡

slide-40
SLIDE 40

The ¡set ¡of ¡packets ¡from ¡A ¡that ¡can ¡reach ¡B ¡

T1(h, p)

T2(h, p)

T3(h, p)

T1(X, Pin) T1(X, Pin)

T2(T1(X, Pin))

T4(T1(X, Pin))

T3(T2(T1(X, Pin))) ∪ T3(T4(T1(X, Pin)))

T4(h, p)

slide-41
SLIDE 41

All ¡packets ¡from ¡A ¡that ¡can ¡reach ¡B ¡

T1(h, p)

T2(h, p)

T3(h, p)

T4(h, p)

slide-42
SLIDE 42

ImplicaTons ¡

Short ¡term: ¡ ¡

  • 1. Finds ¡all ¡packets ¡from ¡A ¡that ¡can ¡reach ¡B ¡
  • 2. Find ¡loops, ¡regardless ¡of ¡protocol ¡or ¡layer ¡
  • 3. Can ¡prove ¡that ¡two ¡groups ¡are ¡isolated ¡
  • 4. …for ¡(mostly) ¡stateless ¡graph ¡mappings ¡

Longer ¡term: ¡

  • 1. Abstract ¡forwarding ¡model; ¡protocol ¡independent ¡
  • 2. Analagy ¡to ¡Boolean ¡algebra ¡for ¡digital ¡logic ¡design ¡
  • 3. Can ¡be ¡a ¡foundaTon ¡for ¡a ¡variety ¡of ¡tools ¡
slide-43
SLIDE 43

Methods ¡for ¡Forwarding ¡Correctness ¡

  • 1. StaTc ¡Checking ¡ ¡(e.g. ¡HSA, ¡Anteater) ¡

“Independently ¡checking ¡correctness” ¡

¡

  • 2. Dynamic ¡Checking ¡(e.g. ¡NetPlumber, ¡Veriflow) ¡

“Checking ¡new ¡state ¡before ¡it ¡is ¡added” ¡

  • 3. AutomaTc ¡TesTng ¡(e.g. ¡ATPG) ¡

“Is ¡the ¡datapath ¡behaving ¡correctly?” ¡

  • 4. InteracTve ¡Debugging ¡(e.g. ¡NetSight) ¡

“Finding ¡bugs, ¡and ¡their ¡root ¡cause, ¡ ¡ in ¡an ¡operaTonal ¡network” ¡

slide-44
SLIDE 44

Packet ¡Histories ¡

Basic ¡idea: ¡

  • Capture ¡forwarding ¡plane ¡events ¡
  • Look ¡for ¡errant ¡behavior ¡(real ¡Tme ¡or ¡offline) ¡

¡ Enormous ¡amounts ¡of ¡data: ¡

  • Scalability ¡is ¡essenTal ¡
  • Another ¡example ¡of ¡Big ¡Data ¡
slide-45
SLIDE 45

NetSight

¡ A ¡playorm ¡to ¡capture ¡and ¡filter ¡ packet ¡histories ¡

45 ¡

slide-46
SLIDE 46

A ¡TroubleshooTng ¡Construct ¡

46 ¡

¡ ¡ ¡ ¡ ¡ ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

Symptom: ¡ Errant ¡packet ¡ behavior ¡in ¡the ¡ dataplane ¡ ¡

Cause: ¡ Forwarding ¡ State ¡ ¡

Packet ¡ History ¡ ¡

+ ¡

A ¡ B ¡

slide-47
SLIDE 47

47 ¡

¡ ¡ ¡ ¡ ¡ ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

Packet ¡History ¡

Packet ¡history ¡ ¡= ¡ ¡Path ¡taken ¡by ¡a ¡packet ¡ ¡ ¡ ¡ ¡ ¡ ¡+ ¡Header ¡modificaTons ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡+ ¡Switch ¡state ¡encountered ¡

slide-48
SLIDE 48

TroubleshooTng ¡Workflow ¡

48 ¡

¡ ¡ ¡ ¡ ¡ ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡

Forwarding ¡

State ¡ A ¡

B ¡

  • 1. Ask ¡for ¡the ¡packet ¡history ¡of ¡errant ¡packets ¡
  • 2. Use ¡the ¡packet ¡history ¡to ¡diagnose ¡the ¡root ¡cause ¡
slide-49
SLIDE 49

49 ¡

¡ ¡ ¡ ¡ ¡ ¡

Packet ¡History ¡

How ¡to ¡specify ¡packet ¡histories ¡of ¡ interest? ¡

slide-50
SLIDE 50

Querying ¡Packet ¡Histories ¡

Packet ¡History ¡Filter: ¡A ¡regular-­‑expression-­‑like ¡ language ¡to ¡specify ¡packet ¡histories ¡of ¡interest ¡

50 ¡

Switch 1: { header: H1, inport: p0,

  • utports: [p1]

mods: [...] state version: 3 }

¡ ¡ ¡ ¡ ¡ ¡

Switch 2: { header: H2, inport: p0,

  • utports: [p3]

mods: [...] state version: 5 } Switch N: { header: HN, inport: p3,

  • utports: [p2]

mods: [...] state version: 13 }

slide-51
SLIDE 51

Postcard ¡Filter ¡

51 ¡

Switch 1: { header: H1, inport: p0,

  • utports: [p1]

mods: [...] state version: 3 }

Postcard ¡Filter ¡

  • -bpf [not] <BPF>
  • -dpid [not] <switch ID>
  • -inport [not] <input port>
  • -outport [not] <output port>
  • -version [not] <state version>

¡

Example: ¡

  • -bpf "ip src 10.0.1.2" -–dpid 5 --inport not 1

¡

¡ ¡

slide-52
SLIDE 52

Building ¡PHFs ¡using ¡Postcard ¡Filters ¡

PHF ¡to ¡match ¡packets ¡that: ¡

  • start ¡at ¡switch ¡X, ¡and ¡end ¡at ¡switch ¡Y: ¡ ¡

{{--dpid X}}.*{{--dpid Y}}$

  • are ¡of ¡type ¡UDP, ¡start ¡at ¡switch ¡X, ¡never ¡reach ¡

Y: ¡ ¡

{{--bpf "udp" –-dpid X}}[^{{--dpid Y}}]*$

52 ¡

slide-53
SLIDE 53

Postcard ¡ Collector ¡

53 ¡

¡ ¡ ¡ ¡ ¡ ¡

Control ¡Plane ¡ Flow ¡Table ¡State ¡Recorder ¡

slide-54
SLIDE 54

Postcard ¡ Collector ¡

54 ¡

¡ ¡ ¡ ¡ ¡ ¡

Control ¡Plane ¡ Flow ¡Table ¡State ¡Recorder ¡

Match ¡ ACT ¡ Match ¡ ACT ¡

  • 1. Stamp ¡“Postcard ¡

InformaTon” ¡

  • 2. Add ¡postcard ¡ID ¡tag ¡
  • 3. Send ¡copy ¡out ¡of ¡

specific ¡port ¡

slide-55
SLIDE 55

Postcard ¡ Collector ¡

55 ¡

¡ ¡ ¡ ¡ ¡ ¡

Control ¡Plane ¡ Flow ¡Table ¡State ¡Recorder ¡

slide-56
SLIDE 56

Postcard ¡ Collector ¡

56 ¡

¡ ¡ ¡ ¡ ¡ ¡

Control ¡Plane ¡ Flow ¡Table ¡State ¡Recorder ¡

Version ¡-­‑> ¡Flow ¡Table ¡ State ¡ Packet ¡Header ¡ Switch ¡ID ¡ Output ¡port ¡ Version ¡

slide-57
SLIDE 57

Postcard ¡ Collector ¡

57 ¡

¡ ¡ ¡ ¡ ¡ ¡

Control ¡Plane ¡ Flow ¡Table ¡State ¡Recorder ¡

  • 1. ¡<Match, ¡AcTon> ¡
  • 2. ¡<Match, ¡AcTon> ¡
  • 3. ¡<Match, ¡AcTon> ¡
  • 4. ¡<Match, ¡AcTon> ¡
  • 5. ¡<Match, ¡AcTon> ¡ ¡
  • 6. ¡… ¡
  • 7. ¡… ¡
  • 1. ¡<Match, ¡AcTon> ¡
  • 2. ¡<Match, ¡AcTon> ¡
  • 3. ¡<Match, ¡AcTon> ¡
  • 4. ¡<Match, ¡AcTon> ¡
  • 5. ¡<Match, ¡AcTon> ¡ ¡
  • 6. ¡… ¡
  • 7. ¡… ¡
  • 1. ¡<Match, ¡AcTon> ¡
  • 2. ¡<Match, ¡AcTon> ¡
  • 3. ¡<Match, ¡AcTon> ¡
  • 4. ¡<Match, ¡AcTon> ¡
  • 5. ¡<Match, ¡AcTon> ¡ ¡
  • 6. ¡… ¡
  • 7. ¡… ¡
  • 1. ¡<Match, ¡AcTon> ¡
  • 2. ¡<Match, ¡AcTon> ¡
  • 3. ¡<Match, ¡AcTon> ¡
  • 4. ¡<Match, ¡AcTon> ¡
  • 5. ¡<Match, ¡AcTon> ¡ ¡
  • 6. ¡… ¡
  • 7. ¡… ¡
slide-58
SLIDE 58

Methods ¡for ¡Forwarding ¡Correctness ¡

  • 1. StaTc ¡Checking ¡ ¡(e.g. ¡HSA, ¡Anteater) ¡

“Independently ¡checking ¡correctness” ¡

¡

  • 2. Dynamic ¡Checking ¡(e.g. ¡NetPlumber, ¡Veriflow) ¡

“Checking ¡new ¡state ¡before ¡it ¡is ¡added” ¡

  • 3. AutomaTc ¡TesTng ¡(e.g. ¡ATPG) ¡

“Is ¡the ¡datapath ¡behaving ¡correctly?” ¡

  • 4. InteracTve ¡Debugging ¡(e.g. ¡NetSight) ¡

“Finding ¡bugs, ¡and ¡their ¡root ¡cause, ¡ ¡ in ¡an ¡operaTonal ¡network” ¡

slide-59
SLIDE 59

<end> ¡