From: Geliang Tang <tanggeliang@kylinos.cn>
To enable easy MPTCP socket creation in MPTCP TLS tests, two protocol
parameters (cli_proto and srv_proto) have been added to ulp_sock_pair().
These are passed as third arguments of socket(): 0 creates TCP sockets,
IPPROTO_MPTCP creates MPTCP sockets.
A new variant "mptcp" is added both in FIXTURE_VARIANT(tls) to control
whether to create MPTCP sockets or not for tests.
Co-developed-by: Gang Yan <yangang@kylinos.cn>
Signed-off-by: Gang Yan <yangang@kylinos.cn>
Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
---
tools/testing/selftests/net/tls.c | 26 +++++++++++++++++++++-----
1 file changed, 21 insertions(+), 5 deletions(-)
diff --git a/tools/testing/selftests/net/tls.c b/tools/testing/selftests/net/tls.c
index 9e2ccea13d70..21f73a9867ea 100644
--- a/tools/testing/selftests/net/tls.c
+++ b/tools/testing/selftests/net/tls.c
@@ -26,6 +26,10 @@
#define TLS_PAYLOAD_MAX_LEN 16384
#define SOL_TLS 282
+#ifndef IPPROTO_MPTCP
+#define IPPROTO_MPTCP 262
+#endif
+
static int fips_enabled;
struct tls_crypto_info_keys {
@@ -108,8 +112,9 @@ static void memrnd(void *s, size_t n)
*byte++ = rand();
}
-static void ulp_sock_pair(struct __test_metadata *_metadata,
- int *fd, int *cfd, bool *notls)
+static void __ulp_sock_pair(struct __test_metadata *_metadata,
+ int *fd, int *cfd, bool *notls,
+ int cli_proto, int srv_proto)
{
struct sockaddr_in addr;
socklen_t len;
@@ -122,8 +127,10 @@ static void ulp_sock_pair(struct __test_metadata *_metadata,
addr.sin_addr.s_addr = htonl(INADDR_ANY);
addr.sin_port = 0;
- *fd = socket(AF_INET, SOCK_STREAM, 0);
- sfd = socket(AF_INET, SOCK_STREAM, 0);
+ *fd = socket(AF_INET, SOCK_STREAM, cli_proto);
+ sfd = socket(AF_INET, SOCK_STREAM, srv_proto);
+ ASSERT_GE(*fd, 0);
+ ASSERT_GE(sfd, 0);
ret = bind(sfd, &addr, sizeof(addr));
ASSERT_EQ(ret, 0);
@@ -153,6 +160,12 @@ static void ulp_sock_pair(struct __test_metadata *_metadata,
ASSERT_EQ(ret, 0);
}
+static void ulp_sock_pair(struct __test_metadata *_metadata,
+ int *fd, int *cfd, bool *notls)
+{
+ __ulp_sock_pair(_metadata, fd, cfd, notls, 0, 0);
+}
+
/* Produce a basic cmsg */
static int tls_send_cmsg(int fd, unsigned char record_type,
void *data, size_t len, int flags)
@@ -310,6 +323,7 @@ FIXTURE_VARIANT(tls)
uint16_t tls_version;
uint16_t cipher_type;
bool nopad, fips_non_compliant;
+ bool mptcp;
};
FIXTURE_VARIANT_ADD(tls, 12_aes_gcm)
@@ -407,7 +421,9 @@ FIXTURE_SETUP(tls)
tls_crypto_info_init(variant->tls_version, variant->cipher_type,
&tls12, 0);
- ulp_sock_pair(_metadata, &self->fd, &self->cfd, &self->notls);
+ __ulp_sock_pair(_metadata, &self->fd, &self->cfd, &self->notls,
+ variant->mptcp ? IPPROTO_MPTCP : 0,
+ variant->mptcp ? IPPROTO_MPTCP : 0);
if (self->notls)
return;
--
2.51.0