From: "Toke Høiland-Jørgensen" <toke@redhat.com>
To: Daniel Borkmann <daniel@iogearbox.net>
Cc: David Ahern <dsahern@kernel.org>,
netdev@vger.kernel.org, bpf@vger.kernel.org
Subject: Re: [PATCH bpf v2 1/3] bpf_redirect_neigh: Support supplying the nexthop as a helper parameter
Date: Tue, 20 Oct 2020 20:08:21 +0200 [thread overview]
Message-ID: <87tuuo22ju.fsf@toke.dk> (raw)
In-Reply-To: <d6967cfe-fd0e-268a-5526-dd03f0e476e6@iogearbox.net>
Daniel Borkmann <daniel@iogearbox.net> writes:
> On 10/20/20 12:51 PM, Toke Høiland-Jørgensen wrote:
>> From: Toke Høiland-Jørgensen <toke@redhat.com>
> [...]
>> BPF_CALL_3(bpf_clone_redirect, struct sk_buff *, skb, u32, ifindex, u64, flags)
>> @@ -2455,8 +2487,8 @@ int skb_do_redirect(struct sk_buff *skb)
>> return -EAGAIN;
>> }
>> return flags & BPF_F_NEIGH ?
>> - __bpf_redirect_neigh(skb, dev) :
>> - __bpf_redirect(skb, dev, flags);
>> + __bpf_redirect_neigh(skb, dev, flags & BPF_F_NEXTHOP ? &ri->nh : NULL) :
>> + __bpf_redirect(skb, dev, flags);
>> out_drop:
>> kfree_skb(skb);
>> return -EINVAL;
>> @@ -2504,16 +2536,25 @@ static const struct bpf_func_proto bpf_redirect_peer_proto = {
>> .arg2_type = ARG_ANYTHING,
>> };
>>
>> -BPF_CALL_2(bpf_redirect_neigh, u32, ifindex, u64, flags)
>> +BPF_CALL_4(bpf_redirect_neigh, u32, ifindex, struct bpf_redir_neigh *, params,
>> + int, plen, u64, flags)
>> {
>> struct bpf_redirect_info *ri = this_cpu_ptr(&bpf_redirect_info);
>>
>> - if (unlikely(flags))
>> + if (unlikely((plen && plen < sizeof(*params)) || flags))
>> + return TC_ACT_SHOT;
>> +
>> + if (unlikely(plen && (params->unused[0] || params->unused[1] ||
>> + params->unused[2])))
>
> small nit: maybe fold this into the prior check that already tests non-zero plen
>
> if (unlikely((plen && (plen < sizeof(*params) ||
> (params->unused[0] | params->unused[1] |
> params->unused[2]))) || flags))
> return TC_ACT_SHOT;
Well that was my first thought as well, but I thought it was uglier.
Isn't the compiler smart enough to make those two equivalent?
Anyway, given Jakub's comment, I guess this is moot anyway, as we should
just get rid of the member, no?
-Toke
next prev parent reply other threads:[~2020-10-20 18:08 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-20 10:51 [PATCH bpf v2 0/3] bpf: Rework bpf_redirect_neigh() to allow supplying nexthop from caller Toke Høiland-Jørgensen
2020-10-20 10:51 ` [PATCH bpf v2 1/3] bpf_redirect_neigh: Support supplying the nexthop as a helper parameter Toke Høiland-Jørgensen
2020-10-20 15:08 ` Daniel Borkmann
2020-10-20 18:08 ` Toke Høiland-Jørgensen [this message]
2020-10-20 16:30 ` Jakub Kicinski
2020-10-20 18:08 ` Toke Høiland-Jørgensen
2020-10-20 19:01 ` Jakub Kicinski
2020-10-20 19:47 ` Daniel Borkmann
2020-10-20 18:12 ` David Ahern
2020-10-20 18:56 ` Jakub Kicinski
2020-10-20 16:34 ` Jakub Kicinski
2020-10-20 18:03 ` Toke Høiland-Jørgensen
2020-10-20 18:14 ` David Ahern
2020-10-20 18:50 ` Jakub Kicinski
2020-10-20 10:51 ` [PATCH bpf v2 2/3] bpf_fib_lookup: optionally skip neighbour lookup Toke Høiland-Jørgensen
2020-10-20 13:49 ` David Ahern
2020-10-20 15:04 ` Daniel Borkmann
2020-10-20 18:10 ` Toke Høiland-Jørgensen
2020-10-20 10:51 ` [PATCH bpf v2 3/3] selftests: Update test_tc_redirect.sh to use the modified bpf_redirect_neigh() Toke Høiland-Jørgensen
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=87tuuo22ju.fsf@toke.dk \
--to=toke@redhat.com \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=dsahern@kernel.org \
--cc=netdev@vger.kernel.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.