mlx5-updates-2022-05-17

MISC updates to mlx5 dirver
 
 1) Aya Levin allows relaxed ordering over VFs
 
 2) Gal Pressman Adds support XDP SQs for uplink representors in switchdev mode
 
 3) Add debugfs TC stats and command failure syndrome for debuggability
 
 4) Tariq uses variants of vzalloc where it could help
 
 5) Multiport eswitch support from Elic Cohen:
 
 Eli Cohen Says:
 ===============
 
 The multiport eswitch feature allows to forward traffic from a
 representor net device to the uplink port of an associated eswitch's
 uplink port.
 
 This feature requires creating a LAG object. Since LAG can be created
 only once for a function, the feature is mutual exclusive with either
 bonding or multipath.
 
 Multipath eswitch mode is entered automatically these conditions are
 met:
 1. No other LAG related mode is active.
 2. A rule that explicitly forwards to an uplink port is inserted.
 
 The implementation maintains a reference count on such rules. When the
 reference count reaches zero, the LAG is released and other modes may be
 used.
 
 When an explicit rule that explicitly forwards to an uplink port is
 inserted while another LAG mode is active, that rule will not be
 offloaded by the hardware since the hardware cannot guarantee that the
 rule will actually be forwarded to that port.
 
 Example rules that forwards to an uplink port is:
 
 $ tc filter add dev rep0 root flower action mirred egress \
   redirect dev uplinkrep0
 
 $ tc filter add dev rep0 root flower action mirred egress \
   redirect dev uplinkrep1
 
 This feature is supported only if LAG_RESOURCE_ALLOCATION firmware
 configuration parameter is set to true.
 
 The series consists of three patches:
 1. Lag state machine refactor
    This patch does not add new functionality but rather changes the way
    the state of the LAG is maintained.
 2. Small fix to remove unused argument.
 3. The actual implementation of the feature.
 ===============
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCAAdFiEEGhZs6bAKwk/OTgTpSD+KveBX+j4FAmKElS8ACgkQSD+KveBX
 +j6uKAf9GJrtngu198xdnood2qfxsiZ6x+wYsBVW/uOb36xp13XkbM78pr37Vp08
 y/IvK07u+VrsgnoQLVqNyCosKaja5rdaHW/E8qa4mGnYo2j1DIjTNDPJVPiazL6+
 FfHUBRmVjiPaEoF5FS7ezu7AMNqxfqSqcojsrk/j+5Ic/1AbNidZD015uIxmqg95
 rnS3V7UFV7LlMMVGPWidF2QBBQAbddsqGSpYBOowBu8MuPExuJfqH7nxxem0ATLH
 RLoU5MghM+Ny1s6ZfccKtl/TIrFBcxu0IATmacmUlp/0Hmv7apuBFredbxJ0D4bF
 cHgaOU+80UBEEFs31K0a3+neisL+ug==
 =0VhX
 -----END PGP SIGNATURE-----

Merge tag 'mlx5-updates-2022-05-17' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux

Saeed Mahameed says:

====================
mlx5-updates-2022-05-17

MISC updates to mlx5 dirver

1) Aya Levin allows relaxed ordering over VFs

2) Gal Pressman Adds support XDP SQs for uplink representors in switchdev mode

3) Add debugfs TC stats and command failure syndrome for debuggability

4) Tariq uses variants of vzalloc where it could help

5) Multiport eswitch support from Elic Cohen:

Eli Cohen Says:
===============

The multiport eswitch feature allows to forward traffic from a
representor net device to the uplink port of an associated eswitch's
uplink port.

This feature requires creating a LAG object. Since LAG can be created
only once for a function, the feature is mutual exclusive with either
bonding or multipath.

Multipath eswitch mode is entered automatically these conditions are
met:
1. No other LAG related mode is active.
2. A rule that explicitly forwards to an uplink port is inserted.

The implementation maintains a reference count on such rules. When the
reference count reaches zero, the LAG is released and other modes may be
used.

When an explicit rule that explicitly forwards to an uplink port is
inserted while another LAG mode is active, that rule will not be
offloaded by the hardware since the hardware cannot guarantee that the
rule will actually be forwarded to that port.

Example rules that forwards to an uplink port is:

$ tc filter add dev rep0 root flower action mirred egress \
  redirect dev uplinkrep0

$ tc filter add dev rep0 root flower action mirred egress \
  redirect dev uplinkrep1

This feature is supported only if LAG_RESOURCE_ALLOCATION firmware
configuration parameter is set to true.

The series consists of three patches:
1. Lag state machine refactor
   This patch does not add new functionality but rather changes the way
   the state of the LAG is maintained.
2. Small fix to remove unused argument.
3. The actual implementation of the feature.
===============

====================

Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
David S. Miller 2022-05-18 11:35:27 +01:00
commit 6431ce6cd3
27 changed files with 489 additions and 166 deletions