3. Supported Features¶
Packet Distributor library for dynamic, single-packet at a time, load balancing
IP fragmentation and reassembly library
Support for IPv6 in IP fragmentation and reassembly sample applications
Support for VFIO for mapping BARs and setting up interrupts
Link Bonding PMD Library supporting round-robin, active backup, balance(layer 2, layer 2+3, and layer 3+4) and broadcast bonding modes
Support zero copy mode RX/TX in user space vhost sample
Support multiple queues in virtio-net PMD
Support for Intel 40GbE Controllers:
- Intel® XL710 40 Gigabit Ethernet Controller
- Intel® X710 40 Gigabit Ethernet Controller
Support NIC filters in addition to flow director for Intel� 1GbE and 10GbE Controllers
Virtualization (KVM)
Userspace vhost switch:
New sample application to support userspace virtio back-end in host and packet switching between guests.
Virtualization (Xen)
Support for DPDK application running on Xen Domain0 without hugepages.
Para-virtualization
Support front-end Poll Mode Driver in guest domain
Support userspace packet switching back-end example in host domain
FreeBSD* 9.2 support for librte_pmd_e1000, librte_pmd_ixgbe and Virtual Function variants. Please refer to the DPDK for FreeBSD* Getting Started Guide. Application support has been added for the following:
- multiprocess/symmetric_mp
- multiprocess/simple_mp
- l2fwd
- l3fwd
Support for sharing data over QEMU IVSHMEM
Support for Intel® Communications Chipset 8925 to 8955 Series in the DPDK-QAT Sample Application
New VMXNET3 driver for the paravirtual device presented to a VM by the VMware* ESXi Hypervisor.
BETA: example support for basic Netmap applications on DPDK
Support for the wireless KASUMI algorithm in the dpdk_qat sample application
Hierarchical scheduler implementing 5-level scheduling hierarchy (port, sub-port, pipe, traffic class, queue) with 64K leaf nodes (packet queues).
Packet dropper based on Random Early Detection (RED) congestion control mechanism.
Traffic Metering based on Single Rate Three Color Marker (srTCM) and Two Rate Three Color Marker (trTCM).
An API for configuring RSS redirection table on the fly
An API to support KNI in a multi-process environment
IPv6 LPM forwarding
Power management library and sample application using CPU frequency scaling
IPv4 reassembly sample application
Quota & Watermarks sample application
PCIe Multi-BAR Mapping Support
Support for Physical Functions in Poll Mode Driver for the following devices:
- Intel® 82576 Gigabit Ethernet Controller
- Intel® i350 Gigabit Ethernet Controller
- Intel® 82599 10-Gigabit Ethernet Controller
- Intel® XL710/X710 40-Gigabit Ethernet Controller
Quality of Service (QoS) Hierarchical Scheduler: Sub-port Traffic Class Oversubscription
Multi-thread Kernel NIC Interface (KNI) for performance improvement
Virtualization (KVM)
Para-virtualization
Support virtio front-end poll mode driver in guest virtual machine Support vHost raw socket interface as virtio back-end via KNI
SR-IOV Switching for the 10G Ethernet Controller
Support Physical Function to start/stop Virtual Function Traffic
Support Traffic Mirroring (Pool, VLAN, Uplink and Downlink)
Support VF multiple MAC addresses (Exact/Hash match), VLAN filtering
Support VF receive mode configuration
Support VMDq for 1 GbE and 10 GbE NICs
Extension for the Quality of Service (QoS) sample application to allow statistics polling
New libpcap -based poll-mode driver, including support for reading from 3rd Party NICs using Linux kernel drivers
New multi-process example using fork() to demonstrate application resiliency and recovery, including reattachment to and re-initialization of shared data structures where necessary
New example (vmdq) to demonstrate VLAN-based packet filtering
Improved scalability for scheduling large numbers of timers using the rte_timer library
Support for building the DPDK as a shared library
Support for Intel® Ethernet Server Bypass Adapter X520-SR2
Poll Mode Driver support for the Intel® Ethernet Connection I354 on the Intel® Atom™ Processor C2000 Product Family SoCs
IPv6 exact match flow classification in the l3fwd sample application
Support for multiple instances of the Intel® DPDK
Support for Intel® 82574L Gigabit Ethernet Controller - Intel® Gigabit CT Desktop Adapter (previously code named “Hartwell”)
Support for Intel® Ethernet Controller I210 (previously code named “Springville”)
Early access support for the Quad-port Intel® Ethernet Server Adapter X520-4 and X520-DA2 (code named “Spring Fountain”)
Support for Intel® X710/XL710 40 Gigabit Ethernet Controller (code named “Fortville”)
Core components:
- rte_mempool: allocator for fixed-sized objects
- rte_ring: single- or multi- consumer/producer queue implementation
- rte_timer: implementation of timers
- rte_malloc: malloc-like allocator
- rte_mbuf: network packet buffers, including fragmented buffers
- rte_hash: support for exact-match flow classification in software
- rte_lpm: support for longest prefix match in software for IPv4 and IPv6
- rte_sched: support for QoS scheduling
- rte_meter: support for QoS traffic metering
- rte_power: support for power management
- rte_ip_frag: support for IP fragmentation and reassembly
Poll Mode Driver - Common (rte_ether)
- VLAN support
- Support for Receive Side Scaling (RSS)
- IEEE1588
- Buffer chaining; Jumbo frames
- TX checksum calculation
- Configuration of promiscuous mode, and multicast packet receive filtering
- L2 Mac address filtering
- Statistics recording
IGB Poll Mode Driver - 1 GbE Controllers (librte_pmd_e1000)
- Support for Intel® 82576 Gigabit Ethernet Controller (previously code named “Kawela”)
- Support for Intel® 82580 Gigabit Ethernet Controller (previously code named “Barton Hills”)
- Support for Intel® I350 Gigabit Ethernet Controller (previously code named “Powerville”)
- Support for Intel® 82574L Gigabit Ethernet Controller - Intel® Gigabit CT Desktop Adapter (previously code named “Hartwell”)
- Support for Intel® Ethernet Controller I210 (previously code named “Springville”)
- Support for L2 Ethertype filters, SYN filters, 2-tuple filters and Flex filters for 82580 and i350
- Support for L2 Ethertype filters, SYN filters and L3/L4 5-tuple filters for 82576
Poll Mode Driver - 10 GbE Controllers (librte_pmd_ixgbe)
- Support for Intel® 82599 10 Gigabit Ethernet Controller (previously code named “Niantic”)
- Support for Intel® Ethernet Server Adapter X520-T2 (previously code named “Iron Pond”)
- Support for Intel® Ethernet Controller X540-T2 (previously code named “Twin Pond”)
- Support for Virtual Machine Device Queues (VMDq) and Data Center Bridging (DCB) to divide incoming traffic into 128 RX queues. DCB is also supported for transmitting packets.
- Support for auto negotiation down to 1 Gb
- Support for Flow Director
- Support for L2 Ethertype filters, SYN filters and L3/L4 5-tuple filters for 82599EB
Poll Mode Driver - 40 GbE Controllers (librte_pmd_i40e)
- Support for Intel® XL710 40 Gigabit Ethernet Controller
- Support for Intel® X710 40 Gigabit Ethernet Controller
Environment Abstraction Layer (librte_eal)
- Multi-process support
- Multi-thread support
- 1 GB and 2 MB page support
- Atomic integer operations
- Querying CPU support of specific features
- High Precision Event Timer support (HPET)
- PCI device enumeration and blacklisting
- Spin locks and R/W locks
Test PMD application
- Support for PMD driver testing
Test application
- Support for core component tests
Sample applications
- Command Line
- Exception Path (into Linux* for packets using the Linux TUN/TAP driver)
- Hello World
- Integration with Intel® Quick Assist Technology drivers 1.0.0, 1.0.1 and 1.1.0 on Intel® Communications Chipset 89xx Series C0 and C1 silicon.
- Link Status Interrupt (Ethernet* Link Status Detection
- IPv4 Fragmentation
- IPv4 Multicast
- IPv4 Reassembly
- L2 Forwarding (supports virtualized and non-virtualized environments)
- L3 Forwarding (IPv4 and IPv6)
- L3 Forwarding in a Virtualized Environment
- L3 Forwarding with Power Management
- QoS Scheduling
- QoS Metering + Dropper
- Quota & Watermarks
- Load Balancing
- Multi-process
- Timer
- VMDQ and DCB L2 Forwarding
- Kernel NIC Interface (with ethtool support)
- Userspace vhost switch
Interactive command line interface (rte_cmdline)
Updated 10 GbE Poll Mode Driver (PMD) to the latest BSD code base providing support of newer ixgbe 10 GbE devices such as the Intel® X520-T2 server Ethernet adapter
An API for configuring Ethernet flow control
Support for interrupt-based Ethernet link status change detection
Support for SR-IOV functions on the Intel® 82599, Intel® 82576 and Intel® i350 Ethernet Controllers in a virtualized environment
Improvements to SR-IOV switch configurability on the Intel® 82599 Ethernet Controllers in a virtualized environment.
An API for L2 Ethernet Address “whitelist” filtering
An API for resetting statistics counters
Support for RX L4 (UDP/TCP/SCTP) checksum validation by NIC
Support for TX L3 (IPv4/IPv6) and L4 (UDP/TCP/SCTP) checksum calculation offloading
Support for IPv4 packet fragmentation and reassembly
Support for zero-copy Multicast
New APIs to allow the “blacklisting” of specific NIC ports.
Header files for common protocols (IP, SCTP, TCP, UDP)
Improved multi-process application support, allowing multiple co-operating DPDK processes to access the NIC port queues directly.
CPU-specific compiler optimization
Improvements to the Load Balancing sample application
The addition of a PAUSE instruction to tight loops for energy-usage and performance improvements
Updated 10 GbE Transmit architecture incorporating new upstream PCIe* optimizations.
IPv6 support:
- Support in Flow Director Signature Filters and masks
- RSS support in sample application that use RSS
- Exact match flow classification in the L3 Forwarding sample application
- Support in LPM for IPv6 addresses
Tunneling packet support:
- Provide the APIs for VXLAN destination UDP port and VXLAN packet filter configuration and support VXLAN TX checksum offload on Intel® 40GbE Controllers.