| From foo@baz Sat Jan 26 10:22:50 CET 2019 |
| From: Nir Dotan <nird@mellanox.com> |
| Date: Fri, 18 Jan 2019 15:57:59 +0000 |
| Subject: mlxsw: spectrum_fid: Update dummy FID index |
| |
| From: Nir Dotan <nird@mellanox.com> |
| |
| [ Upstream commit a11dcd6497915ba79d95ef4fe2541aaac27f6201 ] |
| |
| When using a tc flower action of egress mirred redirect, the driver adds |
| an implicit FID setting action. This implicit action sets a dummy FID to |
| the packet and is used as part of a design for trapping unmatched flows |
| in OVS. While this implicit FID setting action is supposed to be a NOP |
| when a redirect action is added, in Spectrum-2 the FID record is |
| consulted as the dummy FID index is an 802.1D FID index and the packet |
| is dropped instead of being redirected. |
| |
| Set the dummy FID index value to be within 802.1Q range. This satisfies |
| both Spectrum-1 which ignores the FID and Spectrum-2 which identifies it |
| as an 802.1Q FID and will then follow the redirect action. |
| |
| Fixes: c3ab435466d5 ("mlxsw: spectrum: Extend to support Spectrum-2 ASIC") |
| Signed-off-by: Nir Dotan <nird@mellanox.com> |
| Signed-off-by: Ido Schimmel <idosch@mellanox.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c |
| +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c |
| @@ -882,8 +882,8 @@ static const struct mlxsw_sp_fid_ops mlx |
| static const struct mlxsw_sp_fid_family mlxsw_sp_fid_dummy_family = { |
| .type = MLXSW_SP_FID_TYPE_DUMMY, |
| .fid_size = sizeof(struct mlxsw_sp_fid), |
| - .start_index = MLXSW_SP_RFID_BASE - 1, |
| - .end_index = MLXSW_SP_RFID_BASE - 1, |
| + .start_index = VLAN_N_VID - 1, |
| + .end_index = VLAN_N_VID - 1, |
| .ops = &mlxsw_sp_fid_dummy_ops, |
| }; |
| |