![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
bpf
文章平均质量分 50
高晓伟_Steven
wx_cangying1988的博客
展开
-
yum升级gcc版本
在Centos7环境上直接通过yum升级gcc版本。原创 2023-03-28 11:24:33 · 2325 阅读 · 0 评论 -
BPF bpf_spin_lock 使用排错指南
使用BPF时,多核之间难免会有竞争,为了应对这种情况,BPF引入了BPF自旋锁()的概念,它允许对map元素进行操作时锁定对map元素的访问。自旋锁仅可存储于array、hash和cgroup类型的map中。这里复制下书上的事例。这个访问控制,精度比较细。对每一个元素使用了自旋锁。另外,这样verifier就知道如何解释这个结构。类型格式通过向二进制对象添加调试信息,使内核和其他工具对BPF数据结构有了更丰富的理解。宏很重要,作用是为特定maps添加类型解释,就是使用它为的。如果不执行这个宏,就会报的错原创 2022-12-06 16:34:38 · 1005 阅读 · 0 评论 -
解决xdp计算ip头checksum报错
例如,其他18字节计算结果为3FFFD时,按照协议生成的补码应该为 FFFF - ( 3+ FFFD = 10000,1+0000 = 0001) = FFFE,但是xdp函数给出的结果却是FFFF,没有再将溢出的1加进去,导致计算错误。使用 XDP进行UDP报文转发,在计算IP首部的CHECKSUM时出错,每65536包数据会错3个,会生成错误的CHECKSUM,如FFFF,按照协议来说CHECKSUM是不会计算出FFFF这个值的。函数通过while循环使得checksum溢出时可以再次进行计算。原创 2022-11-26 12:16:06 · 1186 阅读 · 0 评论 -
解决libbpf error: unknown register name ‘r0‘ in asm 报错
= 10, 对于clang版本小于10的,执行#define bpf_tail_call_static bpf_tail_call 语句。报这个问题是clang版本低导致的,才clang 10以上的版本就不会报这个错误了。头文件中增加关于clang版本的判断。原创 2022-11-08 16:55:05 · 1212 阅读 · 0 评论