XDP的重定向工作原理( 二 )

XDP Scoket也是一个文件描述符,因此可以通过poll/epoll/select来等待IO事件,需要说明的是:收/发的数据包是原始的以太网帧,因此在包处理上要麻烦一些 。
四. 总结
以上简略分析了bpf程序如何将数据重定向到用户态程序,通过xsks_map来实现bpf与用户态程序的交互;
需要说明的是,这些分析仅是梳理了浅层次的代码,实际上BPF是如何将数据读写到XDP Scoket收发缓冲区的呢?其实是通过创建共享内存并关联XDP Scoket的rx_ring,tx_ring,以及umem来实现的,后续继续分析 。
bpf程序通常都非常简单,复杂的是用户态程序,此外,BPF有非常多的技术细节,限于篇幅及主题不在此展开 。

https://www.linuxprobe.com/xdp-method.html




推荐阅读