net/mlx5: support VXLAN encap action in sampling
authorSalem Sol <salems@nvidia.com>
Wed, 7 Apr 2021 11:48:56 +0000 (14:48 +0300)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 7 Apr 2021 23:09:24 +0000 (01:09 +0200)
Add support for VXLAN encap as a sample action
and validate it.

Signed-off-by: Salem Sol <salems@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
doc/guides/nics/mlx5.rst
doc/guides/rel_notes/release_21_05.rst
drivers/net/mlx5/mlx5_flow_dv.c

index 8703435..f3bb464 100644 (file)
@@ -376,8 +376,8 @@ Limitations
     encapsulation actions.
   - For NIC Rx flow, supports ``MARK``, ``COUNT``, ``QUEUE``, ``RSS`` in the
     sample actions list.
-  - For E-Switch mirroring flow, supports ``RAW ENCAP``, ``Port ID`` in the
-    sample actions list.
+  - For E-Switch mirroring flow, supports ``RAW ENCAP``, ``Port ID``,
+    ``VXLAN ENCAP`` in the sample actions list.
 
 - Modify Field flow:
 
index fadcf68..24ea62e 100644 (file)
@@ -113,6 +113,12 @@ New Features
 
   * Added Intel ice support on Windows.
 
+* **Updated Mellanox mlx5 driver.**
+
+  Updated the Mellanox mlx5 driver with new features and improvements, including:
+
+  * Added support for VXLAN encap as a sample action.
+
 * **Updated NXP DPAA driver.**
 
   * Added support for shared ethernet interface.
index 6915959..f603091 100644 (file)
@@ -5258,6 +5258,16 @@ flow_dv_validate_action_sample(uint64_t *action_flags,
                                return ret;
                        ++actions_n;
                        break;
+               case RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP:
+                       ret = flow_dv_validate_action_l2_encap(dev,
+                                                              sub_action_flags,
+                                                              act, attr,
+                                                              error);
+                       if (ret < 0)
+                               return ret;
+                       sub_action_flags |= MLX5_FLOW_ACTION_ENCAP;
+                       ++actions_n;
+                       break;
                default:
                        return rte_flow_error_set(error, ENOTSUP,
                                                  RTE_FLOW_ERROR_TYPE_ACTION,
@@ -10420,6 +10430,7 @@ flow_dv_translate_action_sample(struct rte_eth_dev *dev,
                        action_flags |= MLX5_FLOW_ACTION_PORT_ID;
                        break;
                }
+               case RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP:
                case RTE_FLOW_ACTION_TYPE_RAW_ENCAP:
                        /* Save the encap resource before sample */
                        pre_rix = dev_flow->handle->dvh.rix_encap_decap;