lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 17 Jan 2020 00:06:50 +0000
From:   Saeed Mahameed <saeedm@...lanox.com>
To:     "David S. Miller" <davem@...emloft.net>,
        "kuba@...nel.org" <kuba@...nel.org>
CC:     "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
        Saeed Mahameed <saeedm@...lanox.com>
Subject: [net-next 00/16][pull request] Mellanox, mlx5 E-Switch chains and
 prios

Hi Dave/Jakub,

This series has two parts, 

1) A merge commit with mlx5-next branch that include updates for mlx5
HW layouts needed for this and upcoming submissions. 

2) From Paul, Increase the number of chains and prios

Currently the Mellanox driver supports offloading tc rules that
are defined on the first 4 chains and the first 16 priorities.
The restriction stems from the firmware flow level enforcement
requiring a flow table of a certain level to point to a flow
table of a higher level. This limitation may be ignored by setting
the ignore_flow_level bit when creating flow table entries.
Use unmanaged tables and ignore flow level to create more tables than
declared by fs_core steering. Manually manage the connections between the
tables themselves.

HW table is instantiated for every tc <chain,prio> tuple. The miss rule
of every table either jumps to the next <chain,prio> table, or continues
to slow_fdb. This logic is realized by following this sequence:

1. Create an auto-grouped flow table for the specified priority with
    reserved entries

Reserved entries are allocated at the end of the flow table.
Flow groups are evaluated in sequence and therefore it is guaranteed
that the flow group defined on the last FTEs will be the last to evaluate.

Define a "match all" flow group on the reserved entries, providing
the platform to add table miss actions.

2. Set the miss rule action to jump to the next <chain,prio> table
    or the slow_fdb.

3. Link the previous priority table to point to the new table by
    updating its miss rule.

Please pull and let me know if there's any problem.

Thanks,
Saeed.

---

The following changes since commit 12e9e0d0d97cc4f2aa9a858ac8a5741f321b5287:

  Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux (2020-01-16 15:48:24 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git for-net-next

for you to fetch changes up to 278d51f24330718aefd7fe86996a6da66fd345e7:

  net/mlx5: E-Switch, Increase number of chains and priorities (2020-01-16 15:48:58 -0800)

----------------------------------------------------------------

Aharon Landau (1):
  net/mlx5e: Add discard counters per priority

Aya Levin (2):
  net/mlx5: Expose resource dump register mapping
  net/mlx5e: Expose FEC feilds and related capability bit

Eran Ben Elisha (3):
  net/mlx5: Add structures layout for new MCAM access reg groups
  net/mlx5: Read MCAM register groups 1 and 2
  net/mlx5: Add structures and defines for MIRC register

Hamdan Igbaria (1):
  net/mlx5: Add copy header action struct layout

Paul Blakey (9):
  net/mlx5: Add mlx5_ifc definitions for connection tracking support
  net/mlx5: Refactor mlx5_create_auto_grouped_flow_table
  net/mlx5: fs_core: Introduce unmanaged flow tables
  net/mlx5: Add ignore level support fwd to table rules
  net/mlx5: Allow creating autogroups with reserved entries
  net/mlx5: ft: Use getter function to get ft chain
  net/mlx5: ft: Check prio and chain sanity for ft offload
  net/mlx5: E-Switch, Refactor chains and priorities
  net/mlx5: E-Switch, Increase number of chains and priorities

 drivers/infiniband/hw/mlx5/main.c             |  10 +-
 .../net/ethernet/mellanox/mlx5/core/Makefile  |   2 +-
 .../mellanox/mlx5/core/en_fs_ethtool.c        |   9 +-
 .../net/ethernet/mellanox/mlx5/core/en_rep.c  |  28 +-
 .../ethernet/mellanox/mlx5/core/en_stats.c    |   1 +
 .../net/ethernet/mellanox/mlx5/core/en_tc.c   |  27 +-
 .../net/ethernet/mellanox/mlx5/core/eswitch.c |   7 +-
 .../net/ethernet/mellanox/mlx5/core/eswitch.h |  27 +-
 .../mellanox/mlx5/core/eswitch_offloads.c     | 298 ++-----
 .../mlx5/core/eswitch_offloads_chains.c       | 758 ++++++++++++++++++
 .../mlx5/core/eswitch_offloads_chains.h       |  30 +
 .../mlx5/core/eswitch_offloads_termtbl.c      |  11 +-
 .../net/ethernet/mellanox/mlx5/core/fs_cmd.c  |   3 +
 .../net/ethernet/mellanox/mlx5/core/fs_core.c |  96 ++-
 .../net/ethernet/mellanox/mlx5/core/fs_core.h |   1 +
 drivers/net/ethernet/mellanox/mlx5/core/fw.c  |  15 +-
 include/linux/mlx5/device.h                   |  14 +-
 include/linux/mlx5/driver.h                   |   4 +-
 include/linux/mlx5/fs.h                       |  20 +-
 include/linux/mlx5/mlx5_ifc.h                 | 222 ++++-
 20 files changed, 1222 insertions(+), 361 deletions(-)
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.h

-- 
2.24.1

Powered by blists - more mailing lists