A SOFT Way for OpenFlow Interoperability Testing Marco Canini TU Berlin / T-Labs [CoNEXT’12]

Slides:



Advertisements
Similar presentations
High-Fidelity Switch Models for SDN Emulation
Advertisements

Openflow App Testing Chao SHI, Stephen Duraski. Motivation Network is still a complex stuff ! o Distributed mechanism o Complex protocol o Large state.
Practical and Incremental Convergence between SDN and Middleboxes 1 Zafar Qazi, Cheng-Chun Tu, Luis Chiang Vyas Sekar Rui Miao Minlan Yu.
SIMPLE-fying Middlebox Policy Enforcement Using SDN
Why SDN and MPLS? Saurav Das, Ali Reza Sharafat, Guru Parulkar, Nick McKeown Clean Slate CTO Summit 9 th November, 2011.
Testing and Quality Assurance
Lecture # 2 : Process Models
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
A SOFT Way for OpenFlow Interoperability Testing Maciej Kuźniar, Peter Perešini, Marco Canini†, Daniele Venzano, Dejan Kostić‡ EPFL †TU Berlin/T-Labs ‡IMDEA.
An Overview of Software-Defined Network Presenter: Xitao Wen.
OpenFlow Costin Raiciu Using slides from Brandon Heller and Nick McKeown.
Software-Defined Networking, OpenFlow, and how SPARC applies it to the telecommunications domain Pontus Sköldström - Wolfgang John – Elisa Bellagamba November.
VeriCon: Towards Verifying Controller Programs in SDNs (PLDI 2014) Thomas Ball, Nikolaj Bjorner, Aaron Gember, Shachar Itzhaky, Aleksandr Karbyshev, Mooly.
OpenFlow-Based Server Load Balancing GoneWild
Troubleshooting SDNs Peyman Kazemian. Why SDN Troubleshooting SDN decouples software (control plane) from hardware (data plane). Opens doors for innovation.
SDN and Openflow.
Network Innovation using OpenFlow: A Survey
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Agent-Based Acceptability-Oriented Computing International Symposium on Software Reliability Engineering Fast Abstract by Shana Hyvat.
An Overview of Software-Defined Network
Data Plane Verification. Background: What are network policies Alice can talk to Bob Skype traffic must go through a VoIP transcoder All traffic must.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
Introduction to Software Testing
AUTOMATIC CONCOLIC TEST GENERATION WITH VIRTUAL PROTOTYPES FOR POST-SILICON VALIDATION Reviewer: Shin-Yann Ho Instructor: Jie-Hong Jiang.
An Overview of Software-Defined Network Presenter: Xitao Wen.
Presenter: Chi-Hung Lu 1. Problems Distributed applications are hard to validate Distribution of application state across many distinct execution environments.
ECCP A Formally-Verified Migration Protocol For Mobile, Multi-Homed Hosts Matvey Arye Joint work with: Erik Nordström, Robert Kiefer Jennifer Rexford, Michael.
Formal checkings in networks James Hongyi Zeng with Peyman Kazemian, George Varghese, Nick McKeown.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Where is the Debugger for my Software-Defined Network? [ndb]
VeriFlow: Verifying Network-Wide Invariants in Real Time
Software Component Technology and Component Tracing CSC532 Presentation Developed & Presented by Feifei Xu.
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
Testing Workflow In the Unified Process and Agile/Scrum processes.
By Ian Jackman Davit Stepanyan.  User executed untested code.  The order in which statements were meant to be executed are different than the order.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Project Management All projects need to be “managed” –Cost (people-effort, tools, education, etc.) –schedule –deliverables and “associated” characteristics.
CSCI 521 Final Exam Review. Why Establish a Standard Process? It is nearly impossible to have a high quality product without a high quality process. Standard.
Conformance Test Experiments for Distributed Real-Time Systems Rachel Cardell-Oliver Complex Systems Group Department of Computer Science & Software Engineering.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
Improving Network Management with Software Defined Network Group 5 : z Xuling Wu z Haipeng Jiang z Sichen Wu z Aparna Sanil.
SIMPLE-fying Middlebox Policy Enforcement Using SDN
Thomas L. Gilchrist Testing Basics Set 3: Testing Strategies By Tom Gilchrist Jan 2009.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Jennifer Rexford Princeton University MW 11:00am-12:20pm Data-Plane Verification COS 597E: Software Defined Networking.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Software Defined Networking and OpenFlow Geddings Barrineau Ryan Izard.
Copyright 1999 G.v. Bochmann ELG 7186C ch.1 1 Course Notes ELG 7186C Formal Methods for the Development of Real-Time System Applications Gregor v. Bochmann.
Dillon: CSE470: ANALYSIS1 Requirements l Specify functionality »model objects and resources »model behavior l Specify data interfaces »type, quantity,
Atrium Router Project Proposal Subhas Mondal, Manoj Nair, Subhash Singh.
Enterprise Security Management Franklin Tinsley COSC 481.
SDN challenges Deployment challenges
Problem: Internet diagnostics and forensics
SDN Network Updates Minimum updates within a single switch
The architecture of the P416 compiler
Regression Testing with its types
Martin Casado, Nate Foster, and Arjun Guha CACM, October 2014
Chapter 13 & 14 Software Testing Strategies and Techniques
Abstractions for Model Checking SDN Controllers
Software Defined Networking (SDN)
Introduction to Software Testing
ClosedFlow: OpenFlow-like Control over Proprietary Devices
Chapter 10 – Software Testing
Lecture 10, Computer Networks (198:552)
CSE 1020:Software Development
Presented by KARRI GOVINDA RAO ,
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

A SOFT Way for OpenFlow Interoperability Testing Marco Canini TU Berlin / T-Labs [CoNEXT’12]

First: my view on SDN 2 Today Reliability Performance SDN: A role for software engineering and formal methods to improve reliability Evolved Simple to manage and program Less complexity Deterministic and verifiable behavior 3 Dec 2012DIMACS Workshop on SDN

Reduce the risk of bugs! 3 Dec 2012DIMACS Workshop on SDN3

Software Faults Will make communication unreliable Major hurdle for success of SDN 3 Dec 2012 We need effective ways to validate SDN networks DIMACS Workshop on SDN4

Network topology Correctness properties (e.g., no loops) Traces of property violations InputOutput NICE [NSDI’12] Systematic state-space exploration Unmodified OpenFlow program 3 Dec 2012DIMACS Workshop on SDN5

3 Dec 2012DIMACS Workshop on SDN6 Okay, now back to OpenFlow Interoperability Testing

Release Interoperability at Deployment Time 7 OpenFlow program OpenFlow messages One OpenFlow API specification… Are OF switches interoperable? Interop is critical for the success of SDN 3 Dec 2012DIMACS Workshop on SDN

Interop: How Hard Can It Be? 8 OF Switch Inputs Hardware correctness is formally verified Packets OpenFlow messages “Forwarding” interface OpenFlow interface ASIC switch chip OSOS OpenFlow Agent Likely source of OpenFlow interop issues Flow Table Hardware Abstraction Layer 3 Dec 2012DIMACS Workshop on SDN

OpenFlow Software Agent 9 Specifications Rapid flux (3 revisions in ~ 1 year) Ambiguities Specifications  Implementation Implementation freedom Vendors may not follow the specs Testing, testing and testing… Switch software is not provably correct  3 Dec 2012DIMACS Workshop on SDN

Interoperability Event 10 Gather various vendors Hook up switches and controllers Create and run test cases See what breaks and fix it Very high manual effort Test cases are not exhaustive It is not a one time thing 3 Dec 2012DIMACS Workshop on SDN

Automating Interop Testing 11 Insight: systematically crosscheck OF implementations 3 Dec 2012DIMACS Workshop on SDN

The 10,000 foot view 12 OF Agent 1 Test inputs Input-driven execution Observable behaviors Inconsistency! OF Agent 2 Problem I: What inputs should we use? 3 Dec 2012DIMACS Workshop on SDN

If ( p == OFPP_CTRL ) send_to_ctrl ( ) else if ( p < 25 ) send_to_port( p ) else error( BAD_PORT ) Symbolic Execution 13 p p == OFPP_CTRLp != OFPP_CTRL p < 25p >= 25 send_to_ctrl ( ) send_to_port( p ) error Path condition: p >= 25 & p != OFPP_CTRL FWDERRCTRLERR p: OFPP_CTRL Problem II: Path explosion 3 Dec 2012DIMACS Workshop on SDN

Challenges Manage test inputs and coverage efficiently Capture behaviors Avoid simultaneous access to all code 143 Dec 2012DIMACS Workshop on SDN

SOFT (Systematic OpenFlow Testing) 15 OF Agent 1 Test inputs Input-driven execution Observable behaviors OF Agent 2 Determine mapping inputs  behaviors through symbolic execution Identify inconsistencies Automated solution to interop testing Systematic code coverage No simultaneous access to all agents 3 Dec 2012DIMACS Workshop on SDN

Structured Inputs ************ FLOW MOD N1 STAT REQ N2 1.0 Further reductions Some inputs are independent Many inputs are entirely concrete Small number of messages Concrete values at cost of coverage C1C2 3 Dec 2012DIMACS Workshop on SDN

Capturing Behaviors Externally observable outputs OpenFlow reply messages Data plane packets Normalize harmless nondeterminism (e.g., Buffer IDs) Internal state changes affect successive inputs Use concrete probe packets 173 Dec 2012DIMACS Workshop on SDN

Example 18 If ( p == OFPP_CTRL ) send_to_ctrl ( ) else if ( p < 25 ) send_to_port( p ) else error( BAD_PORT ) if ( p < 25 ) send_to_port( p ) else error( BAD_PORT ) Agent 1Agent 2 FWDERRCTRLERR p: OFPP_CTRL FWDERR p: Dec 2012DIMACS Workshop on SDN

N-version Comparison 19 If ( p == OFPP_CTRL ) send_to_ctrl ( ) else if ( p < 25 ) send_to_port( p ) else error( BAD_PORT ) if ( p < 25 ) send_to_port( p ) else error( BAD_PORT ) Agent 1Agent 2 FWDERRCTRLERR p: OFPP_CTRL p: FWDERR Dec 2012DIMACS Workshop on SDN

Is there an input subspace that causes two distinct behaviors? N-version Comparison 20 FWDERRCTRLERR p: OFPP_CTRL FWDERR No false positives 3 Dec 2012DIMACS Workshop on SDN Agent 1 Agent 2

Limitations Short sequences of inputs Unable to find problems with a complex state Is an inconsistency harmless? Can it affect the controller? How to test all initial configurations? Agent’s behavior depends on initial config 213 Dec 2012DIMACS Workshop on SDN

Prototype & Evaluation SOFT prototype built on top of Cloud9/Klee Compared OpenFlow 1.0 Reference Switch (55k LoC) Open VSwitch 1.0.0(80k LoC) Input Sequences containing messages 223 Dec 2012DIMACS Workshop on SDN

Does SOFT Work? Found 7 classes of inconsistencies Mostly related to message validation Result of underspecification No expected behavior in the specification Inconsistent interpretation of the specification 233 Dec 2012DIMACS Workshop on SDN

Inconsistency - Example 24 FlowMod message 1.Modify VLAN to value greater than Forward packet Reference Implementation 1.Trim VLAN value to 12 bits 2.Install the rule Open VSwitch 1.Silently ignore the message Network in 2 different states Which one is assumed by the controller? 3 Dec 2012DIMACS Workshop on SDN

Concretizing Tradeoffs 25 Fully Symbolic 28h 3 Dec 2012DIMACS Workshop on SDN

Conclusions 26 SOFT automates interoperability testing of OpenFlow Agents Also useful for: Regression testing Specification improvements 3 Dec 2012DIMACS Workshop on SDN Systematic code coverage No simultaneous access to all agents

Thanks 3 Dec 2012DIMACS Workshop on SDN27 Peter Perešíni (EPFL) Maciej Kuźniar (EPFL) Daniele Venzano (EPFL) Dejan Kostić (EPFL  IMDEA Networks)

Thank you! 28 SOFT automates interoperability testing of OpenFlow Agents Also useful for: Regression testing Specification improvements 3 Dec 2012DIMACS Workshop on SDN Systematic code coverage No simultaneous access to all agents