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  linux-cve-announce  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]
Message-Id: <20181119232150.13038-1-jakub.kicinski@netronome.com>
Date:   Mon, 19 Nov 2018 15:21:36 -0800
From:   Jakub Kicinski <jakub.kicinski@...ronome.com>
To:     davem@...emloft.net
Cc:     oss-drivers@...ronome.com, netdev@...r.kernel.org,
        Jakub Kicinski <jakub.kicinski@...ronome.com>
Subject: [PATCH net-next 00/14] gred: add offload support

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ