BPF_PROG_TYPE_SOCK_OPS TCP 协议栈中埋设的一些hook 点,用于TCP调优,event统计等。 目前有15个这样的hook 点。该type对应的Attach type 是BPF_CGROUP_SOCK_OPS. 不同的hook点会传入不同的enum 到BPF prog中。例如 BPF_SOCK_OPS_TCP_CONNECT_CB 表示TCP client active connect BPF_SOCK_OPS_ACTIVE_ESTABLISHE...
case BPF_SOCK_OPS_TCP_LISTEN_CB: case BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB: case BPF_SOCK_OPS_TCP_CONNECT_CB: case BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB: case BPF_SOCK_OPS_PARSE_HDR_OPT_CB: case BPF_SOCK_OPS_HDR_OPT_LEN_CB: case BPF_SOCK_OPS_WRITE_HDR_OPT_CB: . . . } 1. 2. ...
要在BPF中追踪TCP套接字的状态,你可以使用bpf_sock_ops结构体来获取套接字的相关信息。以下是一个简单的BPF程序示例,它将输出新建连接的五元组信息: #include <linux/bpf.h> #include <bpf/bpf_helpers.h> #include <bpf/bpf_tracing.h> char LICENSE[] SEC("license") = "Dual BSD/GPL"; SEC("sock...
switch(skops->op){caseBPF_SOCK_OPS_TCP_LISTEN_CB:caseBPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB:caseBPF_SOCK_OPS_TCP_CONNECT_CB:caseBPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB:caseBPF_SOCK_OPS_PARSE_HDR_OPT_CB:caseBPF_SOCK_OPS_HDR_OPT_LEN_CB:caseBPF_SOCK_OPS_WRITE_HDR_OPT_CB:...} 维护TCP flow -...
1.编写一段 BPFPROGTYPESOCKOPS 类型的 BPF 程序,attach 到 cgroup:在 LISTEN, CONNECT, CONNESTD 等事件时会触发 BPF 程序的执行BPF 程序可以获取包的 TCP Header,然后往其中写入路由信息(这里是 serverid),或者从中读取路由信息2.在 L4LB 侧维护一个 server_id 缓存,记录仍然存活的 backend 主机 ...
所以我们目前所能做的就是 支持 v1 和 v2 的混合模式。这也是为什么 Cilium 会 mount 自己的 cgroup v2 instance 的原因(将宿主机/var/run/cilium/cgroupv2mount 到 cilium-agent 容器内。另外, 启用这个功能需要设置--sockops-enable=true及高版本内核,译注)。
What context is provided? Argument provided is the context, struct bpf_sock_ops *.. Op field specifies the operatiion, BPF_SOCK_OPS_RWND_INIT, BPF_SOCK_OPS_TCP_CONNECT_CB etc. The reply field can be used to indicate to the caller a new value for a parameter set. ...
nvme-tcp.h nvme.h nvmem-consumer.h nvmem-provider.h nvram.h oa_tc6.h objagg.h objpool.h objtool.h objtool_types.h of.h of_address.h of_clk.h of_device.h of_dma.h of_fdt.h of_gpio.h of_graph.h of_iommu.h of_irq.h of_mdio.h of_net.h of_pci.h...
/ include / uapi / linux / bpf.h v6 v5 v4 v4.20 v4.19 v4.18 v4.17 v4.16 v4.15 v4.15.18 v4.15.17 v4.15.16 v4.15.15 v4.15.14 v4.15.13 v4.15.12 v4.15.11 v4.15.10 v4.15.9 v4.15.8 v4.15.7 v4.15.6 v4.15.5 v4.15.4 v4.15.3 v4.15.2 v...
enum{BPF_SOCK_OPS_VOID,BPF_SOCK_OPS_TIMEOUT_INIT,// 初始化 TCP RTO 时调用 BPF 程序// 程序应当返回希望使用的 SYN-RTO 值;-1 表示使用默认值BPF_SOCK_OPS_RWND_INIT,// BPF 程序应当返回 initial advertized window (in packets);-1 表示使用默认值BPF_SOCK_OPS_TCP_CONNECT_CB,// 主动建连 初...