mbox series

[net-next,00/13] net: act_police offload support

Message ID 20190504114628.14755-1-jakub.kicinski@netronome.com
Headers show
Series net: act_police offload support | expand

Message

Jakub Kicinski May 4, 2019, 11:46 a.m. UTC
Hi,

this set starts by converting cls_matchall to the new flow offload
infrastructure. It so happens that all drivers implementing cls_matchall
offload today also offload cls_flower, so its a little easier for
them to handle the actions in unified flow_rule format, even though
in cls_matchall there is no flow to speak of. If a driver ever appears
which would prefer the old, direct access to TC exts, we can add the
pointer in the offload structure back and support both.

Next the act_police is added to actions supported by flow offload API.

NFP support for act_police offload is added as the final step.  The flower
firmware is configured to perform TX rate limiting in a way which matches
act_police's behaviour.  It does not use DMA.IN back pressure, and
instead	drops packets after they had been already DMAed into the NIC.
IOW it uses our standard traffic policing implementation, future patches
will extend it to other ports and traffic directions.

Pieter Jansen van Vuuren (13):
  net/sched: add sample action to the hardware intermediate
    representation
  net/sched: use the hardware intermediate representation for matchall
  mlxsw: use intermediate representation for matchall offload
  net/dsa: use intermediate representation for matchall offload
  net/sched: remove unused functions for matchall offload
  net/sched: move police action structures to header
  net/sched: add police action to the hardware intermediate
    representation
  net/sched: extend matchall offload for hardware statistics
  net/sched: allow stats updates from offloaded police actions
  net/sched: add block pointer to tc_cls_common_offload structure
  nfp: flower: add qos offload framework
  nfp: flower: add qos offload install and remove functionality.
  nfp: flower: add qos offload stats request and reply

 .../net/ethernet/mellanox/mlxsw/spectrum.c    |  38 +-
 drivers/net/ethernet/netronome/nfp/Makefile   |   3 +-
 .../net/ethernet/netronome/nfp/flower/cmsg.c  |   3 +
 .../net/ethernet/netronome/nfp/flower/cmsg.h  |   3 +
 .../net/ethernet/netronome/nfp/flower/main.c  |   6 +
 .../net/ethernet/netronome/nfp/flower/main.h  |  29 ++
 .../ethernet/netronome/nfp/flower/offload.c   |   3 +
 .../ethernet/netronome/nfp/flower/qos_conf.c  | 366 ++++++++++++++++++
 include/net/flow_offload.h                    |  23 ++
 include/net/pkt_cls.h                         |  36 +-
 include/net/tc_act/tc_police.h                |  70 ++++
 net/dsa/slave.c                               |  16 +-
 net/sched/act_police.c                        |  52 +--
 net/sched/cls_api.c                           |  14 +
 net/sched/cls_bpf.c                           |   7 +-
 net/sched/cls_flower.c                        |  11 +-
 net/sched/cls_matchall.c                      |  65 +++-
 net/sched/cls_u32.c                           |  17 +-
 18 files changed, 654 insertions(+), 108 deletions(-)
 create mode 100644 drivers/net/ethernet/netronome/nfp/flower/qos_conf.c
 create mode 100644 include/net/tc_act/tc_police.h

Comments

David Miller May 6, 2019, 4:49 a.m. UTC | #1
From: Jakub Kicinski <jakub.kicinski@netronome.com>
Date: Sat,  4 May 2019 04:46:15 -0700

> this set starts by converting cls_matchall to the new flow offload
> infrastructure. It so happens that all drivers implementing cls_matchall
> offload today also offload cls_flower, so its a little easier for
> them to handle the actions in unified flow_rule format, even though
> in cls_matchall there is no flow to speak of. If a driver ever appears
> which would prefer the old, direct access to TC exts, we can add the
> pointer in the offload structure back and support both.
> 
> Next the act_police is added to actions supported by flow offload API.
> 
> NFP support for act_police offload is added as the final step.  The flower
> firmware is configured to perform TX rate limiting in a way which matches
> act_police's behaviour.  It does not use DMA.IN back pressure, and
> instead	drops packets after they had been already DMAed into the NIC.
> IOW it uses our standard traffic policing implementation, future patches
> will extend it to other ports and traffic directions.

Series applied.