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 for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200309183503.173802-1-idosch@idosch.org>
Date:   Mon,  9 Mar 2020 20:34:57 +0200
From:   Ido Schimmel <idosch@...sch.org>
To:     netdev@...r.kernel.org
Cc:     davem@...emloft.net, jiri@...lanox.com, petrm@...lanox.com,
        jhs@...atatu.com, xiyou.wangcong@...il.com, kuba@...nel.org,
        mlxsw@...lanox.com, Ido Schimmel <idosch@...lanox.com>
Subject: [PATCH net-next 0/6] RED: Introduce an ECN tail-dropping mode

From: Ido Schimmel <idosch@...lanox.com>

Petr says:

When the RED Qdisc is currently configured to enable ECN, the RED algorithm
is used to decide whether a certain SKB should be marked. If that SKB is
not ECN-capable, it is early-dropped.

It is also possible to keep all traffic in the queue, and just mark the
ECN-capable subset of it, as appropriate under the RED algorithm. Some
switches support this mode, and some installations make use of it.
There is currently no way to put the RED qdiscs to this mode.

To that end, add a new RED flag, TC_RED_TAILDROP. When the Qdisc is
configured with this flag, non-ECT traffic is enqueued (and tail-dropped
when the queue size is exhausted) instead of being early-dropped.

- The patchset starts with adding in patch #1 a TDC testsuite that covers
  the existing RED flags. This test is extended with the new flag later
  in the patchset.

- Patches #2 and #3 add the taildrop support to the RED qdisc itself resp.
  mlxsw.

- Patches #4 and #5 add tests to, respectively, the newly-introduced TDC
  suite, and the mlxsw-specific RED selftests.

To test the qdisc itself (apart from offloading or configuration, which are
covered above), I took the mlxsw selftest and adapted it for SW datapath in
mostly obvious ways. The test is stable enough to verify that RED, ECN and
ECN taildrop actually work. However, I have no confidence in its
portability to other people's machines or mildly different configurations.
I therefore do not find it suitable for upstreaming.

Petr Machata (6):
  selftests: qdiscs: Add TDC test for RED
  net: sched: Add centralized RED flag checking
  net: sched: RED: Introduce an ECN tail-dropping mode
  mlxsw: spectrum_qdisc: Offload RED ECN tail-dropping mode
  selftests: qdiscs: RED: Add taildrop tests
  selftests: mlxsw: RED: Test RED ECN taildrop offload

 .../ethernet/mellanox/mlxsw/spectrum_qdisc.c  |   9 +-
 include/net/pkt_cls.h                         |   1 +
 include/net/red.h                             |  17 +++
 include/uapi/linux/pkt_sched.h                |   1 +
 net/sched/sch_choke.c                         |   5 +
 net/sched/sch_gred.c                          |   7 +-
 net/sched/sch_red.c                           |  35 ++++-
 net/sched/sch_sfq.c                           |  10 +-
 .../drivers/net/mlxsw/sch_red_core.sh         |  50 +++++-
 .../drivers/net/mlxsw/sch_red_ets.sh          |  11 ++
 .../drivers/net/mlxsw/sch_red_root.sh         |   8 +
 .../tc-testing/tc-tests/qdiscs/red.json       | 142 ++++++++++++++++++
 12 files changed, 273 insertions(+), 23 deletions(-)
 create mode 100644 tools/testing/selftests/tc-testing/tc-tests/qdiscs/red.json

-- 
2.24.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ