DPDK on Azure · Ubuntu, SLES, RHEL, CentOS ... – Experimental Kernel 4.18 DPDK 18.11 – Device...
Transcript of DPDK on Azure · Ubuntu, SLES, RHEL, CentOS ... – Experimental Kernel 4.18 DPDK 18.11 – Device...
TL;DR
● DPDK on Azure – Today– DPDK support is in production– Lastest Enterprise distributions support it– Many partners are updating their applications
Azure SmartNIC (FPGA)
● HW implementation of SDN– Programmable Generic Flow
Tables– QoS– Overlay Network
Host
CPU
NICASIC
FPGA
SmartNIC
ToR
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
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