]> git.droids-corp.org - dpdk.git/commitdiff
net/bnxt: fix RSS action
authorKalesh AP <kalesh-anakkur.purayil@broadcom.com>
Wed, 27 Apr 2022 14:58:11 +0000 (20:28 +0530)
committerAjit Khaparde <ajit.khaparde@broadcom.com>
Tue, 10 May 2022 05:13:06 +0000 (07:13 +0200)
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 <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
drivers/net/bnxt/bnxt_flow.c

index 71a8edd830048fe17b86a6229c051430ca7a2aaf..bd96bbaf4c81f9a08134b443abc06747a79dadb1 100644 (file)
@@ -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) {