diff --git a/tools/testing/selftests/bpf/network_helpers.c b/tools/testing/selftests/bpf/network_helpers.c
index 129ac90e4528..49e807ffcccb 100644
--- a/tools/testing/selftests/bpf/network_helpers.c
+++ b/tools/testing/selftests/bpf/network_helpers.c
@@ -268,7 +268,7 @@ static int connect_fd_to_addr(int fd,
 	return 0;
 }
 
-int connect_to_addr(int type, const struct sockaddr_storage *addr, socklen_t addrlen,
+int connect_to_addr(const struct sockaddr_storage *addr, socklen_t addrlen,
 		    const struct network_helper_opts *opts)
 {
 	int fd;
@@ -276,7 +276,7 @@ int connect_to_addr(int type, const struct sockaddr_storage *addr, socklen_t add
 	if (!opts)
 		opts = &default_opts;
 
-	fd = socket(addr->ss_family, type, opts->proto);
+	fd = socket(addr->ss_family, opts->type ? : SOCK_STREAM, opts->proto);
 	if (fd < 0) {
 		log_err("Failed to create client socket");
 		return -1;
diff --git a/tools/testing/selftests/bpf/network_helpers.h b/tools/testing/selftests/bpf/network_helpers.h
index 9de84a8d00fd..c925c771bd98 100644
--- a/tools/testing/selftests/bpf/network_helpers.h
+++ b/tools/testing/selftests/bpf/network_helpers.h
@@ -56,7 +56,7 @@ int *start_reuseport_server(int family, int type, const char *addr_str,
 int start_server_addr(const struct sockaddr_storage *addr, socklen_t len,
 		      const struct network_helper_opts *opts);
 void free_fds(int *fds, unsigned int nr_close_fds);
-int connect_to_addr(int type, const struct sockaddr_storage *addr, socklen_t len,
+int connect_to_addr(const struct sockaddr_storage *addr, socklen_t len,
 		    const struct network_helper_opts *opts);
 int connect_to_fd(int server_fd, int timeout_ms);
 int connect_to_fd_opts(int server_fd, const struct network_helper_opts *opts);
diff --git a/tools/testing/selftests/bpf/prog_tests/cls_redirect.c b/tools/testing/selftests/bpf/prog_tests/cls_redirect.c
index 53b81651a6fa..1f1b9f0c2ffc 100644
--- a/tools/testing/selftests/bpf/prog_tests/cls_redirect.c
+++ b/tools/testing/selftests/bpf/prog_tests/cls_redirect.c
@@ -76,7 +76,7 @@ static bool set_up_conn(const struct sockaddr *addr, socklen_t len, int type,
 	if (CHECK_FAIL(getsockname(*server, sa, &slen)))
 		goto close_server;
 
-	*conn = connect_to_addr(type, (struct sockaddr_storage *)sa, slen, NULL);
+	*conn = connect_to_addr((struct sockaddr_storage *)sa, slen, &opts);
 	if (*conn < 0)
 		goto close_server;
 
diff --git a/tools/testing/selftests/bpf/prog_tests/sk_assign.c b/tools/testing/selftests/bpf/prog_tests/sk_assign.c
index 517d1186e386..91f65b407f3a 100644
--- a/tools/testing/selftests/bpf/prog_tests/sk_assign.c
+++ b/tools/testing/selftests/bpf/prog_tests/sk_assign.c
@@ -109,12 +109,15 @@ rcv_msg(int srv_client, int type)
 static int
 run_test(int server_fd, const struct sockaddr *addr, socklen_t len, int type)
 {
+	struct network_helper_opts opts = {
+		.type = type,
+	};
 	int client = -1, srv_client = -1;
 	char buf[] = "testing";
 	in_port_t port;
 	int ret = 1;
 
-	client = connect_to_addr(type, (struct sockaddr_storage *)addr, len, NULL);
+	client = connect_to_addr((struct sockaddr_storage *)addr, len, &opts);
 	if (client == -1) {
 		perror("Cannot connect to server");
 		goto out;
diff --git a/tools/testing/selftests/bpf/prog_tests/sock_addr.c b/tools/testing/selftests/bpf/prog_tests/sock_addr.c
index b880c564a204..244686d582cb 100644
--- a/tools/testing/selftests/bpf/prog_tests/sock_addr.c
+++ b/tools/testing/selftests/bpf/prog_tests/sock_addr.c
@@ -224,12 +224,12 @@ static int kernel_getpeername(int fd, struct sockaddr *addr, socklen_t *addrlen)
 	return sock_addr_op("kernel_getpeername", addr, addrlen, true);
 }
 
-int kernel_connect_to_addr(int type, const struct sockaddr_storage *addr, socklen_t addrlen,
+int kernel_connect_to_addr(const struct sockaddr_storage *addr, socklen_t addrlen,
 			   const struct network_helper_opts *opts)
 {
 	int err;
 
-	if (!ASSERT_OK(kernel_init_sock(addr->ss_family, type, 0),
+	if (!ASSERT_OK(kernel_init_sock(addr->ss_family, opts->type, 0),
 		       "kernel_init_sock"))
 		goto err;
 
@@ -278,7 +278,7 @@ int kernel_start_server(int family, int type, const char *addr_str, __u16 port,
 }
 
 struct sock_ops {
-	int (*connect_to_addr)(int type, const struct sockaddr_storage *addr,
+	int (*connect_to_addr)(const struct sockaddr_storage *addr,
 			       socklen_t addrlen,
 			       const struct network_helper_opts *opts);
 	int (*start_server)(int family, int type, const char *addr_str,
@@ -2284,6 +2284,9 @@ static int test_bind(struct sock_addr_test *test)
 {
 	struct sockaddr_storage expected_addr;
 	socklen_t expected_addr_len = sizeof(struct sockaddr_storage);
+	struct network_helper_opts opts = {
+		.type = test->socket_type,
+	};
 	int serv = -1, client = -1, err;
 
 	serv = test->ops->start_server(test->socket_family, test->socket_type,
@@ -2306,7 +2309,7 @@ static int test_bind(struct sock_addr_test *test)
 		goto cleanup;
 
 	/* Try to connect to server just in case */
-	client = connect_to_addr(test->socket_type, &expected_addr, expected_addr_len, NULL);
+	client = connect_to_addr(&expected_addr, expected_addr_len, &opts);
 	if (!ASSERT_GE(client, 0, "connect_to_addr"))
 		goto cleanup;
 
@@ -2327,6 +2330,9 @@ static int test_connect(struct sock_addr_test *test)
 	socklen_t addr_len = sizeof(struct sockaddr_storage),
 		  expected_addr_len = sizeof(struct sockaddr_storage),
 		  expected_src_addr_len = sizeof(struct sockaddr_storage);
+	struct network_helper_opts opts = {
+		.type = test->socket_type,
+	};
 	int serv = -1, client = -1, err;
 
 	serv = start_server(test->socket_family, test->socket_type,
@@ -2339,8 +2345,7 @@ static int test_connect(struct sock_addr_test *test)
 	if (!ASSERT_EQ(err, 0, "make_sockaddr"))
 		goto cleanup;
 
-	client = test->ops->connect_to_addr(test->socket_type, &addr, addr_len,
-					    NULL);
+	client = test->ops->connect_to_addr(&addr, addr_len, &opts);
 	if (client < 0) {
 		err = errno;
 		goto err;
@@ -2519,6 +2524,9 @@ static int test_getpeername(struct sock_addr_test *test)
 	struct sockaddr_storage addr, expected_addr;
 	socklen_t addr_len = sizeof(struct sockaddr_storage),
 		  expected_addr_len = sizeof(struct sockaddr_storage);
+	struct network_helper_opts opts = {
+		.type = test->socket_type,
+	};
 	int serv = -1, client = -1, err;
 
 	serv = start_server(test->socket_family, test->socket_type,
@@ -2531,8 +2539,7 @@ static int test_getpeername(struct sock_addr_test *test)
 	if (!ASSERT_EQ(err, 0, "make_sockaddr"))
 		goto cleanup;
 
-	client = test->ops->connect_to_addr(test->socket_type, &addr, addr_len,
-					    NULL);
+	client = test->ops->connect_to_addr(&addr, addr_len, &opts);
 	if (!ASSERT_GE(client, 0, "connect_to_addr"))
 		goto cleanup;
 
