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.
+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.
-Intel® DPDK 1.6 to Intel® DPDK 1.7
-----------------------------------
+DPDK 2.0 to DPDK 2.1
+--------------------
+
+* The second argument of rte_pktmbuf_pool_init(mempool, opaque) is now a
+ pointer to a struct rte_pktmbuf_pool_private instead of a uint16_t
+ casted into a pointer. Backward compatibility is preserved when the
+ argument was NULL which is the majority of use cases, but not if the
+ opaque pointer was not NULL, as it is not technically feasible. In
+ this case, the application has to be modified to properly fill a
+ rte_pktmbuf_pool_private structure and pass it to
+ rte_pktmbuf_pool_init().
+
+* A simpler helper rte_pktmbuf_pool_create() can be used to create a
+ packet mbuf pool. The old way using rte_mempool_create() is still
+ supported though and is still used for more specific cases.
+
+DPDK 1.7 to DPDK 1.8
+--------------------
+
+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:
+
+* Any references to fields in the pkt or ctrl sub-structures of the mbuf, need to be replaced with references to the field
+ directly from the rte_mbuf, i.e. buf->pkt.data_len should be replace by buf->data_len.
+
+* Any direct references to the data field of the mbuf (original buf->pkt.data) should now be replace by the macro rte_pktmbuf_mtod
+ to get a computed data address inside the mbuf buffer area.
+
+* Any references to the in_port mbuf field should be replace by references to the port field.
+
+NOTE: The above list is not exhaustive, but only includes the most commonly required changes to code using mbufs.
+
+Intel® DPDK 1.6 to DPDK 1.7
+---------------------------
Note the following difference between 1.6 and 1.7:
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.
+* 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 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,
+ The recommended default values are to have tx_thresh.tx_wthresh, 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.