brintos

brintos / linux-shallow public Read only

0
0
Text · 1.6 KiB · e4bd82b Raw
75 lines · c
1// SPDX-License-Identifier: GPL-2.02 3#include "bpf_tracing_net.h"4#include <bpf/bpf_helpers.h>5#include <bpf/bpf_tracing.h>6 7char _license[] SEC("license") = "GPL";8 9int ca1_cnt = 0;10int ca2_cnt = 0;11 12SEC("struct_ops")13void BPF_PROG(ca_update_1_init, struct sock *sk)14{15	ca1_cnt++;16}17 18SEC("struct_ops")19void BPF_PROG(ca_update_2_init, struct sock *sk)20{21	ca2_cnt++;22}23 24SEC("struct_ops")25void BPF_PROG(ca_update_cong_control, struct sock *sk,26	      const struct rate_sample *rs)27{28}29 30SEC("struct_ops")31__u32 BPF_PROG(ca_update_ssthresh, struct sock *sk)32{33	return tcp_sk(sk)->snd_ssthresh;34}35 36SEC("struct_ops")37__u32 BPF_PROG(ca_update_undo_cwnd, struct sock *sk)38{39	return tcp_sk(sk)->snd_cwnd;40}41 42SEC(".struct_ops.link")43struct tcp_congestion_ops ca_update_1 = {44	.init = (void *)ca_update_1_init,45	.cong_control = (void *)ca_update_cong_control,46	.ssthresh = (void *)ca_update_ssthresh,47	.undo_cwnd = (void *)ca_update_undo_cwnd,48	.name = "tcp_ca_update",49};50 51SEC(".struct_ops.link")52struct tcp_congestion_ops ca_update_2 = {53	.init = (void *)ca_update_2_init,54	.cong_control = (void *)ca_update_cong_control,55	.ssthresh = (void *)ca_update_ssthresh,56	.undo_cwnd = (void *)ca_update_undo_cwnd,57	.name = "tcp_ca_update",58};59 60SEC(".struct_ops.link")61struct tcp_congestion_ops ca_wrong = {62	.cong_control = (void *)ca_update_cong_control,63	.ssthresh = (void *)ca_update_ssthresh,64	.undo_cwnd = (void *)ca_update_undo_cwnd,65	.name = "tcp_ca_wrong",66};67 68SEC(".struct_ops")69struct tcp_congestion_ops ca_no_link = {70	.cong_control = (void *)ca_update_cong_control,71	.ssthresh = (void *)ca_update_ssthresh,72	.undo_cwnd = (void *)ca_update_undo_cwnd,73	.name = "tcp_ca_no_link",74};75