pci: merge probing and closing functions for linux and bsd
[dpdk.git] / doc / guides / rel_notes / updating_apps.rst
index ba8012d..b49cb61 100644 (file)
@@ -1,11 +1,44 @@
 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:
 
@@ -54,7 +87,7 @@ 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.
+*   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.
 
@@ -92,7 +125,7 @@ Note the following difference between release 1.1 and release 1.2:
 
 *   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.