mk: fix scope of disabling AVX512F support
[dpdk.git] / doc / guides / rel_notes / release_19_02.rst
index 069f429..5a2f62c 100644 (file)
@@ -54,12 +54,94 @@ New Features
      Also, make sure to start the actual text at the margin.
      =========================================================
 
+* **Added support to free hugepages exactly as originally allocated.**
+
+  Some applications using memory event callbacks (especially for managing
+  RDMA memory regions) require that memory be freed back to the system
+  exactly as it was originally allocated. These applications typically
+  also require that a malloc allocation not span across two separate
+  hugepage allocations.  A new ``--match-allocations`` EAL init flag has
+  been added to fulfill both of these requirements.
+
+* **Added API to register external memory in DPDK.**
+
+  A new ``rte_extmem_register``/``rte_extmem_unregister`` API was added to allow
+  chunks of external memory to be registered with DPDK without adding them to
+  the malloc heap.
+
+* **Support for using virtio-user without hugepages**
+
+  The --no-huge mode was augmented to use memfd-backed memory (on systems that
+  support memfd), to allow using virtio-user-based NICs without hugepages.
+
 * **Updated the enic driver.**
 
   * Added support for ``RTE_ETH_DEV_CLOSE_REMOVE`` flag.
   * Added the handler to get firmware version string.
   * Added support for multicast filtering.
 
+* **Added dynamic queues allocation support for i40e VF.**
+
+  Previously, available queues of VF is reserved by PF at initialize stage.
+  Now both DPDK PF and Kernel PF (>=2.1.14) will support dynamic queue
+  allocation. At runtime, when VF request more queue number exceed the initial
+  reserved amount, PF can allocate up to 16 queues as the request after a VF
+  reset.
+
+* **Added ICE net PMD**
+
+  Added the new ``ice`` net driver for IntelĀ® Ethernet Network Adapters E810.
+  See the :doc:`../nics/ice` NIC guide for more details on this new driver.
+
+* **Added support for SW-assisted VDPA live migration.**
+
+  This SW-assisted VDPA live migration facility helps VDPA devices without
+  logging capability to perform live migration, a mediated SW relay can help
+  devices to track dirty pages caused by DMA. IFC driver has enabled this
+  SW-assisted live migration mode.
+
+* **Added security checks to cryptodev symmetric session operations.**
+
+  Added a set of security checks to the access cryptodev symmetric session.
+  The checks include the session's user data read/write check and the
+  session private data referencing status check while freeing a session.
+
+* **Updated the AESNI-MB PMD.**
+
+  * Add support for intel-ipsec-mb version 0.52.
+  * Add AES-GMAC algorithm support.
+  * Add Plain SHA1, SHA224, SHA256, SHA384, and SHA512 algorithms support.
+
+* **Added IPsec Library.**
+
+  Added an experimental library ``librte_ipsec`` to provide ESP tunnel and
+  transport support for IPv4 and IPv6 packets.
+
+  The library provides support for AES-CBC ciphering and AES-CBC with HMAC-SHA1
+  algorithm-chaining, and AES-GCM and NULL algorithms only at present. It is
+  planned to add more algorithms in future releases.
+
+  See :doc:`../prog_guide/ipsec_lib` for more information.
+
+* **Updated the ipsec-secgw sample application.**
+
+  The ``ipsec-secgw`` sample application has been updated to use the new
+  ``librte_ipsec`` library also added in this release.
+  The original functionality of ipsec-secgw is retained, a new command line
+  parameter ``-l`` has  been added to ipsec-secgw to use the IPsec library,
+  instead of the existing IPsec code in the application.
+
+  The IPsec library does not support all the functionality of the existing
+  ipsec-secgw application, its is planned to add the outstanding functionality
+  in future releases.
+
+  See :doc:`../sample_app_ug/ipsec_secgw` for more information.
+
+* **Enabled checksum support in the ISA-L compressdev driver.**
+
+  Added support for both adler and crc32 checksums in the ISA-L PMD.
+  This aids data integrity across both compression and decompression.
+
 * **Added a compression performance test tool.**
 
   Added a new performance test tool to test the compressdev PMD. The tool tests
@@ -94,10 +176,43 @@ API Changes
    Also, make sure to start the actual text at the margin.
    =========================================================
 
+* eal: Function ``rte_bsf64`` in ``rte_bitmap.h`` has been renamed to
+  ``rte_bsf64_safe`` and moved to ``rte_common.h``. A new ``rte_bsf64`` function
+  has been added in ``rte_common.h`` that follows convention set by existing
+  ``rte_bsf32`` function.
+
+* eal: Segment fd API on Linux now sets error code to ``ENOTSUP`` in more cases
+  where segment fd API is not expected to be supported:
+
+  - On attempt to get segment fd for an externally allocated memory segment
+  - In cases where memfd support would have been required to provide segment
+    fd's (such as in-memory or no-huge mode)
+
+* eal: Functions ``rte_malloc_dump_stats()``, ``rte_malloc_dump_heaps()`` and
+  ``rte_malloc_get_socket_stats()`` are no longer safe to call concurrently with
+  ``rte_malloc_heap_create()`` or ``rte_malloc_heap_destroy()`` function calls.
+
+* mbuf: ``RTE_MBUF_INDIRECT()``, which was deprecated in 18.05, was replaced
+  with ``RTE_MBUF_CLONED()`` and removed in 19.02.
+
+* sched: As result of the new format of the mbuf sched field, the
+  functions ``rte_sched_port_pkt_write()`` and
+  ``rte_sched_port_pkt_read_tree_path()`` got an additional parameter of
+  type ``struct rte_sched_port``.
+
 * pdump: The ``rte_pdump_set_socket_dir()``, the parameter ``path`` of
   ``rte_pdump_init()`` and enum ``rte_pdump_socktype`` were deprecated
   since 18.05 and are removed in this release.
 
+* cryptodev: The parameter ``session_pool`` in the function
+  ``rte_cryptodev_queue_pair_setup()`` is removed.
+
+* cryptodev: a new function ``rte_cryptodev_sym_session_pool_create()`` is
+  introduced. This function is now mandatory when creating symmetric session
+  header mempool. Please note all crypto applications are required to use this
+  function from now on. Failed to do so will cause
+  ``rte_cryptodev_sym_session_create()`` function call return error.
+
 
 ABI Changes
 -----------
@@ -114,6 +229,21 @@ ABI Changes
    Also, make sure to start the actual text at the margin.
    =========================================================
 
+* mbuf: The format of the sched field of ``rte_mbuf`` has been changed
+  to include the following fields: ``queue ID``, ``traffic class``, ``color``.
+
+* cryptodev: as shown in the the 18.11 deprecation notice, the structure
+  ``rte_cryptodev_qp_conf`` has been added two parameters of symmetric session
+  mempool and symmetric session private data mempool.
+
+* cryptodev: as shown in the the 18.11 deprecation notice, the structure
+  ``rte_cryptodev_sym_session`` has been updated to contain more information
+  to ensure safely accessing the session and session private data.
+
+* security: New field ``uint64_t opaque_data`` is added into
+  ``rte_security_session`` structure. That would allow upper layer to easily
+  associate/de-associate some user defined data with the security session.
+
 
 Shared Library Versions
 -----------------------
@@ -145,7 +275,7 @@ The libraries prepended with a plus sign were incremented in this version.
      librte_cfgfile.so.2
      librte_cmdline.so.2
      librte_compressdev.so.1
-     librte_cryptodev.so.5
+   + librte_cryptodev.so.6
      librte_distributor.so.1
      librte_eal.so.9
      librte_efd.so.1
@@ -161,7 +291,7 @@ The libraries prepended with a plus sign were incremented in this version.
      librte_kvargs.so.1
      librte_latencystats.so.1
      librte_lpm.so.2
-     librte_mbuf.so.4
+   + librte_mbuf.so.5
      librte_member.so.1
      librte_mempool.so.5
      librte_meter.so.2
@@ -183,8 +313,8 @@ The libraries prepended with a plus sign were incremented in this version.
      librte_rawdev.so.1
      librte_reorder.so.1
      librte_ring.so.2
-     librte_sched.so.1
-     librte_security.so.1
+   + librte_sched.so.2
+   + librte_security.so.2
      librte_table.so.3
      librte_timer.so.1
      librte_vhost.so.4
@@ -204,6 +334,21 @@ Known Issues
    Also, make sure to start the actual text at the margin.
    =========================================================
 
+* ``AVX-512`` support has been disabled for ``GCC`` builds when ``binutils 2.30``
+  is detected [1] because of a crash [2]. This can affect ``native`` machine type
+  build targets on the platforms that support ``AVX512F`` like ``Intel Skylake``
+  processors, and can cause a possible performance drop. The immediate workaround
+  is to use ``clang`` compiler on these platforms.
+  Initial workaround in DPDK v18.11 was to disable ``AVX-512`` support for ``GCC``
+  completely, but based on information on defect submitted to GCC community [3],
+  issue has been identified as ``binutils 2.30`` issue. Since currently only GCC
+  generates ``AVX-512`` instructions, the scope is limited to ``GCC`` and
+  ``binutils 2.30``
+
+  - [1]: Commit ("mk: fix scope of disabling AVX512F support")
+  - [2]: https://bugs.dpdk.org/show_bug.cgi?id=97
+  - [3]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88096
+
 
 Tested Platforms
 ----------------