From: Daniel Borkmann <daniel@iogearbox.net>
To: Alexei Starovoitov <ast@plumgrid.com>
Cc: David Miller <davem@davemloft.net>,
jiri@resnulli.us, jhs@mojatatu.com, netdev@vger.kernel.org,
tgraf@suug.ch
Subject: Re: [PATCH v2 net-next 2/2] tc: make ingress and egress qdiscs consistent
Date: Wed, 08 Apr 2015 10:36:08 +0200 [thread overview]
Message-ID: <5524E878.7070803@iogearbox.net> (raw)
In-Reply-To: <5524B339.1070403@plumgrid.com>
On 04/08/2015 06:48 AM, Alexei Starovoitov wrote:
> On 4/7/15 8:22 PM, Alexei Starovoitov wrote:
>> but it seems no one cares about using them with ingress, so I'll go back
>> to cls_bpf specific skb_share_check and push.
>
> that didn't work either :(
> we cannot replace skb via skb_share_check() inside cls/act. We cannot do
> it inside ingress_enqueue() either. It can only be done at handle_ing()
> level. And it's quite ugly to change the signatures of the whole
> qdisc->enqueue() call chain just for cls_bpf. May be introducing
> bpf-only ingress qdisc to decouple the logic is not such a bad idea?
So it seems ingress qdisc is quite broken for various classifier
and actions. :/ I wouldn't go that far to have a bpf-only ingress
qdisc, but what about introducing l2/l3 ingress qdisc (or, name
it "early ingress" and "ingress" qdisc), so at an early point in
netif_receive_skb_internal(), we would have an l2_ingress hook,
wrapped via static keys to have minimal impact if unused, and could
do the push/pull similarly as in the PTP classifier w/o worry that
it is referenced by other entities. There, we could at least still
benefit from hw flow steering.
The current ingress qdisc, we'd rename l3_ingress to make it clear
what to expect (can also be aliased in iproute2). Maybe classifiers,
actions could be flagged as l2/l3 capable and checked at config
time where to apply, at least in the case of {cls,act}_bpf?
The other thing I had in mind is that we could expose skb_iif to
detect that we're actually coming from ingress qdisc from inside
the ebpf prog, but that is very limited and you nevertheless miss
out on l2 context.
Thanks,
Daniel
next prev parent reply other threads:[~2015-04-08 8:36 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-08 1:03 [PATCH v2 net-next 1/2] net: introduce skb_postpush_rcsum() helper Alexei Starovoitov
2015-04-08 1:03 ` [PATCH v2 net-next 2/2] tc: make ingress and egress qdiscs consistent Alexei Starovoitov
2015-04-08 2:35 ` David Miller
2015-04-08 3:22 ` Alexei Starovoitov
2015-04-08 4:48 ` Alexei Starovoitov
2015-04-08 8:36 ` Daniel Borkmann [this message]
2015-04-08 9:05 ` Jiri Pirko
2015-04-08 10:54 ` Daniel Borkmann
2015-04-08 11:14 ` Daniel Borkmann
2015-04-08 11:47 ` Jamal Hadi Salim
2015-04-08 12:31 ` Daniel Borkmann
2015-04-08 12:58 ` Jamal Hadi Salim
2015-04-08 13:14 ` Thomas Graf
2015-04-08 13:27 ` Daniel Borkmann
2015-04-08 13:34 ` Jiri Pirko
2015-04-08 13:41 ` Daniel Borkmann
2015-04-08 13:47 ` Thomas Graf
2015-04-08 13:52 ` Jamal Hadi Salim
2015-04-08 14:53 ` Daniel Borkmann
2015-04-08 16:26 ` Alexei Starovoitov
2015-04-08 16:32 ` David Miller
2015-04-08 16:44 ` Alexei Starovoitov
2015-04-08 16:54 ` Daniel Borkmann
2015-04-08 11:43 ` Jamal Hadi Salim
2015-04-08 7:25 ` [PATCH v2 net-next 1/2] net: introduce skb_postpush_rcsum() helper Daniel Borkmann
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=5524E878.7070803@iogearbox.net \
--to=daniel@iogearbox.net \
--cc=ast@plumgrid.com \
--cc=davem@davemloft.net \
--cc=jhs@mojatatu.com \
--cc=jiri@resnulli.us \
--cc=netdev@vger.kernel.org \
--cc=tgraf@suug.ch \
/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.