System Testing SDN - A Case Study on ONOS Suibin Zhang, ON.Lab Jon Hall, Ciena.

Slides:



Advertisements
Similar presentations
Chapter 1: Introduction to Scaling Networks
Advertisements

Proposal: Model-Driven SAL for the OpenDaylight Controller
Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
Saurav, Srikanth, Sangho
Introducing Campus Networks
LACP Project Proposal.
 WAN uses Serial ports  Ethernet Ports:  Straight through  Cross over.
Copyright 2014 Kenneth M. Chipps Ph.D. Software Defined Networking Lab Using Mininet and the POX Controller Last Update
An Overview of Software-Defined Network Presenter: Xitao Wen.
OpenDaylight: An Open Source SDN for Your OpenStack Cloud Stephan Baucke, Ericsson Kyle Mestery, Cisco Anees Shaikh, IBM Chris Wright,
Slide title 70 pt CAPITALS Slide subtitle minimum 30 pt Vpn service Ericsson.
Extensible Networking Platform IWAN 2005 Extensible Network Configuration and Communication Framework Todd Sproull and John Lockwood
CCU EE&CTR1 Software Architecture Overview Nick Wang & Ting-Chao Hou National Chung Cheng University Control Plane-Platform Development Kit.
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
ONOS Use Cases Tom Tofigh AT&T.
An Overview of Software-Defined Network
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 8 Introduction to Printers in a Windows Server 2008 Network.
Traffic shaping with OVS and SDN Ramiro Voicu Caltech LHCOPN/LHCONE, Berkeley, June
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Communicating over the Network Network Fundamentals – Chapter 2.
An Overview of Software-Defined Network Presenter: Xitao Wen.
Implementing RADIUS AAA Phil & Rick. Content Terms and Concepts Access Control What is AAA? Benefits of AAA What is RADIUS? Microsoft IAS Overview Installation.
Data Communications and Networks
TCOM 515 Lecture 6.
© 2012 LogiGear Corporation. All Rights Reserved Robot framework.
Microsoft ® Official Course Module 10 Optimizing and Maintaining Windows ® 8 Client Computers.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Connecting to the Network Networking for Home and Small Businesses.
VeriFlow: Verifying Network-Wide Invariants in Real Time
Model a Container Runtime environment on Your Mac with VMware AppCatalyst VMworld Fabio Rapposelli
Magnetic Field Measurement System as Part of a Software Family Jerzy M. Nogiec Joe DiMarco Fermilab.
Discovery 2 Internetworking Module 5 JEOPARDY John Celum.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
HP OpenFlow Plugin and Libraries June 30, 2014.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 1: Introduction to Scaling Networks Scaling Networks.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 1: Introduction to Scaling Networks Scaling Networks.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
SDN and Openflow. Motivation Since the invention of the Internet, we find many innovative ways to use the Internet – Google, Facebook, Cloud computing,
1 | © 2015 Infinera Open SDN in Metro P-OTS Networks Sten Nordell CTO Metro Business Group
Mininet and Openflow Labs. Install Mininet (do not do this in class) Download VirtualBox Download Xming for windows (X11) Download Mininet VM for linux-ubuntu.
SOFTWARE DEFINED NETWORKING/OPENFLOW: A PATH TO PROGRAMMABLE NETWORKS April 23, 2012 © Brocade Communications Systems, Inc.
Anritsu Automation Platform (AAP) AAP PC Connects to the system via IP connection (system switch) AAP was developed to add features that were requested.
Introduction to Mininet, Open vSwitch, and POX
Presented by The Harness Workbench: Unified and Adaptive Access to Diverse HPC Platforms Christian Engelmann Computer Science Research Group Computer Science.
Network Models. The OSI Model Open Systems Interconnection (OSI). Developed by the International Organization for Standardization (ISO). Model for understanding.
Deploy SDN-IP.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
Let's build a VMM service template from A to Z in one hour Damien Caro Technical Evangelist Microsoft Central & Eastern Europe
Test and Performance Integration Group.
Atrium Router Project Proposal Subhas Mondal, Manoj Nair, Subhash Singh.
Cisco Routers Routers collectively provide the main feature of the network layer—the capability to forward packets end-to-end through a network. routers.
An open source user space fast path TCP/IP stack and more…
Software Defined Networking BY RAVI NAMBOORI. Overview  Origins of SDN.  What is SDN ?  Original Definition of SDN.  What = Why We need SDN ?  Conclusion.
Moving Legacy Applications to Docker Josh Ellithorpe Software Architect (NOTE: PASTE IN PORTRAIT AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP)
Luis Gomez, Principal SW Test Engineer, Brocade
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Version 0.1 Draft – For Review Murali Mohan Murthy
Open Networking and SDN
Mininet and Openflow Labs
SDN challenges Deployment challenges
Junos Automation Stack
Multi-layer software defined networking in GÉANT
© 2002, Cisco Systems, Inc. All rights reserved.
Dockerize OpenEdge Srinivasa Rao Nalla.
100% REAL EXAM QUESTIONS ANSWERS
© 2002, Cisco Systems, Inc. All rights reserved.
Exploring Azure Event Grid
IS3120 Network Communications Infrastructure
Chapter 3: Open Systems Interconnection (OSI) Model
ONOS Falcon Release Bill Snow.
HC Hyper-V Module GUI Portal VPS Templates Web Console
Myrinet 2Gbps Networks (
Presentation transcript:

System Testing SDN - A Case Study on ONOS Suibin Zhang, ON.Lab Jon Hall, Ciena

Known UNKNOWNs Known UNKNOWNs Known KNOWNs Unknown UNKNOWNs Design Considerations Unit Test Considerations System Test Considerations Quality Assurance on Software System Subjective Perception Objective Reality ✔ 2 #ONOSProject

3 Black/Grey Box Testing – Often mimic usage scenarios – Validity not influenced by internal design Product Verification/Qualification Pre-Deployment Verification System Test - Where Used

4 #ONOSProject Testing SDN OS – Nontrivial SDN Network Domain Distributed Controllers SDN CTRL 1 SDN CTRL 1 SDN CTRL 2 SDN CTRL 2 SDN CTRL n SDN CTRL n APP Test Exec. Legacy Network Domain Dependencies

5 #ONOSProject Technical – Accessing heterogeneous, evolving interfaces – Scaling test environment – Facilitate Debugging Arise from Community/Open Source – Run “anywhere” – Handling test dependencies – Contribution and merging tests Challenges in Building System Tests

6 #ONOSProject A Case Study on ONOS

7 #ONOSProject Functionality Suite – NB: Intents and Flow operations – SB: OF 1.0 &1.3, NETCONF, OVSDB, etc. High Availability Suite – Various scenarios of cluster failures Performance and Scale-out Suites – Intent, flow throughputs, latency as scaling-out – Topology discovery latency as scaling-out Longevity – Continuous operation under typical deployment scenarios Selected Use Case Suites – SDNIP App, Segment Routing App ONOS System Test Suites

8 #ONOSProject Establish Test Handles Run-time Configuration Test Logic Reset/Clean Test Env. Inject Run Params to TestStation Start Test Cases Jenkins Plugins Update Codes Publish Results Onos System Test CI

9 #ONOSProject A Deeper Dive into TestON Onos System Test CI

10 #ONOSProject TestON – Key Benefits TestON o SDN-focused Testing Framework o Test case authoring, execution o Python-based Key Benefits: o Extensibility – Simplify case authoring by compartmentalizing concerns o Flexibility - Handle heterogeneous test env. OVS, HW, Quagga, etc. o Debuggability - Facilitate troubleshooting

11 #ONOSProject *.params *.py *.topo Dependency Details on TestON Framework TestON Core Framework: Logging, Utilities, … Mininet Driver ONOS Rest Driver Quagga Driver ONOS CLI Driver Test Files.params File – XML file, used to pass variables into test, such as order of test cases.topo file – XML File, defines the components of the test Dependency Folder – Config files or Mininet topology files used by the test.py file – Combine TestON and driver functions to define your test cases. Test Cases are split into steps, each of which should have an assertion in them Driver Files Can use REST, CLI via SSH, or other custom connection interfaces Defined in a hierarchical structure Creates a library of functions to be used in the test

12 #ONOSProject ONOS Intent Feature Set intent through NB REST interface Validate intent and flows are correctly added Test end-to-end connectivity in Mininet with the specific selectors System Test Procedure Need a library to send packets with test-specified selector Leveraging Python Scapy module System Test Requirement High-level abstraction of setting end to end connectivity Can be defined by “Selectors” of MAC, IP, PORT, MPLS label, etc. Example: ONOS Intent Functionality Test

13 #ONOSProject Building a Scapy Driver (send/recv user-defined packets) class ScapyCliDriver( Emulator ): def sendPacket( self, iface=None, packet=None, timeout=1 ): try: sendCmd = 'srp( ' if packet: sendCmd += packet else:... if iface: sendCmd += ", iface='{}'".format( iface ) sendCmd += ', timeout=' + str( timeout ) + ')' self.handle.sendline( sendCmd ) self.handle.expect( self.scapyPrompt ) except:... TestON |--drivers | |--common | |--api | |--cli | | |--emulator | | |--ScapyCliDriver.py |--tests Example: ONOS’ Intent Functionality Test

14 #ONOSProject for hostName in [ “h1”,”h2” ]: # Create two host components with the scapy driver4 main.Scapy.createHostComponent( hostName ) main.step( ”Login to scapy on these new components" ) for host in [ main.h1, main.h2 ]: host.startHostCli() host.startScapy() Using Scapy Library - in Mininet Host Handle admin ScapyCliDriver 6 TestON |--drivers |--tests |--Example |-- Example.py |--Example.params |-- Example.topo Example: ONOS’ Intent Functionality Test

15 #ONOSProject # Add connectivity from h1 to h2 (unidirectional) addResult = main.ONOS1.addPointIntent( ingress, egress, ethDst, ipDst) main.h2.startFilter() # Start packet filter on host2 main.h1.buildEther( dst=main.h2.hostMac ) # build ethernet frame main.h1.buildIP( dst=main.h2.hostIp ) # Build IP frame main.h1.sendPacket() # Send built packet finished = main.h2.checkFilter() # Check if host2 received any packets Intent Test Case - Using Scapy Driver TestON |--drivers |--tests |--Example |-- Example.py |--Example.params |--Example.topo Example: ONOS’ Intent Functionality Test

16 #ONOSProject Parameterize Test Env & Run Var – Jenkins to inject at run time – Test cases deal with “pure” test logic Extensive Exception Handling in Drivers – Take care of exceptions, timeout – Use “retry” method Test Dependencies – Run-time Activation – “Dockerize” Fixture (Future Work) Debug Utilities – Test pausing – Log collation – More (Future Work) Scale Test Network (Future Work) Lessons Learned and Future Work

17 #ONOSProject For more Information S3 Showcase: “SDN/ONOS System Test” Wiki: Repo: Github: Summary Python-Based Extensibility Debuggability Flexibility ONOS Test Suites: Functionality High Availability Performance Scale-out Capability Longevity Use Cases ONOS Test Suites: Functionality High Availability Performance Scale-out Capability Longevity Use Cases ONOS System Test Highlights Open Source

18 #ONOSProject Join the onosproject.org Software Defined Transformation of Service Provider Networks