Jennifer Rexford Princeton University MW 11:00am-12:20pm Testing and Debugging COS 597E: Software Defined Networking.

Slides:



Advertisements
Similar presentations
Jennifer Rexford Princeton University MW 11:00am-12:20pm Logically-Centralized Control COS 597E: Software Defined Networking.
Advertisements

SDN Applications Jennifer Rexford Princeton University.
VCRIB: Virtual Cloud Rule Information Base Masoud Moshref, Minlan Yu, Abhishek Sharma, Ramesh Govindan HotCloud 2012.
Composing Software Defined Networks
Jennifer Rexford Princeton University MW 11:00am-12:20pm Network Virtualization COS 597E: Software Defined Networking.
Composing Software-Defined Networks Princeton*Cornell^ Chris Monsanto*, Joshua Reich* Nate Foster^, Jen Rexford*, David Walker*
Nanxi Kang Princeton University
Jennifer Rexford Princeton University
Slick: A control plane for middleboxes Bilal Anwer, Theophilus Benson, Dave Levin, Nick Feamster, Jennifer Rexford Supported by DARPA through the U.S.
CSE 534 Fundamentals of Computer Networks Lecture 4: Bridging (From Hub to Switch by Way of Tree) Based on slides from D. Choffnes Northeastern U. Revised.
CS 4700 / CS 5700 Network Fundamentals Lecture 7: Bridging (From Hub to Switch by Way of Tree) Revised 1/14/13.
SDN and Openflow.
Monday, June 01, 2015 ARRIVE: Algorithm for Robust Routing in Volatile Environments 1 NEST Retreat, Lake Tahoe, June
Software-Defined Networking
Data Plane Verification. Background: What are network policies Alice can talk to Bob Skype traffic must go through a VoIP transcoder All traffic must.
SDX: A Software Defined Internet Exchange Arpit Gupta, Laurent Vanbever, Muhammad Shahbaz, Sean P. Donovan, Brandon Schlinker Nick Feamster, Jennifer Rexford,
CSE390 Advanced Computer Networks Lecture 7: Bridging (From Hub to Switch by Way of Tree) Based on slides from D. Choffnes Northeastern U. Revised Fall.
Jennifer Rexford Princeton University MW 11:00am-12:20pm Data-Center Traffic Management COS 597E: Software Defined Networking.
Spanning Tree and Multicast. The Story So Far Switched ethernet is good – Besides switching needed to join even multiple classical ethernet networks Routing.
Languages for Software-Defined Networks Nate Foster, Arjun Guha, Mark Reitblatt, and Alec Story, Cornell University Michael J. Freedman, Naga Praveen Katta,
Jennifer Rexford Princeton University MW 11:00am-12:20pm SDN Software Stack COS 597E: Software Defined Networking.
Cellular Core Network Architecture
EPFL 25Apr ’12. Software-Defined Networking (SDN) 2 Enables new functionality through programmability … Third-party program 25 Apr 2012NSDI'12.
Enabling Innovation Inside the Network Jennifer Rexford Princeton University
Composing Software Defined Networks Jennifer Rexford Princeton University With Joshua Reich, Chris Monsanto, Nate Foster, and.
Enabling Innovation Inside the Network Jennifer Rexford Princeton University
Frenetic: A Programming Language for Software Defined Networks Jennifer Rexford Princeton University Joint work with Nate.
Software-Defined Networks Jennifer Rexford Princeton University.
Where is the Debugger for my Software-Defined Network? [ndb]
Higher-Level Abstractions for Software-Defined Networks Jennifer Rexford Princeton University.
Professor Yashar Ganjali Department of Computer Science University of Toronto Some slides courtesy.
Software-defined Networking Capabilities, Needs in GENI for VMLab ( Prasad Calyam; Sudharsan Rajagopalan;
Reasoning about Software Defined Networks Mooly Sagiv Tel Aviv University Thursday (Physics 105) Monday Schrieber.
Jennifer Rexford Fall 2014 (TTh 3:00-4:20 in CS 105) COS 561: Advanced Computer Networks TCP.
Software Defined Networking Mike Freedman COS 461: Computer Networks
Copyright 2013 Open Networking User Group. All Rights Reserved Confidential Not For Distribution Programming Abstractions for Software-Defined Networks.
Extending SDN to Handle Dynamic Middlebox Actions via FlowTags (Full version to appear in NSDI’14) Seyed K. Fayazbakhsh, Luis Chiang, Vyas Sekar, Minlan.
1 Countering DoS Through Filtering Omar Bashir Communications Enabling Technologies
Jennifer Rexford Princeton University MW 11:00am-12:20pm Measurement COS 597E: Software Defined Networking.
Programming Languages for Software Defined Networks Jennifer Rexford and David Walker Princeton University Joint work with the.
High-Level Abstractions for Programming Software Defined Networks Joint with Nate Foster, David Walker, Arjun Guha, Rob Harrison, Chris Monsanto, Joshua.
Programming Abstractions for Software-Defined Networks Jennifer Rexford Princeton University.
Reasoning about Software Defined Networks Shachar Itzhaky & Mooly Sagiv Tel Aviv University Thursday (Physics 105) Monday.
SDX: A Software-Defined Internet eXchange Jennifer Rexford Princeton University
Jennifer Rexford Princeton University MW 11:00am-12:20pm SDN Programming Languages COS 597E: Software Defined Networking.
Introduction to Mininet, Open vSwitch, and POX
Jennifer Rexford Princeton University MW 11:00am-12:20pm Data-Plane Verification COS 597E: Software Defined Networking.
Programming SDN 1 Problems with programming with POX.
SDN challenges Deployment challenges
CS 3700 Networks and Distributed Systems
ETHANE: TAKING CONTROL OF THE ENTERPRISE
Lab 2 – Hub/Switch Data Link Layer
Lab 2 – Hub/Switch Data Link Layer
CS 3700 Networks and Distributed Systems
Software Defined Networking
Programming the Networks of the Future
CS 4700 / CS 5700 Network Fundamentals
Programmable Networks
CS 31006: Computer Networks – The Routers
Composing Software-Defined Networks
Software Defined Networking (SDN)
Software Defined Networking
CS 4700 / CS 5700 Network Fundamentals
Programmable Networks
Programmable Software Switches
Frenetic: Programming Software Defined Networks
Control-Data Plane Separation
Control-Data Plane Separation
Chapter 4: outline 4.1 Overview of Network layer data plane
Presentation transcript:

Jennifer Rexford Princeton University MW 11:00am-12:20pm Testing and Debugging COS 597E: Software Defined Networking

Challenges for SDN Programmers 2

SDN Enables New Functionality 3 Network OS Application Switch OpenFlow

… at the Risk of Bugs 4

MAC-Learning Application 5 mactable[srcmac] = inport if (dstmac is broadcast address) flood packet else if (dstmac is in mactable) outport = mactable[dstmac] install rule matching (inport, srcmac, dstmac) with action of forwarding packet to outport else flood packet Packet-In Event Handler

Challenge #1: Two-Tiered Program Two-tiered application –Controller –Switches Rules in the switches –Crucial for performance –… but limits visibility Example –MAC learning bug from Monday’s class –Matching on dstmac, without inport and srcmac 6 Application Switch

Challenge #2: Control-Plane Delays Common programming idiom –First packet goes to the controller –Controller application installs rules 7 packets

Challenge #3: Timing and Ordering Multiple switches –Different delays Example –Installing rules along a path 8 packets

Challenge #4: Overlapping Rules Semantics of a rule depend on context –Overlapping patterns –Disambiguated by priorities Example –Initial rule matching srcip== /16 –Add a rule matching srcip== /8 Two scenarios –Overlap: /16 with higher priority –Shadowing: /8 with higher priority 9

Challenge #5: Conflicting Modules Modular programs –Multiple modules for different tasks –E.g., firewall and routing Routing –Match(dstip= /8)  forward(3) Firewall –Match(srcip= , dstip= )  drop One rule may conflict with another 10

Challenge #6: Topologies Many different network topologies –Chain –Tree –Arbitrary graph Program should work for all topologies Example –Program that (implicitly) assumes the graph has no cycles 11

Challenge #7: End-to-End Protocols Internet applications are robust to errors –Retransmission of lost packets –Reordering of out-of-order packets This can mask some bugs –E.g., forgetting to handle the packet that triggered an event –E.g., forgetting to handle packets that arrive before you install rules in the switches 12

Discussing the Papers NICE and ndb 13

Testing vs. Debugging Debugging –Fixing a known problem in your program –Locating and fixing bugs –E.g., using tools like gdb Testing –Convincing yourself that your program (probably) works –Systematically finding inputs that lead to incorrect outputs 14

Discussion Debugging –What debugging features are useful for SDN programmers? –How can we exploit OpenFlow capabilities to support debugging? Testing –How to overcome the scalability challenges? –How to detect performance bugs? Preventing bugs –How can we change the programming environment to prevent bugs? –How can we change the programming environment to make testing easier? 15

MAC-Learning Application 16 mactable[srcmac] = inport if (dstmac is broadcast address) flood packet else if (dstmac is in mactable) outport = mactable[dstmac] install rule matching (inport, srcmac, dstmac) with action of forwarding packet to outport else flood packet Packet-In Event Handler