Xdp bpf 在使用16个队列创建的伪netdevice(alloc_netdev_mqs)上,连接到RX队列1的AF_XDP套接字未接收到任何数据包

Xdp bpf 在使用16个队列创建的伪netdevice(alloc_netdev_mqs)上,连接到RX队列1的AF_XDP套接字未接收到任何数据包,xdp-bpf,Xdp Bpf,这是关于让多个进程打开绑定到不同队列的XDP套接字的方法。刚开始阅读和研究多进程解决方案 (excerpt from https://marc.info/?l=xdp-newbies&m=158399973616672&w=2) hw_q0, hw_q1, hw_q2, xsk_q0_0, xsk_q1_0, xsk_q2_0, 我创建了一个具有16个队列的伪netdev,并使用tcpreplay泵入数据包。流程如下 tcprelay->lo->驱动程序(rx_处理

这是关于让多个进程打开绑定到不同队列的XDP套接字的方法。刚开始阅读和研究多进程解决方案

(excerpt from https://marc.info/?l=xdp-newbies&m=158399973616672&w=2)
hw_q0,    hw_q1,    hw_q2,
xsk_q0_0, xsk_q1_0, xsk_q2_0,
我创建了一个具有16个队列的伪netdev,并使用tcpreplay泵入数据包。流程如下

tcprelay->lo->驱动程序(rx_处理程序)->ps开发[XDP]->XDP_重定向->应用程序

应用程序创建了一个XDP套接字并将其连接到队列1。 XDP正在接收ctx->rx\U queue\U索引为0的数据包。调用
bpf_重定向_映射(&xsks_映射,1,XDP_中止)没有错误,因为在索引为1的xsks_映射中存在可用的套接字。但我在应用程序上没有看到任何数据

如果应用程序打开XDP套接字并绑定到队列0,同样可以正常工作

假设我很清楚,问题是:

  • 队列上的XDP套接字绑定与伪netdev一起工作吗

  • 如何将数据包发送到绑定在队列1上的XDP套接字

编辑01

perf显示了以下内容:我想知道为什么看不到
xdp\u redirect\u map

tcpreplay 257463 [000] 109262.955907:         xdp:xdp_redirect: prog_id=547 action=REDIRECT ifindex=19 to_ifindex=0 err=0 map_id=382 map_index=0
tcpreplay 257463 [000] 109263.206600:         xdp:xdp_redirect: prog_id=547 action=REDIRECT ifindex=19 to_ifindex=0 err=0 map_id=382 map_index=0
tcpreplay 257463 [001] 109263.457411:     xdp:xdp_redirect_err: prog_id=547 action=REDIRECT ifindex=19 to_ifindex=0 err=-22 map_id=382 map_index=1
tcpreplay 257463 [001] 109263.706151:     xdp:xdp_redirect_err: prog_id=547 action=REDIRECT ifindex=19 to_ifindex=0 err=-22 map_id=382 map_index=1