mirror of
https://github.com/torvalds/linux.git
synced 2026-05-22 14:12:07 +02:00
bpf: add get_netns_cookie helper to tc programs
This is needed in the context of Cilium and Tetragon to retrieve netns cookie from hostns when traffic leaves Pod, so that we can correlate skb->sk's netns cookie. Signed-off-by: Mahe Tardy <mahe.tardy@gmail.com> Link: https://lore.kernel.org/r/20241007095958.97442-1-mahe.tardy@gmail.com Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
This commit is contained in:
parent
bc9b3fb827
commit
eb62f49de7
|
|
@ -5138,6 +5138,17 @@ static u64 __bpf_get_netns_cookie(struct sock *sk)
|
|||
return net->net_cookie;
|
||||
}
|
||||
|
||||
BPF_CALL_1(bpf_get_netns_cookie, struct sk_buff *, skb)
|
||||
{
|
||||
return __bpf_get_netns_cookie(skb && skb->sk ? skb->sk : NULL);
|
||||
}
|
||||
|
||||
static const struct bpf_func_proto bpf_get_netns_cookie_proto = {
|
||||
.func = bpf_get_netns_cookie,
|
||||
.ret_type = RET_INTEGER,
|
||||
.arg1_type = ARG_PTR_TO_CTX_OR_NULL,
|
||||
};
|
||||
|
||||
BPF_CALL_1(bpf_get_netns_cookie_sock, struct sock *, ctx)
|
||||
{
|
||||
return __bpf_get_netns_cookie(ctx);
|
||||
|
|
@ -8209,6 +8220,8 @@ tc_cls_act_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
|
|||
return &bpf_skb_under_cgroup_proto;
|
||||
case BPF_FUNC_get_socket_cookie:
|
||||
return &bpf_get_socket_cookie_proto;
|
||||
case BPF_FUNC_get_netns_cookie:
|
||||
return &bpf_get_netns_cookie_proto;
|
||||
case BPF_FUNC_get_socket_uid:
|
||||
return &bpf_get_socket_uid_proto;
|
||||
case BPF_FUNC_fib_lookup:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user