set for this state */ break; //未连接 case SS_UNCONNECTED: err = -EISCONN; //socket内部状态不是TCP_CLOSE,说明socket并未完全关闭 if (sk->sk_state != TCP_CLOSE) goto out; //是否开启BPF连接的钩子 if (BPF_CGROUP_PRE_CONNECT_ENABLED(sk)) { //调用connect err = sk->sk_prot->pre_c...
tcp_prot结构体可在linux-5.0.1/net/ipv4/tcp_ipv4.c中寻得,tcp_prot指定了TCP协议栈的访问接口函数,socket接口层里sock->opt->connect和sock->opt->accept对应的接口函数即是在这里制定的,sock->opt->connect实际调用的是tcp_v4_connect函数,sock->opt->accept实际调用的是inet_csk_accept函数。tcp_init函数...
{structtcp_sock *tp =tcp_sk(sk);structsk_buff *buff;interr; tcp_call_bpf(sk, BPF_SOCK_OPS_TCP_CONNECT_CB,0, NULL);if(inet_csk(sk)->icsk_af_ops->rebuild_header(sk))return-EHOSTUNREACH;/*Routing failure or similar.*/tcp_connect_init(sk);if(unlikely(tp->repair)) { tcp_finish_...
用户可以通过 setsockopt() 指定新创建的 TCP 类型 socket 转换为 SMC 类型 socket。同时,为避免应用程序改造,用户可以通过 eBPF 在合适的 hook 点 (如 BPF_CGROUP_INET_SOCK_CREATE、BPF_CGROUP_INET4_BIND、BPF_CGROUP_INET6_BIND 等) 注入 setsockopt(),实现透明替换。这种方式更适合在容器场景下可以依据自...
bpf_trace_printk("tcp_push mss_now %u nonagle:%u size_goal:%u\\n",mss_now , nonagle, size_goal ); } return 0; }; int kprobe__tcp_sendmsg_locked(struct pt_regs *ctx, struct sock *sk, struct msghdr *msg, size_t size)
17 .sendmsg = tcp_sendmsg, 18 .sendpage = tcp_sendpage, 19 .backlog_rcv = tcp_v4_do_rcv, 20 .release_cb = tcp_release_cb, 21 .hash = inet_hash, 22 .unhash = inet_unhash, 23 .get_port = inet_csk_get_port, 24 .enter_memory_pressure = tcp_enter_memory_pressure, ...
The Socket tracer and TCP stats connector can't be enabled together. Since Vizier v0.14.12 (from #1989), the socket tracer adds a BPF probe to tcp_sendmsg which conflicts with the TCP stats connector's probe. Reproducing the issue Runnin...
/* 调用当前sock上的bpf程序对报文进行过滤 */ if (tcp_filter(sk, skb)) goto discard_and_relse; th = (const struct tcphdr *)skb->data; iph = ip_hdr(skb); skb->dev = NULL; /* 套接字处于LISTEN状态,不需要涉及skb接收队列,直接进行处理 */ if (sk->sk_state == TCP_LISTEN) { ...
Chapter 31.BPF:BSO Packet Fllter 31.1 Introduction 1027 31.2 Code Introduction 1028 31.3 bp fif Structurev 1029 31.4 bp fd Structure 1032 31.5 BPF Input 1040 31.6 BPF Output 1046 31.7 Summary 1047 Raw IP 1049 Chapter 32.Raw IP 32.1 Introduction 1049 ...
Function 101930.5 tcp_usrclosed Function 102130.6 t cp_ctloutput Function 102230.7 Summary 1025BPF: BSD Packet Filter 1027Chapter 31.BPF:BSO Packet Fllter31.1 Introduction 102731.2 Code Introduction 102831.3 bp fif Structurev 102931.4 bp fd Structure 103231.5 BPF Input 104031.6 BPF ...