mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

Add several new tcx test cases to improve test coverage. This also includes
a few new tests with ingress instead of clsact qdisc, to cover the fix from
commit dc644b540a
("tcx: Fix splat in ingress_destroy upon tcx_entry_free").
# ./test_progs -t tc
[...]
#234 tc_links_after:OK
#235 tc_links_append:OK
#236 tc_links_basic:OK
#237 tc_links_before:OK
#238 tc_links_chain_classic:OK
#239 tc_links_chain_mixed:OK
#240 tc_links_dev_cleanup:OK
#241 tc_links_dev_mixed:OK
#242 tc_links_ingress:OK
#243 tc_links_invalid:OK
#244 tc_links_prepend:OK
#245 tc_links_replace:OK
#246 tc_links_revision:OK
#247 tc_opts_after:OK
#248 tc_opts_append:OK
#249 tc_opts_basic:OK
#250 tc_opts_before:OK
#251 tc_opts_chain_classic:OK
#252 tc_opts_chain_mixed:OK
#253 tc_opts_delete_empty:OK
#254 tc_opts_demixed:OK
#255 tc_opts_detach:OK
#256 tc_opts_detach_after:OK
#257 tc_opts_detach_before:OK
#258 tc_opts_dev_cleanup:OK
#259 tc_opts_invalid:OK
#260 tc_opts_mixed:OK
#261 tc_opts_prepend:OK
#262 tc_opts_replace:OK
#263 tc_opts_revision:OK
[...]
Summary: 44/38 PASSED, 0 SKIPPED, 0 FAILED
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/r/8699efc284b75ccdc51ddf7062fa2370330dc6c0.1692029283.git.daniel@iogearbox.net
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
56 lines
810 B
C
56 lines
810 B
C
// SPDX-License-Identifier: GPL-2.0
|
|
/* Copyright (c) 2023 Isovalent */
|
|
#include <stdbool.h>
|
|
#include <linux/bpf.h>
|
|
#include <bpf/bpf_helpers.h>
|
|
|
|
char LICENSE[] SEC("license") = "GPL";
|
|
|
|
bool seen_tc1;
|
|
bool seen_tc2;
|
|
bool seen_tc3;
|
|
bool seen_tc4;
|
|
bool seen_tc5;
|
|
bool seen_tc6;
|
|
|
|
SEC("tc/ingress")
|
|
int tc1(struct __sk_buff *skb)
|
|
{
|
|
seen_tc1 = true;
|
|
return TCX_NEXT;
|
|
}
|
|
|
|
SEC("tc/egress")
|
|
int tc2(struct __sk_buff *skb)
|
|
{
|
|
seen_tc2 = true;
|
|
return TCX_NEXT;
|
|
}
|
|
|
|
SEC("tc/egress")
|
|
int tc3(struct __sk_buff *skb)
|
|
{
|
|
seen_tc3 = true;
|
|
return TCX_NEXT;
|
|
}
|
|
|
|
SEC("tc/egress")
|
|
int tc4(struct __sk_buff *skb)
|
|
{
|
|
seen_tc4 = true;
|
|
return TCX_NEXT;
|
|
}
|
|
|
|
SEC("tc/egress")
|
|
int tc5(struct __sk_buff *skb)
|
|
{
|
|
seen_tc5 = true;
|
|
return TCX_PASS;
|
|
}
|
|
|
|
SEC("tc/egress")
|
|
int tc6(struct __sk_buff *skb)
|
|
{
|
|
seen_tc6 = true;
|
|
return TCX_PASS;
|
|
}
|