Although backward compatibility is being maintained across DPDK releases, code written for previous versions of the DPDK may require some code updates to benefit from performance and user experience enhancements provided in later DPDK releases.
Note that in DPDK 1.8, the structure of the rte_mbuf has changed considerably from all previous versions. It is recommended that users familiarize themselves with the new structure defined in the file rte_mbuf.h in the release package. The follow are some common changes that need to be made to code using mbufs, following an update to DPDK 1.8:
NOTE: The above list is not exhaustive, but only includes the most commonly required changes to code using mbufs.
Note the following difference between 1.6 and 1.7:
Note the following difference between 1.5 and 1.6:
Note the following difference between 1.4 and 1.5:
Note the following difference between releases 1.3 and 1.4.x:
In Release 1.4.x, Intel® DPDK applications will no longer unbind the network ports from the Linux* kernel driver when the application initializes. Instead, any ports to be used by Intel® DPDK must be unbound from the Linux driver and bound to the igb_uio driver before the application starts. This can be done using the pci_unbind.py script included with the Intel® DPDK release and documented in the Intel® DPDK Getting Started Guide.
If the port unbinding behavior present in previous Intel® DPDK releases is required, this can be re-enabled using the CONFIG_RTE_EAL_UNBIND_PORTS setting in the appropriate Intel® DPDK compile-time configuration file.
In Release 1.4.x, HPET support is disabled in the Intel® DPDK build configuration files, which means that the existing rte_eal_get_hpet_hz() and rte_eal_get_hpet_cycles() APIs are not available by default. For applications that require timing APIs, but not the HPET timer specifically, it is recommended that the API calls rte_get_timer_cycles() and rte_get_timer_hz() be used instead of the HPET-specific APIs. These generic APIs can work with either TSC or HPET time sources, depending on what is requested by an application, and on what is available on the system at runtime.
For more details on this and how to re-enable the HPET if it is needed, please consult the Intel® DPDK Getting Started Guide.
Note the following difference between releases 1.2 and 1.3:
Note the following difference between release 1.1 and release 1.2:
The names of the 1G and 10G Ethernet drivers have changed between releases 1.1 and 1.2. While the old driver names still work, it is recommended that code be updated to the new names, since the old names are deprecated and may be removed in a future release.
The items affected are as follows:
The method used for managing mbufs on the NIC TX rings for the 10 GbE driver has been modified to improve performance. As a result, different parameter values should be passed to the rte_eth_tx_queue_setup() function. The recommended default values are to have tx_thresh.tx_wt hresh, tx_free_thresh, as well as the new parameter tx_rs_thresh (all in the struct rte_eth_txconf datatype) set to zero. See the “Configuration of Transmit and Receive Queues” section in the Intel® DPDK Programmer’s Guide for more details.
Note
If the tx_free_thresh field is set to TX_RING_SIZE+1 , as was previously used in some cases to disable free threshold check, then an error is generated at port initialization time. To avoid this error, configure the TX threshold values as suggested above.