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 9969445BCB; Fri, 25 Oct 2024 19:58:32 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 89BE540A79; Fri, 25 Oct 2024 19:58:01 +0200 (CEST) Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) by mails.dpdk.org (Postfix) with ESMTP id 5D117406B6 for ; Fri, 25 Oct 2024 19:57:54 +0200 (CEST) Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-20c7ee8fe6bso19796975ad.2 for ; Fri, 25 Oct 2024 10:57:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1729879073; x=1730483873; 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=VybKz6mvNEim2otfQ5iqiYRg5yYlVyc3UWAWlsC2ML0=; b=LofRLwImZeqIiwrJZGixJNZDt31MEW5HhBBqZX/Rp4rWyPh2gSyC/iqW9q4FZRiQKF Gq17qIHUjl39U7JzIsa+KW+LL2LBj5Qw42O7PZ3/2OcJG1rVvvVh+4sphALLGRBjY0ld FZS6D4izdkCFEboua0JeIMqggk8DbQX/Te2q8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729879073; x=1730483873; 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=VybKz6mvNEim2otfQ5iqiYRg5yYlVyc3UWAWlsC2ML0=; b=XK3GsF0W/ztOcg59ONT1sAXttYrD1Rbn7ZjsRWZyBnMDOJqMbngwWm1gRs3mTnuTse Wxofs1D616Ly2rgOphxpQusjHUjpwtP5/rdC2z9mi1bSgLehg5treDMT82SNLhwXd/a2 +d5E+XbqeesTlBun3pOlWYdGXzq02EjLknsDBoCtyzvbTkal2YEjK0Z2Vs3xwKA1p25C bURpZXIv4OGdWINx4Qy8fXqbLceZYwkzCpi80KROrzu6512eqUjuMFUE+BFUrDLelknN aM3PwlxZ27sP3SXsUe3Y7uvKySD7kuVEDLtskUthwuH62XEmDHDpkYSoKQ0H4fko6kg1 VFoA== X-Gm-Message-State: AOJu0YwNIsD2peZvPfjrhR4z5ssueRXXohvh2zNSlmLjGPyCyjDKSd2S Nj+Y2HU5uLtc0vYxoy9fuPIdHt4Pxf234agfkMX1hKo6lFXjykDxP4h9yRvCpVkqk87Q1s0ybCJ koIcpKMJHhgNpXhb0dZ8b5fSLi8REotyG1OSU2AFaVrtP7uxFwkBzD9vKr69xMzk/B9VpykdZ8K i5fWn3bwHXQ1niGDFXNCKSBxviUTv5lE8= X-Google-Smtp-Source: AGHT+IEZVj5zzgLxgW4g61Pwz7ajONThUO+cX1uHXaIsqXIcniK1TEs7CYJLuxyQ/6mRzVlbm7DTKQ== X-Received: by 2002:a17:902:ea0e:b0:20d:27f8:d72a with SMTP id d9443c01a7336-20fb9b4131cmr74604845ad.61.1729879073081; Fri, 25 Oct 2024 10:57:53 -0700 (PDT) Received: from C02GC2QQMD6T.wifi.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-210bc02ebd8sm11924335ad.210.2024.10.25.10.57.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Oct 2024 10:57:51 -0700 (PDT) From: Ajit Khaparde To: dev@dpdk.org Cc: Manish Kurup , Kalesh AP Subject: [PATCH 07/13] net/bnxt: register for and handle RSS change event Date: Fri, 25 Oct 2024 10:57:32 -0700 Message-Id: <20241025175738.99564-8-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20241025175738.99564-1-ajit.khaparde@broadcom.com> References: <20241025175738.99564-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..4ffba6f594 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 notificaton, 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)