X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Frel_notes%2Frelease_17_05.rst;h=aa3e1e074f65cd762393f1dccaae1df565e69eba;hb=60e686c22394677787411945fe17bfe18ac0e9c7;hp=f5ace5e53cf87519b91624ed6139154173a7503a;hpb=1e58b1426a38917eb16012d5cdfdcc14b19daa3b;p=dpdk.git diff --git a/doc/guides/rel_notes/release_17_05.rst b/doc/guides/rel_notes/release_17_05.rst index f5ace5e53c..aa3e1e074f 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,12 @@ 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: @@ -88,6 +113,22 @@ New Features 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. @@ -109,12 +150,93 @@ New Features 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. + Resolved Issues --------------- @@ -170,6 +292,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 ----------- @@ -220,6 +347,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 ----------- @@ -233,6 +403,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 ------------- @@ -268,6 +443,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 @@ -279,10 +455,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