netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ido Schimmel <idosch@nvidia.com>
To: netdev@vger.kernel.org
Cc: davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com,
	edumazet@google.com, petrm@nvidia.com, amcohen@nvidia.com,
	mlxsw@nvidia.com, Ido Schimmel <idosch@nvidia.com>
Subject: [PATCH net-next 06/13] mlxsw: reg: Add SMPE related fields to SFMR register
Date: Sun, 19 Jun 2022 13:29:14 +0300	[thread overview]
Message-ID: <20220619102921.33158-7-idosch@nvidia.com> (raw)
In-Reply-To: <20220619102921.33158-1-idosch@nvidia.com>

From: Amit Cohen <amcohen@nvidia.com>

SFMR register creates and configures FIDs. As preparation unified bridge
model, add some required fields for future use.

The device includes two main tables to support layer 2 multicast (i.e.,
MDB and flooding). These are the PGT (Port Group Table) and the
MPE (Multicast Port Egress) table.
- PGT is {MID -> (bitmap of local_port, SPME index)}
- MPE is {(Local port, SMPE index) -> eVID}

In Spectrum-2 and later ASICs, the SMPE index is an attribute of the FID
and programmed via new fields in SFMR register - 'smpe_valid' and 'smpe'.

Add the two mentioned fields for future use and increase the length of
the register accordingly.

Signed-off-by: Amit Cohen <amcohen@nvidia.com>
Reviewed-by: Danielle Ratson <danieller@nvidia.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
 drivers/net/ethernet/mellanox/mlxsw/reg.h | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/reg.h b/drivers/net/ethernet/mellanox/mlxsw/reg.h
index 62e1c2ffb27f..d30b32c02cfb 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/reg.h
+++ b/drivers/net/ethernet/mellanox/mlxsw/reg.h
@@ -1761,7 +1761,7 @@ static inline void mlxsw_reg_svpe_pack(char *payload, u16 local_port,
  * Creates and configures FIDs.
  */
 #define MLXSW_REG_SFMR_ID 0x201F
-#define MLXSW_REG_SFMR_LEN 0x18
+#define MLXSW_REG_SFMR_LEN 0x30
 
 MLXSW_REG_DEFINE(sfmr, MLXSW_REG_SFMR_ID, MLXSW_REG_SFMR_LEN);
 
@@ -1858,6 +1858,25 @@ MLXSW_ITEM32(reg, sfmr, irif_v, 0x14, 24, 1);
  */
 MLXSW_ITEM32(reg, sfmr, irif, 0x14, 0, 16);
 
+/* reg_sfmr_smpe_valid
+ * SMPE is valid.
+ * Access: RW
+ *
+ * Note: Reserved when legacy bridge model is used, when flood_rsp=1 and on
+ * Spectrum-1.
+ */
+MLXSW_ITEM32(reg, sfmr, smpe_valid, 0x28, 20, 1);
+
+/* reg_sfmr_smpe
+ * Switch multicast port to egress VID.
+ * Range is 0..cap_max_rmpe-1
+ * Access: RW
+ *
+ * Note: Reserved when legacy bridge model is used, when flood_rsp=1 and on
+ * Spectrum-1.
+ */
+MLXSW_ITEM32(reg, sfmr, smpe, 0x28, 0, 16);
+
 static inline void mlxsw_reg_sfmr_pack(char *payload,
 				       enum mlxsw_reg_sfmr_op op, u16 fid,
 				       u16 fid_offset)
-- 
2.36.1


  parent reply	other threads:[~2022-06-19 10:30 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-19 10:29 [PATCH net-next 00/13] mlxsw: Unified bridge conversion - part 1/6 Ido Schimmel
2022-06-19 10:29 ` [PATCH net-next 01/13] mlxsw: reg: Add 'flood_rsp' field to SFMR register Ido Schimmel
2022-06-19 10:29 ` [PATCH net-next 02/13] mlxsw: reg: Add ingress RIF related fields " Ido Schimmel
2022-06-19 10:29 ` [PATCH net-next 03/13] mlxsw: reg: Add ingress RIF related fields to SVFA register Ido Schimmel
2022-06-19 10:29 ` [PATCH net-next 04/13] mlxsw: reg: Add Switch Multicast Port to Egress VID Register Ido Schimmel
2022-06-19 10:29 ` [PATCH net-next 05/13] mlxsw: Add SMPE related fields to SMID2 register Ido Schimmel
2022-06-19 10:29 ` Ido Schimmel [this message]
2022-06-19 10:29 ` [PATCH net-next 07/13] mlxsw: reg: Add VID related fields to SFD register Ido Schimmel
2022-06-19 10:29 ` [PATCH net-next 08/13] mlxsw: reg: Add flood related field to SFMR register Ido Schimmel
2022-06-19 10:29 ` [PATCH net-next 09/13] mlxsw: reg: Replace MID related fields in SFGC register Ido Schimmel
2022-06-19 10:29 ` [PATCH net-next 10/13] mlxsw: reg: Add Router Egress Interface to VID Register Ido Schimmel
2022-06-19 10:29 ` [PATCH net-next 11/13] mlxsw: reg: Add egress FID field to RITR register Ido Schimmel
2022-06-19 10:29 ` [PATCH net-next 12/13] mlxsw: Add support for egress FID classification after decapsulation Ido Schimmel
2022-06-19 10:29 ` [PATCH net-next 13/13] mlxsw: reg: Add support for VLAN RIF as part of RITR register Ido Schimmel
2022-06-20  9:10 ` [PATCH net-next 00/13] mlxsw: Unified bridge conversion - part 1/6 patchwork-bot+netdevbpf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220619102921.33158-7-idosch@nvidia.com \
    --to=idosch@nvidia.com \
    --cc=amcohen@nvidia.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=kuba@kernel.org \
    --cc=mlxsw@nvidia.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=petrm@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).