mirror of
https://github.com/torvalds/linux.git
synced 2024-11-18 10:01:43 +00:00
mlxsw: spectrum: Add mlxsw_sp.mac_mask
The Spectrum hardware demands that all router interfaces in the system have the same first 38 resp. 36 bits of MAC address: the former limit holds on Spectrum, the latter on Spectrum-2. Add a field that refers to the required prefix mask and initialize in mlxsw_sp1_init() and mlxsw_sp2_init(). Signed-off-by: Petr Machata <petrm@mellanox.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Reviewed-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
9735f2d2fe
commit
9329b8162b
@ -65,6 +65,13 @@ static const char mlxsw_sp1_driver_name[] = "mlxsw_spectrum";
|
||||
static const char mlxsw_sp2_driver_name[] = "mlxsw_spectrum2";
|
||||
static const char mlxsw_sp_driver_version[] = "1.0";
|
||||
|
||||
static const unsigned char mlxsw_sp1_mac_mask[ETH_ALEN] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xfc, 0x00
|
||||
};
|
||||
static const unsigned char mlxsw_sp2_mac_mask[ETH_ALEN] = {
|
||||
0xff, 0xff, 0xff, 0xff, 0xf0, 0x00
|
||||
};
|
||||
|
||||
/* tx_hdr_version
|
||||
* Tx header version.
|
||||
* Must be set to 1.
|
||||
@ -4083,6 +4090,7 @@ static int mlxsw_sp1_init(struct mlxsw_core *mlxsw_core,
|
||||
mlxsw_sp->mr_tcam_ops = &mlxsw_sp1_mr_tcam_ops;
|
||||
mlxsw_sp->acl_tcam_ops = &mlxsw_sp1_acl_tcam_ops;
|
||||
mlxsw_sp->nve_ops_arr = mlxsw_sp1_nve_ops_arr;
|
||||
mlxsw_sp->mac_mask = mlxsw_sp1_mac_mask;
|
||||
|
||||
return mlxsw_sp_init(mlxsw_core, mlxsw_bus_info);
|
||||
}
|
||||
@ -4098,6 +4106,7 @@ static int mlxsw_sp2_init(struct mlxsw_core *mlxsw_core,
|
||||
mlxsw_sp->mr_tcam_ops = &mlxsw_sp2_mr_tcam_ops;
|
||||
mlxsw_sp->acl_tcam_ops = &mlxsw_sp2_acl_tcam_ops;
|
||||
mlxsw_sp->nve_ops_arr = mlxsw_sp2_nve_ops_arr;
|
||||
mlxsw_sp->mac_mask = mlxsw_sp2_mac_mask;
|
||||
|
||||
return mlxsw_sp_init(mlxsw_core, mlxsw_bus_info);
|
||||
}
|
||||
|
@ -132,6 +132,7 @@ struct mlxsw_sp {
|
||||
struct mlxsw_core *core;
|
||||
const struct mlxsw_bus_info *bus_info;
|
||||
unsigned char base_mac[ETH_ALEN];
|
||||
const unsigned char *mac_mask;
|
||||
struct mlxsw_sp_upper *lags;
|
||||
int *port_to_module;
|
||||
struct mlxsw_sp_sb *sb;
|
||||
|
Loading…
Reference in New Issue
Block a user