SlideShare une entreprise Scribd logo
1  sur  18
System Testing SDN
- A Case Study on ONOS
Suibin Zhang, ON.Lab
Jon Hall, Ciena
Known
UNKNOWNs
Known
KNOWNs
Unknown
UNKNOWNs
Quality Assurance on Software System
Subjective Perception
ObjectiveReality
✔
2#ONOSProject
3#ONOSProject
• 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
2
SDN
CTRL
n
APP APPAPP
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
<Scapy>
<host>192.168.1.101</host>
<user>admin</user>
<password></password>
<type>ScapyCliDriver</type>
<connect_order>6</connect_order>
</Scapy>
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: https://wiki.onosproject.org/display/ONOS/System+Tests
• Repo: https://gerrit.onosproject.org/#/admin/projects/OnosSystemTest
• Github: https://github.com/opennetworkinglab/OnosSystemTest
Summary
Python-Based
Extensibility
DebuggabilityFlexibility
ONOS Test Suites:
Functionality
High Availability
Performance
Scale-out Capability
Longevity
Use Cases
ONOS System Test Highlights
Open Source
18#ONOSProject
Join the journey @ onosproject.org
Software Defined Transformation of Service Provider Networks
Q&A

Contenu connexe

Tendances

Monit - Introduction, Configuration & Usage
Monit - Introduction, Configuration & UsageMonit - Introduction, Configuration & Usage
Monit - Introduction, Configuration & Usage
Amit Solanki
 

Tendances (20)

InSpec For DevOpsDays Amsterdam 2017
InSpec For DevOpsDays Amsterdam 2017InSpec For DevOpsDays Amsterdam 2017
InSpec For DevOpsDays Amsterdam 2017
 
Adding Security to Your Workflow with InSpec (MAY 2017)
Adding Security to Your Workflow with InSpec (MAY 2017)Adding Security to Your Workflow with InSpec (MAY 2017)
Adding Security to Your Workflow with InSpec (MAY 2017)
 
CCI2019 - I've got the Power! I've got the Shell!
CCI2019 - I've got the Power! I've got the Shell!CCI2019 - I've got the Power! I've got the Shell!
CCI2019 - I've got the Power! I've got the Shell!
 
2014-10-30 Taverna 3 status
2014-10-30 Taverna 3 status2014-10-30 Taverna 3 status
2014-10-30 Taverna 3 status
 
(1) cpp introducing the_cpp_programming_language
(1) cpp introducing the_cpp_programming_language(1) cpp introducing the_cpp_programming_language
(1) cpp introducing the_cpp_programming_language
 
FUNTASY - Functional testing automated system
FUNTASY - Functional testing automated systemFUNTASY - Functional testing automated system
FUNTASY - Functional testing automated system
 
Supercharging your PHP pages with mod_lsapi in CloudLinux OS
Supercharging your PHP pages with mod_lsapi in CloudLinux OSSupercharging your PHP pages with mod_lsapi in CloudLinux OS
Supercharging your PHP pages with mod_lsapi in CloudLinux OS
 
Nagios Conference 2007 | State of the Plugins by Ton Voon
Nagios Conference 2007 | State of the Plugins by Ton VoonNagios Conference 2007 | State of the Plugins by Ton Voon
Nagios Conference 2007 | State of the Plugins by Ton Voon
 
OSDC 2017 | Building Security Into Your Workflow with InSpec by Mandi Walls
OSDC 2017 | Building Security Into Your Workflow with InSpec by Mandi WallsOSDC 2017 | Building Security Into Your Workflow with InSpec by Mandi Walls
OSDC 2017 | Building Security Into Your Workflow with InSpec by Mandi Walls
 
A user's perspective on SaltStack and other configuration management tools
A user's perspective on SaltStack and other configuration management toolsA user's perspective on SaltStack and other configuration management tools
A user's perspective on SaltStack and other configuration management tools
 
PowerShell Workshop Series: Session 2
PowerShell Workshop Series: Session 2PowerShell Workshop Series: Session 2
PowerShell Workshop Series: Session 2
 
Distributed tracing in OpenStack
Distributed tracing in OpenStackDistributed tracing in OpenStack
Distributed tracing in OpenStack
 
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
Arnold Bechtoldt, Inovex GmbH Linux systems engineer - Configuration Manageme...
 
Monit - Introduction, Configuration & Usage
Monit - Introduction, Configuration & UsageMonit - Introduction, Configuration & Usage
Monit - Introduction, Configuration & Usage
 
Consul - service discovery and others
Consul - service discovery and othersConsul - service discovery and others
Consul - service discovery and others
 
CNIT 127 Ch 8: Windows overflows (Part 1)
CNIT 127 Ch 8: Windows overflows (Part 1)CNIT 127 Ch 8: Windows overflows (Part 1)
CNIT 127 Ch 8: Windows overflows (Part 1)
 
Monitoring with Syslog and EventMachine
Monitoring with Syslog and EventMachineMonitoring with Syslog and EventMachine
Monitoring with Syslog and EventMachine
 
LCE13: LAVA Multi-Node Testing
LCE13: LAVA Multi-Node TestingLCE13: LAVA Multi-Node Testing
LCE13: LAVA Multi-Node Testing
 
Puppet meetup testing
Puppet meetup testingPuppet meetup testing
Puppet meetup testing
 
Fundamental of Shell Programming
Fundamental of Shell ProgrammingFundamental of Shell Programming
Fundamental of Shell Programming
 

En vedette

ONOS Open Network Operating System
ONOS Open Network Operating SystemONOS Open Network Operating System
ONOS Open Network Operating System
ON.Lab
 

En vedette (14)

Open network operating system (onos)
Open network operating system (onos)Open network operating system (onos)
Open network operating system (onos)
 
Final Presentation
Final PresentationFinal Presentation
Final Presentation
 
Energías del futuro
Energías del futuroEnergías del futuro
Energías del futuro
 
21 claves-sexualizar-convencer
21 claves-sexualizar-convencer21 claves-sexualizar-convencer
21 claves-sexualizar-convencer
 
Criminalistica.
Criminalistica.Criminalistica.
Criminalistica.
 
Tail f - Why ConfD
Tail f - Why ConfDTail f - Why ConfD
Tail f - Why ConfD
 
OVNC 2015-Enabling Software-Defined Transformation of Service Provider Networks
OVNC 2015-Enabling Software-Defined Transformation of Service Provider NetworksOVNC 2015-Enabling Software-Defined Transformation of Service Provider Networks
OVNC 2015-Enabling Software-Defined Transformation of Service Provider Networks
 
презентация бизнес плана Таль
презентация бизнес плана  Тальпрезентация бизнес плана  Таль
презентация бизнес плана Таль
 
Inter-controller Traffic in ONOS Clusters for SDN Networks
Inter-controller Traffic in ONOS Clusters for SDN Networks Inter-controller Traffic in ONOS Clusters for SDN Networks
Inter-controller Traffic in ONOS Clusters for SDN Networks
 
Mininet Learning Guide(Mininet 学习指南)
Mininet Learning Guide(Mininet 学习指南)Mininet Learning Guide(Mininet 学习指南)
Mininet Learning Guide(Mininet 学习指南)
 
Python (Jinja2) Templates for Network Automation
Python (Jinja2) Templates for Network AutomationPython (Jinja2) Templates for Network Automation
Python (Jinja2) Templates for Network Automation
 
Film distribution
Film distributionFilm distribution
Film distribution
 
ONOS Open Network Operating System
ONOS Open Network Operating SystemONOS Open Network Operating System
ONOS Open Network Operating System
 
2016 COSCUP SDN Introduction
2016 COSCUP SDN Introduction2016 COSCUP SDN Introduction
2016 COSCUP SDN Introduction
 

Similaire à ONOS System Test - ONS2016

Mastering selenium for automated acceptance tests
Mastering selenium for automated acceptance testsMastering selenium for automated acceptance tests
Mastering selenium for automated acceptance tests
Nick Belhomme
 
Automated testing on steroids – Trick for managing test data using Docker sna...
Automated testing on steroids – Trick for managing test data using Docker sna...Automated testing on steroids – Trick for managing test data using Docker sna...
Automated testing on steroids – Trick for managing test data using Docker sna...
Lucas Jellema
 
Introduction to tempest
Introduction to tempest Introduction to tempest
Introduction to tempest
openstackindia
 
Into The Box 2018 | Assert control over your legacy applications
Into The Box 2018 | Assert control over your legacy applicationsInto The Box 2018 | Assert control over your legacy applications
Into The Box 2018 | Assert control over your legacy applications
Ortus Solutions, Corp
 

Similaire à ONOS System Test - ONS2016 (20)

Ensuring Software Quality Through Test Automation- Naperville Software Develo...
Ensuring Software Quality Through Test Automation- Naperville Software Develo...Ensuring Software Quality Through Test Automation- Naperville Software Develo...
Ensuring Software Quality Through Test Automation- Naperville Software Develo...
 
What I Learned From Writing a Test Framework (And Why I May Never Write One A...
What I Learned From Writing a Test Framework (And Why I May Never Write One A...What I Learned From Writing a Test Framework (And Why I May Never Write One A...
What I Learned From Writing a Test Framework (And Why I May Never Write One A...
 
Mastering selenium for automated acceptance tests
Mastering selenium for automated acceptance testsMastering selenium for automated acceptance tests
Mastering selenium for automated acceptance tests
 
Osquery
OsqueryOsquery
Osquery
 
Practical Chaos Engineering
Practical Chaos EngineeringPractical Chaos Engineering
Practical Chaos Engineering
 
Apache Cloudstack QA Strategy
Apache Cloudstack QA StrategyApache Cloudstack QA Strategy
Apache Cloudstack QA Strategy
 
Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015Ansible benelux meetup - Amsterdam 27-5-2015
Ansible benelux meetup - Amsterdam 27-5-2015
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
 
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
 
Performance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle CoherencePerformance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle Coherence
 
Automated testing on steroids – Trick for managing test data using Docker sna...
Automated testing on steroids – Trick for managing test data using Docker sna...Automated testing on steroids – Trick for managing test data using Docker sna...
Automated testing on steroids – Trick for managing test data using Docker sna...
 
Introduction to tempest
Introduction to tempest Introduction to tempest
Introduction to tempest
 
Runos OpenFlow Controller (eng)
Runos OpenFlow Controller (eng)Runos OpenFlow Controller (eng)
Runos OpenFlow Controller (eng)
 
TechWiseTV Workshop: Catalyst Switching Programmability
TechWiseTV Workshop: Catalyst Switching ProgrammabilityTechWiseTV Workshop: Catalyst Switching Programmability
TechWiseTV Workshop: Catalyst Switching Programmability
 
Into The Box 2018 | Assert control over your legacy applications
Into The Box 2018 | Assert control over your legacy applicationsInto The Box 2018 | Assert control over your legacy applications
Into The Box 2018 | Assert control over your legacy applications
 
Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build Pipeline
 
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
 
Continuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CIContinuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CI
 
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
 
Effective out-of-container Integration Testing
Effective out-of-container Integration TestingEffective out-of-container Integration Testing
Effective out-of-container Integration Testing
 

Dernier

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Dernier (20)

%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 

ONOS System Test - ONS2016

  • 1. System Testing SDN - A Case Study on ONOS Suibin Zhang, ON.Lab Jon Hall, Ciena
  • 2. Known UNKNOWNs Known KNOWNs Unknown UNKNOWNs Quality Assurance on Software System Subjective Perception ObjectiveReality ✔ 2#ONOSProject
  • 3. 3#ONOSProject • 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. 4#ONOSProject Testing SDN OS – Nontrivial SDN Network Domain Distributed Controllers SDN CTRL 1 SDN CTRL 2 SDN CTRL n APP APPAPP Test Exec. Legacy Network Domain Dependencies
  • 5. 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
  • 7. 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. 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. 9#ONOSProject A Deeper Dive into TestON Onos System Test CI
  • 10. 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. 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. 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. 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. 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 <Scapy> <host>192.168.1.101</host> <user>admin</user> <password></password> <type>ScapyCliDriver</type> <connect_order>6</connect_order> </Scapy> TestON |--drivers |--tests |--Example |--Example.py |--Example.params |--Example.topo Example: ONOS’ Intent Functionality Test
  • 15. 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. 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. 17#ONOSProject For more Information • S3 Showcase: “SDN/ONOS System Test” • Wiki: https://wiki.onosproject.org/display/ONOS/System+Tests • Repo: https://gerrit.onosproject.org/#/admin/projects/OnosSystemTest • Github: https://github.com/opennetworkinglab/OnosSystemTest Summary Python-Based Extensibility DebuggabilityFlexibility ONOS Test Suites: Functionality High Availability Performance Scale-out Capability Longevity Use Cases ONOS System Test Highlights Open Source
  • 18. 18#ONOSProject Join the journey @ onosproject.org Software Defined Transformation of Service Provider Networks Q&A

Notes de l'éditeur

  1. Good Afternoon. Welcome to our talk on System Testing SDN I am Suibin Zhang from Open Net… My co-presenter is Jon Hall from Ciena Today we will use ONOS as a case study to present to you some of our learning expereince in developing SDN system tests.
  2. First of all, SDN involves complex software. This is one view of how to quality assuring a complex software system We look at the typical 4 quadrants of subjective perceptions and objective reality.
  3. Applications, Devices – OF, etc. ONOS Network operator qualify ONOS Using Black/grey box approach – test scenarios not influenced by internal design
  4. Building a system integration test is non-trivial - SDN network domain - Controllers, usually in a cluster - Apps How to make a test executor handle control of the complex env?
  5. Pure Technical challenges APIs – fast changing in early product stage; CLI, REST, etc. How to mimic a large network with hundreds/thousands of switches - same time isolating env-caused issues from real product issues Test should facilitate debugging activities – adding in test case hooks to pause, replay Engaging Community – another set of challenges
  6. In ONOS, what we have built.
  7. Describe the cluster components - TestON is a test authoring, execution framework – more details later
  8. Jon will be diving in deeper in to the TestON framework
  9. Applications, Devices – OF, etc. ONOS Network operator qualify ONOS Using Black/grey box approach – test scenarios not influenced by internal design
  10. In summary, we presented to you An SDN System Test Framework That we have used to build all these test suites What enable us to do that is with those benefits