mlx5: add VLAN filtering for broadcast and IPv6 multicast
[dpdk.git] / doc / guides / rel_notes / release_16_04.rst
index 8b82492..5b386f1 100644 (file)
@@ -64,12 +64,123 @@ This section should contain new features added in this release. Sample format:
 
 * **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.
 
+* **Added i40e support for setting mac addresses.**
+
+* **Added dump of i40e registers and EEPROM.**
+
+* **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.
+
+* **Added i40e VEB switching support.**
+
+* **Added fm10k Rx interrupt support.**
+
+* **Optimized fm10k Tx.**
+
+  * Free multiple mbufs at a time to reduce freeing mbuf cycles.
+
+* **Handled error flags in fm10k vector Rx.**
+
+  Parse err flags in Rx desc and set error bits in mbuf with vector instructions.
+
+* **Added fm10k FTAG based forwarding support.**
+
+* **Added mlx5 flow director support.**
+
+  Added flow director support (RTE_FDIR_MODE_PERFECT and
+  RTE_FDIR_MODE_PERFECT_MAC_VLAN).
+
+  Only available with Mellanox OFED >= 3.2.
+
+* **Added mlx5 RX VLAN stripping support.**
+
+  Added support for RX VLAN stripping.
+
+  Only available with Mellanox OFED >= 3.2.
+
 * **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.
@@ -90,6 +201,14 @@ This section should contain new features added in this release. Sample format:
   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
 ---------------
@@ -115,6 +234,59 @@ Drivers
   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.
+
+* **mlx5: Fixed possible crash during initialization.**
+
+  A crash could occur when failing to allocate private device context.
+
+* **mlx5: Added port type check.**
+
+  Done to prevent port initialization on non-Ethernet link layers and
+  to report an error.
+
+* **mlx5: Applied VLAN filtering to broadcast and IPv6 multicast flows.**
+
+  Prevented reception of multicast frames outside of configured VLANs.
+
 * **aesni_mb: Fixed wrong return value when creating a device.**
 
   cryptodev_aesni_mb_init() was returning the device id of the device created,
@@ -122,6 +294,11 @@ Drivers
   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
 ~~~~~~~~~
@@ -135,6 +312,12 @@ Libraries
 Examples
 ~~~~~~~~
 
+* **l3fwd-power: Fixed memory leak for non-IP packet.**
+
+  Fixed issue in l3fwd-power where, on receiving packets of types
+  other than IPv4 or IPv6, the mbuf was not released, and caused
+  a memory leak.
+
 * **examples/vhost: Fixed frequent mbuf allocation failure.**
 
   vhost-switch often fails to allocate mbuf when dequeue from vring because it
@@ -164,9 +347,20 @@ This section should contain API changes. Sample format:
 * 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.