mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-22 06:32:05 -05:00
selftests/bpf: Monitor traffic for select_reuseport.
Enable traffic monitoring for the subtests of select_reuseport. Acked-by: Stanislav Fomichev <sdf@fomichev.me> Signed-off-by: Kui-Feng Lee <thinker.li@gmail.com> Link: https://lore.kernel.org/r/20240815053254.470944-7-thinker.li@gmail.com Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
This commit is contained in:
committed by
Martin KaFai Lau
parent
b407b52b18
commit
6935408597
@@ -37,9 +37,7 @@ static int sk_fds[REUSEPORT_ARRAY_SIZE];
|
||||
static int reuseport_array = -1, outer_map = -1;
|
||||
static enum bpf_map_type inner_map_type;
|
||||
static int select_by_skb_data_prog;
|
||||
static int saved_tcp_syncookie = -1;
|
||||
static struct bpf_object *obj;
|
||||
static int saved_tcp_fo = -1;
|
||||
static __u32 index_zero;
|
||||
static int epfd;
|
||||
|
||||
@@ -193,14 +191,6 @@ static int write_int_sysctl(const char *sysctl, int v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void restore_sysctls(void)
|
||||
{
|
||||
if (saved_tcp_fo != -1)
|
||||
write_int_sysctl(TCP_FO_SYSCTL, saved_tcp_fo);
|
||||
if (saved_tcp_syncookie != -1)
|
||||
write_int_sysctl(TCP_SYNCOOKIE_SYSCTL, saved_tcp_syncookie);
|
||||
}
|
||||
|
||||
static int enable_fastopen(void)
|
||||
{
|
||||
int fo;
|
||||
@@ -793,6 +783,7 @@ static void test_config(int sotype, sa_family_t family, bool inany)
|
||||
TEST_INIT(test_pass_on_err),
|
||||
TEST_INIT(test_detach_bpf),
|
||||
};
|
||||
struct netns_obj *netns;
|
||||
char s[MAX_TEST_NAME];
|
||||
const struct test *t;
|
||||
|
||||
@@ -808,9 +799,21 @@ static void test_config(int sotype, sa_family_t family, bool inany)
|
||||
if (!test__start_subtest(s))
|
||||
continue;
|
||||
|
||||
netns = netns_new("select_reuseport", true);
|
||||
if (!ASSERT_OK_PTR(netns, "netns_new"))
|
||||
continue;
|
||||
|
||||
if (CHECK_FAIL(enable_fastopen()))
|
||||
goto out;
|
||||
if (CHECK_FAIL(disable_syncookie()))
|
||||
goto out;
|
||||
|
||||
setup_per_test(sotype, family, inany, t->no_inner_map);
|
||||
t->fn(sotype, family);
|
||||
cleanup_per_test(t->no_inner_map);
|
||||
|
||||
out:
|
||||
netns_free(netns);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -850,21 +853,7 @@ void test_map_type(enum bpf_map_type mt)
|
||||
|
||||
void serial_test_select_reuseport(void)
|
||||
{
|
||||
saved_tcp_fo = read_int_sysctl(TCP_FO_SYSCTL);
|
||||
if (saved_tcp_fo < 0)
|
||||
goto out;
|
||||
saved_tcp_syncookie = read_int_sysctl(TCP_SYNCOOKIE_SYSCTL);
|
||||
if (saved_tcp_syncookie < 0)
|
||||
goto out;
|
||||
|
||||
if (enable_fastopen())
|
||||
goto out;
|
||||
if (disable_syncookie())
|
||||
goto out;
|
||||
|
||||
test_map_type(BPF_MAP_TYPE_REUSEPORT_SOCKARRAY);
|
||||
test_map_type(BPF_MAP_TYPE_SOCKMAP);
|
||||
test_map_type(BPF_MAP_TYPE_SOCKHASH);
|
||||
out:
|
||||
restore_sysctls();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user