DPDK API and Virtual Infrastructure Rashmin Patel
API Package Drivers for Virtual Machine Enhancements Poll Mode Drivers (PMD) for Emulated, Para-virtual, HW Virtualized NIC interfaces Drivers for Virtual Machine Monitor Enhancements Poll Mode Drivers (PMD) for Multi Vendor NICs Vhost Lib for Virtio Backend API/HW to monitor/allocate platform resources Intel® RDT – CMT, CAT, MBM API/Driver for Crypto devices Intel® QAT, AESNI
VMM / Hypervisor Support * driver patch available
Examples using APIs DPDK App Examples useful depending on the Platform SW Architecture VM App with Physical Device VM App with Virtual Device (SRIOV) VM App with Emulated Device VM App with Para-virtual Device VM App with Shared Memory Device VMM/Host App with Physical/ SRIOV-VF (for PV devices) and Backend (for EPS devices) PV – All SRIOV/non-SRIOV PCI Function for real NIC (e.g. igb, ixgbe, i40e, fm10k, mlx4, mlx5,…) EPS – All SW interfaces for virtual devices (e.g. Emulated e1000, Virtio, Vmxnet3, ENI…) Bond QoS Sched Link Status Interrupt L3fwd Load Balancer KNI IPv4 Multicast L2fwd Keep Alive Packet Distrib IP Pipeline Hello World Exception Path L2fwd Jobstats L2fwd IVSHMEM Timer IP Reass VMDq DCB PTP Client Packet Ordering CLI DPDK Multi Process Ethtool L3fwd VF IP Frag QoS Meter L2fwd Perf Thread L2fwd Crypto RxTx Callbacks Quota & W’mark Skeleton TEP Term Vhost VM Power Manager VMDq L3fwd Power L3fwd ACL Netmap Vhost Xen QAT L2fwd CAT IPsec Sec GW
Usage with HW Switch/Distributor Single Root I/O Virtualization (SRIOV) enabled – Split NIC resources into equal portions Each portion can be exposed to a VM in the form of a PCI Function for separate programming – Virtual Function (VF) Global NIC resources, VEB and L2 Filters programmed by a special PCI Function – Physical Function (PF) in control of VMM/Host-OS Virtual Function provides near Native I/O performance in VM using Intel® VT-d Network Traffic sorted out to multiple VFs/VMs at the NIC-VEB in the first place
compatible with Containers/VMs DPDK Virtualization Driver suite compatible with various compute instances from Containers to Clear Containers to VMs Depending Public/Private deployment choices, various viable use-cases possible SRIOV VF Devices as well as Virtio Devices support/ patches exist for developers to hack around a truly open source NFVi platform Advanced NICs with various modes of filters available/ planned for advanced packet processing on IA
Usage with SW Switch/Distributor Software Switch running in Host receives all the NICs’ traffic Flow Table or Simple Filtering Rules programmed in SW for packet forwarding Depending on the complexity and feature set support, the aggregate packet forwarding performance varies Packets forwarded to VMs using various Emulated, Para-virtual or Shared memory devices available in mainstream Hypervisors and Emulators For accelerated performance in VM, DPDK offers Poll Mode Drivers for the Virtual Interfaces available to VM Network Traffic sorted out to multiple VIFs/VMs at the SW Switch/OVS in the first place
Questions..!? Sessions coming up… OVS-DPDK as a usage of DPDK with SW Switch/Distributor SRIOV-VF as a usage of DPDK with HW Switch/Distributor DPDK Performance Analysis with VTune Amplifier DPDK Performance Benchmarking DPDK Hashing Algo. Support