首页 > 解决方案 > XDP:缺少 TCP 数据?

问题描述

我正在尝试观察 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数据)

任何提示都非常感谢。

谢谢!

标签: xdp-bpf

解决方案


推荐阅读