OF.CPP: Consistent Packet Processing Peter Pereni @ EPFL Maciej - - PowerPoint PPT Presentation

of cpp consistent packet processing
SMART_READER_LITE
LIVE PREVIEW

OF.CPP: Consistent Packet Processing Peter Pereni @ EPFL Maciej - - PowerPoint PPT Presentation

OF.CPP: Consistent Packet Processing Peter Pereni @ EPFL Maciej Kuniar, Nedeljko Vasi @ EPFL Marco Canini @ TU Berlin / T-Labs Dejan Kosti @ IMDEA Networks 1 Updating Network State loops blackholes Transient forwarding


slide-1
SLIDE 1

OF.CPP: Consistent Packet Processing

Peter Perešíni @ EPFL

Maciej Kuźniar, Nedeljko Vasić @ EPFL Marco Canini @ TU Berlin / T-Labs Dejan Kostić @ IMDEA Networks

1

slide-2
SLIDE 2

Updating Network State

  • loops
  • blackholes
  • security

violations Transient forwarding inconsistencies

2 ⇨

slide-3
SLIDE 3

Network Consistency Work

Abstractions for Network Update (Reitblatt et al., SIGCOMM'12)

  • introduces Per-packet Consistency

Incremental Consistent Updates (HotSDN'13) A Safe, Efficient Update Protocol for OpenFlow Networks (McGear, HotSDN'12)

Formal consistency model

  • f network updates

3

slide-4
SLIDE 4

Per-Packet Consistency

4

slide-5
SLIDE 5

What is the "Configuration"?

Network Configuration = Switch rules/flowtables Controller state

+

Previous work This work

5

slide-6
SLIDE 6

Our Focus = Reactive Controllers

Reactive & Centralized

  • install paths by observing Packet-In events

Future work

  • proactive controllers
  • distributed controllers
  • both consistent updates & controller

consistency at the same time

6

slide-7
SLIDE 7

POX Example: ARP Multiplication

CTRL

H1 H2 H2 = ??? H2 = right

unexpected rule is installed && packet copy is sent to H2

7

slide-8
SLIDE 8

ARP Multiplication Storm Copies == Performance Problems (switch rules & controller load)

8

slide-9
SLIDE 9

Is it Only Performance? Rules not on the shortest path! Unexpected behavior

9

slide-10
SLIDE 10

Root Cause

Packet processing == multiple events

  • programmer assumes non-interleaved

execution

  • but ctrl state can be changed by concurrent

events Two different configurations!

10

slide-11
SLIDE 11

If we had Isolation...

H1 H2

Packet 1: H1 = left H2 = ??? Packet 2: H1 = left H2 = right

11

slide-12
SLIDE 12

Isolation + Consistency ?

Does it sound familiar?

  • Databases & Transactions!

○ ACID properties 12

slide-13
SLIDE 13

Challenge 1: What Belongs to a Transaction?

Transactions should be implicit

  • i.e. no need to manually identify events

Our approach

  • Transaction == All events caused by the

same packet / its copies

13

slide-14
SLIDE 14

Challenge 2: Can we have Atomicity?

H1 H2

egress packet

14

slide-15
SLIDE 15

Can we have Atomicity?

Packets are part of the transaction

  • atomicity -> packet buffering

=> We need to relax atomicity!

15

slide-16
SLIDE 16

Challenge 3: Relaxed Atomicity & Rollback

  • full rollback is impossible

○ but do we need it?

  • single event rollback

○ possible ○ no need to expensively buffer packets ○ rollback is perceived by the controller as packet loss 16

slide-17
SLIDE 17

Challenge 4: Relaxed Atomicity & Isolation

Non-atomic transactions

  • send egress packets before the transaction

finishes

  • problem = causality

○ packets can cause a new transaction ○ should it we process it in isolation? 17

slide-18
SLIDE 18

Problem: Isolation vs. Causality

H1 H2

T1: H1 = left H2 = ??? T2: H1 = ??? H2 = right Initial state: H1 = ???, H2 = ??? T2 needs to see state of T1

18

slide-19
SLIDE 19

Putting it together:

Use Transactions

  • automatically infer related events

Multi-Commit

  • commit / abort after each event

Preserve causality

  • see state from older transactions (even if

they did not finish)

19

slide-20
SLIDE 20

OF.CPP Prototype

  • in Python
  • identifies transactions using VLAN tags
  • applied to POX controller

○ l2_multi and arp_responder modules ○ solves ARP multiplication problem 20

slide-21
SLIDE 21

Summary

Consistency is important

  • hard to get it right
  • our approach: Multi-commit Transactions

○ works well for reactive controllers

  • plenty of space for future work!

21

slide-22
SLIDE 22

Backup slides

slide-23
SLIDE 23

Proactive?

Similar problems as reactive

  • controller action may span several events
slide-24
SLIDE 24

ARP multiplication - It happens in reality

slide-25
SLIDE 25

Inconsistency causing loop

slide-26
SLIDE 26

Per-packet consistency

During any network change a packet should be processed according to

  • old configuration; or
  • new configuration;
  • but never a mixture of the two
slide-27
SLIDE 27

Transactions - serialization order