net/mlx5: fix shared age action validation
[dpdk.git] / drivers / net / mlx5 / mlx5.h
index b0c3a22..121d726 100644 (file)
@@ -258,30 +258,12 @@ struct mlx5_dev_config {
 };
 
 
-/**
- * Type of object being allocated.
- */
-enum mlx5_verbs_alloc_type {
-       MLX5_VERBS_ALLOC_TYPE_NONE,
-       MLX5_VERBS_ALLOC_TYPE_TX_QUEUE,
-       MLX5_VERBS_ALLOC_TYPE_RX_QUEUE,
-};
-
 /* Structure for VF VLAN workaround. */
 struct mlx5_vf_vlan {
        uint32_t tag:12;
        uint32_t created:1;
 };
 
-/**
- * Verbs allocator needs a context to know in the callback which kind of
- * resources it is allocating.
- */
-struct mlx5_verbs_alloc_ctx {
-       enum mlx5_verbs_alloc_type type; /* Kind of object being allocated. */
-       const void *obj; /* Pointer to the DPDK object. */
-};
-
 /* Flow drop context necessary due to Verbs API. */
 struct mlx5_drop {
        struct mlx5_hrxq *hrxq; /* Hash Rx queue queue. */
@@ -791,6 +773,8 @@ struct mlx5_flow_rss_desc {
        uint32_t key_len; /**< RSS hash key len. */
        uint32_t tunnel; /**< Queue in tunnel. */
        uint32_t shared_rss; /**< Shared RSS index. */
+       struct mlx5_ind_table_obj *ind_tbl;
+       /**< Indirection table for shared RSS hash RX queues. */
        union {
                uint16_t *queue; /**< Destination queues. */
                const uint16_t *const_q; /**< Const pointer convert. */
@@ -830,7 +814,7 @@ struct mlx5_ind_table_obj {
                struct mlx5_devx_obj *rqt; /* DevX RQT object. */
        };
        uint32_t queues_n; /**< Number of queues in the list. */
-       uint16_t queues[]; /**< Queue list. */
+       uint16_t *queues; /**< Queue list. */
 };
 
 /* Hash Rx queue. */
@@ -906,6 +890,10 @@ struct mlx5_obj_ops {
        void (*rxq_obj_release)(struct mlx5_rxq_obj *rxq_obj);
        int (*ind_table_new)(struct rte_eth_dev *dev, const unsigned int log_n,
                             struct mlx5_ind_table_obj *ind_tbl);
+       int (*ind_table_modify)(struct rte_eth_dev *dev,
+                               const unsigned int log_n,
+                               const uint16_t *queues, const uint32_t queues_n,
+                               struct mlx5_ind_table_obj *ind_tbl);
        void (*ind_table_destroy)(struct mlx5_ind_table_obj *ind_tbl);
        int (*hrxq_new)(struct rte_eth_dev *dev, struct mlx5_hrxq *hrxq,
                        int tunnel __rte_unused);
@@ -983,7 +971,6 @@ struct mlx5_priv {
        struct mlx5_xstats_ctrl xstats_ctrl; /* Extended stats control. */
        struct mlx5_stats_ctrl stats_ctrl; /* Stats control. */
        struct mlx5_dev_config config; /* Device configuration. */
-       struct mlx5_verbs_alloc_ctx verbs_alloc_ctx;
        /* Context for Verbs allocator. */
        int nl_socket_rdma; /* Netlink socket (NETLINK_RDMA). */
        int nl_socket_route; /* Netlink socket (NETLINK_ROUTE). */