selftests/bpf: Fix erroneous bitmask operation
[platform/kernel/linux-rpi.git] / tools / testing / selftests / bpf / progs / tcp_ca_incompl_cong_ops.c
1 // SPDX-License-Identifier: GPL-2.0
2
3 #include "vmlinux.h"
4
5 #include <bpf/bpf_helpers.h>
6 #include <bpf/bpf_tracing.h>
7
8 char _license[] SEC("license") = "GPL";
9
10 static inline struct tcp_sock *tcp_sk(const struct sock *sk)
11 {
12         return (struct tcp_sock *)sk;
13 }
14
15 SEC("struct_ops/incompl_cong_ops_ssthresh")
16 __u32 BPF_PROG(incompl_cong_ops_ssthresh, struct sock *sk)
17 {
18         return tcp_sk(sk)->snd_ssthresh;
19 }
20
21 SEC("struct_ops/incompl_cong_ops_undo_cwnd")
22 __u32 BPF_PROG(incompl_cong_ops_undo_cwnd, struct sock *sk)
23 {
24         return tcp_sk(sk)->snd_cwnd;
25 }
26
27 SEC(".struct_ops")
28 struct tcp_congestion_ops incompl_cong_ops = {
29         /* Intentionally leaving out any of the required cong_avoid() and
30          * cong_control() here.
31          */
32         .ssthresh = (void *)incompl_cong_ops_ssthresh,
33         .undo_cwnd = (void *)incompl_cong_ops_undo_cwnd,
34         .name = "bpf_incompl_ops",
35 };