From: Petr Machata <petrm@mellanox.com>
To: Cong Wang <xiyou.wangcong@gmail.com>
Cc: Jiri Pirko <jiri@resnulli.us>,
Linux Kernel Network Developers <netdev@vger.kernel.org>,
Jakub Kicinski <kuba@kernel.org>,
Eric Dumazet <eric.dumazet@gmail.com>,
Jamal Hadi Salim <jhs@mojatatu.com>,
Jiri Pirko <jiri@mellanox.com>,
Ido Schimmel <idosch@mellanox.com>
Subject: Re: [RFC PATCH net-next 0/3] TC: Introduce qevents
Date: Wed, 03 Jun 2020 12:08:01 +0200 [thread overview]
Message-ID: <87r1uw31nt.fsf@mellanox.com> (raw)
In-Reply-To: <CAM_iQpWw81SqpWHFMLz=rxM8CwFW77796=Cf9x+tERd6gK6nrg@mail.gmail.com>
Cong Wang <xiyou.wangcong@gmail.com> writes:
> I imagine we could introduce multiple blocks for a qdisc.
Yes, and that's what the patchset does. If you look at struct
tcf_qevent, it is just some block bookkeeping and an attribute name.
> Currently we have:
>
> struct some_qdisc_data {
> struct tcf_block *block;
> };
>
> Maybe we can extend it to:
>
> struct some_qdisc_data {
> struct tcf_block *blocks[3];
Yeah, except not all qdiscs will implement all qevents, so let's instead
make it a handful of fields, like in the patchset.
> };
>
> #define ENQUEUE 0
> #define DEQUEUE 1
> #define DROP 2
>
> static struct tcf_block *foo_tcf_block(struct Qdisc *sch, unsigned long cl,
> struct netlink_ext_ack
> *extack, int position)
> {
> struct some_qdisc_data *q = qdisc_priv(sch);
>
> if (cl)
> return NULL;
> return q->block[position];
> }
Interestingly, this is close to my original approach, pre-RFC. But there
needs to be this global list of all existing qevents. On its own, that's
a negative--at least it's an extra uAPI to maintain. What does it bring?
It theoretically allows one to refer to blocks symbolically, through
binding point coordinates (dev D parent P qevent Q) not by indices
(block B). But then one block could be referenced by several different
coordinates, which is confusing. That is the reason TC disallows editing
filters on shared blocks. Qevents should be the same.
What else is there?
next prev parent reply other threads:[~2020-06-03 10:08 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-26 17:10 [RFC PATCH net-next 0/3] TC: Introduce qevents Petr Machata
2020-05-26 17:10 ` [RFC PATCH net-next 1/3] net: sched: Introduce helpers for qevent blocks Petr Machata
2020-05-26 17:10 ` [RFC PATCH net-next 2/3] net: sched: sch_red: Split init and change callbacks Petr Machata
2020-05-26 18:32 ` Jakub Kicinski
2020-05-27 15:23 ` Petr Machata
2020-05-26 17:10 ` [RFC PATCH net-next 3/3] net: sched: sch_red: Add qevents "early" and "mark" Petr Machata
2020-05-26 17:10 ` [RFC PATCH iproute2-next 1/4] uapi: pkt_sched: Add two new RED attributes Petr Machata
2020-05-26 17:10 ` [RFC PATCH iproute2-next 2/4] tc: Add helpers to support qevent parsing Petr Machata
2020-05-26 17:10 ` [RFC PATCH iproute2-next 3/4] man: tc: Describe qevents Petr Machata
2020-05-26 17:10 ` [RFC PATCH iproute2-next 4/4] tc: q_red: Add support for qevents "mark" and "early" Petr Machata
2020-05-27 4:09 ` [RFC PATCH net-next 0/3] TC: Introduce qevents Cong Wang
2020-05-27 9:56 ` Petr Machata
2020-05-28 4:00 ` Cong Wang
2020-05-28 9:48 ` Petr Machata
2020-05-30 4:48 ` Cong Wang
2020-05-30 8:55 ` Petr Machata
2020-06-01 20:01 ` Cong Wang
2020-06-01 13:35 ` Jiri Pirko
2020-06-01 13:40 ` Jiri Pirko
2020-06-01 19:50 ` Cong Wang
2020-06-01 22:37 ` Petr Machata
2020-06-02 6:05 ` Jiri Pirko
2020-06-03 7:05 ` Cong Wang
2020-06-03 10:08 ` Petr Machata [this message]
2020-05-27 15:19 ` Vladimir Oltean
2020-05-27 16:25 ` Petr Machata
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=87r1uw31nt.fsf@mellanox.com \
--to=petrm@mellanox.com \
--cc=eric.dumazet@gmail.com \
--cc=idosch@mellanox.com \
--cc=jhs@mojatatu.com \
--cc=jiri@mellanox.com \
--cc=jiri@resnulli.us \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=xiyou.wangcong@gmail.com \
/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.