2. 1
SONA: ONOS SDN Controller based
OpenStack/Kubernetes Network Management Solution
ONF Korea (ONOS/CORD WG)
June 29, 2018
3. 2
Agenda
• Introduction to SDN, ONF and ONOS
• Introduction to SONA
– SONA Overview
– SONA Features
– SONA Implementation Details
• Data Plane Acceleration at SONA
5. 4
Software-Defined Network (SDN) (1/2)
Specialized Packet For
warding Hardware
App App App Specialized Packet For
warding Hardware
App App App
Specialized Packet For
warding Hardware
App App App
Specialized Packet For
warding Hardware
Operating
System
Operating
System
Operating
System
Operating
System
App App App
Other aspects of SDN follow
Control
Data
1
1
1
n
m
n
Specialized Packet For
warding Hardware
App App App
Operating
System
6. 5
Software-Defined Network (SDN) (2/2)
SpecializedPacket
ForwardingHardware
App App App
SpecializedPacket
ForwardingHardware
App App App
SpecializedPacket
ForwardingHardware
App App App
SpecializedPacket
ForwardingHardware
App App App
SpecializedPacket
ForwardingHardware
Operating
System
Operating
System Operating
System
Operating
System
Operating
System
App App App
Network Operating System (Controller)
App App App
7. 6
SDN Evolution and ONF
Platform
Development
2007 – Ethane
2008 – O penFlow
2009 – FlowVisor,
M ininet, NO X
2010 – Beacon
2009 – Stanford
2010 – G ENI started
and grew to 20
universities
2013 – 20 m ore cam
puses to be added
Deployments
Demonstrations
2008-2011 – SIG CO M M
2011 – O pen Networking
Sum m it, Interop
2012 –Define SDN
research agenda
for the com ing
years
And Beyond
Invention
2007 – Creation
of SDN Concept
2017 – O N.Lab and
O NF m erger
§ Non-profit, carrier and
vendor neutral
§ Provide technical shepherding,
core team
§ Build community
§ Many organizations supports
8. 7
Northbound
(policy enforcem ent, conflict resolution)
O penFlow NetConf . . .
Applications
DistributedCore
(scalability, availability, perform ance, persistence)
Southbound
(discover, observe, program , configure)
Provider Provider . . .
Contains user applications
E.g., reactiveforwarding, ProxyARP,
segment routing, SDN-IP, etc.
Transfer network infotoapplayer
Providemanagement interfacefor
controllinglower layer component
Contains many corefeatures
Providedistributedclusteringfunc.
for supportingHAandscalability
Provideanabstractedinterfacefor
controllingthenetwork infrastructure
Network protocol implementation
for managingnetwork elements
E.g., OpenFlow, NetConf
ONOS Architecture (1/2)
9. 8
NB Core API
Distributed Core
(state management, notifications, high-availability & scale-out)
SB Core API
Protocols
Providers
Protocols
Providers
Protocols
Providers
Protocols
Providers
AppsApplications
ONOS Architecture (2/2)
21. 20
• SONA Fabric
– Pure OpenFlow based Leaf-Spine Fabric Solution
– Supports ECMP, Failure detection & auto recovery
– Physical + Virtual Network Integration
SONA Features
22. 21
SONA Features
• vFlow Statistics
– Collect VM to VM real-time flow statistic
– Stats collection is realized using OpenFlow
standards protocol (no extra overhead!)
– Seamless integration with monitoring
systems through various NBIs
• REST, Kafka, gRPC, influxDB, etc.
– Realized through OpenstackTelemetry app
– No additional software installations are
required at OpenStack side
– No additional hardware installations are
required at compute/control node
– Open source!
SDN Controller
OpenstackTelemetry …
REST Kafka gRPC influxDB …
VM VM
OpenFlow
OVS
OVS OVS
OVS
23. 22
SONA Features
• vTap
– Mirror VM to VM real-time traffic
– Leverage OVS’s traffic mirroring feature
– Two traffic mirroring schemes
• Port-based: specific to OVS
• Flow-based: uses OpenFlow group table
– Realized through OpenstackTelemetry app
– No additional software installations are
required at OpenStack side
– Further improve the mirroring performance by
leveraging data plane acceleration technology
– Open source!
OVS
VM VM
eth0
OVS
vDPI
eth0
SDN Controller
OpenstackvTap …
25. 24
Spine
Leaf
...
VM VM VM
VM VM VM
VM VM
VM VM
VM
VM
VM VM VM
VM VM VM
Baremetal
Baremetal
Tenant A Tenant B Tenant C Tenant D
SONA Fabric
Kuryr-
kubernetesNeutron
OVS
Kuryr CNI
Pods
VMVMVM
ContainerContainerContainer
SONA Features
• Kubernetes Support
26. 25
OpenvSwitch
How does SONA Process Packets?
• SONA Pipeline
DHCP & ARP (vNet)
(table = 1)
FLAT
(table = 2)
vTAG
(table = 10)
ACL
(table = 20)
ConnTrack
(table = 21)
Jump
(table = 30)
Routing
(table = 40)
Switching
(table = 50)
Ingress
Port
Egress
Port
InboundStat
(table = 0)
OutboundStat
(table = 49)
27. 26
SONA Versioning
• SONA Versioning
– All SONA source code are up-streamed to ONOS repository
– SONA versioning should be independent from ONOS versioning
– Latest stable version of ONOS + latest version of SONA
1.12.0
ONOS Official Repo
1.13.01.12.1 1.12.2 1.13.1 1.13.2
SONA Versioning
1.0 1.1 1.2
ONOS Official Repo
1.12.0 1.13.01.12.1 1.12.2 1.13.1 1.13.2
SONA Versioning
SONA is stable but
ONOS might be unstable…
28. 27
SONA CI/CD
• Continuous Integration (CI)
– Fetch latest SONA source
– Build against stable ONOS
– Run unit test
– Package & deploy SONA
– Run integration test
– Notify the CI result via slack
– Deliver SONA container
https://hub.docker.com/r/opensona/onos-sona-nightly-docker/
Jenkins
Machine
ONOS Build &
Run Machine
OpenStack
Control Node
Tempest
Machine
OpenStack
Compute Node
OpenStack
Compute Node
Gateway
Node
…
29. 28
SONA CI/CD
• Integration Test
– Initialize environment to spawn ONOS cluster
– Tempest basic test
• OpenStack API test
• OpenStack scenario test
– ONOS failure test
• Terminate ONOS nodes, run tempest
– SONA app failure test
30. 29
Open Source Contribution
• Open Source Strategy
– 100% open source
– 136 commits were upstreamed in 2018 (2018.01 ~ now)
• https://gerrit.onosproject.org/#/q/project:onos+branch:master+topic:sona
• Helps from Community
– More tests and feedback from community
– Code contributions are always welcomed :)
• Wiki
– https://wiki.onosproject.org/display/ONOS/SONA%3A+DC+Network+Virtualization
• Slack Channel
– #sonaproject @ onosproject.slack.com
32. 31
Why DPA?
• Flat/vlan/vxlan performances are not enough for I/O intensive
VNF’s
– SGW, PGW, DU, IMS Nodes..
• PCI-Passthrough, SR-IOV are still widely being used
Flat/vlan/vxlan PCI-PT
Easy to configure Very easy
Easy
(Flavor, PCI whitelist,, alias)
Difficult
(NIC Speific configuration,
agent setup, …)
Easy to manage Easy
Difficult
(Cannot monitor this)
Normal
SDN-based
management
Easy Impossible Impossible
Performance - Line Rate Line Rate if VF/PF = 1:1
33. 32
OVS-DPDK Smart NIC
Versatility
DPDK-enabled NIC required
No limitation on Host OS
Specific driver required
Host Kernel Ver. Limitation,
OpenStack Pike~
Easy to Install
Easy (Well-made wiki, so many test results
exist in Google)
Difficult (Private wiki, no Google
results available)
Easy to configure Difficult (So many tuning options) Easy (same CLI as open vswitch)
CPU Usage 10Gbps per core
NO CPU Usage in Full
Offloading Case
Packet Loss Increases as throughput increases 0
OVS-DPDK vs Smart NIC
34. 33
Offloading Model
Netronome Agilio
Source: https://www.netronome.com/media/documents/PB_Agilio_OVS_SW.pdf
• Half Offloading Model
– Specific to OVS 2.6.1 for
Agilio provided
– Use same CLI as OVS
• E.g., ovs-vsctl, ovs-ofctl,
ovs-appctl
– ODL Plugin provided
35. 34
Offloading Model
• Full Offloading Model
– Specific to OVS 2.6.1 for
Cavium provided
– Use same CLI as OVS
• E.g., ovs-vsctl, ovs-
ofctl, ovs-appctl
– ODL Plugin provided
– ONOS plugin provided
(SKT’s efforts)
– Zero CPU usage
Cavium LiquidIO
Source: https://www.cavium.com/Documents/WhitePapers/Adapters/WP_LiquidIO_OVS_Software_Architecture.pdf?x=2
36. 35
• Requirements
– CentOS 7.4, Ubuntu 14.04
– LiquidIO driver installation (upstreamed after CentOS 7.5)
– OpenStack Pike
• Main Features
– Hardware: 2 x 10/25G SFP+
– VxLAN/NVGRE/GENEVE encap/decap offloaded
• In OpenStack point of view, the performance of overlay network is identical to
FLAT network
– SR-IOV mode suggested and 126 VF’s supported
• In OpenStack point of view, all VMs should be bound to VF
LiquidIO PoC: Requirements and Features
38. 37
LiquidIO PoC: Test Result
• Result
– Typically VxLAN shown
performance degradation
from 26% to 54% w.r.t.
MTU sizes
– More than 512byte of MTU,
line rate performance
guaranteed
– Network agnostic
throughput performance
guaranteed