mbox series

[net-next,0/5] mlxsw: Offload TC action skbedit priority

Message ID 20200319134724.1036942-1-idosch@idosch.org
Headers show
Series mlxsw: Offload TC action skbedit priority | expand

Message

Ido Schimmel March 19, 2020, 1:47 p.m. UTC
From: Ido Schimmel <idosch@mellanox.com>

Petr says:

The TC action "skbedit priority P" has the effect of assigning skbprio of P
to SKBs that it's applied on. In HW datapath of a switch, the corresponding
action is assignment of internal switch priority. Spectrum switches allow
setting of packet priority based on an ACL action, which is good match for
the skbedit priority gadget. This patchset therefore implements offloading
of this action to the Spectrum ACL engine.

After a bit of refactoring in patch #1, patch #2 extends the skbedit action
to support offloading of "priority" subcommand.

On mlxsw side, in patch #3, the QOS_ACTION flexible action is added, with
fields necessary for priority adjustment. In patch #4, "skbedit priority"
is connected to that action.

Patch #5 implements a new forwarding selftest, suitable for both SW- and
HW-datapath testing.

Petr Machata (5):
  net: tc_skbedit: Factor a helper out of is_tcf_skbedit_{mark, ptype}()
  net: tc_skbedit: Make the skbedit priority offloadable
  mlxsw: core: Add QOS_ACTION
  mlxsw: spectrum_flower: Offload FLOW_ACTION_PRIORITY
  selftests: forwarding: Add an skbedit priority selftest

 .../mellanox/mlxsw/core_acl_flex_actions.c    |  53 ++++++
 .../mellanox/mlxsw/core_acl_flex_actions.h    |   3 +
 .../net/ethernet/mellanox/mlxsw/spectrum.h    |   3 +
 .../ethernet/mellanox/mlxsw/spectrum_acl.c    |  17 ++
 .../ethernet/mellanox/mlxsw/spectrum_flower.c |   4 +
 include/net/flow_offload.h                    |   2 +
 include/net/tc_act/tc_skbedit.h               |  41 +++--
 net/sched/cls_api.c                           |   3 +
 .../net/forwarding/skbedit_priority.sh        | 163 ++++++++++++++++++
 9 files changed, 275 insertions(+), 14 deletions(-)
 create mode 100755 tools/testing/selftests/net/forwarding/skbedit_priority.sh