Merge branch 'mlxsw-Enable-minimum-shaper-on-MC-TCs'
authorDavid S. Miller <davem@davemloft.net>
Wed, 31 Oct 2018 19:56:59 +0000 (12:56 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 31 Oct 2018 19:56:59 +0000 (12:56 -0700)
commite2acdddde01511c74e4f6f1d5951a0f5d9bea14a
treeb189bb2159a9655bb89282d5f730de19e899a24c
parentc4d63c714715bc44fee3f7a818052e59216a7d8e
parenta5ee171d087ee632a5f190bb3ce1c0f98e06ec0a
Merge branch 'mlxsw-Enable-minimum-shaper-on-MC-TCs'

Ido Schimmel says:

====================
mlxsw: Enable minimum shaper on MC TCs

Petr says:

An MC-aware mode was introduced in commit 7b8195306694 ("mlxsw:
spectrum: Configure MC-aware mode on mlxsw ports"). In MC-aware mode,
BUM traffic gets a special treatment by being assigned to a separate set
of traffic classes 8..15. Pairs of TCs 0 and 8, 1 and 9, etc., are then
configured to strictly prioritize the lower-numbered ones. The intention
is to prevent BUM traffic from flooding the switch and push out all UC
traffic, which would otherwise happen, and instead give UC traffic
precedence.

However strictly prioritizing UC traffic has the effect that UC overload
pushes out all BUM traffic, such as legitimate ARP queries. These
packets are kept in queues for a while, but under sustained UC overload,
their lifetime eventually expires and these packets are dropped. That is
detrimental to network performance as well.

In this patchset, MC TCs (8..15) are configured with minimum shaper of
200Mbps (a minimum permitted value) to allow a trickle of necessary
control traffic to get through.

First in patch #1, the QEEC register is extended with fields necessary
to configure the minimum shaper.

In patch #2, minimum shaper is enabled on TCs 8..15.

In patches #3 and #4, first the MC-awareness test is tweaked to support
the minimum shaper, and then a new test is introduced to test that MC
traffic behaves well under UC overload.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>