Skip to the content.

xdp

xdp-tutorial

这个教程是是最好的

xdp 只能关联到到具体的网卡上面 ?

🧀  sudo ./xdp_loader --dev enp7s0 --progname xdp_pass_func
[sudo] password for martins3:
BPF object (xdp_prog_kern) listing available XDP functions
 xdp_pass_func
 xdp_drop_func
 xdp_abort_func
libbpf: elf: skipping unrecognized data section(7) xdp_metadata
libbpf: elf: skipping unrecognized data section(7) xdp_metadata
libbpf: elf: skipping unrecognized data section(7) xdp_metadata
libbpf: elf: skipping unrecognized data section(7) xdp_metadata
libbpf: Kernel error message: Underlying driver does not support XDP in native mode
libxdp: Error attaching XDP program to ifindex 2: Operation not supported
libxdp: XDP mode not supported; try using SKB mode
xdp_program__attach: Operation not supported

从 dev_xdp_attach 的实现看,的确如此:

	/* don't call drivers if the effective program didn't change */
	if (new_prog != cur_prog) {
		bpf_op = dev_xdp_bpf_op(dev, mode);
		if (!bpf_op) {
			NL_SET_ERR_MSG(extack, "Underlying driver does not support XDP in native mode");
			return -EOPNOTSUPP;
		}

		err = dev_xdp_install(dev, mode, bpf_op, extack, flags, new_prog);
		if (err)
			return err;
	}

因为 xdp 是运行接受到中断的早期,所以必须存在网卡驱动的支持。

AF_XDP 如何理解 ?

这个写的更加详细点,感觉 xdp 和 AF_XDP 只是都使用了 bpf 而已

参考这个回答,看来 AF_XDP 可以让用户程序选择性的 bypass kernel stack,AF_XDP 的主要使用者还是 ovs, dpdk cilium 之类的

xdp

这些基础技术搞一搞

https://mp.weixin.qq.com/s?__biz=Mzg2OTc0ODAzMw==&mid=2247502385&idx=1&sn=c555d4fa2c5be9a113a8ad2acaaf3af0&source=41#wechat_redirect https://mp.weixin.qq.com/s?__biz=Mzg2OTc0ODAzMw==&mid=2247502410&idx=1&sn=515f51354071a04f3b33baa2a6a6faf0&source=41#wechat_redirect https://arthurchiao.art/blog/socket-acceleration-with-ebpf-zh/

这哥们其他的 blog 也可以看看: https://kiosk007.top/post/ebpf%E8%B6%85%E4%B9%8E%E4%BD%A0%E6%83%B3%E8%B1%A1/

bpf 可以直接实现网络包的转发

# tc qdisc add dev eth1 clsact
# tc filter add dev eth1 ingress bpf da obj ingress_redirect.o sec classifier-redirect

用 bpftool 来观测下,而且需要测试下其效果

各种虚拟网卡也是支持 xdp 的

例如: drivers/net/hyperv/netvsc_bpf.c

收集

https://news.ycombinator.com/item?id=45812756

这个东西?

https://github.com/microsoft/xdp-for-windows

xdp 真的有那么大作用吗,不就是….?

本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。