Commit 453b6a8d authored by Ido Schimmel's avatar Ido Schimmel Committed by David S. Miller

mlxsw: cmd: Introduce per-FID flooding tables

In the newly introduced Spectrum switch ASIC, packets destined to not
offloaded netdevs will be classified to special FIDs (vFIDs) in the
device and flooded to the CPU port.

The flooding table used is of type per-FID, which allows one to create
different flooding domains for different vFIDs.

While using a simple single-entry flood table is certainly sufficient at
this point, we do plan to offload 802.1D bridges involving VLAN
interfaces, thus making this change necessary.

Add support for this flooding table type, by exposing the configuration
of the number of tables from this type and their size.
Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
Signed-off-by: default avatarJiri Pirko <jiri@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bc2055f8
...@@ -674,6 +674,19 @@ MLXSW_ITEM32(cmd_mbox, config_profile, max_vid_flood_tables, 0x30, 8, 4); ...@@ -674,6 +674,19 @@ MLXSW_ITEM32(cmd_mbox, config_profile, max_vid_flood_tables, 0x30, 8, 4);
*/ */
MLXSW_ITEM32(cmd_mbox, config_profile, flood_mode, 0x30, 0, 2); MLXSW_ITEM32(cmd_mbox, config_profile, flood_mode, 0x30, 0, 2);
/* cmd_mbox_config_profile_max_fid_flood_tables
* Maximum number of per-FID flooding tables.
*
* Note: This flooding tables cover special FIDs only (vFIDs), starting at
* FID value 4K and higher.
*/
MLXSW_ITEM32(cmd_mbox, config_profile, max_fid_flood_tables, 0x38, 24, 4);
/* cmd_mbox_config_profile_fid_flood_table_size
* The size (number of entries) of each per-FID table.
*/
MLXSW_ITEM32(cmd_mbox, config_profile, fid_flood_table_size, 0x38, 0, 16);
/* cmd_mbox_config_profile_max_ib_mc /* cmd_mbox_config_profile_max_ib_mc
* Maximum number of multicast FDB records for InfiniBand * Maximum number of multicast FDB records for InfiniBand
* FDB (in 512 chunks) per InfiniBand switch partition. * FDB (in 512 chunks) per InfiniBand switch partition.
......
...@@ -153,6 +153,8 @@ struct mlxsw_config_profile { ...@@ -153,6 +153,8 @@ struct mlxsw_config_profile {
u8 max_flood_tables; u8 max_flood_tables;
u8 max_vid_flood_tables; u8 max_vid_flood_tables;
u8 flood_mode; u8 flood_mode;
u8 max_fid_flood_tables;
u16 fid_flood_table_size;
u16 max_ib_mc; u16 max_ib_mc;
u16 max_pkey; u16 max_pkey;
u8 ar_sec; u8 ar_sec;
......
...@@ -1214,6 +1214,10 @@ static int mlxsw_pci_config_profile(struct mlxsw_pci *mlxsw_pci, char *mbox, ...@@ -1214,6 +1214,10 @@ static int mlxsw_pci_config_profile(struct mlxsw_pci *mlxsw_pci, char *mbox,
mbox, profile->max_flood_tables); mbox, profile->max_flood_tables);
mlxsw_cmd_mbox_config_profile_max_vid_flood_tables_set( mlxsw_cmd_mbox_config_profile_max_vid_flood_tables_set(
mbox, profile->max_vid_flood_tables); mbox, profile->max_vid_flood_tables);
mlxsw_cmd_mbox_config_profile_max_fid_flood_tables_set(
mbox, profile->max_fid_flood_tables);
mlxsw_cmd_mbox_config_profile_fid_flood_table_size_set(
mbox, profile->fid_flood_table_size);
} }
if (profile->used_flood_mode) { if (profile->used_flood_mode) {
mlxsw_cmd_mbox_config_profile_set_flood_mode_set( mlxsw_cmd_mbox_config_profile_set_flood_mode_set(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment