From: Petr Machata <petrm@mellanox.com>
To: netdev@vger.kernel.org
Cc: Stephen Hemminger <stephen@networkplumber.org>,
David Ahern <dsahern@gmail.com>,
Petr Machata <petrm@mellanox.com>
Subject: [PATCH iproute2-next v2 0/4] Support qevents
Date: Tue, 30 Jun 2020 13:14:48 +0300 [thread overview]
Message-ID: <cover.1593509090.git.petrm@mellanox.com> (raw)
To allow configuring user-defined actions as a result of inner workings of
a qdisc, a concept of qevents was recently introduced to the kernel.
Qevents are attach points for TC blocks, where filters can be put that are
executed as the packet hits well-defined points in the qdisc algorithms.
The attached blocks can be shared, in a manner similar to clsact ingress
and egress blocks, arbitrary classifiers with arbitrary actions can be put
on them, etc.
For example:
# tc qdisc add dev eth0 root handle 1: \
red limit 500K avpkt 1K qevent early_drop block 10
# tc filter add block 10 \
matchall action mirred egress mirror dev eth1
This patch set introduces the corresponding iproute2 support. Patch #1 adds
the new netlink attribute enumerators. Patch #2 adds a set of helpers to
implement qevents, and #3 adds a generic documentation to tc.8. Patch #4
then adds two new qevents to the RED qdisc: mark and early_drop.
Changes from v1 to v2:
- Patch #3:
- s/early/early_drop/ in the example.
Changes from RFC to v1:
- Rename "tail" qevent to "tail_drop".
- Adapt to the new 100-column standard.
- Add a selftest
Petr Machata (4):
uapi: pkt_sched: Add two new RED attributes
tc: Add helpers to support qevent handling
man: tc: Describe qevents
tc: q_red: Add support for qevents "mark" and "early_drop"
include/uapi/linux/pkt_sched.h | 2 +
man/man8/tc-red.8 | 18 ++-
man/man8/tc.8 | 19 ++++
tc/Makefile | 1 +
tc/q_red.c | 30 ++++-
tc/tc_qevent.c | 202 +++++++++++++++++++++++++++++++++
tc/tc_qevent.h | 49 ++++++++
7 files changed, 317 insertions(+), 4 deletions(-)
create mode 100644 tc/tc_qevent.c
create mode 100644 tc/tc_qevent.h
--
2.20.1
next reply other threads:[~2020-06-30 10:15 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-30 10:14 Petr Machata [this message]
2020-06-30 10:14 ` [PATCH iproute2-next v2 1/4] uapi: pkt_sched: Add two new RED attributes Petr Machata
2020-06-30 10:14 ` [PATCH iproute2-next v2 2/4] tc: Add helpers to support qevent handling Petr Machata
2020-06-30 10:14 ` [PATCH iproute2-next v2 3/4] man: tc: Describe qevents Petr Machata
2020-06-30 10:14 ` [PATCH iproute2-next v2 4/4] tc: q_red: Add support for qevents "mark" and "early_drop" Petr Machata
2020-07-05 15:46 ` [PATCH iproute2-next v2 0/4] Support qevents David Ahern
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1593509090.git.petrm@mellanox.com \
--to=petrm@mellanox.com \
--cc=dsahern@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=stephen@networkplumber.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.