mirror of https://gitee.com/openkylin/linux.git
mlxsw: spectrum_switchdev: Create common functions for VLAN-aware bridge
The code in mlxsw_sp_bridge_8021q_port_{join, leave}() can be used also for 802.1ad bridge. Move the code to functions called mlxsw_sp_bridge_vlan_aware_port_{join, leave}() and call them from mlxsw_sp_bridge_8021q_port_{join, leave}() respectively to enable code reuse. Signed-off-by: Amit Cohen <amcohen@nvidia.com> Reviewed-by: Petr Machata <petrm@nvidia.com> Signed-off-by: Ido Schimmel <idosch@nvidia.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
3ae7a65b64
commit
773ce33a48
|
@ -1979,10 +1979,9 @@ static struct mlxsw_sp_port *mlxsw_sp_lag_rep_port(struct mlxsw_sp *mlxsw_sp,
|
|||
}
|
||||
|
||||
static int
|
||||
mlxsw_sp_bridge_8021q_port_join(struct mlxsw_sp_bridge_device *bridge_device,
|
||||
struct mlxsw_sp_bridge_port *bridge_port,
|
||||
struct mlxsw_sp_port *mlxsw_sp_port,
|
||||
struct netlink_ext_ack *extack)
|
||||
mlxsw_sp_bridge_vlan_aware_port_join(struct mlxsw_sp_bridge_port *bridge_port,
|
||||
struct mlxsw_sp_port *mlxsw_sp_port,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
if (is_vlan_dev(bridge_port->dev)) {
|
||||
NL_SET_ERR_MSG_MOD(extack, "Can not enslave a VLAN device to a VLAN-aware bridge");
|
||||
|
@ -1996,14 +1995,30 @@ mlxsw_sp_bridge_8021q_port_join(struct mlxsw_sp_bridge_device *bridge_device,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
mlxsw_sp_bridge_8021q_port_join(struct mlxsw_sp_bridge_device *bridge_device,
|
||||
struct mlxsw_sp_bridge_port *bridge_port,
|
||||
struct mlxsw_sp_port *mlxsw_sp_port,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
return mlxsw_sp_bridge_vlan_aware_port_join(bridge_port, mlxsw_sp_port,
|
||||
extack);
|
||||
}
|
||||
|
||||
static void
|
||||
mlxsw_sp_bridge_vlan_aware_port_leave(struct mlxsw_sp_port *mlxsw_sp_port)
|
||||
{
|
||||
/* Make sure untagged frames are allowed to ingress */
|
||||
mlxsw_sp_port_pvid_set(mlxsw_sp_port, MLXSW_SP_DEFAULT_VID,
|
||||
ETH_P_8021Q);
|
||||
}
|
||||
|
||||
static void
|
||||
mlxsw_sp_bridge_8021q_port_leave(struct mlxsw_sp_bridge_device *bridge_device,
|
||||
struct mlxsw_sp_bridge_port *bridge_port,
|
||||
struct mlxsw_sp_port *mlxsw_sp_port)
|
||||
{
|
||||
/* Make sure untagged frames are allowed to ingress */
|
||||
mlxsw_sp_port_pvid_set(mlxsw_sp_port, MLXSW_SP_DEFAULT_VID,
|
||||
ETH_P_8021Q);
|
||||
mlxsw_sp_bridge_vlan_aware_port_leave(mlxsw_sp_port);
|
||||
}
|
||||
|
||||
static int
|
||||
|
|
Loading…
Reference in New Issue