eBPF xdp和tc区别

 

xdp

tc

层次

网卡驱动层

数据链路层

位置

进入Linux网络协议栈之前

在Linux网络协议栈中,netfilter之前

方向

只有ingress

有ingress和egress

修改

支持修改报文

支持修改报文,有skb结构,修改更方便

网卡响应关系

网卡响应在xdp之后

网卡响应在tc之后

tcpdump 抓包位置

主机网口入向

xdp之后,tc之前

主机网口出向

xdp之后,tc之后

veth口入向

tc之后

veth口出向

tc之前

cilium加载eBPF到虚拟网卡tc上来实现流量转发,没有xdp。
虚拟网口增加假qdisc(排队规则),假qdisc上增加eBPF程序时指定class分类(ingress/egress),eBPF程序完成filter(识别报文并转发)。

posted on 2024-04-14 14:35  王景迁  阅读(165)  评论(0)    收藏  举报

导航