22

Enabling DPDK accelerated vSwitch in OpenDaylight

Embed Size (px)

Citation preview

Page 1: Enabling DPDK accelerated vSwitch in OpenDaylight
Page 2: Enabling DPDK accelerated vSwitch in OpenDaylight

Enabling DPDK Accelerated OVS in ODL and Accelerating SFC

Sharad Mishra, Intel Corporation

Eric Multanen, Intel Corporation

Danny Zhou, Intel Corporation

Rajeev Koodli

Page 3: Enabling DPDK accelerated vSwitch in OpenDaylight

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.

Page 4: Enabling DPDK accelerated vSwitch in OpenDaylight

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

Page 5: Enabling DPDK accelerated vSwitch in OpenDaylight

DPDK Overview

Page 6: Enabling DPDK accelerated vSwitch in OpenDaylight

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.

Page 7: Enabling DPDK accelerated vSwitch in OpenDaylight

Test results with and without DPDK

Page 8: Enabling DPDK accelerated vSwitch in OpenDaylight

Open vSwitch with DPDK

Page 9: Enabling DPDK accelerated vSwitch in OpenDaylight

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

Page 10: Enabling DPDK accelerated vSwitch in OpenDaylight

OVS with DPDK Support in ODL OVSDB Southbound

Plugin

Page 11: Enabling DPDK accelerated vSwitch in OpenDaylight

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

Page 12: Enabling DPDK accelerated vSwitch in OpenDaylight

DPDK and ODL OVSDB Plans

Page 13: Enabling DPDK accelerated vSwitch in OpenDaylight

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, …

Page 14: Enabling DPDK accelerated vSwitch in OpenDaylight

DPDK and ODL Service Function Chaining

Page 15: Enabling DPDK accelerated vSwitch in OpenDaylight

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

Page 16: Enabling DPDK accelerated vSwitch in OpenDaylight

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

Page 17: Enabling DPDK accelerated vSwitch in OpenDaylight

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

Page 18: Enabling DPDK accelerated vSwitch in OpenDaylight

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

Page 19: Enabling DPDK accelerated vSwitch in OpenDaylight

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

Page 20: Enabling DPDK accelerated vSwitch in OpenDaylight

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)

Page 21: Enabling DPDK accelerated vSwitch in OpenDaylight

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

Page 22: Enabling DPDK accelerated vSwitch in OpenDaylight

Thank You