Presentation is loading. Please wait.

Presentation is loading. Please wait.

Jennifer Rexford Princeton University MW 11:00am-12:20pm Data-Plane Verification COS 597E: Software Defined Networking.

Similar presentations


Presentation on theme: "Jennifer Rexford Princeton University MW 11:00am-12:20pm Data-Plane Verification COS 597E: Software Defined Networking."— Presentation transcript:

1 Jennifer Rexford Princeton University MW 11:00am-12:20pm Data-Plane Verification COS 597E: Software Defined Networking

2 Writing SDN Controller Apps 2

3 Event-Driven Programming 3 Network OS Application Switch events commands

4 OpenFlow 1.0 Switch 4 Control channel Flow Table Queue of events Queue of commands ports Queue of packets awaiting controller

5 Receiving a Packet Switch (aka datapath) Input port Reason (no-match, action) Packet data Buffer-id for packet 5 Switch OFPPacketIn

6 Sending a Packet Switch (aka datapath) Actions Packet –Packet data (if any) –Buffer-id for packet (if any) 6 Switch OFPPacketOut How to create a very simple hub?

7 Installing a Rule Switch (aka datapath) Add, modify, delete Rule –Header fields to match –Set of actions –Hard and soft timeout Buffered packet to apply to (if any) 7 Switch OFPFlowMod OFPFlowRemoved How to create a more efficient hub?

8 Creating a Learning Switch Learning the sender’s location –Learn host’s location when sending a packet –Associate the source MAC with the input port Forwarding to the destination –Unknown destination: flood –Known destination: unicast 8 How to program this as a controller app?

9 Collecting Traffic Statistics Switch (aka datapath) Header fields to match 9 Switch OFPFlowStatsRequest OFPFlowStatsReply Byte count Packet count Duration …

10 Aggregate Traffic Statistics Switch (aka datapath) Header fields to match 10 Switch OFPFAggregateStatsRequest OFPAggregateStatsReply Byte count Packet count Duration …

11 Topology Changes Switch (aka datapath) Reason (add, delete, modify) 11 Switch OFPPortStatus

12 Data-Plane Verification Header-Space Analysis and VeriFlow 12

13 What Bugs to Catch? 13 Network OS Application Switch API

14 Where to Verify? 14 Network OS Application Switch API

15 Data-Plane Verification Input –Snapshot of the rules Output –Whether an invariant holds –Counter-example(s) Example –No loops –No blackholes –Access control 15

16 Packets in Multiple Dimensions Packets as points in a geometric space –A dimension for every bit in the header Policies as functions –Mapping a packet and its location –… to a new packet and location Many packets treated the same way –E.g., all packets with TCP dest port 80 16

17 Two Approaches Header-space analysis –Ternary symbolic execution –Follow a symbolic packet through the network –Algorithms for checking specific invariants VeriFlow –Generate equivalence classes of packets –Generate per-class forwarding graphs –Traverse graphs to check specific invariants 17

18 Discussion Efficiency –Usable in real time? Limitations –What invariants can(not) be checked? –How are invariants specified? 18

19 Next Time Get started on assignment 2 (due Oct 1) –Programming in Ryu –Use the references from assignments page Reading for Wednesday –Testing and debugging –NICE and ndb 19


Download ppt "Jennifer Rexford Princeton University MW 11:00am-12:20pm Data-Plane Verification COS 597E: Software Defined Networking."

Similar presentations


Ads by Google