eal: support dynamic log types
[dpdk.git] / doc / guides / rel_notes / release_17_05.rst
index d7ea0df..482da9a 100644 (file)
@@ -41,12 +41,31 @@ New Features
      Also, make sure to start the actual text at the margin.
      =========================================================
 
+* **Reorganized the mbuf structure.**
+
+  * Align fields to facilitate the writing of ``data_off``, ``refcnt``, and
+    ``nb_segs`` in one operation.
+  * Use 2 bytes for port and number of segments.
+  * Move the sequence number in the second cache line.
+  * Add a timestamp field.
+  * Set default value for ``refcnt``, ``next`` and ``nb_segs`` at mbuf free.
+
+* **Added mbuf raw free API**
+
+  Moved ``rte_mbuf_raw_free()`` and ``rte_pktmbuf_prefree_seg()`` functions to
+  the public API.
+
 * **Added free Tx mbuf on demand API.**
 
   Added a new function ``rte_eth_tx_done_cleanup()`` which allows an application
   to request the driver to release mbufs from their Tx ring that are no longer
   in use, independent of whether or not the ``tx_rs_thresh`` has been crossed.
 
+* **Added EAL dynamic log framework.**
+
+  Added new APIs to dynamically register named log types, and control
+  the level of each type independently.
+
 * **Added descriptor status ethdev API.**
 
   Added a new API to get the status of a descriptor.
@@ -163,11 +182,42 @@ New Features
 
 * **Added interrupt mode support for virtio-user.**
 
-  Implemented Rxq interrupt mode support for virtio-user as a virtual
+  Implemented Rxq interrupt mode and LSC support for virtio-user as a virtual
   device. Supported cases:
 
   * Rxq interrupt for virtio-user + vhost-user as the backend.
   * Rxq interrupt for virtio-user + vhost-kernel as the backend.
+  * LSC interrupt for virtio-user + vhost-user as the backend.
+
+* **Added event driven programming model library (rte_eventdev).**
+
+  This API introduces event driven programming model.
+
+  In a polling model, lcores poll ethdev ports and associated
+  rx queues directly to look for packet. In an event driven model,
+  by contrast, lcores call the scheduler that selects packets for
+  them based on programmer-specified criteria. Eventdev library
+  added support for event driven programming model, which offer
+  applications automatic multicore scaling, dynamic load balancing,
+  pipelining, packet ingress order maintenance and
+  synchronization services to simplify application packet processing.
+
+  By introducing event driven programming model, DPDK can support
+  both polling and event driven programming models for packet processing,
+  and applications are free to choose whatever model
+  (or combination of the two) that best suits their needs.
+
+* **Added Software Eventdev PMD.**
+
+  Added support for the software eventdev PMD. The software eventdev is a
+  software based scheduler device that implements the eventdev API. This
+  PMD allows an application to configure a pipeline using the eventdev
+  library, and run the scheduling workload on a CPU core.
+
+* **Added Cavium OCTEONTX Eventdev PMD.**
+
+  Added the new octeontx ssovf eventdev driver for OCTEONTX devices. See the
+  "Event Device Drivers" document for more details on this new driver.
 
 
 Resolved Issues
@@ -224,6 +274,11 @@ Known Issues
    Also, make sure to start the actual text at the margin.
    =========================================================
 
+* **LSC interrupt cannot work for virtio-user + vhost-kernel.**
+
+  LSC interrupt cannot be detected when setting the backend, tap device,
+  up/down as we fail to find a way to monitor such event.
+
 
 API Changes
 -----------
@@ -274,6 +329,49 @@ API Changes
     flagged by the compiler. The return value usage should be checked
     while fixing the compiler error due to the extra parameter.
 
+* **Reworked rte_vhost library**
+
+  The rte_vhost library has been reworked to make it generic enough so that
+  user could build other vhost-user drivers on top of it. To achieve that,
+  following changes have been made:
+
+  * The following vhost-pmd APIs are removed:
+
+    * ``rte_eth_vhost_feature_disable``
+    * ``rte_eth_vhost_feature_enable``
+    * ``rte_eth_vhost_feature_get``
+
+  * The vhost API ``rte_vhost_driver_callback_register(ops)`` is reworked to
+    be per vhost-user socket file. Thus, it takes one more argument:
+    ``rte_vhost_driver_callback_register(path, ops)``.
+
+  * The vhost API ``rte_vhost_get_queue_num`` is deprecated, instead,
+    ``rte_vhost_get_vring_num`` should be used.
+
+  * Following macros are removed in ``rte_virtio_net.h``
+
+    * ``VIRTIO_RXQ``
+    * ``VIRTIO_TXQ``
+    * ``VIRTIO_QNUM``
+
+  * Following net specific header files are removed in ``rte_virtio_net.h``
+
+    * ``linux/virtio_net.h``
+    * ``sys/socket.h``
+    * ``linux/if.h``
+    * ``rte_ether.h``
+
+  * The vhost struct ``virtio_net_device_ops`` is renamed to
+    ``vhost_device_ops``
+
+  * The vhost API ``rte_vhost_driver_session_start`` is removed. Instead,
+    ``rte_vhost_driver_start`` should be used, and no need to create a
+    thread to call it.
+
+  * The vhost public header file ``rte_virtio_net.h`` is renamed to
+    ``rte_vhost.h``
+
+
 ABI Changes
 -----------
 
@@ -287,6 +385,11 @@ ABI Changes
    Also, make sure to start the actual text at the margin.
    =========================================================
 
+* **Reorganized the mbuf structure.**
+
+  The order and size of the fields in the ``mbuf`` structure changed,
+  as described in the `New Features`_ section.
+
 
 Removed Items
 -------------
@@ -334,7 +437,7 @@ The libraries prepended with a plus sign were incremented in this version.
      librte_kni.so.2
      librte_kvargs.so.1
      librte_lpm.so.2
-     librte_mbuf.so.2
+   + librte_mbuf.so.3
      librte_mempool.so.2
      librte_meter.so.1
      librte_net.so.1