DPDK API and Virtual Infrastructure Rashmin Patel API

  • Slides: 8
Download presentation
DPDK API and Virtual Infrastructure Rashmin Patel

DPDK API and Virtual Infrastructure Rashmin Patel

API Package • Drivers for Virtual Machine Enhancements • Poll Mode Drivers (PMD) for

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

VMM / Hypervisor Support * driver patch available

Examples using APIs • L 2 fwd Crypto Ethtool L 2 fwd IVSHME M

Examples using APIs • L 2 fwd Crypto Ethtool L 2 fwd IVSHME M Exceptio n Path L 3 fwd ACL IPv 4 Multicast CLI IP Pipeline Packet Distrib IP Frag KNI L 2 fwd Keep Alive Skeleton Netmap Link Status Interrupt Qo. S Sched Packet Ordering Perf Thread L 3 fwd Power Multi Process L 3 fwd VF PTP Client DPDK TEP Term Quota & W’mark Load Balancer L 2 fwd Jobstats Hello World QAT L 2 fwd IP Reass Bond Vhost Xen Qo. S Meter L 3 fwd • • VM Power Manager L 2 fwd CAT VMDq Timer Rx. Tx Callback s VMDq DCB Vhost IPsec Sec GW • • 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, i 40 e, fm 10 k, mlx 4, mlx 5, …) EPS – All SW interfaces for virtual devices (e. g. Emulated e 1000, Virtio, Vmxnet 3, ENI…)

Usage with HW Switch/Distributor • Single Root I/O Virtualization (SRIOV) enabled – Split NIC

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 L 2 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

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’

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… 1. OVS-DPDK as a usage of DPDK with

Questions. . !? Sessions coming up… 1. OVS-DPDK as a usage of DPDK with SW Switch/Distributor 2. SRIOV-VF as a usage of DPDK with HW Switch/Distributor 3. DPDK Performance Analysis with VTune Amplifier 4. DPDK Performance Benchmarking 5. DPDK Hashing Algo. Support