2 Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
5 Redistribution and use in source and binary forms, with or without
6 modification, are permitted provided that the following conditions
9 * Redistributions of source code must retain the above copyright
10 notice, this list of conditions and the following disclaimer.
11 * Redistributions in binary form must reproduce the above copyright
12 notice, this list of conditions and the following disclaimer in
13 the documentation and/or other materials provided with the
15 * Neither the name of Intel Corporation nor the names of its
16 contributors may be used to endorse or promote products derived
17 from this software without specific prior written permission.
19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 * Packet Distributor library for dynamic, single-packet at a time, load balancing
36 * IP fragmentation and reassembly library
38 * Support for IPv6 in IP fragmentation and reassembly sample applications
40 * Support for VFIO for mapping BARs and setting up interrupts
42 * Link Bonding PMD Library supporting round-robin, active backup, balance(layer 2, layer 2+3, and layer 3+4), broadcast bonding modes
43 802.3ad link aggregation (mode 4), transmit load balancing (mode 5) and adaptive load balancing (mode 6)
45 * Support zero copy mode RX/TX in user space vhost sample
47 * Support multiple queues in virtio-net PMD
49 * Support for Intel 40GbE Controllers:
51 * Intel® XL710 40 Gigabit Ethernet Controller
53 * Intel® X710 40 Gigabit Ethernet Controller
55 * Support NIC filters in addition to flow director for Intel® 1GbE and 10GbE Controllers
57 * Virtualization (KVM)
59 * Userspace vhost switch:
61 New sample application to support userspace virtio back-end in host and packet switching between guests.
63 * Virtualization (Xen)
65 * Support for DPDK application running on Xen Domain0 without hugepages.
69 Support front-end Poll Mode Driver in guest domain
71 Support userspace packet switching back-end example in host domain
73 * FreeBSD* 9.2 support for librte_pmd_e1000, librte_pmd_ixgbe and Virtual Function variants.
74 Please refer to the *DPDK for FreeBSD\* Getting Started Guide*.
75 Application support has been added for the following:
77 * multiprocess/symmetric_mp
79 * multiprocess/simple_mp
85 * Support for sharing data over QEMU IVSHMEM
87 * Support for Intel® Communications Chipset 8925 to 8955 Series in the DPDK-QAT Sample Application
89 * New VMXNET3 driver for the paravirtual device presented to a VM by the VMware* ESXi Hypervisor.
91 * BETA: example support for basic Netmap applications on DPDK
93 * Support for the wireless KASUMI algorithm in the dpdk_qat sample application
95 * Hierarchical scheduler implementing 5-level scheduling hierarchy (port, sub-port, pipe, traffic class, queue)
96 with 64K leaf nodes (packet queues).
98 * Packet dropper based on Random Early Detection (RED) congestion control mechanism.
100 * Traffic Metering based on Single Rate Three Color Marker (srTCM) and Two Rate Three Color Marker (trTCM).
102 * An API for configuring RSS redirection table on the fly
104 * An API to support KNI in a multi-process environment
106 * IPv6 LPM forwarding
108 * Power management library and sample application using CPU frequency scaling
110 * IPv4 reassembly sample application
112 * Quota & Watermarks sample application
114 * PCIe Multi-BAR Mapping Support
116 * Support for Physical Functions in Poll Mode Driver for the following devices:
118 * Intel® 82576 Gigabit Ethernet Controller
120 * Intel® i350 Gigabit Ethernet Controller
122 * Intel® 82599 10-Gigabit Ethernet Controller
124 * Intel® XL710/X710 40-Gigabit Ethernet Controller
126 * Quality of Service (QoS) Hierarchical Scheduler: Sub-port Traffic Class Oversubscription
128 * Multi-thread Kernel NIC Interface (KNI) for performance improvement
130 * Virtualization (KVM)
132 * Para-virtualization
134 Support virtio front-end poll mode driver in guest virtual machine
135 Support vHost raw socket interface as virtio back-end via KNI
137 * SR-IOV Switching for the 10G Ethernet Controller
139 Support Physical Function to start/stop Virtual Function Traffic
141 Support Traffic Mirroring (Pool, VLAN, Uplink and Downlink)
143 Support VF multiple MAC addresses (Exact/Hash match), VLAN filtering
145 Support VF receive mode configuration
147 * Support VMDq for 1 GbE and 10 GbE NICs
149 * Extension for the Quality of Service (QoS) sample application to allow statistics polling
151 * New libpcap -based poll-mode driver, including support for reading from 3rd Party NICs
152 using Linux kernel drivers
154 * New multi-process example using fork() to demonstrate application resiliency and recovery,
155 including reattachment to and re-initialization of shared data structures where necessary
157 * New example (vmdq) to demonstrate VLAN-based packet filtering
159 * Improved scalability for scheduling large numbers of timers using the rte_timer library
161 * Support for building the DPDK as a shared library
163 * Support for Intel® Ethernet Server Bypass Adapter X520-SR2
165 * Poll Mode Driver support for the Intel® Ethernet Connection I354 on the Intel® Atom™
166 Processor C2000 Product Family SoCs
168 * IPv6 exact match flow classification in the l3fwd sample application
170 * Support for multiple instances of the Intel® DPDK
172 * Support for Intel® 82574L Gigabit Ethernet Controller - Intel® Gigabit CT Desktop Adapter
173 (previously code named "Hartwell")
175 * Support for Intel® Ethernet Controller I210 (previously code named "Springville")
177 * Early access support for the Quad-port Intel® Ethernet Server Adapter X520-4 and X520-DA2
178 (code named "Spring Fountain")
180 * Support for Intel® X710/XL710 40 Gigabit Ethernet Controller (code named "Fortville")
184 * rte_mempool: allocator for fixed-sized objects
186 * rte_ring: single- or multi- consumer/producer queue implementation
188 * rte_timer: implementation of timers
190 * rte_malloc: malloc-like allocator
192 * rte_mbuf: network packet buffers, including fragmented buffers
194 * rte_hash: support for exact-match flow classification in software
196 * rte_lpm: support for longest prefix match in software for IPv4 and IPv6
198 * rte_sched: support for QoS scheduling
200 * rte_meter: support for QoS traffic metering
202 * rte_power: support for power management
204 * rte_ip_frag: support for IP fragmentation and reassembly
206 * Poll Mode Driver - Common (rte_ether)
210 * Support for Receive Side Scaling (RSS)
214 * Buffer chaining; Jumbo frames
216 * TX checksum calculation
218 * Configuration of promiscuous mode, and multicast packet receive filtering
220 * L2 Mac address filtering
222 * Statistics recording
224 * IGB Poll Mode Driver - 1 GbE Controllers (librte_pmd_e1000)
226 * Support for Intel® 82576 Gigabit Ethernet Controller (previously code named "Kawela")
228 * Support for Intel® 82580 Gigabit Ethernet Controller (previously code named "Barton Hills")
230 * Support for Intel® I350 Gigabit Ethernet Controller (previously code named "Powerville")
232 * Support for Intel® 82574L Gigabit Ethernet Controller - Intel® Gigabit CT Desktop Adapter
233 (previously code named "Hartwell")
235 * Support for Intel® Ethernet Controller I210 (previously code named "Springville")
237 * Support for L2 Ethertype filters, SYN filters, 2-tuple filters and Flex filters for 82580 and i350
239 * Support for L2 Ethertype filters, SYN filters and L3/L4 5-tuple filters for 82576
241 * Poll Mode Driver - 10 GbE Controllers (librte_pmd_ixgbe)
243 * Support for Intel® 82599 10 Gigabit Ethernet Controller (previously code named "Niantic")
245 * Support for Intel® Ethernet Server Adapter X520-T2 (previously code named "Iron Pond")
247 * Support for Intel® Ethernet Controller X540-T2 (previously code named "Twin Pond")
249 * Support for Virtual Machine Device Queues (VMDq) and Data Center Bridging (DCB) to divide
250 incoming traffic into 128 RX queues. DCB is also supported for transmitting packets.
252 * Support for auto negotiation down to 1 Gb
254 * Support for Flow Director
256 * Support for L2 Ethertype filters, SYN filters and L3/L4 5-tuple filters for 82599EB
258 * Poll Mode Driver - 40 GbE Controllers (librte_pmd_i40e)
260 * Support for Intel® XL710 40 Gigabit Ethernet Controller
262 * Support for Intel® X710 40 Gigabit Ethernet Controller
264 * Environment Abstraction Layer (librte_eal)
266 * Multi-process support
268 * Multi-thread support
270 * 1 GB and 2 MB page support
272 * Atomic integer operations
274 * Querying CPU support of specific features
276 * High Precision Event Timer support (HPET)
278 * PCI device enumeration and blacklisting
280 * Spin locks and R/W locks
282 * Test PMD application
284 * Support for PMD driver testing
288 * Support for core component tests
290 * Sample applications
294 * Exception Path (into Linux* for packets using the Linux TUN/TAP driver)
298 * Integration with Intel® Quick Assist Technology drivers 1.0.0, 1.0.1 and 1.1.0 on Intel®
299 Communications Chipset 89xx Series C0 and C1 silicon.
301 * Link Status Interrupt (Ethernet* Link Status Detection
309 * L2 Forwarding (supports virtualized and non-virtualized environments)
311 * L2 Forwarding Job Stats
313 * L3 Forwarding (IPv4 and IPv6)
315 * L3 Forwarding in a Virtualized Environment
317 * L3 Forwarding with Power Management
323 * QoS Metering + Dropper
333 * VMDQ and DCB L2 Forwarding
335 * Kernel NIC Interface (with ethtool support)
337 * Userspace vhost switch
339 * Interactive command line interface (rte_cmdline)
341 * Updated 10 GbE Poll Mode Driver (PMD) to the latest BSD code base providing support of newer
342 ixgbe 10 GbE devices such as the Intel® X520-T2 server Ethernet adapter
344 * An API for configuring Ethernet flow control
346 * Support for interrupt-based Ethernet link status change detection
348 * Support for SR-IOV functions on the Intel® 82599, Intel® 82576 and Intel® i350 Ethernet
349 Controllers in a virtualized environment
351 * Improvements to SR-IOV switch configurability on the Intel® 82599 Ethernet Controllers in
352 a virtualized environment.
354 * An API for L2 Ethernet Address "whitelist" filtering
356 * An API for resetting statistics counters
358 * Support for RX L4 (UDP/TCP/SCTP) checksum validation by NIC
360 * Support for TX L3 (IPv4/IPv6) and L4 (UDP/TCP/SCTP) checksum calculation offloading
362 * Support for IPv4 packet fragmentation and reassembly
364 * Support for zero-copy Multicast
366 * New APIs to allow the "blacklisting" of specific NIC ports.
368 * Header files for common protocols (IP, SCTP, TCP, UDP)
370 * Improved multi-process application support, allowing multiple co-operating DPDK
371 processes to access the NIC port queues directly.
373 * CPU-specific compiler optimization
375 * Job stats library for load/cpu utilization measurements
377 * Improvements to the Load Balancing sample application
379 * The addition of a PAUSE instruction to tight loops for energy-usage and performance improvements
381 * Updated 10 GbE Transmit architecture incorporating new upstream PCIe* optimizations.
385 * Support in Flow Director Signature Filters and masks
387 * RSS support in sample application that use RSS
389 * Exact match flow classification in the L3 Forwarding sample application
391 * Support in LPM for IPv6 addresses
393 * Tunneling packet support:
395 * Provide the APIs for VXLAN destination UDP port and VXLAN packet filter configuration
396 and support VXLAN TX checksum offload on Intel® 40GbE Controllers.