Re: [PATCH bpf-next v3 2/8] selftests/bpf: Drop type parameter of start_server_addr

Martin KaFai Lau
2024-05-23T19:06:38Z

On 5/22/24 2:23 AM, Geliang Tang wrote:
> diff --git a/tools/testing/selftests/bpf/prog_tests/sk_assign.c b/tools/testing/selftests/bpf/prog_tests/sk_assign.c
> index 0b9bd1d6f7cc..517d1186e386 100644
> --- a/tools/testing/selftests/bpf/prog_tests/sk_assign.c
> +++ b/tools/testing/selftests/bpf/prog_tests/sk_assign.c
> @@ -255,6 +255,9 @@ void test_sk_assign(void)
>
> for (i = 0; i < ARRAY_SIZE(tests) && !READ_ONCE(stop); i++) {
> struct test_sk_cfg *test = &tests[i];
> + struct network_helper_opts opts = {
> + .type = test->type,

I think dropping the type arg from the start_server_addr (and other existing
helpers) is wrong.

"type" is the common case that tests usually want to specify here (at least
between SOCK_STREAM and SOCK_DGRAM). It becomes optional (opts) now and have a
more complicated way to pass it to the the start_server_addr, connect_to_addr...etc.

imo, the opts.{type, proto, noconnect} is at least a bit non intuitive or
unnecessary. The only use case now is in test_bpf_ip_check_defrag_ok which ends
up bypassing most (or at least some) of the connect_to_fd_opts() logic. May be
that test should have its own connect_to_fd_opts() instead. However, lets leave
this potential cleanup out for later and not complicate this set further.

Please keep type as the individual arg to the helper functions.

pw-bot: cr

> + };
> const struct sockaddr *addr;
> const int zero = 0;
> int err;
> @@ -263,9 +266,8 @@ void test_sk_assign(void)
> continue;
> prepare_addr(test->addr, test->family, BIND_PORT, false);
> addr = (const struct sockaddr *)test->addr;
> - server = start_server_addr(test->type,
> - (const struct sockaddr_storage *)addr,
> - test->len, NULL);
> + server = start_server_addr((const struct sockaddr_storage *)addr,
> + test->len, &opts);