[Devel] [PATCH vz10 v2 1/5] ms/selftests/bpf: Use local type for bpf_fou_encap in test_tunnel_kern
Konstantin Khorenko
khorenko at virtuozzo.com
Thu Sep 24 15:24:19 MSK 2026
Committed to branch-rh10-6.12.0-211.52.1.22.x.vz10-ovz, will be released in rh10-6.12.0-211.52.1.22.3.vz10
ba56bbb6f5e8
ms/selftests/bpf: Use local type for bpf_fou_encap in test_tunnel_kern
Replace the forward-declared struct bpf_fou_encap with the existing
bpf_fou_encap___local type in the bpf_skb_set_fou_encap and
bpf_skb_get_fou_encap declarations. This removes the need for
the forward declaration and the explicit casts at each call.
Fixes: d17f9b370df6 ("selftests/bpf: Fix compilation failure when CONFIG_NET_FOU!=y")
Signed-off-by: Gregory Bell <grbell at redhat.com>
Link: https://lore.kernel.org/r/20260417154122.2558890-3-grbell@redhat.com
Signed-off-by: Alexei Starovoitov <ast at kernel.org>
(cherry picked from commit afb0450be061907a0f5d36bd8b010ca30eda3d3b)
https://virtuozzo.atlassian.net/browse/VSTOR-139677
Feature: fix selftests
Signed-off-by: Eva Kurchatova <eva.kurchatova at virtuozzo.com>
Link: http://lore.virtuozzo.com/20260831234217.1649428-1-eva.kurchatova@virtuozzo.com
--
Best regards,
Konstantin Khorenko,
Virtuozzo Linux Kernel Team
On 9/1/26 01:41, Eva Kurchatova wrote:
> From: Gregory Bell <grbell at redhat.com>
>
> Replace the forward-declared struct bpf_fou_encap with the existing
> bpf_fou_encap___local type in the bpf_skb_set_fou_encap and
> bpf_skb_get_fou_encap declarations. This removes the need for
> the forward declaration and the explicit casts at each call.
>
> Fixes: d17f9b370df6 ("selftests/bpf: Fix compilation failure when CONFIG_NET_FOU!=y")
> Signed-off-by: Gregory Bell <grbell at redhat.com>
> Link: https://lore.kernel.org/r/20260417154122.2558890-3-grbell@redhat.com
> Signed-off-by: Alexei Starovoitov <ast at kernel.org>
> (cherry picked from commit afb0450be061907a0f5d36bd8b010ca30eda3d3b)
>
> https://virtuozzo.atlassian.net/browse/VSTOR-139677
> Feature: fix selftests
> Signed-off-by: Eva Kurchatova <eva.kurchatova at virtuozzo.com>
> ---
> .../testing/selftests/bpf/progs/test_tunnel_kern.c | 13 ++++++-------
> 1 file changed, 6 insertions(+), 7 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/progs/test_tunnel_kern.c b/tools/testing/selftests/bpf/progs/test_tunnel_kern.c
> index 32127f1cd687..30f1de458669 100644
> --- a/tools/testing/selftests/bpf/progs/test_tunnel_kern.c
> +++ b/tools/testing/selftests/bpf/progs/test_tunnel_kern.c
> @@ -6,6 +6,7 @@
> * modify it under the terms of version 2 of the GNU General Public
> * License as published by the Free Software Foundation.
> */
> +#define BPF_NO_KFUNC_PROTOTYPES
> #include "vmlinux.h"
> #include <bpf/bpf_core_read.h>
> #include <bpf/bpf_helpers.h>
> @@ -36,12 +37,10 @@ enum bpf_fou_encap_type___local {
> FOU_BPF_ENCAP_GUE___local,
> };
>
> -struct bpf_fou_encap;
> -
> int bpf_skb_set_fou_encap(struct __sk_buff *skb_ctx,
> - struct bpf_fou_encap *encap, int type) __ksym;
> + struct bpf_fou_encap___local *encap, int type) __ksym;
> int bpf_skb_get_fou_encap(struct __sk_buff *skb_ctx,
> - struct bpf_fou_encap *encap) __ksym;
> + struct bpf_fou_encap___local *encap) __ksym;
> struct xfrm_state *
> bpf_xdp_get_xfrm_state(struct xdp_md *ctx, struct bpf_xfrm_state_opts *opts,
> u32 opts__sz) __ksym;
> @@ -781,7 +780,7 @@ int ipip_gue_set_tunnel(struct __sk_buff *skb)
> encap.sport = 0;
> encap.dport = bpf_htons(5555);
>
> - ret = bpf_skb_set_fou_encap(skb, (struct bpf_fou_encap *)&encap,
> + ret = bpf_skb_set_fou_encap(skb, &encap,
> bpf_core_enum_value(enum bpf_fou_encap_type___local,
> FOU_BPF_ENCAP_GUE___local));
> if (ret < 0) {
> @@ -820,7 +819,7 @@ int ipip_fou_set_tunnel(struct __sk_buff *skb)
> encap.sport = 0;
> encap.dport = bpf_htons(5555);
>
> - ret = bpf_skb_set_fou_encap(skb, (struct bpf_fou_encap *)&encap,
> + ret = bpf_skb_set_fou_encap(skb, &encap,
> FOU_BPF_ENCAP_FOU___local);
> if (ret < 0) {
> log_err(ret);
> @@ -843,7 +842,7 @@ int ipip_encap_get_tunnel(struct __sk_buff *skb)
> return TC_ACT_SHOT;
> }
>
> - ret = bpf_skb_get_fou_encap(skb, (struct bpf_fou_encap *)&encap);
> + ret = bpf_skb_get_fou_encap(skb, &encap);
> if (ret < 0) {
> log_err(ret);
> return TC_ACT_SHOT;
More information about the Devel
mailing list