X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Frel_notes%2Frelease_17_05.rst;h=4968b8f746ef9ea3f5acb974260eee0ed22ee361;hb=d9b7d5bbc845;hp=c4bb49ad168b1b63ae48240aed3bbadfad53e1ea;hpb=94c0776b1badd1ee715d60f07391058f23494365;p=dpdk.git diff --git a/doc/guides/rel_notes/release_17_05.rst b/doc/guides/rel_notes/release_17_05.rst index c4bb49ad16..4968b8f746 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. @@ -67,6 +86,184 @@ New Features sPAPR IOMMU based pci probing enabled for vfio-pci devices. +* **Kept consistent PMD batching behaviour.** + + Removed the limit of fm10k/i40e/ixgbe TX burst size and vhost RX/TX burst size + in order to support the same policy of "make an best effort to RX/TX pkts" + for PMDs. + +* **Updated the ixgbe base driver.** + + Updated the ixgbe base driver, including the following changes: + + * Add link block check for KR. + * Complete HW initialization even if SFP is not present. + * Add VF xcast promiscuous mode. + +* **Added powerpc support for i40e and its vector PMD .** + + i40e PMD and its vector PMD enabled by default in powerpc. + +* **Added VF max bandwidth setting on i40e.** + + i40e HW supports to set the max bandwidth for a VF. Enable this capability. + +* **Added VF TC min bandwidth setting on i40e.** + + i40e HW supports to set the allocated bandwidth for a TC on a VF. Enable this + capability. + +* **Added VF TC max bandwidth setting on i40e.** + + i40e HW supports to set the max bandwidth for a TC on a VF. Enable this + capability. + +* **Added TC strict priority mode setting on i40e.** + + There're 2 TX scheduling modes supported for TCs by i40e HW, round ribon mode + and strict priority mode. By default it's round robin mode. Enable the + capability to change the TX scheduling mode for a TC. It's a global setting + on a physical port. + +* **Added i40e dynamic device personalization support.** + + * Added dynamic device personalization processing to i40e FW. + +* **Added TSO support for tunneled and non-tunneled packets on mlx5 driver.** + + Added support for Hardware TSO for tunneled and non-tunneled packets. + Tunneling protocols supported are GRE and VXLAN. + +* **Added support for Rx interrupts on mlx5 driver.** + + Rx queues can be armed with an interrupt which will trigger on the + next packet arrival. + +* **Updated the sfc_efx driver.** + + * Generic flow API support for Ethernet, VLAN, IPv4, IPv6, UDP and TCP + pattern items with QUEUE action for ingress traffic. + + * Support virtual functions (VFs) + +* **Added LiquidIO network PMD.** + + Added poll mode driver support for Cavium LiquidIO II server adapter VFs. + +* **Added support for the Wind River Systems AVP PMD.** + + Added a new networking driver for the AVP device type. Theses devices are + specific to the Wind River Systems virtualization platforms. + +* **Added vmxnet3 version 3 support.** + + Added support for vmxnet3 version 3 which includes several + performance enhancements viz. configurable TX data ring, Receive + Data Ring, ability to register memory regions. + +* **Updated the tap driver.** + + * Support MTU modification. + * Support packet type for Rx. + * Support segmented packets on Rx and Tx. + * Speed up Rx on tap when no packets are available. + * Support capturing traffic from another netdevice. + * Dynamically change link status when the underlying interface state changes. + * Generic flow API support for Ethernet, VLAN, IPv4, IPv6, UDP and TCP pattern + items with DROP, QUEUE and PASSTHRU actions for ingress traffic. + +* **Added MTU feature support to Virtio and Vhost.** + + Implemented new Virtio MTU feature into Vhost and Virtio: + + * Add ``rte_vhost_mtu_get()`` API to Vhost library. + * Enable Vhost PMD's MTU get feature. + * Get max MTU value from host in Virtio PMD + +* **Added interrupt mode support for virtio-user.** + + 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. + +* **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 --------------- @@ -122,6 +319,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 ----------- @@ -172,6 +374,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 ----------- @@ -185,6 +430,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 ------------- @@ -200,6 +453,7 @@ Removed Items * KNI vhost support removed. +* dpdk_qat sample application removed. Shared Library Versions ----------------------- @@ -220,6 +474,7 @@ 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 @@ -231,10 +486,12 @@ The libraries prepended with a plus sign were incremented in this version. 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