From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6994745BF5; Sun, 27 Oct 2024 18:12:22 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AA32240672; Sun, 27 Oct 2024 18:12:00 +0100 (CET) Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) by mails.dpdk.org (Postfix) with ESMTP id A1ADA40658 for ; Sun, 27 Oct 2024 18:11:53 +0100 (CET) Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-71ea2643545so2877706b3a.3 for ; Sun, 27 Oct 2024 10:11:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1730049112; x=1730653912; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PHMedVK9DLpzYFbWzfFlMI/gcRlzJbKAI5m9zjfKMHs=; b=NeayO//Af/bWbpd5jtHIfn+CDsiIyjFyaXEZ/NXafbgRMiY77cDfjM/g7cxqcGeE6b TWNphHgK4jjFQr9fkBmJHONkULHnJnjJNcyHVQ1u3Y014Dt06VHNUlAnwM8ENMWXIigp dbtLvomai45gKHAEccAqpb99x2Hbi3n53JHEI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1730049112; x=1730653912; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PHMedVK9DLpzYFbWzfFlMI/gcRlzJbKAI5m9zjfKMHs=; b=PGy3SMd86VfR+wbyBnCZMKwMwYyv1BqqkSr0BeNprnFRAFWz5F/LjzrX8ieIvVgWkZ I5A/49YK2mQ2ROIeKaVKuIGST0PUNk4nqi56PqTU8QzjvUNrtuDGWUE3VQMxo7ncztYq cdRoHf0JmSpcvUEvv4y+QIf0cTfmOunlF8H0o9wydqOqqQbhSJm2lcqTf16rZJDexryc DJcDt121SeqbNsbiOQ6aTmd6lYnGLHmutHIRQQ9MNDgSUOUcTMkbL+7Ib+M05PE9unLV yjS2nsrJ2ZoW8ms6YY6AEWPVDQkQ2dbj78QXgcGoC19FuqkXDnaPqpTWbg2bNoWsASde diGQ== X-Gm-Message-State: AOJu0YymJUxZ/z3GeuXlne0n9jZJwVXq0P1OC+BkNLalo+t71f8un1Sd sTBYf1OtSpSlJZ21OWS1boehOup35G7nQYDgQgplDCXhlBAr/20v0m5X6JjEo8Nd4slv06dtWx3 PUNyLC9ypIfWD7j5D9YaDjUCDW0t4R8ccJ9xzkPScm2LeqQwCWmZG+0qnqe5pBZnZ4+z6CNuWSS D2g3UrmR1UPJop7BoYA4AI9ZATMDq6Vqs= X-Google-Smtp-Source: AGHT+IHnrGiGPZL//5DmNcBM82tjmyUPIajb0/LR1v2uQuSDdrFYaD5azsT608UoMhooDZZ9RuEo2Q== X-Received: by 2002:a05:6a00:3929:b0:71e:2a0:b0d0 with SMTP id d2e1a72fcca58-72062fd4b4bmr9479987b3a.13.1730049112080; Sun, 27 Oct 2024 10:11:52 -0700 (PDT) Received: from localhost.localdomain ([136.52.21.78]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-72057a21ccesm4269158b3a.167.2024.10.27.10.11.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 27 Oct 2024 10:11:50 -0700 (PDT) From: Ajit Khaparde To: dev@dpdk.org Cc: Manish Kurup , Kalesh AP Subject: [PATCH v2 07/13] net/bnxt: register for and handle RSS change event Date: Sun, 27 Oct 2024 10:11:22 -0700 Message-Id: <20241027171128.50221-8-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20241027171128.50221-1-ajit.khaparde@broadcom.com> References: <20241027171128.50221-1-ajit.khaparde@broadcom.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Manish Kurup 1. Register for RSS change events. When an RSS change occurs (especially for custom parsed tunnels), we need to update the RSS flags in the VNIC QCAPS so that upstream drivers don't send down the now unsupported bits ("config port all rss all" command). This will cause the firmware to fail the HWRM command. This should be done by the driver registering for said events, and re-reading the VNIC QCAPS for that bp. 2. Add a call to update QCAPS upon async notifications for the same. 3. Fix bug in PMD QCAPS update code The PMD QCAPS function only "sets" the new QCAPS flags, but not clearing them, if they were cleared due to some events. Fixed this by clearing the flags first, so that we could correctly set the new ones (for that bp). Signed-off-by: Manish Kurup Reviewed-by: Kalesh AP Reviewed-by: Ajit Khaparde --- drivers/net/bnxt/bnxt_cpr.c | 6 ++++++ drivers/net/bnxt/bnxt_hwrm.c | 5 ++++- drivers/net/bnxt/bnxt_hwrm.h | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/net/bnxt/bnxt_cpr.c b/drivers/net/bnxt/bnxt_cpr.c index 455240a09d..ac1d537bc9 100644 --- a/drivers/net/bnxt/bnxt_cpr.c +++ b/drivers/net/bnxt/bnxt_cpr.c @@ -294,6 +294,12 @@ void bnxt_handle_async_event(struct bnxt *bp, case HWRM_ASYNC_EVENT_CMPL_EVENT_ID_VF_FLR: bnxt_process_vf_flr(bp, data1); break; + case HWRM_ASYNC_EVENT_CMPL_EVENT_ID_RSS_CHANGE: + /* RSS change notification, re-read QCAPS */ + PMD_DRV_LOG_LINE(INFO, "Async event: RSS change event [%#x, %#x]", + data1, data2); + bnxt_hwrm_vnic_qcaps(bp); + break; default: PMD_DRV_LOG_LINE(DEBUG, "handle_async_event id = 0x%x", event_id); break; diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index 1ac4b8cd58..80f7c1a6a1 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -1307,6 +1307,8 @@ int bnxt_hwrm_vnic_qcaps(struct bnxt *bp) HWRM_CHECK_RESULT(); + bp->vnic_cap_flags = 0; + flags = rte_le_to_cpu_32(resp->flags); if (flags & HWRM_VNIC_QCAPS_OUTPUT_FLAGS_COS_ASSIGNMENT_CAP) { @@ -1444,7 +1446,8 @@ int bnxt_hwrm_func_driver_register(struct bnxt *bp) req.async_event_fwd[2] |= rte_cpu_to_le_32(ASYNC_CMPL_EVENT_ID_ECHO_REQUEST | - ASYNC_CMPL_EVENT_ID_ERROR_REPORT); + ASYNC_CMPL_EVENT_ID_ERROR_REPORT | + ASYNC_CMPL_EVENT_ID_RSS_CHANGE); rc = bnxt_hwrm_send_message(bp, &req, sizeof(req), BNXT_USE_CHIMP_MB); diff --git a/drivers/net/bnxt/bnxt_hwrm.h b/drivers/net/bnxt/bnxt_hwrm.h index 2346ae637d..ecb6335b3d 100644 --- a/drivers/net/bnxt/bnxt_hwrm.h +++ b/drivers/net/bnxt/bnxt_hwrm.h @@ -41,6 +41,8 @@ struct hwrm_func_qstats_output; (1 << (HWRM_ASYNC_EVENT_CMPL_EVENT_ID_ECHO_REQUEST - 64)) #define ASYNC_CMPL_EVENT_ID_ERROR_REPORT \ (1 << (HWRM_ASYNC_EVENT_CMPL_EVENT_ID_ERROR_REPORT - 64)) +#define ASYNC_CMPL_EVENT_ID_RSS_CHANGE \ + (1 << (HWRM_ASYNC_EVENT_CMPL_EVENT_ID_RSS_CHANGE - 64)) #define HWRM_QUEUE_SERVICE_PROFILE_LOSSY \ HWRM_QUEUE_QPORTCFG_OUTPUT_QUEUE_ID0_SERVICE_PROFILE_LOSSY -- 2.39.5 (Apple Git-154)