selftests/bpf: Check bpf_cubic_acked() is called via struct_ops
Test bpf_tcp_ca (in test_progs) checks multiple tcp_congestion_ops. However, there isn't a test that verifies functions in the tcp_congestion_ops is actually called. Add a check to verify that bpf_cubic_acked is actually called during the test. Suggested-by: Martin KaFai Lau <martin.lau@kernel.org> Signed-off-by: Song Liu <song@kernel.org> Acked-by: Ilya Leoshkevich <iii@linux.ibm.com> Link: https://lore.kernel.org/r/20230919060258.3237176-3-song@kernel.org Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
cf094baa3e
commit
48f5e7d3f7
|
@ -185,6 +185,8 @@ static void test_cubic(void)
|
||||||
|
|
||||||
do_test("bpf_cubic", NULL);
|
do_test("bpf_cubic", NULL);
|
||||||
|
|
||||||
|
ASSERT_EQ(cubic_skel->bss->bpf_cubic_acked_called, 1, "pkts_acked called");
|
||||||
|
|
||||||
bpf_link__destroy(link);
|
bpf_link__destroy(link);
|
||||||
bpf_cubic__destroy(cubic_skel);
|
bpf_cubic__destroy(cubic_skel);
|
||||||
}
|
}
|
||||||
|
|
|
@ -490,6 +490,8 @@ static __always_inline void hystart_update(struct sock *sk, __u32 delay)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int bpf_cubic_acked_called = 0;
|
||||||
|
|
||||||
void BPF_STRUCT_OPS(bpf_cubic_acked, struct sock *sk,
|
void BPF_STRUCT_OPS(bpf_cubic_acked, struct sock *sk,
|
||||||
const struct ack_sample *sample)
|
const struct ack_sample *sample)
|
||||||
{
|
{
|
||||||
|
@ -497,6 +499,7 @@ void BPF_STRUCT_OPS(bpf_cubic_acked, struct sock *sk,
|
||||||
struct bictcp *ca = inet_csk_ca(sk);
|
struct bictcp *ca = inet_csk_ca(sk);
|
||||||
__u32 delay;
|
__u32 delay;
|
||||||
|
|
||||||
|
bpf_cubic_acked_called = 1;
|
||||||
/* Some calls are for duplicates without timetamps */
|
/* Some calls are for duplicates without timetamps */
|
||||||
if (sample->rtt_us < 0)
|
if (sample->rtt_us < 0)
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue