Subject: [pull request][net-next RESEND 00/17] mlx5 updates 2022-01-27

From: Saeed Mahameed <[email-masked]>
Date: Thu, 27 Jan 2022 12:39:50 -0800

From: Saeed Mahameed <[email-masked]>

Hi Dave, Hi Jakub,

This series is mostly refactoring and code improvements in mlx5.
For more information please see tag log below.

Please pull and let me know if there is any problem.

Thanks,
Saeed.

The following changes since commit e2cf07654efb0fd7bbcb475c6f74be7b5755a8fd:

  ptp: replace snprintf with sysfs_emit (2022-01-27 14:05:35 +0000)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git tags/mlx5-updates-2022-01-27

for you to fetch changes up to 60dc0ef674ecbc944e2c236c8a71ce26440cb1a9:

  net/mlx5: VLAN push on RX, pop on TX (2022-01-27 12:37:36 -0800)

----------------------------------------------------------------
mlx5-updates-2022-01-27

1) Dima, adds an internal mlx5 steering callback per steering provider
   (FW vs SW steering), to advertise steering capabilities implemented by
   each module, this helps upper modules in mlx5 to know what is
   supported and what's not without the need to tell what is the underlying
   steering mode.
   2nd patch is the usecase where this interface is used to implement
   Vlan Push/pop for uplink with SW steering, where in FW mode it's not
   supported yet.

2) Roi Dayan improves code readability and maintainability
   as preparation step for multi attribute instance per flow
   in mlx5 TC module

   Currently the mlx5_flow object contains a single mlx5_attr instance.
   However, multi table actions (e.g. CT) instantiate multiple attr instances.

   This is a refactoring series in a preparation to support multiple
   attribute instances per flow.
   The commits prepare functions to get attr instance instead of using
   flow->attr and also using attr->flags if the flag is more relevant
   to be attr flag and not a flow flag considering there will be multiple
   attr instances. i.e. CT and SAMPLE flags.

----------------------------------------------------------------
Dima Chumak (2):
      net/mlx5: Introduce software defined steering capabilities
      net/mlx5: VLAN push on RX, pop on TX

Roi Dayan (14):
      net/mlx5e: Move code chunk setting encap dests into its own function
      net/mlx5e: Pass attr arg for attaching/detaching encaps
      net/mlx5e: Move counter creation call to alloc_flow_attr_counter()
      net/mlx5e: TC, Move pedit_headers_action to parse_attr
      net/mlx5e: TC, Split pedit offloads verify from alloc_tc_pedit_action()
      net/mlx5e: TC, Pass attr to tc_act can_offload()
      net/mlx5e: TC, Refactor mlx5e_tc_add_flow_mod_hdr() to get flow attr
      net/mlx5e: TC, Reject rules with multiple CT actions
      net/mlx5e: TC, Hold sample_attr on stack instead of pointer
      net/mlx5e: CT, Don't set flow flag CT for ct clear flow
      net/mlx5e: Refactor eswitch attr flags to just attr flags
      net/mlx5e: Test CT and SAMPLE on flow attr
      net/mlx5e: TC, Store mapped tunnel id on flow attr
      net/mlx5e: CT, Remove redundant flow args from tc ct calls

Tariq Toukan (1):
      net/mlx5: Remove unused TIR modify bitmask enums

 .../ethernet/mellanox/mlx5/core/en/tc/act/accept.c |   5 +-
 .../ethernet/mellanox/mlx5/core/en/tc/act/act.h    |   5 +-
 .../ethernet/mellanox/mlx5/core/en/tc/act/csum.c   |   5 +-
 .../net/ethernet/mellanox/mlx5/core/en/tc/act/ct.c |  17 +-
 .../ethernet/mellanox/mlx5/core/en/tc/act/drop.c   |   3 +-
 .../ethernet/mellanox/mlx5/core/en/tc/act/goto.c   |  12 +-
 .../ethernet/mellanox/mlx5/core/en/tc/act/mark.c   |   3 +-
 .../ethernet/mellanox/mlx5/core/en/tc/act/mirred.c |   7 +-
 .../mellanox/mlx5/core/en/tc/act/mirred_nic.c      |   3 +-
 .../ethernet/mellanox/mlx5/core/en/tc/act/mpls.c   |   9 +-
 .../ethernet/mellanox/mlx5/core/en/tc/act/pedit.c  |  11 +-
 .../ethernet/mellanox/mlx5/core/en/tc/act/pedit.h  |   1 -
 .../ethernet/mellanox/mlx5/core/en/tc/act/ptype.c  |   3 +-
 .../mlx5/core/en/tc/act/redirect_ingress.c         |   8 +-
 .../ethernet/mellanox/mlx5/core/en/tc/act/sample.c |  11 +-
 .../ethernet/mellanox/mlx5/core/en/tc/act/trap.c   |   5 +-
 .../ethernet/mellanox/mlx5/core/en/tc/act/tun.c    |   6 +-
 .../ethernet/mellanox/mlx5/core/en/tc/act/vlan.c   |  13 +-
 .../ethernet/mellanox/mlx5/core/en/tc/act/vlan.h   |   1 -
 .../mellanox/mlx5/core/en/tc/act/vlan_mangle.c     |   9 +-
 .../ethernet/mellanox/mlx5/core/en/tc/post_act.c   |   1 +
 .../net/ethernet/mellanox/mlx5/core/en/tc/sample.c |  18 +-
 .../net/ethernet/mellanox/mlx5/core/en/tc/sample.h |   6 +-
 drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c |  87 +----
 drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.h |   4 -
 .../net/ethernet/mellanox/mlx5/core/en/tc_priv.h   |  13 +-
 .../ethernet/mellanox/mlx5/core/en/tc_tun_encap.c  |  17 +-
 .../ethernet/mellanox/mlx5/core/en/tc_tun_encap.h  |   6 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c    | 368 +++++++++++++--------
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.h    |  27 +-
 .../ethernet/mellanox/mlx5/core/esw/indir_table.c  |   2 +-
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.h  |  16 -
 .../ethernet/mellanox/mlx5/core/eswitch_offloads.c |  33 +-
 .../mellanox/mlx5/core/eswitch_offloads_termtbl.c  |   6 +-
 drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c   |  14 +
 drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.h   |   3 +
 drivers/net/ethernet/mellanox/mlx5/core/fs_core.c  |  16 +
 drivers/net/ethernet/mellanox/mlx5/core/fs_core.h  |   7 +
 .../ethernet/mellanox/mlx5/core/steering/fs_dr.c   |  11 +
 include/linux/mlx5/mlx5_ifc.h                      |   7 -
 40 files changed, 440 insertions(+), 359 deletions(-)