在什么情况下 bpf_get_socket_cookie() return 0
Under what circumstances does bpf_get_socket_cookie() return 0
bpf-helpers(7)
声明 bpf_get_socket_cookie()
returns 0 如果套接字字段在 skb
.
中丢失
在什么情况下此上下文中缺少套接字字段?它是否取决于 BPF 程序附加到数据路径中的哪个位置?例如,在附加了 tc filter add dev ... ingress ... bpf ...
的过滤器的情况下,bpf_get_socket_cookie()
总是 return 0(例如,在 Linux 内核 4.19 上)?
如果数据包还没有被多路分解到套接字,则套接字字段为空。对于 TCP,这发生在 tcp_v4_early_demux()
.
是的,这取决于您将 BPF 程序附加到何处。您需要在将数据包多路分解到套接字之前附加它。
bpf-helpers(7)
声明 bpf_get_socket_cookie()
returns 0 如果套接字字段在 skb
.
在什么情况下此上下文中缺少套接字字段?它是否取决于 BPF 程序附加到数据路径中的哪个位置?例如,在附加了 tc filter add dev ... ingress ... bpf ...
的过滤器的情况下,bpf_get_socket_cookie()
总是 return 0(例如,在 Linux 内核 4.19 上)?
如果数据包还没有被多路分解到套接字,则套接字字段为空。对于 TCP,这发生在 tcp_v4_early_demux()
.
是的,这取决于您将 BPF 程序附加到何处。您需要在将数据包多路分解到套接字之前附加它。