net/mlx5: fix shared RSS action update
[dpdk.git] / drivers / net / mlx5 / mlx5_flow.h
index bccb973..a249c29 100644 (file)
@@ -80,6 +80,7 @@ enum mlx5_feature_name {
        MLX5_COPY_MARK,
        MLX5_MTR_COLOR,
        MLX5_MTR_SFX,
+       MLX5_ASO_FLOW_HIT,
 };
 
 /* Default queue number. */
@@ -563,6 +564,7 @@ struct mlx5_flow_dv_sample_resource {
                void *verbs_action; /**< Verbs sample action object. */
                void **sub_actions; /**< Sample sub-action array. */
        };
+       struct rte_eth_dev *dev; /**< Device registers the action. */
        uint32_t idx; /** Sample object index. */
        uint8_t ft_type; /** Flow Table Type */
        uint32_t ft_id; /** Flow Table Level */
@@ -584,6 +586,7 @@ struct mlx5_flow_dv_dest_array_resource {
        uint32_t idx; /** Destination array action object index. */
        uint8_t ft_type; /** Flow Table Type */
        uint8_t num_of_dest; /**< Number of destination actions. */
+       struct rte_eth_dev *dev; /**< Device registers the action. */
        void *action; /**< Pointer to the rdma core action. */
        struct mlx5_flow_sub_actions_idx sample_idx[MLX5_MAX_DEST_NUM];
        /**< Action index resources. */
@@ -1076,11 +1079,13 @@ struct mlx5_shared_action_rss {
        uint32_t refcnt; /**< Atomically accessed refcnt. */
        struct rte_flow_action_rss origin; /**< Original rte RSS action. */
        uint8_t key[MLX5_RSS_HASH_KEY_LEN]; /**< RSS hash key. */
-       uint16_t *queue; /**< Queue indices to use. */
+       struct mlx5_ind_table_obj *ind_tbl;
+       /**< Hash RX queues (hrxq, hrxq_tunnel fields) indirection table. */
        uint32_t hrxq[MLX5_RSS_HASH_FIELDS_LEN];
        /**< Hash RX queue indexes mapped to mlx5_rss_hash_fields */
        uint32_t hrxq_tunnel[MLX5_RSS_HASH_FIELDS_LEN];
        /**< Hash RX queue indexes for tunneled RSS */
+       rte_spinlock_t action_rss_sl; /**< Shared RSS action spinlock. */
 };
 
 struct rte_flow_shared_action {