From 202a1711a1d318d97ee1d3cb718fc3fcf6ee2dad Mon Sep 17 00:00:00 2001 From: Kalesh AP Date: Wed, 27 Apr 2022 20:28:11 +0530 Subject: [PATCH] net/bnxt: fix RSS action Specifying a subset of Rx queues created by the application in the "flow create" command is invalid. User must either specify all Rx queues created or no queues. Also removed a wrong comment as RSS action will not be supported if user or application specifies MARK or COUNT action. Fixes: 239695f754cb ("net/bnxt: enhance RSS action support") Cc: stable@dpdk.org Signed-off-by: Kalesh AP Reviewed-by: Somnath Kotur Reviewed-by: Ajit Khaparde --- drivers/net/bnxt/bnxt_flow.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/net/bnxt/bnxt_flow.c b/drivers/net/bnxt/bnxt_flow.c index 71a8edd830..bd96bbaf4c 100644 --- a/drivers/net/bnxt/bnxt_flow.c +++ b/drivers/net/bnxt/bnxt_flow.c @@ -1074,7 +1074,6 @@ bnxt_update_filter_flags_en(struct bnxt_filter_info *filter, filter1, filter->fw_l2_filter_id, filter->l2_ref_cnt); } -/* Valid actions supported along with RSS are count and mark. */ static int bnxt_validate_rss_action(const struct rte_flow_action actions[]) { @@ -1123,6 +1122,17 @@ bnxt_vnic_rss_cfg_update(struct bnxt *bp, rss = (const struct rte_flow_action_rss *)act->conf; + /* must specify either all the Rx queues created by application or zero queues */ + if (rss->queue_num && vnic->rx_queue_cnt != rss->queue_num) { + rte_flow_error_set(error, + EINVAL, + RTE_FLOW_ERROR_TYPE_ACTION, + act, + "Incorrect RXQ count"); + rc = -rte_errno; + goto ret; + } + /* Currently only Toeplitz hash is supported. */ if (rss->func != RTE_ETH_HASH_FUNCTION_DEFAULT && rss->func != RTE_ETH_HASH_FUNCTION_TOEPLITZ) { -- 2.20.1