You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XDP Generic模式下环回接口UDP发送包被丢弃问题排查

AF_XDP发送UDP数据包在环回接口被丢弃问题

我用AF_XDP发送UDP数据包时遇到问题——接收功能正常,但发送的数据包在UDP处理前就被丢弃了。

系统环境

  • 内核版本:Linux fedora 6.5.12-300.fc39.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Nov 20 22:44:24 UTC 2023 x86_64 GNU/Linux
  • 系统版本:Fedora Linux 39 (Workstation Edition)

具体现象

  • XDP程序和socket通过xdpgeneric绑定到localhost
  • tcpdump能捕获到发送的数据包,且校验和、长度、端口均无错误
  • 通过bpftrace观测到ip_rcv被调用,但ip_rcv_finish未被调用
  • 在kfree_skb中看到数据包被丢弃,但未指定丢弃原因
  • 目标UDP端口的监听器从未收到数据包

Socket创建代码

cfg.rx_size = XSKQueues::NUM_READ_DESC; 
cfg.tx_size = XSKQueues::NUM_WRITE_DESC; 
cfg.libxdp_flags = XSK_LIBBPF_FLAGS__INHIBIT_PROG_LOAD; 
cfg.xdp_flags = XDP_FLAGS_SKB_MODE; 
cfg.bind_flags = XDP_USE_NEED_WAKEUP | XDP_COPY;

if (xsk_socket__create(&socket, iface.c_str(), QUEUE, umem.umem,
                            &qs.rxQ, &qs.txQ, &cfg)) {
    perror("XSK: ");
    exit(EXIT_FAILURE);
}

已做的排查尝试

  • 运行AF_XDP仅发送的官方示例,出现完全相同的现象
  • 复制nc发送的数据包内容通过XDP发送,确保调用sendto唤醒napi线程
  • 内核栈跟踪显示数据包已进入内核处理流程:
common_stacktrace:
__netif_receive_skb_one_core+0x3c/0xa0
process_backlog+0x85/0x120
__napi_poll+0x28/0x1b0
net_rx_action+0x2a4/0x380
__do_softirq+0xd1/0x2c8
do_softirq.part.0+0x3d/0x60
__local_bh_enable_ip+0x68/0x70
__dev_direct_xmit+0x152/0x210
__xsk_generic_xmit+0x3e4/0x710
xsk_sendmsg+0x12f/0x1f0
__sys_sendto+0x1d6/0x1e0
__x64_sys_sendto+0x24/0x30
do_syscall_64+0x5d/0x90
entry_SYSCALL_64_after_hwframe+0x6e/0xd8
  • tcpdump捕获的发送数据包内容:
21:54:47.008430 IP 127.0.0.1.search-agent > 127.0.0.1.9012: UDP, length 51
0x0000:  4500 004f 1400 0000 ff11 a99b 7f00 0001  E..O............
0x0010:  7f00 0001 04d2 2334 003b 0000 0200 0000  ......#4.;......
0x0020:  0000 7b5e 8fdb 0171 9d17 7600 0000 0000  ..{^...q..v.....
0x0030:  0000 9856 8fdb 0171 9d17 1400 0000 0000  ...V...q........
0x0040:  0000 80fe 1154 0200 0000 0100 0000 00    .....T.........

疑问

环回接口上的AF_XDP发送操作是否存在已知问题?

内容的提问来源于stack exchange,提问作者user5199947

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 21:27:46