X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Frel_notes%2Frelease_17_05.rst;h=47efeed4f0132d200b20d7fe1cbe09ff1e9785d0;hb=4e30ead5e7ca886535e2b30632b2948d2aac1681;hp=d7ea0df133468b2cce7cc9bbc93f24d6803f0a6a;hpb=3d4fb6fd250577411f904e02bfd5b703b69fbddf;p=dpdk.git diff --git a/doc/guides/rel_notes/release_17_05.rst b/doc/guides/rel_notes/release_17_05.rst index d7ea0df133..47efeed4f0 100644 --- a/doc/guides/rel_notes/release_17_05.rst +++ b/doc/guides/rel_notes/release_17_05.rst @@ -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. @@ -110,6 +129,13 @@ New Features * Added dynamic device personalization processing to i40e FW. +* **Added Cloud Filter for QinQ steering to i40e.** + + * Added a QinQ cloud filter on the i40e PMD, for steering traffic to a VM + using both VLAN tags. + * QinQ is not supported in Vector Mode on the i40e PMD. + * Vector Mode must be disabled when using the QinQ Cloud Filter. + * **Added TSO support for tunneled and non-tunneled packets on mlx5 driver.** Added support for Hardware TSO for tunneled and non-tunneled packets. @@ -131,6 +157,24 @@ New Features Added poll mode driver support for Cavium LiquidIO II server adapter VFs. +* **Added Atomic Rules Arkville PMD.** + + Added a new poll mode driver for the Arkville family of + devices from Atomic Rules. The net/ark PMD supports line-rate + agnostic, multi-queue data movement on Arkville core FPGA instances. + +* **Added support for NXP DPAA2 - FSLMC bus.** + + Added the new bus "fslmc" driver for NXP DPAA2 devices. See the + "Network Interface Controller Drivers" document for more details on this new + driver. + +* **Added support for NXP DPAA2 Network PMD.** + + Added the new "dpaa2" net driver for NXP DPAA2 devices. See the + "Network Interface Controller Drivers" document for more details on this new + driver. + * **Added support for the Wind River Systems AVP PMD.** Added a new networking driver for the AVP device type. Theses devices are @@ -163,11 +207,90 @@ 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. + +* **Added information metric library.** + + A library that allows information metrics to be added and updated + by producers, typically other libraries, for later retrieval by + consumers such as applications. It is intended to provide a + reporting mechanism that is independent of other libraries such + as ethdev. + +* **Added bit-rate calculation library.** + + A library that can be used to calculate device bit-rates. Calculated + bitrates are reported using the metrics library. + +* **Added latency stats library.** + + A library that measures packet latency. The collected statistics are jitter + and latency. For latency the minimum, average, and maximum is measured. + +* **Updated the Cryptodev Scheduler PMD.** + + * Added packet-size based distribution mode, which distributes the enqueued + crypto operations among two slaves, based on their data lengths. + * Added fail-over scheduling mode, which enqueues crypto operations to a + primary slave first. Then, any operation that cannot be enqueued is + enqueued to a secondary slave. + * Added mode specific option support, so each scheduleing mode can + now be configured individually by the new added API. + +* **Updated the QAT PMD.** + + The QAT PMD has been updated with additional support for: + + * AES DOCSIS BPI algorithm. + * DES DOCSIS BPI algorithm. + * ZUC EEA3/EIA3 algorithms. + +* **Updated the AESNI MB PMD.** + + The AESNI MB PMD has been updated with additional support for: + + * AES DOCSIS BPI algorithm. + +* **Updated the OpenSSL PMD.** + + The OpenSSL PMD has been updated with additional support for: + + * DES DOCSIS BPI algorithm. Resolved Issues @@ -224,6 +347,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 +402,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 +458,14 @@ 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. + +* The ``rte_cryptodev_info.sym`` structure has new field ``max_nb_sessions_per_qp`` + to support drivers which may support limited number of sessions per queue_pair. + Removed Items ------------- @@ -302,6 +481,7 @@ Removed Items * KNI vhost support removed. +* dpdk_qat sample application removed. Shared Library Versions ----------------------- @@ -322,21 +502,24 @@ The libraries prepended with a plus sign were incremented in this version. .. code-block:: diff librte_acl.so.2 + + librte_bitratestats.so.1 librte_cfgfile.so.2 librte_cmdline.so.2 librte_cryptodev.so.2 librte_distributor.so.1 - librte_eal.so.3 + + librte_eal.so.4 librte_ethdev.so.6 librte_hash.so.2 librte_ip_frag.so.1 librte_jobstats.so.1 librte_kni.so.2 librte_kvargs.so.1 + + librte_latencystats.so.1 librte_lpm.so.2 - librte_mbuf.so.2 + + librte_mbuf.so.3 librte_mempool.so.2 librte_meter.so.1 + + librte_metrics.so.1 librte_net.so.1 librte_pdump.so.1 librte_pipeline.so.3