New Features
------------
+* **Introduce ARMv7 and ARMv8 architectures**
+
+ * It is now possible to build DPDK for the ARMv7 and ARMv8 platforms.
+ * ARMv7 can be tested with virtual PMD drivers.
+ * ARMv8 can be tested with virtual and physical PMD drivers.
+
* **Enabled freeing of ring.**
New function rte_ring_free() allows the user to free a ring
if it was created with rte_ring_create().
+* **Added keepalive support to EAL and example application.**
+
+* **Added experimental cryptodev API**
+
+ The cryptographic processing of packet is provided as a preview
+ with two drivers for:
+
+ * Intel QuickAssist devices
+ * Intel AES-NI multi-buffer library
+
+ Due to its experimental state, the API may change without prior notice.
+
+* **Added ethdev API to support IEEE1588.**
+
+ Added functions to read, write and adjust system time in the NIC.
+
* **Extended Statistics**
Define extended statistics naming scheme to store metadata in the name
* Added support for Jumbo Frames.
* Optimize forwarding performance for Chelsio T5 40GbE cards.
+* **Improved enic Tx packet rate.**
+
+ Reduced frequency of Tx tail pointer updates to the NIC.
+
* **Added support for Mellanox ConnectX-4 adapters (mlx5).**
The mlx5 poll-mode driver implements support for Mellanox ConnectX-4 EN
Like mlx4, this PMD is only available for Linux and is disabled by default
due to external dependencies (libibverbs and libmlx5).
+* **Added virtual szedata2 driver for COMBO cards.**
+
+ Added virtual PMD for COMBO-100G and COMBO-80G cards.
+ PMD is disabled in default configuration.
+
* **Enhanced support for virtio driver.**
* Virtio ring layout optimization (fixed avail ring)
VF needs the PF interrupt support initialized even if not started.
+* **igb: Fixed VF MAC address when using with DPDK PF.**
+
+ Assign a random MAC address in VF when not assigned by PF.
+
* **ixgbe: Fixed issue with X550 DCB.**
Fixed a DCB issue with x550 where for 8 TCs (Traffic Classes), if a packet
VF needs the PF interrupt support initialized even if not started.
+* **ixgbe: Fixed TX hang when RS distance exceeds HW limit.**
+
+ Fixed an issue when TX queue can hang when a lot of highly fragmented
+ packets have to be sent.
+ As part of that fix, tx_rs_thresh for ixgbe PMD is not allowed to be greater
+ then to 32 to comply with HW restrictions.
+
* **i40e: Fixed base driver allocation when not using first numa node.**
Fixed i40e issue that occurred when a DPDK application didn't initialize
Added discarding packets on VSI to the stats and rectify the old statistics.
+* **i40e: Fixed issue of not freeing memzone.**
+
+ Fixed the issue of not freeing memzone in the call to free the memory for
+ adminq DMA.
+
+* **mlx: Fixed driver loading.**
+
+ The mlx drivers were unable to load when built as a shared library,
+ due to a missing symbol in mempool library.
+
* **vhost: Fixed Qemu shutdown.**
Fixed issue with libvirt ``virsh destroy`` not killing the VM.
Fixed issue when releasing null control queue.
-* **hash: Fixed thread scaling by reducing contention.**
-
- Fixed issue in hash library where, using multiple cores with
- hardware transactional memory support, thread scaling did not work,
- due to the global ring that is shared by all cores.
-
Libraries
~~~~~~~~~
key was not added in the table and the key was looked up,
resulting in an incorrect hit.
+* **hash: Fixed thread scaling by reducing contention.**
+
+ Fixed issue in hash library where, using multiple cores with
+ hardware transactional memory support, thread scaling did not work,
+ due to the global ring that is shared by all cores.
+
Examples
~~~~~~~~
Known Issues
------------
+* Some drivers do not fill the packet type when receiving.
+ As the l3fwd example application requires this info, the i40e vector
+ driver must be disabled to benefit of the packet type with i40e.
+
API Changes
-----------
structures: rte_eth_dcb_rx_conf, rte_eth_dcb_tx_conf,
rte_eth_vmdq_dcb_conf, rte_eth_vmdq_dcb_tx_conf.
+* The rte_eth_rx_queue_count() function now returns "int" instead of "uint32_t"
+ to allow the use of negative values as error codes on return.
+
* The function rte_eal_pci_close_one() is removed.
It was replaced by rte_eal_pci_detach().
* The devargs union field virtual is renamed to virt for C++ compatibility.
-
ABI Changes
-----------
* The new fields rx_desc_lim and tx_desc_lim are added into rte_eth_dev_info
structure.
+* For debug builds, the functions rte_eth_rx_burst(), rte_eth_tx_burst()
+ rte_eth_rx_descriptor_done() and rte_eth_rx_queue_count() will
+ no longer be separate functions in the DPDK libraries. Instead, they will
+ only be present in the rte_ethdev.h header file.
+
* The maximum number of queues per port CONFIG_RTE_MAX_QUEUES_PER_PORT is
increased to 1024.
* librte_table LPM: A new parameter to hold the table name will be added to
the LPM table parameter structure.
+* librte_table hash: The key mask parameter is added to the hash table
+ parameter structure for 8-byte key and 16-byte key extendible bucket
+ and LRU tables.
+
* librte_port: Macros to access the packet meta-data stored within the packet
buffer has been adjusted to cover the packet mbuf structure.
+ librte_mbuf.so.2
librte_mempool.so.1
librte_meter.so.1
- librte_pipeline.so.1
+ + librte_pipeline.so.2
librte_pmd_bond.so.1
+ librte_pmd_ring.so.2
+ librte_port.so.2