From patchwork Tue Feb 4 01:00:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 13958494 X-Patchwork-Delegate: kuba@kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 35A1125A629 for ; Tue, 4 Feb 2025 01:00:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738630843; cv=none; b=id9Sk0fsiv8bE3iUC+dVrHVFkTSMcDUkasmC5YGAUguG62cyCGZ9SJGYpWdyQTuNSHDnR6mEsR0RVEtJxYpJSuk2X4ErEqquHIFLtGrbrNVwaINUJLDhogXSDXOmrfn9haVkAxwVmxlZpXEKDsrGTVVM8tU1hYtXBgWMpgBoR3c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738630843; c=relaxed/simple; bh=+5KFGTo9JUmFlBPqrDaDhkKoPImfp084alANDYfLkOo=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Jjk05AX0DY2hK09yj6iiQiPxNbvajr3j0VQufePy6SBj5MnosEc9ZrNJLs2mXIP60IdgmBEIQI9rr0atnuM3GLD6HHweGSXlf/zG+wZulbaMEO3+q7L/NPnrtpz0Up9kKKZuAT8eQrxumNqDL9W6wAtWIEWk36IMz1a7qZXQAZE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XStiF7wu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XStiF7wu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4FB61C4CEE0; Tue, 4 Feb 2025 01:00:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1738630842; bh=+5KFGTo9JUmFlBPqrDaDhkKoPImfp084alANDYfLkOo=; h=From:To:Cc:Subject:Date:From; b=XStiF7wuoZL18BcpP3BP7q1GlPP53WmDOaJjfXP3LEzo4jpnDAMo1fnfqj+LtckkP JgTiM3IrdhUcAbuIgRtX7bHvU8IZAp7zPtrJ+clWvq+mTbZ8xl6+JKBcmgc/ZSDNa7 NJAfQIUV2DJxA5yF/gtLDDrifOr0RCiAWqTpP7bC4mT+Gdul9oqaZf3Rm3LQZGZXNe HIearq6H4r8e6ExPbP+duGKsF9OSusY0On5Ot90AbuDtdrnR3Vj+T96ly/HPdPL4WB 7NKKdez+brCmCC2aE5FO+5cLb70LLam2iT+Pyjl9O31zg/fQvY7E/Q2gSFBuzISjFp mIXluC29i1BrA== From: Jakub Kicinski To: davem@davemloft.net Cc: netdev@vger.kernel.org, edumazet@google.com, pabeni@redhat.com, andrew+netdev@lunn.ch, horms@kernel.org, Alexander Duyck , Jakub Kicinski Subject: [PATCH net-next 1/2] eth: fbnic: add MAC address TCAM to debugfs Date: Mon, 3 Feb 2025 17:00:37 -0800 Message-ID: <20250204010038.1404268-1-kuba@kernel.org> X-Mailer: git-send-email 2.48.1 Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org From: Alexander Duyck Add read only access to the 32-entry MAC address TCAM via debugfs. BMC filtering shares the same table so this is quite useful to access during debug. See next commit for an example output. Signed-off-by: Alexander Duyck Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman --- .../net/ethernet/meta/fbnic/fbnic_debugfs.c | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c b/drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c index 59951b5abdb7..ac80981f67c0 100644 --- a/drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c +++ b/drivers/net/ethernet/meta/fbnic/fbnic_debugfs.c @@ -10,6 +10,40 @@ static struct dentry *fbnic_dbg_root; +static void fbnic_dbg_desc_break(struct seq_file *s, int i) +{ + while (i--) + seq_putc(s, '-'); + + seq_putc(s, '\n'); +} + +static int fbnic_dbg_mac_addr_show(struct seq_file *s, void *v) +{ + struct fbnic_dev *fbd = s->private; + char hdr[80]; + int i; + + /* Generate Header */ + snprintf(hdr, sizeof(hdr), "%3s %s %-17s %s\n", + "Idx", "S", "TCAM Bitmap", "Addr/Mask"); + seq_puts(s, hdr); + fbnic_dbg_desc_break(s, strnlen(hdr, sizeof(hdr))); + + for (i = 0; i < FBNIC_RPC_TCAM_MACDA_NUM_ENTRIES; i++) { + struct fbnic_mac_addr *mac_addr = &fbd->mac_addr[i]; + + seq_printf(s, "%02d %d %64pb %pm\n", + i, mac_addr->state, mac_addr->act_tcam, + mac_addr->value.addr8); + seq_printf(s, " %pm\n", + mac_addr->mask.addr8); + } + + return 0; +} +DEFINE_SHOW_ATTRIBUTE(fbnic_dbg_mac_addr); + static int fbnic_dbg_pcie_stats_show(struct seq_file *s, void *v) { struct fbnic_dev *fbd = s->private; @@ -48,6 +82,8 @@ void fbnic_dbg_fbd_init(struct fbnic_dev *fbd) fbd->dbg_fbd = debugfs_create_dir(name, fbnic_dbg_root); debugfs_create_file("pcie_stats", 0400, fbd->dbg_fbd, fbd, &fbnic_dbg_pcie_stats_fops); + debugfs_create_file("mac_addr", 0400, fbd->dbg_fbd, fbd, + &fbnic_dbg_mac_addr_fops); } void fbnic_dbg_fbd_exit(struct fbnic_dev *fbd) From patchwork Tue Feb 4 01:00:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Kicinski X-Patchwork-Id: 13958495 X-Patchwork-Delegate: kuba@kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 458594414 for ; Tue, 4 Feb 2025 01:00:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738630843; cv=none; b=BmC604214JI+/NqiK8ZlcAw/KCuI60o2vnAqFOIYckmX3vZXPrzBMq17TX5E4nXxtEtzw+8ZXooExC9WoG1VIqk9Eha76mJUhgcZEStlCE4WWBmkxJyn802BkR0+P+uYW8TXX7s8Vr5u9UUwiPexLYH8XHjbJ2aVrb6AfaSSkQI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738630843; c=relaxed/simple; bh=/LT7a7JbVtF0LJ6nsBbcPKTZwSCqkIHuFdN5EjnSXeI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=W2cdeO7pq08alFp1SZppeoSmmBnmMcnbiP/x2q7KPdXKINlnwsUSuxgleTZbRNL7PNm+vyWzVACyJgmaMJAjDJ+ubJuRBxQkWgYtWkepKtIbh2MA9vpK2CwfYsbwsKyupWlAQ+/3LoxcxXMkb012LwyVfH9r/PpAYaV1XRUGLZs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SJNomNok; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SJNomNok" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B83D6C4CEE6; Tue, 4 Feb 2025 01:00:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1738630843; bh=/LT7a7JbVtF0LJ6nsBbcPKTZwSCqkIHuFdN5EjnSXeI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SJNomNokouhokZH51LzO9YoBm1Vgnda6A1EflMsLxZvvjqIjknf8qlOOZSid7AlnV DuIQKgcmhYmxxNH/fsqJFI4ei9Spz/ALnRLfvjjNaoFstOKE1GJnKWDyWphGWADVc7 qDmfe8FH2d8aHdQ0zpC19tOZDWKiO59q4nbquFSkX/vvouIjo4+qsaesXGcZ41kA9X MJwwoF0r1YPOd25v4eRWltLyQP8ote9YWka/k65KeJD/r2NSkU+Bv7DWMHxBT177UF GV8yT7t/HXmPeccW6NW3K7+R5JrblP84V4rKNyU/CQsjkVmHQmc5kgskz+N9SlRBr3 PKOkQ20woDzSw== From: Jakub Kicinski To: davem@davemloft.net Cc: netdev@vger.kernel.org, edumazet@google.com, pabeni@redhat.com, andrew+netdev@lunn.ch, horms@kernel.org, Alexander Duyck , Jakub Kicinski Subject: [PATCH net-next 2/2] eth: fbnic: set IFF_UNICAST_FLT to avoid enabling promiscuous mode when adding unicast addrs Date: Mon, 3 Feb 2025 17:00:38 -0800 Message-ID: <20250204010038.1404268-2-kuba@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250204010038.1404268-1-kuba@kernel.org> References: <20250204010038.1404268-1-kuba@kernel.org> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org From: Alexander Duyck I realized when we were adding unicast addresses we were enabling promiscous mode. I did a bit of digging and realized we had overlooked setting the driver private flag to indicate we supported unicast filtering. Example below shows the table with 00deadbeef01 as the main NIC address, and 5 additional addresses in the 00deadbeefX0 format. # cat $dbgfs/mac_addr Idx S TCAM Bitmap Addr/Mask ---------------------------------- 00 0 00000000,00000000 000000000000 000000000000 01 0 00000000,00000000 000000000000 000000000000 02 0 00000000,00000000 000000000000 000000000000 ... 24 0 00000000,00000000 000000000000 000000000000 25 1 00100000,00000000 00deadbeef50 000000000000 26 1 00100000,00000000 00deadbeef40 000000000000 27 1 00100000,00000000 00deadbeef30 000000000000 28 1 00100000,00000000 00deadbeef20 000000000000 29 1 00100000,00000000 00deadbeef10 000000000000 30 1 00100000,00000000 00deadbeef01 000000000000 31 0 00000000,00000000 000000000000 000000000000 Before rule 31 would be active. With this change it correctly sticks to just the unicast filters. Signed-off-by: Alexander Duyck Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman --- drivers/net/ethernet/meta/fbnic/fbnic_netdev.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/ethernet/meta/fbnic/fbnic_netdev.c b/drivers/net/ethernet/meta/fbnic/fbnic_netdev.c index 7a96b6ee773f..1db57c42333e 100644 --- a/drivers/net/ethernet/meta/fbnic/fbnic_netdev.c +++ b/drivers/net/ethernet/meta/fbnic/fbnic_netdev.c @@ -628,6 +628,8 @@ struct net_device *fbnic_netdev_alloc(struct fbnic_dev *fbd) fbnic_rss_key_fill(fbn->rss_key); fbnic_rss_init_en_mask(fbn); + netdev->priv_flags |= IFF_UNICAST_FLT; + netdev->features |= NETIF_F_RXHASH | NETIF_F_SG |