netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 00/13] mlxsw: Further MC-awareness configuration
@ 2018-09-20  6:21 Ido Schimmel
  2018-09-20  6:21 ` [PATCH net-next 01/13] mlxsw: spectrum: Init shaper for TCs 8..15 Ido Schimmel
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: Ido Schimmel @ 2018-09-20  6:21 UTC (permalink / raw)
  To: netdev; +Cc: davem, jiri, petrm, mlxsw, Ido Schimmel

Petr says:

Due to an issue in Spectrum chips, when unicast traffic shares the same
queue as BUM traffic, and there is congestion, the BUM traffic is
admitted to the queue anyway, thus pushing out all UC traffic. In order
to give unicast traffic precedence over BUM traffic, multicast-aware
mode is now configured on all ports. Under MC-aware mode, egress TCs
8..15 are used for BUM traffic, which has its own dedicated pool.

This patch set improves the way that the MC pool and the higher-order
TCs are integrated into the system.

In patch #1, shaper at the higher TCs is configured to the same value
that it has by default. It's better to have the corresponding artifact
in the code explicitly.

The 8 following patches gradually extend the devlink handling in mlxsw
to support the extra TCs and the new MC pool.

Patch #2 changes the way that pools are indexed in mlxsw. Instead of
using (FW index, direction) tuple to identify the pool and the
associated cache, mlxsw now uses devlink index. This change is necessary
because the new pool 15 is not contiguously adjacent to the
currently-used pools 0..3, and because it's only relevant on egress.
Using devlink index relaxes the requirement for symmetry and adjacency
imposed by using FW indexing.

In patch #3, the assumption that number of ingress TCs matches that of
egress TCs is relaxed to allow exposition of egress TCs 8..15.

In patches #4, #5 and #6, support for infinite quotas is introduced.
Infinite quotas are reported as taking all the memory in the system, but
actually use a mechanism where the infinity is configured explicitly.

In patches #7 and #8, support for configuring static pool sizes in
introduced. Statically-sized pools have been supported for a while now,
but during initialization, all pools have dynamic size. The patches
allow there to be a mix of by-default static and dynamic pools.

In patches #9 and #10, pool 15 resp. per-priority MC quotas are
explicitly configured to be in sync with the current recommendation for
handling BUM traffic in Spectrum chips.

In the following 3 patches, an mlxsw-specific selftest is added to test
the MC-awareness configuration.

First in patches #11 and #12, lib.sh is extended with functions to
collect ethtool stats, and to manage port MTU.

Then in patch #13 the selftest itself is added.

Petr Machata (13):
  mlxsw: spectrum: Init shaper for TCs 8..15
  mlxsw: spectrum_buffers: Use devlink pool indices throughout
  mlxsw: spectrum_buffers: Split TC_COUNT into ingress and egress
  mlxsw: spectrum_buffers: Keep shared buffer size in mlxsw_sp_sb
  mlxsw: spectrum_buffers: Allow pools of infinite size
  mlxsw: spectrum_buffers: Allow an infinite maximum for per-TC pool
    limit
  mlxsw: spectrum_buffers: Pass SBPM min_size in cells
  mlxsw: spectrum_buffers: Allow configuration of static pools
  mlxsw: spectrum_buffers: Configure MC pool
  mlxsw: spectrum_buffers: Tweak SBMM configuration
  selftests: forwarding: lib: Add ethtool_stats_get()
  selftests: forwarding: lib: Add mtu_set(), mtu_restore()
  selftests: mlxsw: Add a test for UC behavior under MC flood

 drivers/net/ethernet/mellanox/mlxsw/reg.h     |  22 +-
 .../net/ethernet/mellanox/mlxsw/spectrum.c    |   7 +
 .../mellanox/mlxsw/spectrum_buffers.c         | 488 +++++++++---------
 .../drivers/net/mlxsw/qos_mc_aware.sh         | 347 +++++++++++++
 tools/testing/selftests/net/forwarding/lib.sh |  25 +
 5 files changed, 657 insertions(+), 232 deletions(-)
 create mode 100644 tools/testing/selftests/drivers/net/mlxsw/qos_mc_aware.sh

-- 
2.17.1

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2018-09-20 20:31 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-09-20  6:21 [PATCH net-next 00/13] mlxsw: Further MC-awareness configuration Ido Schimmel
2018-09-20  6:21 ` [PATCH net-next 01/13] mlxsw: spectrum: Init shaper for TCs 8..15 Ido Schimmel
2018-09-20  6:21 ` [PATCH net-next 02/13] mlxsw: spectrum_buffers: Use devlink pool indices throughout Ido Schimmel
2018-09-20  6:21 ` [PATCH net-next 03/13] mlxsw: spectrum_buffers: Split TC_COUNT into ingress and egress Ido Schimmel
2018-09-20  6:21 ` [PATCH net-next 04/13] mlxsw: spectrum_buffers: Keep shared buffer size in mlxsw_sp_sb Ido Schimmel
2018-09-20  6:21 ` [PATCH net-next 05/13] mlxsw: spectrum_buffers: Allow pools of infinite size Ido Schimmel
2018-09-20  6:21 ` [PATCH net-next 06/13] mlxsw: spectrum_buffers: Allow an infinite maximum for per-TC pool limit Ido Schimmel
2018-09-20  6:21 ` [PATCH net-next 07/13] mlxsw: spectrum_buffers: Pass SBPM min_size in cells Ido Schimmel
2018-09-20  6:21 ` [PATCH net-next 08/13] mlxsw: spectrum_buffers: Allow configuration of static pools Ido Schimmel
2018-09-20  6:21 ` [PATCH net-next 09/13] mlxsw: spectrum_buffers: Configure MC pool Ido Schimmel
2018-09-20  6:21 ` [PATCH net-next 10/13] mlxsw: spectrum_buffers: Tweak SBMM configuration Ido Schimmel
2018-09-20  6:21 ` [PATCH net-next 11/13] selftests: forwarding: lib: Add ethtool_stats_get() Ido Schimmel
2018-09-20  6:21 ` [PATCH net-next 12/13] selftests: forwarding: lib: Add mtu_set(), mtu_restore() Ido Schimmel
2018-09-20  6:21 ` [PATCH net-next 13/13] selftests: mlxsw: Add a test for UC behavior under MC flood Ido Schimmel
2018-09-20 14:47 ` [PATCH net-next 00/13] mlxsw: Further MC-awareness configuration David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).