The file attributes of the rst files have been changed to 644 Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
104 lines
5.8 KiB
ReStructuredText
104 lines
5.8 KiB
ReStructuredText
Updating Applications from Previous Versions
|
|
============================================
|
|
|
|
Although backward compatibility is being maintained across Intel® DPDK releases, code written for previous versions of the Intel® DPDK
|
|
may require some code updates to benefit from performance and user experience enhancements provided in later Intel® DPDK releases.
|
|
|
|
Intel® DPDK 1.6 to Intel® DPDK 1.7
|
|
----------------------------------
|
|
|
|
Note the following difference between 1.6 and 1.7:
|
|
|
|
* The "default" target has been renamed to "native"
|
|
|
|
Intel® DPDK 1.5 to Intel® DPDK 1.6
|
|
----------------------------------
|
|
|
|
Note the following difference between 1.5 and 1.6:
|
|
|
|
* The CONFIG_RTE_EAL _UNBIND_PORTS configuration option, which was deprecated in Intel® DPDK 1.4.x, has been removed in Intel® DPDK 1.6.x.
|
|
Applications using the Intel® DPDK must be explicitly unbound to the igb_uio driver using the dpdk_nic_bind.py script included in the
|
|
Intel® DPDK release and documented in the *Intel® DPDK Getting Started Guide*.
|
|
|
|
Intel® DPDK 1.4 to Intel® DPDK 1.5
|
|
----------------------------------
|
|
|
|
Note the following difference between 1.4 and 1.5:
|
|
|
|
* Starting with version 1.5, the top-level directory created from unzipping the release package will now contain the release version number,
|
|
that is, DPDK-1.5.2/ rather than just DPDK/ .
|
|
|
|
Intel® DPDK 1.3 to Intel® DPDK 1.4.x
|
|
------------------------------------
|
|
|
|
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*.
|
|
|
|
Intel® DPDK 1.2 to Intel® DPDK 1.3
|
|
----------------------------------
|
|
|
|
Note the following difference between releases 1.2 and 1.3:
|
|
|
|
* In release 1.3, the Intel® DPDK supports two different 1 GBe drivers: igb and em.
|
|
Both of them are located in the same library: lib_pmd_e1000.a.
|
|
Therefore, the name of the library to link with for the igb PMD has changed from librte_pmd_igb.a to librte_pmd_e1000.a.
|
|
|
|
* The rte_common.h macros, RTE_ALIGN, RTE_ALIGN_FLOOR and RTE_ALIGN_CEIL were renamed to, RTE_PTR_ALIGN, RTE_PTR_ALIGN_FLOOR
|
|
and RTE_PTR_ALIGN_CEIL.
|
|
The original macros are still available but they have different behavior.
|
|
Not updating the macros results in strange compilation errors.
|
|
|
|
* The rte_tailq is now defined statically. The rte_tailq APIs have also been changed from being public to internal use only.
|
|
The old public APIs are maintained for backward compatibility reasons. Details can be found in the *Intel® DPDK API Reference*.
|
|
|
|
* The method for managing mbufs on the NIC RX rings has been modified to improve performance.
|
|
To allow applications to use the newer, more optimized, code path,
|
|
it is recommended that the rx_free_thresh field in the rte_eth_conf structure,
|
|
which is passed to the Poll Mode Driver when initializing a network port, be set to a value of 32.
|
|
|
|
Intel® DPDK 1.1 to Intel® DPDK 1.2
|
|
----------------------------------
|
|
|
|
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:
|
|
|
|
* Any macros referring to RTE_LIBRTE_82576_PMD should be updated to refer to RTE_LIBRTE_IGB_PMD.
|
|
|
|
* Any macros referring to RTE_LIBRTE_82599_PMD should be updated to refer to RTE_LIBRTE_IXGBE_PMD.
|
|
|
|
* Any calls to the rte_82576_pmd_init() function should be replaced by calls to rte_igb_pmd_init().
|
|
|
|
* Any calls to the rte_82599_pmd_init() function should be replaced by calls to rte_ixgbe_pmd_init().
|
|
|
|
* 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.
|