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 Nova SFC OpenFlow Plugin ovs-vswitchd OpenStack Neutron/ODL ML2 GBP MDSAL Neutron Plugin OVSDB SB Plugin Netvirt... User Space ovsdbserver VM 1 VM 2 DPDK Forwarding Plane br-eth0 PMD dpdk vhost user br-eth1 PMD br-int vxlan OpenStack OpenDaylight dpdk vhost user Host using OVS with DPDK Kernel
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: topology 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 10.0.0.1: 6640 ovsdb:1 br-int br-ex dpdk vhost vxlan dpdk0
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 Packet ingress Service Classifier Service Function Forwarder SFC encapsulation SFC encapsulation SFC Aware Service Function SFC Proxy No SFC encapsulation SFC Unaware Service Function 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 Service path identification Transport independence Per-packet/frame service metadata (optional variable size) Mandatory Context Header NSH: Network Services Header (MD-type1) https://tools.ietf.org/html/draft-ietf-sfc-nsh-00
SFC in NFV System with OpenDaylight VNF Orchestrator + Opendaylight Deployment, Chaining, Steering NSH Forwarding Classification & NSH Encapsulation VNF1 Service Node A VNF1 vswitch NIC VNFn Service Node B VNF1 VNF1 VNFn vswitch NIC L2/L3 Forwarding L2/L3 Forwarding Service Node C VNF1 VNF1 VNFn vswitch DPDK DPDK DPDK NIC NSH VXLAN-GPE De-encapsulation Service Chain #1 Service Chain #2 Classifier & Service Function Forward -> vswitch Service Function -> Virtual Network Function
Netlink 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/decap operations As SFF doing NSH header parse/match Controlled by SFC via Openflow and OVSDB plugins Items Stock OVS OVS with DPDK-netdev Forwarding plane NIC Driver NSH Support Kernel space Standard kernel driver Fork of OVS at https://githu b.com/prites hk/ovs/bran ches User space PMDs in userspace Performance Low Much better Control plane compatible with forked stock OVS by Cisco Stock OVS vs. OVS with DPDK User space vswitchd User space vswitchd 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 Kernel space Forwarding Plane driver driver Forwarding Plane PMD PMD Kernel space
OVS Based Classifier Performance Improvement encap port0 OpenvSwitch on Host1 VxLAN-GPE-NSH vport 1 2 decap OpenvSwitch on Host2 decap VxLAN-GPE-NSH vport port1 Tunnel port0 port1 3 PacketGen (generates thousands of flows)
OVS Based SFF Performance With DPDK Host NSH-aware L2Fwd running in a VM as simple VNF VNF OpenvSwitch Measure Phy-VM-Phy performance of NSH-aware OVS with DPDK port0 DPDK PMD port1 Preliminary data shows roughly 70% line rate of 40G traffics for big packet, with 5 IvyBridge cores PacketGen (generates thousands of VxLAN-GPE-NSH flows) 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