of cpp consistent packet processing
play

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


  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

  2. Updating Network State ⇨ ● loops ● blackholes Transient forwarding ● security inconsistencies violations 2

  3. Network Consistency Work Abstractions for Network Update (Reitblatt et al., SIGCOMM'12) ● introduces Per-packet Consistency Formal consistency model Incremental Consistent Updates of network updates (HotSDN'13) A Safe, Efficient Update Protocol for OpenFlow Networks (McGear, HotSDN'12) 3

  4. Per-Packet Consistency ⇨ 4

  5. What is the "Configuration"? Network Configuration = Switch rules/flowtables Controller state + Previous work This work 5

  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

  7. POX Example: ARP Multiplication H2 = ??? H2 = right CTRL unexpected rule is installed && packet copy is sent to H2 H1 H2 7

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

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

  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

  11. If we had Isolation... Packet 1: H1 = left H2 = ??? Packet 2: H1 = left H2 = right H1 H2 11

  12. Isolation + Consistency ? Does it sound familiar? ● Databases & Transactions! ○ ACID properties 12

  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

  14. Challenge 2: Can we have Atomicity? H1 H2 egress packet 14

  15. Can we have Atomicity? Packets are part of the transaction ● atomicity -> packet buffering => We need to relax atomicity! 15

  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

  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

  18. Problem: Isolation vs. Causality Initial state: H1 = ???, H2 = ??? T1: H1 = left H2 = ??? T2: H1 = ??? T2 needs to see state of T1 H2 = right H1 H2 18

  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

  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

  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

  22. Backup slides

  23. Proactive? Similar problems as reactive ● controller action may span several events

  24. ARP multiplication - It happens in reality

  25. Inconsistency causing loop

  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

  27. Transactions - serialization order

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend