doc: add bonding known issue in release notes
[dpdk.git] / doc / guides / rel_notes / release_18_05.rst
index 4f692e5..80d2e1f 100644 (file)
@@ -41,6 +41,40 @@ New Features
      Also, make sure to start the actual text at the margin.
      =========================================================
 
+* **Reworked memory subsystem.**
+
+  Memory subsystem has been reworked to support new functionality.
+
+  On Linux, support for reserving/unreserving hugepage memory at runtime was
+  added, so applications no longer need to pre-reserve memory at startup. Due to
+  reorganized internal workings of memory subsystem, any memory allocated
+  through ``rte_malloc()`` or ``rte_memzone_reserve()`` is no longer guaranteed
+  to be IOVA-contiguous.
+
+  This functionality has introduced the following changes:
+
+  * ``rte_eal_get_physmem_layout()`` was removed
+  * A new flag for memzone reservation (``RTE_MEMZONE_IOVA_CONTIG``) was added
+    to ensure reserved memory will be IOVA-contiguous, for use with device
+    drivers and other cases requiring such memory
+  * New callbacks for memory allocation/deallocation events, allowing user (or
+    drivers) to be notified of new memory being allocated or deallocated
+  * New callbacks for validating memory allocations above specified limit,
+    allowing user to permit or deny memory allocations
+  * A new command-line switch ``--legacy-mem`` to enable EAL behavior similar to
+    how older versions of DPDK worked (memory segments that are IOVA-contiguous,
+    but hugepages are reserved at startup only, and can never be released)
+  * A new command-line switch ``--single-file-segments`` to put all memory
+    segments within a segment list in a single file
+  * A set of convenience function calls to look up and iterate over allocated
+    memory segments
+  * ``-m`` and ``--socket-mem`` command-line arguments now carry an additional
+    meaning and mark pre-reserved hugepages as "unfree-able", thereby acting as
+    a mechanism guaranteeing minimum availability of hugepage memory to the
+    application
+
+  Reserving/unreserving memory at runtime is not currently supported on FreeBSD.
+
 * **Added bucket mempool driver.**
 
   Added bucket mempool driver which provides a way to allocate contiguous
@@ -50,6 +84,25 @@ New Features
   The number may be obtained using rte_mempool_ops_get_info() API.
   Contiguous blocks may be allocated using rte_mempool_get_contig_blocks() API.
 
+* **Added support for port representors.**
+
+  The DPDK port representors (also known as "VF representors" in the specific
+  context of VFs), which are to DPDK what the Ethernet switch device driver
+  model (**switchdev**) is to Linux, and which can be thought as a software
+  "patch panel" front-end for applications. DPDK port representors are
+  implemented as additional virtual Ethernet device (**ethdev**) instances,
+  spawned on an as needed basis through configuration parameters passed to the
+  driver of the underlying device using devargs.
+
+* **Added support for VXLAN and NVGRE tunnel endpoint.**
+
+  New actions types have been added to support encapsulation and decapsulation
+  operations for a tunnel endpoint. The new action types are
+  RTE_FLOW_ACTION_TYPE_[VXLAN/NVGRE]_ENCAP, RTE_FLOW_ACTION_TYPE_[VXLAN/NVGRE]_DECAP,
+  RTE_FLOW_ACTION_TYPE_JUMP. New item type RTE_FLOW_ACTION_TYPE_MARK has been
+  added to match a flow against a previously marked flow. It also introduced shared
+  counter to flow API to counte for a group of flows.
+
 * **Added PMD-recommended Tx and Rx parameters**
 
   Applications can now query drivers for device-tuned values of
@@ -141,6 +194,12 @@ New Features
   driver the assigned VF gets configured to Rx/Tx directly to VM's virtio
   vrings.
 
+* **Added support for vhost dequeue interrupt mode.**
+
+  Added support for vhost dequeue interrupt mode to release cpus to others when
+  no data to transmit. Applications could register an epoll event fd to associate
+  Rx queues with interrupt vectors.
+
 * **Added support for virtio-user server mode.**
   In a container environment if the vhost-user backend restarts, there's no way
   for it to reconnect to virtio-user. To address this, support for server mode
@@ -256,6 +315,15 @@ New Features
   stats/xstats on shared memory from secondary process, and also pdump packets on
   those virtual devices.
 
+* **Advancement to Packet Framework Library.**
+
+  Design and development of new API functions for Packet Framework library that
+  implements common set of actions such as traffic metering, packet
+  encapsulation, network address translation, TTL update, etc., for pipeline
+  table and input ports to speed up application development. The API functions
+  includes creating action profiles, registering actions to the profiles,
+  instantiating action profiles for pipeline table and input ports, etc.
+
 * **Added the BPF Library.**
 
   The BPF Library provides the ability to load and execute
@@ -398,6 +466,14 @@ API Changes
     redirect matching traffic to a specific physical port.
   * PORT_ID pattern item and actions were added to match and target DPDK
     port IDs at a higher level than PHY_PORT.
+  * RTE_FLOW_ACTION_TYPE_[VXLAN/NVGRE]_ENCAP action items were added to support
+    tunnel encapsulation operation for VXLAN and NVGRE type tunnel endpoint.
+  * RTE_FLOW_ACTION_TYPE_[VXLAN/NVGRE]_DECAP action items were added to support
+    tunnel decapsulation operation for VXLAN and NVGRE type tunnel endpoint.
+  * RTE_FLOW_ACTION_TYPE_JUMP action item was added to support a matched flow
+    to be redirected to the specific group.
+  * RTE_FLOW_ACTION_TYPE_MARK item type has been added to match a flow against
+    a previously marked flow.
 
 * ethdev: change flow APIs regarding count action:
   * ``rte_flow_create()`` API count action now requires the ``struct rte_flow_action_count``.
@@ -512,6 +588,19 @@ Known Issues
    Also, make sure to start the actual text at the margin.
    =========================================================
 
+* **Secondary process launch is not reliable.**
+
+  Recent memory hotplug patches have made multiprocess startup less reliable
+  than it was in the past. A number of workarounds are known to work depending
+  on the circumstances. As such it isn't recommended to use the secondary
+  process mechanism for critical systems. The underlying issues will be
+  addressed in upcoming releases.
+
+  The issue is explained in more detail, including potential workarounds,
+  in the Bugzilla entry referenced below.
+
+  Bugzilla entry: https://dpdk.org/tracker/show_bug.cgi?id=50
+
 * **pdump is not compatible with old applications.**
 
   As we changed to use generic multi-process communication for pdump negotiation
@@ -519,6 +608,30 @@ Known Issues
   dpdk-pdump example and any other applications using librte_pdump, cannot work
   with older version DPDK primary applications.
 
+* **rte_abort takes a long time on FreeBSD.**
+
+  DPDK processes now allocates a large area of virtual memory address space,
+  with this change during rte_abort FreeBSD now dumps the contents of the
+  whole reserved memory range, not just the used portion, to a core dump file.
+  Write this large core file can take a significant amount of time, causing
+  processes to appear hung on the system.
+
+  The work around for the issue is to set the system resource limits for core
+  dumps before running any tests e.g."limit coredumpsize 0". This will
+  effectively disable core dumps on FreeBSD. If they are not to be completely
+  disabled, a suitable limit, e.g. 1G might be specified instead of 0. This
+  needs to be run per-shell session, or before every test run. This change
+  can also be made persistent by adding "kern.coredump=0" to /etc/sysctl.conf
+
+  Bugzilla entry: https://dpdk.org/tracker/show_bug.cgi?id=53
+
+* **Bonding PMD may fail to accept new slaves in certain conditions.**
+
+  In certain conditions when using testpmd,
+  bonding may fail to register new slave ports.
+
+  Bugzilla entry: https://dpdk.org/tracker/show_bug.cgi?id=52.
+
 
 Shared Library Versions
 -----------------------
@@ -835,3 +948,25 @@ Tested Platforms
        * Host interface: PCI Express 3.0 x16
        * Device ID: 15b3:1017
        * Firmware version: 16.22.0428
+
+* ARM SoC combinations from Cavium (with integrated NICs)
+
+   * SoC:
+
+     * Cavium CN81xx
+     * Cavium CN83xx
+
+   * OS:
+
+     * Ubuntu 16.04.2 LTS with Cavium SDK-6.2.0-Patch2 release support package.
+
+* ARM SoC combinations from NXP (with integrated NICs)
+
+   * SoC:
+
+     * NXP/Freescale QorIQ LS1046A with ARM Cortex A72
+     * NXP/Freescale QorIQ LS2088A with ARM Cortex A72
+
+   * OS:
+
+     * Ubuntu 16.04.3 LTS with NXP QorIQ LSDK 1803 support packages