diff options
-rw-r--r-- | drivers/net/mlx5/mlx5_flow.c | 4 | ||||
-rw-r--r-- | drivers/net/mlx5/mlx5_rxq.c | 8 | ||||
-rw-r--r-- | drivers/net/mlx5/mlx5_rxtx.h | 3 |
3 files changed, 9 insertions, 6 deletions
diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index adda4df..923fc28 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -2879,7 +2879,9 @@ mlx5_flow_apply(struct rte_eth_dev *dev, struct rte_flow *flow, MLX5_RSS_HASH_KEY_LEN, verbs->hash_fields, (*flow->queue), - flow->rss.queue_num); + flow->rss.queue_num, + !!(flow->layers & + MLX5_FLOW_LAYER_TUNNEL)); if (!hrxq) { rte_flow_error_set (error, rte_errno, diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c index 16e1641..97b3e8e 100644 --- a/drivers/net/mlx5/mlx5_rxq.c +++ b/drivers/net/mlx5/mlx5_rxq.c @@ -1752,7 +1752,8 @@ struct mlx5_hrxq * mlx5_hrxq_new(struct rte_eth_dev *dev, const uint8_t *rss_key, uint32_t rss_key_len, uint64_t hash_fields, - const uint16_t *queues, uint32_t queues_n) + const uint16_t *queues, uint32_t queues_n, + int tunnel __rte_unused) { struct priv *priv = dev->data->dev_private; struct mlx5_hrxq *hrxq; @@ -1794,9 +1795,8 @@ mlx5_hrxq_new(struct rte_eth_dev *dev, .pd = priv->pd, }, &(struct mlx5dv_qp_init_attr){ - .comp_mask = (hash_fields & IBV_RX_HASH_INNER) ? - MLX5DV_QP_INIT_ATTR_MASK_QP_CREATE_FLAGS : - 0, + .comp_mask = tunnel ? + MLX5DV_QP_INIT_ATTR_MASK_QP_CREATE_FLAGS : 0, .create_flags = MLX5DV_QP_CREATE_TUNNEL_OFFLOADS, }); #else diff --git a/drivers/net/mlx5/mlx5_rxtx.h b/drivers/net/mlx5/mlx5_rxtx.h index 992e977..48ed2b2 100644 --- a/drivers/net/mlx5/mlx5_rxtx.h +++ b/drivers/net/mlx5/mlx5_rxtx.h @@ -283,7 +283,8 @@ void mlx5_ind_table_ibv_drop_release(struct rte_eth_dev *dev); struct mlx5_hrxq *mlx5_hrxq_new(struct rte_eth_dev *dev, const uint8_t *rss_key, uint32_t rss_key_len, uint64_t hash_fields, - const uint16_t *queues, uint32_t queues_n); + const uint16_t *queues, uint32_t queues_n, + int tunnel __rte_unused); struct mlx5_hrxq *mlx5_hrxq_get(struct rte_eth_dev *dev, const uint8_t *rss_key, uint32_t rss_key_len, uint64_t hash_fields, |