netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 00/14] gred: add offload support
@ 2018-11-19 23:21 Jakub Kicinski
  2018-11-19 23:21 ` [PATCH net-next 01/14] nfp: abm: map per-band symbols Jakub Kicinski
                   ` (14 more replies)
  0 siblings, 15 replies; 16+ messages in thread
From: Jakub Kicinski @ 2018-11-19 23:21 UTC (permalink / raw)
  To: davem; +Cc: oss-drivers, netdev, Jakub Kicinski

Hi!

This series adds support for GRED offload in the nfp driver.  So
far we have only supported the RED Qdisc offload, but we need a
way to differentiate traffic types e.g. based on DSCP marking.

It may seem like PRIO+RED is a good match for this job, however,
(a) we don't need strict priority behaviour of PRIO, and (b) PRIO
uses the legacy way of mapping ToS fields to bands, which is quite
awkward and limitting.

The less commonly used GRED Qdisc is a better much for the scenario,
it allows multiple sets of RED parameters and queue lengths to be
maintained with a single FIFO queue.  This is exactly how nfp offload
behaves.  We use a trivial u32 classifier to assign packets to virtual
queues.

There is also the minor advantage that GRED can't have its child
changed, therefore limitting ways in which the configuration of SW
path can diverge from HW offload.

Last patch of the series adds support for (G)RED in non-ECN mode,
where packets are dropped instead of marked.


Jakub Kicinski (14):
  nfp: abm: map per-band symbols
  nfp: abm: pass band parameter to functions
  nfp: abm: size threshold table to account for bands
  nfp: abm: switch to extended stats for reading packet/byte counts
  nfp: abm: add up bands for sto/non-sto stats
  net: sched: gred: add basic Qdisc offload
  net: sched: gred: support reporting stats from offloads
  nfp: abm: wrap RED parameters in bands
  nfp: abm: add GRED offload
  net: sched: cls_u32: add res to offload information
  nfp: abm: calculate PRIO map len and check mailbox size
  nfp: abm: add functions to update DSCP -> virtual queue map
  nfp: abm: add cls_u32 offload for simple band classification
  nfp: abm: add support for more threshold actions

 drivers/net/ethernet/netronome/nfp/Makefile   |   1 +
 drivers/net/ethernet/netronome/nfp/abm/cls.c  | 283 +++++++++++++++++
 drivers/net/ethernet/netronome/nfp/abm/ctrl.c | 287 +++++++++++++++---
 drivers/net/ethernet/netronome/nfp/abm/main.c |  48 ++-
 drivers/net/ethernet/netronome/nfp/abm/main.h | 113 ++++++-
 .../net/ethernet/netronome/nfp/abm/qdisc.c    | 279 ++++++++++++++---
 drivers/net/ethernet/netronome/nfp/nfp_net.h  |   1 +
 .../ethernet/netronome/nfp/nfp_net_common.c   |   2 +-
 .../net/ethernet/netronome/nfp/nfp_net_ctrl.h |   2 +
 include/linux/netdevice.h                     |   1 +
 include/net/pkt_cls.h                         |  45 +++
 net/sched/cls_u32.c                           |   2 +
 net/sched/sch_gred.c                          |  94 ++++++
 13 files changed, 1042 insertions(+), 116 deletions(-)
 create mode 100644 drivers/net/ethernet/netronome/nfp/abm/cls.c

-- 
2.17.1

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2018-11-20 13:20 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-19 23:21 [PATCH net-next 00/14] gred: add offload support Jakub Kicinski
2018-11-19 23:21 ` [PATCH net-next 01/14] nfp: abm: map per-band symbols Jakub Kicinski
2018-11-19 23:21 ` [PATCH net-next 02/14] nfp: abm: pass band parameter to functions Jakub Kicinski
2018-11-19 23:21 ` [PATCH net-next 03/14] nfp: abm: size threshold table to account for bands Jakub Kicinski
2018-11-19 23:21 ` [PATCH net-next 04/14] nfp: abm: switch to extended stats for reading packet/byte counts Jakub Kicinski
2018-11-19 23:21 ` [PATCH net-next 05/14] nfp: abm: add up bands for sto/non-sto stats Jakub Kicinski
2018-11-19 23:21 ` [PATCH net-next 06/14] net: sched: gred: add basic Qdisc offload Jakub Kicinski
2018-11-19 23:21 ` [PATCH net-next 07/14] net: sched: gred: support reporting stats from offloads Jakub Kicinski
2018-11-19 23:21 ` [PATCH net-next 08/14] nfp: abm: wrap RED parameters in bands Jakub Kicinski
2018-11-19 23:21 ` [PATCH net-next 09/14] nfp: abm: add GRED offload Jakub Kicinski
2018-11-19 23:21 ` [PATCH net-next 10/14] net: sched: cls_u32: add res to offload information Jakub Kicinski
2018-11-19 23:21 ` [PATCH net-next 11/14] nfp: abm: calculate PRIO map len and check mailbox size Jakub Kicinski
2018-11-19 23:21 ` [PATCH net-next 12/14] nfp: abm: add functions to update DSCP -> virtual queue map Jakub Kicinski
2018-11-19 23:21 ` [PATCH net-next 13/14] nfp: abm: add cls_u32 offload for simple band classification Jakub Kicinski
2018-11-19 23:21 ` [PATCH net-next 14/14] nfp: abm: add support for more threshold actions Jakub Kicinski
2018-11-20  2:54 ` [PATCH net-next 00/14] gred: add offload support David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).