linux/drivers/net/ethernet/mellanox
Petr Machata 663f1b26f9 mlxsw: spectrum: Prevent duplicate mirrors
The Spectrum ASIC doesn't support mirroring more than once from a single
binding point (which is a port-direction pair). Therefore detect that a
second binding of a given binding point is attempted.

To that end, extend struct mlxsw_sp_span_inspected_port to track whether
a given binding point is bound or not. Extend
mlxsw_sp_span_entry_port_find() to look for ports based on the full
unique key: port number, direction, and boundness.

Besides fixing the overt bug where configured mirrors are not offloaded,
this also fixes a more subtle bug: mlxsw_sp_span_inspected_port_del()
just defers to mlxsw_sp_span_entry_bound_port_find(), and that used to
find the first port with the right number (disregarding the type). Thus
by adding and removing egress and ingress mirrors in the right order,
one could trick the system into believing it has no egress mirrors when
in fact it did have some. That then caused that
mlxsw_sp_span_port_mtu_update() didn't update mirroring buffer when MTU
was changed.

Fixes: 763b4b70af ("mlxsw: spectrum: Add support in matchall mirror TC offloading")
Signed-off-by: Petr Machata <petrm@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-03-09 13:02:14 -05:00
..
mlx4 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-01-31 14:31:10 -08:00
mlx5/core net/mlx5: Fix error handling when adding flow rules 2018-02-20 12:53:00 -08:00
mlxfw net/mlxfw: Properly handle dependancy with non-loadable mlx5 2017-07-03 02:32:25 -07:00
mlxsw mlxsw: spectrum: Prevent duplicate mirrors 2018-03-09 13:02:14 -05:00
Kconfig Change Kconfig description 2017-08-14 11:18:16 -07:00
Makefile Add the mlxfw module for Mellanox firmware flash process 2017-05-25 17:46:17 -04:00