mirror of https://gitee.com/openkylin/linux.git
mlxsw: spectrum: Check if port is vPort using its VID
When L3 interfaces will be introduced a vPort won't necessarily have a FID assigned to it. This can happen if it's not member in a bridge (in which case it's assigned a vFID) or doesn't have an IP address (in which case it's assigned an rFID). Therefore, instead check the VID parameter to test whether a port is a vPort or not. 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
14d39461b3
commit
6381b3a85f
|
@ -259,12 +259,6 @@ mlxsw_sp_port_lagged_get(struct mlxsw_sp *mlxsw_sp, u16 lag_id, u8 port_index)
|
||||||
return mlxsw_sp_port && mlxsw_sp_port->lagged ? mlxsw_sp_port : NULL;
|
return mlxsw_sp_port && mlxsw_sp_port->lagged ? mlxsw_sp_port : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool
|
|
||||||
mlxsw_sp_port_is_vport(const struct mlxsw_sp_port *mlxsw_sp_port)
|
|
||||||
{
|
|
||||||
return mlxsw_sp_port->vport.f;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline struct net_device *
|
static inline struct net_device *
|
||||||
mlxsw_sp_vport_br_get(const struct mlxsw_sp_port *mlxsw_sp_vport)
|
mlxsw_sp_vport_br_get(const struct mlxsw_sp_port *mlxsw_sp_vport)
|
||||||
{
|
{
|
||||||
|
@ -277,6 +271,14 @@ mlxsw_sp_vport_vid_get(const struct mlxsw_sp_port *mlxsw_sp_vport)
|
||||||
return mlxsw_sp_vport->vport.vid;
|
return mlxsw_sp_vport->vport.vid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool
|
||||||
|
mlxsw_sp_port_is_vport(const struct mlxsw_sp_port *mlxsw_sp_port)
|
||||||
|
{
|
||||||
|
u16 vid = mlxsw_sp_vport_vid_get(mlxsw_sp_port);
|
||||||
|
|
||||||
|
return vid != 0;
|
||||||
|
}
|
||||||
|
|
||||||
static inline u16
|
static inline u16
|
||||||
mlxsw_sp_vport_fid_get(const struct mlxsw_sp_port *mlxsw_sp_vport)
|
mlxsw_sp_vport_fid_get(const struct mlxsw_sp_port *mlxsw_sp_vport)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue