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: Ido Schimmel <idosch@mellanox.com> Signed-off-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
bc2055f878
commit
453b6a8dd8
|
@ -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);
|
||||
|
||||
/* 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
|
||||
* Maximum number of multicast FDB records for InfiniBand
|
||||
* FDB (in 512 chunks) per InfiniBand switch partition.
|
||||
|
|
|
@ -153,6 +153,8 @@ struct mlxsw_config_profile {
|
|||
u8 max_flood_tables;
|
||||
u8 max_vid_flood_tables;
|
||||
u8 flood_mode;
|
||||
u8 max_fid_flood_tables;
|
||||
u16 fid_flood_table_size;
|
||||
u16 max_ib_mc;
|
||||
u16 max_pkey;
|
||||
u8 ar_sec;
|
||||
|
|
|
@ -1214,6 +1214,10 @@ static int mlxsw_pci_config_profile(struct mlxsw_pci *mlxsw_pci, char *mbox,
|
|||
mbox, profile->max_flood_tables);
|
||||
mlxsw_cmd_mbox_config_profile_max_vid_flood_tables_set(
|
||||
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) {
|
||||
mlxsw_cmd_mbox_config_profile_set_flood_mode_set(
|
||||
|
|
Loading…
Reference in New Issue