]> Git Repo - J-linux.git/blob - tools/testing/selftests/bpf/progs/tcp_ca_update.c
Merge tag 'vfs-6.13-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
[J-linux.git] / tools / testing / selftests / bpf / progs / tcp_ca_update.c
1 // SPDX-License-Identifier: GPL-2.0
2
3 #include "bpf_tracing_net.h"
4 #include <bpf/bpf_helpers.h>
5 #include <bpf/bpf_tracing.h>
6
7 char _license[] SEC("license") = "GPL";
8
9 int ca1_cnt = 0;
10 int ca2_cnt = 0;
11
12 SEC("struct_ops")
13 void BPF_PROG(ca_update_1_init, struct sock *sk)
14 {
15         ca1_cnt++;
16 }
17
18 SEC("struct_ops")
19 void BPF_PROG(ca_update_2_init, struct sock *sk)
20 {
21         ca2_cnt++;
22 }
23
24 SEC("struct_ops")
25 void BPF_PROG(ca_update_cong_control, struct sock *sk,
26               const struct rate_sample *rs)
27 {
28 }
29
30 SEC("struct_ops")
31 __u32 BPF_PROG(ca_update_ssthresh, struct sock *sk)
32 {
33         return tcp_sk(sk)->snd_ssthresh;
34 }
35
36 SEC("struct_ops")
37 __u32 BPF_PROG(ca_update_undo_cwnd, struct sock *sk)
38 {
39         return tcp_sk(sk)->snd_cwnd;
40 }
41
42 SEC(".struct_ops.link")
43 struct 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
51 SEC(".struct_ops.link")
52 struct 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
60 SEC(".struct_ops.link")
61 struct 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
68 SEC(".struct_ops")
69 struct 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 };
This page took 0.030496 seconds and 4 git commands to generate.