enabling dpdk accelerated ovs in odl and … · enabling dpdk accelerated ovs in odl and...
TRANSCRIPT
Enabling DPDK Accelerated OVS in ODL and Accelerating SFC
Sharad Mishra, Intel Corporation
Eric Multanen, Intel Corporation
Danny Zhou, Intel Corporation
Rajeev Koodli
Legal Disclaimer
• General Disclaimer:
• © Copyright 2015 Intel Corporation. All rights reserved. Intel, the Intel logo, Intel Inside, the Intel Inside logo, Intel. Experience What’s Inside are trademarks of Intel. Corporation in the U.S. and/or other countries. *Other names and brands may be claimed as the property of others.
Technology Disclaimer:
Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Performance varies depending on system configuration. No computer system can be absolutely secure. Check with your system manufacturer or retailer or learn more at [intel.com].
Performance Disclaimers (include only the relevant ones):
Cost reduction scenarios described are intended as examples of how a given Intel- based product, in the specified circumstances and configurations, may affect future costs and provide cost savings. Circumstances will vary. Intel does not guarantee any costs or cost reduction.
Results have been estimated or simulated using internal Intel analysis or architecture simulation or modeling, and provided to you for informational purposes. Any differences in your system hardware, software or configuration may affect your actual performance.
Agenda
• DPDK Overview
• Open vSwitch (OVS) with DPDK
• OVS with DPDK support in OpenDaylight (ODL) OVSDB southbound plugin
• OVS with DPDK and ODL OVSDB Plans
• OVS with DPDK and ODL Service Function Chaining
• OVS with DPDK Performance as Classifier and SFF
• SFC@Intel Plans
DPDK Overview
Data Plane Development Kit (DPDK)
• Improves packet processing on IA.
• Open source project.
• Bypasses Linux network stack and maps hardware registers to user space.
• Queue & Buffer Management, Packet Flow Classification, Memory Management.
Test results with and without DPDK
Open vSwitch with DPDK
DPDK support in Open vSwitch
OVS with DPDK-Netdev
• Uses ‘netdev’ datapath
• Adds additional interface types:• ‘dpdk’ – physical port
• ‘dpdkr’ – DPDK ring device
• ‘dpdkvhostuser’ – vhost-user with DPDK 2.0
• Columns added to Open_vSwitch table• ‘datapath_types’
• ‘iface_types’
OpenStack
OVSDB SBPlugin
OpenFlowPlugin
Neutron Plugin
Netvirt
MDSAL
Neutron/ODL ML2
...
User Space
ovs-vswitchd
VM 1ovsdb-server VM 2
Nova
GBPSFC
DPDK Forwarding Plane
Kernel
PMD PMD
dpdkvhostuser
dpdkvhostuser
br-int
br-eth0 br-eth1
OpenStack
Host usingOVS with DPDK
OpenDaylight
vxlan
br-int
br-eth1br-eth0
OVS with DPDK Support in ODL OVSDB Southbound
Plugin
OVS with DPDK Enablement in OVSDB SB Plugin
Lithium introduces an MD-SAL based OVSDB SB plugin:
• OVSDB Node –> Topology Node• Includes ‘iface_types’
• and ‘datapath_types’
• OVSDB Bridge –> Topology Node• Includes ‘datapath_type’
• E.g. ‘netdev’ for OVS with DPDK
• OVSDB Port/Interface –> Termination Point • Includes ‘interface_type’
topology
ovsdb:1
10.0.0.1:6640
br-int br-ex
vxlan dpdk0dpdkvhost
DPDK and ODL OVSDB Plans
Plans for DPDK and OVSDB in Beryllium
• Make OVS with DPDK work with Netvirt• ‘dpdkvhostuser’ interfaces
• VXLAN
• L3
• QoS
• Automation of OVS with DPDK configuration
• Plus, support for other projects• GBP, SFC, …
DPDK and ODL Service Function Chaining
IETF Service Function Chaining Overview
Service Classifier
SFC Proxy
SFC Aware
Service Function
SFC Unaware
Service Function
Service Function
Forwarder
NSH: Network Services Header (MD-type1)
• Service path identification
• Transport independence
• Per-packet/frame service metadata (optional variable size)
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
VER|O|C|R|R|R|R|R|R|R| Length | MD Type = 1 | Next Protocol
Service Path ID | Service Index
Mandatory Context Header
Mandatory Context Header
Mandatory Context Header
Mandatory Context Header
https://tools.ietf.org/html/draft-ietf-sfc-nsh-00
Packet ingress
No SFCencapsulation
SFCencapsulation
SFCencapsulation
SFC in NFV System with OpenDaylight
• Classifier & Service Function Forward -> vSwitch
• Service Function -> Virtual Network Function
Service Node A
VNF1 VNF1
vSwitch
NIC
VNFn
Service Node B
VNF1 VNF1 VNFn
vSwitch
NIC
Service Node C
VNF1 VNF1 VNFn
vSwitch
NICClassification &
NSH Encapsulation
NSH VXLAN-GPE
De-encapsulation
NSH Forwarding
L2/L3 Forwarding
L2/L3 Forwarding
ServiceChain #1
ServiceChain #2
VNF Orchestrator + Opendaylight
Deployment, Chaining, Steering
DPDK DPDK DPDK
NSH Support in ODL and OVS Variants• OpenDaylight
• VxLAN-GPE-NSH vport creation/monitoring
• NXM extension to Openflow
• NSP, NSI as match fields
• Metadata field manipulation
• SFC generates NSH-compatible Openflow rules to steer traffics to VNFs
• Open vSwitch
• As Phy-to-Phy classifier performing VxLAN-GPE-NSH encap/decapoperations
• As SFF doing NSH header parse/match
• Controlled by SFC via Openflow and OVSDB plugins
• Stock OVS vs. OVS with DPDK
Kernel space
User space
vSwitchd
Forwarding Plane
PMD PMDKernel space
User space
vSwitchd
Forwarding Plane
driver driver
Net
link
Items Stock OVS OVS with DPDK-netdev
Forwarding plane
Kernel space User space
NIC Driver Standard kernel driver
PMDs in userspace
NSH Support Fork of OVS at https://github.com/priteshk/ovs/branches
Control plane compatible with forked stock OVS by Cisco
Performance Low Much better
Features Full feature Limited features but enough for SFC Full match / action set DPDK physical ports and ivshmem/vHost Ports Tunneling: VxLAN, VxLAN-GPE-NSH
OVS Based Classifier Performance Improvement
OpenvSwitch on Host1
PacketGen(generates thousands of flows)
VxLAN-GPE-NSHvport
encapdecap
Tunnelport0
OpenvSwitch on Host2
VxLAN-GPE-NSHvport
decap
port1 port0 port1
1
2
3
OVS Based SFF Performance With DPDK
Host
PacketGen(generates thousands of VxLAN-GPE-NSH flows)
OpenvSwitch
VNF
DPDK PMD
port0 port1
• NSH-aware L2Fwd running in a VM as simple VNF
• Measure Phy-VM-Phy performance of NSH-aware OVS with DPDK
• Preliminary data shows roughly 70% line rate of 40G traffics for big packet, with 5 IvyBridge cores
• Optimization ongoing, target 40Gb line rate for 256B packets with 2 Haswell cores
Live Demo: DPDK Accelerated SFC Vertical Solution OpenDaylight
Dynamic SF selection framework and algorithms OVSDB supports DPDK-netdev schema SFC placement GUI and deployment
OpenStack Integration Leverage Glance & Nova to place VNFs for SFC VNF definition in OpenDaylight
OVS with DPDK-netdev VxLAN-GPE & NSH support in data and control
planes 5x performance better than stock OVS
DPDK Accelerated open-source VNFs NSH aware PMD for para-virtualization device
Intel 40G/100G NICs NSH-aware and tunneling engine OVS acceleration with Smart NIC (TBD)
SFC @ Intel: Future Plans
• Open vSwitch as Classifier and Service Function Forwarder• OVS with DPDK further performance optimizations
• Upstream NSH patch to OpenvSwitch.org for OVS with DPDK-netdev support
• Hardware offloading enablement
• SFC Contributions for OpenDaylight “Beryllium” release• SFC integration with Openstack
• Network placement
• Advanced service function and service function path selection algorithms
• GBP + SFC phase 2 integration
• Contribution to SFC@OPNFV “Brahmaputra” release• End-to-end vertical solution enabling
Thank You