bpf_skb_cgroup_id 非常适合出口。如何获取 tc ingress ebpf hook 的入口流量的 cgroup id

bpf_skb_cgroup_id works perfectly for egress. How to get the cgroup id for ingress traffic for tc ingress ebpf hook

我在 veth 主机端的 tc 入口和出口中附加了以下程序。我能够为入口(从容器出口)获得​​正确的 cgroup id,并且反向路径 cgroup id 为空。如何获取入口(veth 主机端)tc hook 的 cgroup id?

SEC("simple")
int handle_ingress(struct __sk_buff *skb)
{

    bpf_printk("tc: bpf_skb_cgroup_id:ox%llx", bpf_skb_cgroup_id(skb));
}

该信息在入口处不可用。来自 the BPF helpers documentation:

This helper can be used on TC egress path, but not on ingress, and is available only if the kernel compiled with the CONFIG_SOCK_CGROUP_DATA configuration option.