19
DPDK on Azure Past, Present and Future Stephen Hemminger DPDK Summit Userspace - Dublin- 2018

DPDK on Azure · Ubuntu, SLES, RHEL, CentOS ... – Experimental Kernel 4.18 DPDK 18.11 – Device Assignment – Vswitch or SR-IOV. DPDK on Azure Roadmap 2017

  • Upload
    others

  • View
    29

  • Download
    0

Embed Size (px)

Citation preview

DPDK on AzurePast, Present and Future

Stephen Hemminger

DPDK Summit Userspace - Dublin- 2018

TL;DR

● DPDK on Azure – Today– DPDK support is in production– Lastest Enterprise distributions support it– Many partners are updating their applications

Topics

● Why is Azure different?● How does it work?● Need to Know● What should I do?

The problem

High performance

&

Security

Azure SmartNIC (FPGA)

● HW implementation of SDN– Programmable Generic Flow

Tables– QoS– Overlay Network

Host

CPU

NICASIC

FPGA

SmartNIC

ToR

Azure Networking Internals

Linux AN

NDISVMBus

User

Kernel

TCP/IP

Application

ConnectX3 VF

Mlx4NetVSC

NDISVMBus

User

Kernel

TCP/IP

SR-IOV VF

NetVSC

TAPPMD

Fail Safe PMD

TAP

Mlx4 PMD

RDMA

MLX4Provider

DPDKApplication

TCredirect

DPDK AN

NDISVMBus

User

Kernel

SR-IOV VF

HV_UIO

Netvsc PMD Mlx4 PMD

RDMA

MLX4Provider

DPDKApplication

DPDK AN

Netvsc PMD

● Why bother?– works with or without SR-IOV– Less overhead– Smaller– Simpler

UIO driver

● Pass VMBus to Userspace– Like igb_uio

● Handle control channel– Subchannel creation

TransmitRing

ReceiveRing

MonitorPages

InterruptPage

TransmitBuffer

ReceiveArea

Failsafe vs Netvsc PMD

● Failsafe– Stable

● Kernel 4.2● DPDK 18.02

– Supported● Ubuntu, SLES, RHEL, CentOS

– Bifuricated model– Requires SR-IOV

● Netvsc PMD– Experimental

● Kernel 4.18● DPDK 18.11

– Device Assignment– Vswitch or SR-IOV

DPDK on Azure Roadmap

2017● Azure AN preview● Ubuntu 18.04+● DPDK 17.11

2018● Azure AN default● Ubuntu, SLES, RHEL, Debian,

CoreOS, Oracle, …● DPDK 18.02● Netvsc PMD

– 18.08 early– 18.11 AN

Performance

● Accelerated Networking– SR-IOV 40G – Direct Device Assignment 10G

● Fallback– TAP (failsafe)– Netvsc PMD

NOT Azure Testpmd transmit only, single queue

Windows server 2016, Ubuntu 18.04, Xeion E5-1620

K Packet/sec0

2000

4000

6000

8000

10000

12000

14000

16000

18000

20000

SR-IOVDDATapNetvsc

Backports

● Older versions of DPDK?– Netvsc PMD need bus (17.11)– Failsafe etc needs vdev (17.11)– vdev_netvsc needs devargs

(18.02)

OS support● Linux

– Netvsc needs uio_hv_generic● 4.16 single queue● 4.18 multi queue

– TAP needs eBPF/flower● Classifier 4.2● RSS 4.9

● FreeBSD?– TAP issues– VMBus UIO

Future Possibilities

● Performance– Ring copy avoidance– Optimize descriptor

● Offloads– Flow– RSS parameters

● FreeBSD?● ARM?

MellanoxMatan AzradRaslan DarawshehMoti HamovoskyEyal MizrachiThomas MonjalonOphir MunkOlga Shern

6WindGaetan RivetAdrien MazarguilOlivier MatzPascal MazonThomas Monjalon

MicrosoftJosh PoulsonRay CuiMadhan SivakumarGabriel SilvaSimon XiaoHaiyang Zhang

IntelWei DeiDeclan DohertyGage EadsRadu NicolauBruce RichardsonJianfeng TanKeith WilesFerruh YigitQi Zhang

Hyper-V and Azure Credits

BrocadeChas Williams Eric KinzieJan BlunckNachiketa Prachanda Sven-Thorsten Dietrich Wen Chiu

Questions?Stephen Hemminger

[email protected]