我正在尝试观察 HTTP 有效负载,但似乎除了 TCP 标头之外什么都没有。
代码片段:
struct tcphdr *tcph = data + eth_offset + sizeof(*iph);
if (tcph + 1 > data_end) {
return XDP_PASS;
}
tcp_header_length = tcph->doff << 2;
unsigned char *payload = (unsigned char *)tcph + tcp_header_length;
if ((void *)payload + 1 > data_end) {
return XDP_DROP; <-- is always true
}
似乎无论出于何种原因都没有任何数据,这是不正确的;从接口中分离代码并发送HTTP请求就可以了(包含http数据)
任何提示都非常感谢。
谢谢!