diff options
author | Ido Schimmel <idosch@mellanox.com> | 2016-02-18 11:30:02 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-02-18 10:44:26 -0500 |
commit | 28a01d2d7dbf6d56e6130b3094b7c62a54773f27 (patch) | |
tree | 7875d0f4f2d140dee30e1141d0dbd33b8506d4b7 /drivers/net/ethernet/mellanox/mlxsw/spectrum.c | |
parent | 148f472da5db4d78fcfe61807c18f020eb5bd7fc (diff) | |
download | lwn-28a01d2d7dbf6d56e6130b3094b7c62a54773f27.tar.gz lwn-28a01d2d7dbf6d56e6130b3094b7c62a54773f27.zip |
mlxsw: spectrum: Allow for PVID deletion
When PVID is toggled off on a port member in a VLAN filtering bridge or
the PVID VLAN is deleted, make the port drop untagged packets. Reverse
the operation when PVID is toggled back on.
Set the PVID back to the default (1), when leaving the bridge so that
untagged traffic will be directed to the CPU.
Fixes: 56ade8fe3fe1 ("mlxsw: spectrum: Add initial support for Spectrum ASIC")
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>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlxsw/spectrum.c')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c index 0fa8da584845..09ce451c283b 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c @@ -2123,6 +2123,8 @@ static int mlxsw_sp_port_bridge_leave(struct mlxsw_sp_port *mlxsw_sp_port, if (flush_fdb && mlxsw_sp_port_fdb_flush(mlxsw_sp_port)) netdev_err(mlxsw_sp_port->dev, "Failed to flush FDB\n"); + mlxsw_sp_port_pvid_set(mlxsw_sp_port, 1); + mlxsw_sp_port->learning = 0; mlxsw_sp_port->learning_sync = 0; mlxsw_sp_port->uc_flood = 0; |