net/mlx5: add translation of connection tracking item
[dpdk.git] / drivers / net / mlx5 / mlx5.h
index 96b5ccc..a1bb779 100644 (file)
@@ -493,7 +493,10 @@ struct mlx5_aso_sq_elem {
                        uint16_t burst_size;
                };
                struct mlx5_aso_mtr *mtr;
-               struct mlx5_aso_ct_action *ct;
+               struct {
+                       struct mlx5_aso_ct_action *ct;
+                       char *query_data;
+               };
        };
 };
 
@@ -992,6 +995,10 @@ struct mlx5_bond_info {
 /* Number of connection tracking objects per pool: must be a power of 2. */
 #define MLX5_ASO_CT_ACTIONS_PER_POOL 64
 
+/* Generate incremental and unique CT index from pool and offset. */
+#define MLX5_MAKE_CT_IDX(pool, offset) \
+       ((pool) * MLX5_ASO_CT_ACTIONS_PER_POOL + (offset) + 1)
+
 /* ASO Conntrack state. */
 enum mlx5_aso_ct_state {
        ASO_CONNTRACK_FREE, /* Inactive, in the free list. */
@@ -1703,5 +1710,12 @@ int mlx5_aso_mtr_wait(struct mlx5_dev_ctx_shared *sh,
 int mlx5_aso_ct_update_by_wqe(struct mlx5_dev_ctx_shared *sh,
                              struct mlx5_aso_ct_action *ct,
                              const struct rte_flow_action_conntrack *profile);
+int mlx5_aso_ct_wait_ready(struct mlx5_dev_ctx_shared *sh,
+                          struct mlx5_aso_ct_action *ct);
+int mlx5_aso_ct_query_by_wqe(struct mlx5_dev_ctx_shared *sh,
+                            struct mlx5_aso_ct_action *ct,
+                            struct rte_flow_action_conntrack *profile);
+int mlx5_aso_ct_available(struct mlx5_dev_ctx_shared *sh,
+                         struct mlx5_aso_ct_action *ct);
 
 #endif /* RTE_PMD_MLX5_H_ */