net/mlx5: use meter color register for connection tracking
authorBing Zhao <bingz@nvidia.com>
Wed, 5 May 2021 12:23:14 +0000 (15:23 +0300)
committerRaslan Darawsheh <rasland@nvidia.com>
Wed, 5 May 2021 12:30:11 +0000 (14:30 +0200)
Based on the capacity, 3 registers could be used. Due to the register
allocation, only the one REG_C_3 for meter color could be reused
right now.

Then in the same flow, no more than one ASO action can be supported.

Signed-off-by: Bing Zhao <bingz@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
doc/guides/nics/mlx5.rst
drivers/net/mlx5/mlx5_flow.c
drivers/net/mlx5/mlx5_flow.h

index e3544bb..97a144d 100644 (file)
@@ -434,6 +434,10 @@ Limitations
       or
       flow create 0 ingress pattern integrity level is 0 value mask l4_ok value spec 0 / eth / ipv4 proto is udp / end …
 
+- Connection tracking:
+
+  - Cannot co-exist with ASO meter, ASO age action in a single flow rule.
+
 Statistics
 ----------
 
index 1923abe..8cc5fab 100644 (file)
@@ -759,7 +759,9 @@ mlx5_flow_get_reg_id(struct rte_eth_dev *dev,
                        return priv->mtr_color_reg != REG_C_2 ? REG_C_2 :
                               REG_C_3;
        case MLX5_MTR_COLOR:
-       case MLX5_ASO_FLOW_HIT: /* Both features use the same REG_C. */
+       case MLX5_ASO_FLOW_HIT:
+       case MLX5_ASO_CONNTRACK:
+               /* All features use the same REG_C. */
                MLX5_ASSERT(priv->mtr_color_reg != REG_NON);
                return priv->mtr_color_reg;
        case MLX5_COPY_MARK:
index 1e93534..6bb9b60 100644 (file)
@@ -85,6 +85,7 @@ enum mlx5_feature_name {
        MLX5_MTR_COLOR,
        MLX5_MTR_ID,
        MLX5_ASO_FLOW_HIT,
+       MLX5_ASO_CONNTRACK,
 };
 
 /* Default queue number. */