]> www.infradead.org Git - users/hch/misc.git/commitdiff
bpf: Fix link info netfilter flags to populate defrag flag
authorTyrone Wu <wudevelops@gmail.com>
Fri, 11 Oct 2024 19:32:51 +0000 (19:32 +0000)
committerDaniel Borkmann <daniel@iogearbox.net>
Wed, 16 Oct 2024 15:04:33 +0000 (17:04 +0200)
This fix correctly populates the `bpf_link_info.netfilter.flags` field
when user passes the `BPF_F_NETFILTER_IP_DEFRAG` flag.

Fixes: 91721c2d02d3 ("netfilter: bpf: Support BPF_F_NETFILTER_IP_DEFRAG in netfilter link")
Signed-off-by: Tyrone Wu <wudevelops@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Florian Westphal <fw@strlen.de>
Cc: Daniel Xu <dxu@dxuuu.xyz>
Link: https://lore.kernel.org/bpf/20241011193252.178997-1-wudevelops@gmail.com
net/netfilter/nf_bpf_link.c

index 5257d5e7eb09d82aaa233f2417dfbca3e4c1f97f..797fe8a9971e72baea7f42ac87d1515e885e8ef2 100644 (file)
@@ -150,11 +150,12 @@ static int bpf_nf_link_fill_link_info(const struct bpf_link *link,
                                      struct bpf_link_info *info)
 {
        struct bpf_nf_link *nf_link = container_of(link, struct bpf_nf_link, link);
+       const struct nf_defrag_hook *hook = nf_link->defrag_hook;
 
        info->netfilter.pf = nf_link->hook_ops.pf;
        info->netfilter.hooknum = nf_link->hook_ops.hooknum;
        info->netfilter.priority = nf_link->hook_ops.priority;
-       info->netfilter.flags = 0;
+       info->netfilter.flags = hook ? BPF_F_NETFILTER_IP_DEFRAG : 0;
 
        return 0;
 }