Refer to the previous release notes for examples.
+* **Added function to check primary process state.**
+
+ A new function ``rte_eal_primary_proc_alive()`` has been added
+ to allow the user to detect if a primary process is running.
+ Use cases for this feature include fault detection, and monitoring
+ using secondary processes.
+
* **Enabled bulk allocation of mbufs.**
A new function ``rte_pktmbuf_alloc_bulk()`` has been added to allow the user
* **Added vhost-user live migration support.**
+* **Added multicast promiscuous mode support on VF for ixgbe.**
+
+ Added multicast promiscuous mode support on ixgbe VF driver. So all the VFs
+ can receive the multicast packets.
+
+ Please note if we want to use this promiscuous mode, we need both PF and VF
+ driver to support it. The reason is this VF feature is configured on PF.
+ If use kernel PF driver + dpdk VF driver, make sure kernel PF driver support
+ VF multicast promiscuous mode. If use dpdk PF + dpdk VF, better make sure PF
+ driver is the same version as VF.
+
+* **Added support for E-tag on X550.**
+
+ E-tag is defined in 802.1br. Please reference
+ http://www.ieee802.org/1/pages/802.1br.html.
+
+ This feature is for VF, but the settings are on PF. It means
+ the CLIs should be used on PF, but some of their effects will be shown on VF.
+ The forwarding of E-tag packets based on GRP and E-CID_base will have effect
+ on PF. Theoretically the E-tag packets can be forwarded to any pool/queue.
+ But normally we'd like to forward the packets to the pools/queues belonging
+ to the VFs. And E-tag insertion and stripping will have effect on VFs. When
+ VF receives E-tag packets, it should strip the E-tag. When VF transmits
+ packets, it should insert the E-tag. Both can be offloaded.
+
+ When we want to use this E-tag support feature, the forwarding should be
+ enabled to forward the packets received by PF to indicated VFs. And insertion
+ and stripping should be enabled for VFs to offload the effort to HW.
+
+ * Support E-tag offloading of insertion and stripping.
+ * Support Forwarding E-tag packets to pools based on
+ GRP and E-CID_base.
+
+* **Added support for VxLAN & NVGRE checksum off-load on X550.**
+
+ * Added support for VxLAN & NVGRE RX/TX checksum off-load on
+ X550. RX/TX checksum off-load is provided on both inner and
+ outer IP header and TCP header.
+ * Added functions to support VxLAN port configuration. The
+ default VxLAN port number is 4789 but this can be updated
+ programmatically.
+
+* **Added new X550EM_a devices.**
+
+ Added new X550EM_a devices and their mac types, X550EM_a and X550EM_a_vf.
+ Updated the code to use the new devices and mac types.
+
+* **Added x550em_x V2 device support.**
+
+ Only x550em_x V1 was supported before. Now V2 is supported.
+ A mask for V1 and V2 is defined and used to support both.
+
+* **Supported link speed auto-negotiation on X550EM_X**
+
+ Normally the auto-negotiation is supported by FW. SW need not care about
+ that. But on x550em_x, FW doesn't support auto-neg. As the ports of x550em_x
+ are 10G, if we connect the port with a peer which is 1G, the link will always
+ be down.
+ We added the support of auto-neg by SW to avoid this link down issue.
+
+* **Added sw-firmware sync on X550EM_a.**
+
+ Added support for sw-firmware sync for resource sharing.
+ Use the PHY token, shared between sw-fw for PHY access on X550EM_a.
+
+* **Updated the i40e base driver.**
+
+ The i40e base driver was updated with changes including the
+ following:
+
+ * Use Rx control AQ commands to read/write Rx control registers.
+ * Add new X722 device IDs, and removed X710 one was never used.
+ * Expose registers for HASH/FD input set configuring.
+
+* **Enabled PCI extended tag for i40e.**
+
+ It enabled extended tag by checking and writing corresponding PCI config
+ space bytes, to boost the performance. In the meanwhile, it deprecated the
+ legacy way via reading/writing sysfile supported by kernel module igb_uio.
+
+* **Supported ether type setting of single and double VLAN for i40e**
+
+* **Added VMDQ DCB mode in i40e.**
+
+ Added support for DCB in VMDQ mode to i40e driver.
+
+* **Increased number of next hops for LPM IPv4 to 2^24.**
+
+ The next_hop field is extended from 8 bits to 24 bits for IPv4.
+
+* **Added support of SNOW 3G (UEA2 and UIA2) for Intel Quick Assist devices.**
+
+ Enabled support for SNOW 3G wireless algorithm for Intel Quick Assist devices.
+ Support for cipher only, hash only is also provided
+ along with alg-chaining operations.
+
+* **Added SNOW3G SW PMD.**
+
+ A new Crypto PMD has been added, which provides SNOW 3G UEA2 ciphering
+ and SNOW3G UIA2 hashing.
+
+* **Added AES GCM PMD.**
+
+ Added new Crypto PMD to support AES-GCM authenticated encryption and
+ authenticated decryption in SW.
+
+* **Added NULL Crypto PMD**
+
+ Added new Crypto PMD to support null crypto operations in SW.
+
+* **Added IPsec security gateway example.**
+
+ New application implementing an IPsec Security Gateway.
+
Resolved Issues
---------------
Fixed issue in ethdev library that the structure for setting
fdir's mask and flow entry was not consistent in byte ordering.
+* **cxgbe: Fixed crash due to incorrect size allocated for RSS table.**
+
+ Fixed a segfault that occurs when accessing part of port 0's RSS
+ table that gets overwritten by subsequent port 1's part of the RSS
+ table due to incorrect size allocated for each entry in the table.
+
+* **cxgbe: Fixed setting wrong device MTU.**
+
+ Fixed an incorrect device MTU being set due to ethernet header and
+ CRC lengths being added twice.
+
+* **ixgbe: Fixed zeroed VF mac address.**
+
+ Resolved an issue where VF mac address is zeroed out in cases where the VF
+ driver is loaded while the PF interface is down.
+ The solution is to only set it when we get an ACK from the PF.
+
+* **ixgbe: Fixed setting flow director flag twice.**
+
+ Resolved an issue where packets were being dropped when switching to perfect
+ filters mode.
+
+* **ixgbe: Set MDIO speed after MAC reset.**
+
+ The MDIO clock speed must be reconfigured after the MAC reset. The MDIO clock
+ speed becomes invalid, therefore the driver reads invalid PHY register values.
+ The driver now set the MDIO clock speed prior to initializing PHY ops and
+ again after the MAC reset.
+
+* **i40e: Generated MAC address for each VFs.**
+
+ It generates a MAC address for each VFs during PF host initialization,
+ and keeps the VF MAC address the same among different VF launch.
+
+* **i40e: Fixed failure of reading/writing Rx control registers.**
+
+ Fixed i40e issue of failing to read/write rx control registers when
+ under stress with traffic, which might result in application launch
+ failure.
+
* **aesni_mb: Fixed wrong return value when creating a device.**
cryptodev_aesni_mb_init() was returning the device id of the device created,
This made impossible the creation of more than one aesni_mb device
from command line.
+* **qat: Fixed AES GCM decryption.**
+
+ Allowed AES GCM on the cryptodev API, but in some cases gave invalid results
+ due to incorrect IV setting.
+
Libraries
~~~~~~~~~
* Add a short 1-2 sentence description of the API change. Use fixed width
quotes for ``rte_function_names`` or ``rte_struct_names``. Use the past tense.
+* The functions ``rte_eth_dev_udp_tunnel_add`` and ``rte_eth_dev_udp_tunnel_delete``
+ have been renamed into ``rte_eth_dev_udp_tunnel_port_add`` and
+ ``rte_eth_dev_udp_tunnel_port_delete``.
+
+* The ``outer_mac`` and ``inner_mac`` fields in structure
+ ``rte_eth_tunnel_filter_conf`` are changed from pointer to struct in order
+ to keep code's readability.
+
+* The fields in ethdev structure ``rte_eth_fdir_masks`` were changed
+ to be in big endian.
+
+* A parameter ``vlan_type`` has been added to the function
+ ``rte_eth_dev_set_vlan_ether_type``.
+
+* The LPM ``next_hop`` field is extended from 8 bits to 24 bits for IPv4
+ while keeping ABI compatibility.
+
+* A new ``rte_lpm_config`` structure is used so LPM library will allocate
+ exactly the amount of memory which is necessary to hold application’s rules.
+ The previous ABI is kept for compatibility.
+
+* The prototype for the pipeline input port, output port and table action
+ handlers are updated: the pipeline parameter is added,
+ the packets mask parameter has been either removed or made input-only.
+
ABI Changes
-----------
the previous releases and made in this release. Use fixed width quotes for
``rte_function_names`` or ``rte_struct_names``. Use the past tense.
-* The fields in ethdev structure ``rte_eth_fdir_masks`` were changed
- to be in big endian.
+* The RETA entry size in ``rte_eth_rss_reta_entry64`` has been increased
+ from 8-bit to 16-bit.
+
+* The cmdline buffer size has been increase from 256 to 512.
Shared Library Versions
.. code-block:: diff
- libethdev.so.2
+ + libethdev.so.3
librte_acl.so.2
librte_cfgfile.so.2
- librte_cmdline.so.1
+ + librte_cmdline.so.2
librte_distributor.so.1
librte_eal.so.2
librte_hash.so.2
librte_mbuf.so.2
librte_mempool.so.1
librte_meter.so.1
- librte_pipeline.so.2
+ + librte_pipeline.so.3
librte_pmd_bond.so.1
librte_pmd_ring.so.2
librte_port.so.2