From: Martin KaFai Lau <martin.lau@linux.dev>
To: Jakub Sitnicki <jakub@cloudflare.com>
Cc: "Alexei Starovoitov" <ast@kernel.org>,
"Andrii Nakryiko" <andrii@kernel.org>,
"Arthur Fabre" <arthur@arthurfabre.com>,
"Daniel Borkmann" <daniel@iogearbox.net>,
"Eric Dumazet" <edumazet@google.com>,
"Jakub Kicinski" <kuba@kernel.org>,
"Jesper Dangaard Brouer" <hawk@kernel.org>,
"Jesse Brandeburg" <jbrandeburg@cloudflare.com>,
"Joanne Koong" <joannelkoong@gmail.com>,
"Lorenzo Bianconi" <lorenzo@kernel.org>,
"Toke Høiland-Jørgensen" <thoiland@redhat.com>,
"Yan Zhai" <yan@cloudflare.com>,
kernel-team@cloudflare.com, netdev@vger.kernel.org,
"Stanislav Fomichev" <sdf@fomichev.me>,
bpf@vger.kernel.org
Subject: Re: [PATCH bpf-next v3 01/10] bpf: Add dynptr type for skb metadata
Date: Tue, 22 Jul 2025 17:37:03 -0700 [thread overview]
Message-ID: <5a43d42d-375d-4a90-b5ee-8e8ed239cefd@linux.dev> (raw)
In-Reply-To: <20250721-skb-metadata-thru-dynptr-v3-1-e92be5534174@cloudflare.com>
On 7/21/25 3:52 AM, Jakub Sitnicki wrote:
> @@ -21788,12 +21798,17 @@ static void specialize_kfunc(struct bpf_verifier_env *env,
> if (offset)
> return;
>
> - if (func_id == special_kfunc_list[KF_bpf_dynptr_from_skb]) {
> + if (func_id == special_kfunc_list[KF_bpf_dynptr_from_skb] ||
> + func_id == special_kfunc_list[KF_bpf_dynptr_from_skb_meta]) {
I don't think this check is needed. The skb_meta is writable to tc.
> seen_direct_write = env->seen_direct_write;
> is_rdonly = !may_access_direct_pkt_data(env, NULL, BPF_WRITE);
is_rdonly is always false here.
>
> - if (is_rdonly)
> - *addr = (unsigned long)bpf_dynptr_from_skb_rdonly;
> + if (is_rdonly) {
> + if (func_id == special_kfunc_list[KF_bpf_dynptr_from_skb])
> + *addr = (unsigned long)bpf_dynptr_from_skb_rdonly;
> + else if (func_id == special_kfunc_list[KF_bpf_dynptr_from_skb_meta])
> + *addr = (unsigned long)bpf_dynptr_from_skb_meta_rdonly;
> + }
[ ... ]
> +int bpf_dynptr_from_skb_meta_rdonly(struct __sk_buff *skb, u64 flags,
so I suspect this is never used and not needed now. Please check.
It can be revisited in the future when other hooks are supported. It will be a
useful comment in the commit message.
> + struct bpf_dynptr *ptr__uninit)
> +{
> + return dynptr_from_skb_meta(skb, flags, ptr__uninit, true);
> +}
next prev parent reply other threads:[~2025-07-23 0:37 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-21 10:52 [PATCH bpf-next v3 00/10] Add a dynptr type for skb metadata for TC BPF Jakub Sitnicki
2025-07-21 10:52 ` [PATCH bpf-next v3 01/10] bpf: Add dynptr type for skb metadata Jakub Sitnicki
2025-07-22 18:46 ` Eduard Zingerman
2025-07-22 19:10 ` Eduard Zingerman
2025-07-23 0:37 ` Martin KaFai Lau [this message]
2025-07-23 9:02 ` Jakub Sitnicki
2025-07-21 10:52 ` [PATCH bpf-next v3 02/10] bpf: Enable read access to skb metadata with bpf_dynptr_read Jakub Sitnicki
2025-07-22 18:49 ` Eduard Zingerman
2025-07-23 16:50 ` Jakub Sitnicki
2025-07-21 10:52 ` [PATCH bpf-next v3 03/10] bpf: Enable write access to skb metadata with bpf_dynptr_write Jakub Sitnicki
2025-07-21 10:52 ` [PATCH bpf-next v3 04/10] bpf: Enable read-write access to skb metadata with dynptr slice Jakub Sitnicki
2025-07-21 10:52 ` [PATCH bpf-next v3 05/10] selftests/bpf: Cover verifier checks for skb_meta dynptr type Jakub Sitnicki
2025-07-22 19:22 ` Eduard Zingerman
2025-07-21 10:52 ` [PATCH bpf-next v3 06/10] selftests/bpf: Pass just bpf_map to xdp_context_test helper Jakub Sitnicki
2025-07-22 20:24 ` Eduard Zingerman
2025-07-21 10:52 ` [PATCH bpf-next v3 07/10] selftests/bpf: Parametrize test_xdp_context_tuntap Jakub Sitnicki
2025-07-22 20:24 ` Eduard Zingerman
2025-07-21 10:52 ` [PATCH bpf-next v3 08/10] selftests/bpf: Cover read access to skb metadata via dynptr Jakub Sitnicki
2025-07-22 20:24 ` Eduard Zingerman
2025-07-21 10:52 ` [PATCH bpf-next v3 09/10] selftests/bpf: Cover write " Jakub Sitnicki
2025-07-22 20:25 ` Eduard Zingerman
2025-07-21 10:52 ` [PATCH bpf-next v3 10/10] selftests/bpf: Cover read/write to skb metadata at an offset Jakub Sitnicki
2025-07-22 20:26 ` Eduard Zingerman
2025-07-22 20:30 ` Eduard Zingerman
2025-07-23 9:09 ` Jakub Sitnicki
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=5a43d42d-375d-4a90-b5ee-8e8ed239cefd@linux.dev \
--to=martin.lau@linux.dev \
--cc=andrii@kernel.org \
--cc=arthur@arthurfabre.com \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=edumazet@google.com \
--cc=hawk@kernel.org \
--cc=jakub@cloudflare.com \
--cc=jbrandeburg@cloudflare.com \
--cc=joannelkoong@gmail.com \
--cc=kernel-team@cloudflare.com \
--cc=kuba@kernel.org \
--cc=lorenzo@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=sdf@fomichev.me \
--cc=thoiland@redhat.com \
--cc=yan@cloudflare.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.