All of lore.kernel.org
 help / color / mirror / Atom feed
* [LTP] [PATCH 1/6] network/sctp: use TST_NETLOAD_* parameters
@ 2017-11-28 13:08 Alexey Kodanev
  2017-11-28 13:08 ` [LTP] [PATCH 2/6] network/virt_lib: " Alexey Kodanev
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Alexey Kodanev @ 2017-11-28 13:08 UTC (permalink / raw)
  To: ltp

Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com>
---
 testcases/network/sctp/sctp01.sh |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/testcases/network/sctp/sctp01.sh b/testcases/network/sctp/sctp01.sh
index 68a872a..197c819 100755
--- a/testcases/network/sctp/sctp01.sh
+++ b/testcases/network/sctp/sctp01.sh
@@ -31,16 +31,17 @@ cleanup()
 setup()
 {
 	tst_require_root
+	TST_NETLOAD_MAX_SRV_REPLIES=3
 }
 
 test_run()
 {
 	tst_resm TINFO "compare TCP/SCTP performance"
 
-	tst_netload -H $(tst_ipaddr rhost) -a 3 -R 3 -T tcp
+	tst_netload -H $(tst_ipaddr rhost) -T tcp
 	local res0="$(cat tst_netload.res)"
 
-	tst_netload -H $(tst_ipaddr rhost) -a 3 -R 3 -T sctp
+	tst_netload -H $(tst_ipaddr rhost) -T sctp
 	local res1="$(cat tst_netload.res)"
 
 	local per=$(( $res0 * 100 / $res1 - 100 ))
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [LTP] [PATCH 2/6] network/virt_lib: use TST_NETLOAD_* parameters
  2017-11-28 13:08 [LTP] [PATCH 1/6] network/sctp: use TST_NETLOAD_* parameters Alexey Kodanev
@ 2017-11-28 13:08 ` Alexey Kodanev
  2017-11-28 13:08 ` [LTP] [PATCH 3/6] netstress: support setting local source address Alexey Kodanev
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Alexey Kodanev @ 2017-11-28 13:08 UTC (permalink / raw)
  To: ltp

Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com>
---
 testcases/network/virt/virt_lib.sh |   37 ++++++-----------------------------
 1 files changed, 7 insertions(+), 30 deletions(-)

diff --git a/testcases/network/virt/virt_lib.sh b/testcases/network/virt/virt_lib.sh
index bbac0dd..ae0b2fd 100644
--- a/testcases/network/virt/virt_lib.sh
+++ b/testcases/network/virt/virt_lib.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
-# Copyright (c) 2014-2016 Oracle and/or its affiliates. All Rights Reserved.
+# Copyright (c) 2014-2017 Oracle and/or its affiliates. All Rights Reserved.
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License as
@@ -40,38 +40,17 @@ ip6_virt_remote="$(TST_IPV6=6 tst_ipaddr_un rhost)"
 VIRT_PERF_THRESHOLD=${VIRT_PERF_THRESHOLD:-80}
 vxlan_dstport=0
 
-clients_num=2
-client_requests=500000
-max_requests=20
-
-while getopts :hsi:r:c:R:p:n:t:d:6 opt; do
+while getopts :hi:d:6 opt; do
 	case "$opt" in
 	h)
 		echo "Usage:"
 		echo "h        help"
-		echo "s        use ssh to run remote cmds"
 		echo "i n      start ID to use"
-		echo "r n      client requests for TCP performance test"
-		echo "c n      clients run concurrently in TCP perf"
-		echo "R n      num of reqs, after which conn.closed in TCP perf"
-		echo "p x      x and x + 1 are ports in TCP perf"
-		echo "n x      virtual network 192.168.x"
-		echo "t x      performance threshold, default is 60%"
 		echo "d x      VxLAN destination address, 'uni' or 'multi'"
 		echo "6        run over IPv6"
 		exit 0
 	;;
-	s) TST_USE_SSH=1 ;;
 	i) start_id=$OPTARG ;;
-	c) clients_num=$OPTARG ;;
-	r) client_requests=$OPTARG ;;
-	R) max_requests=$OPTARG ;;
-	p) srv_port=$OPTARG ;;
-	n)
-		ip_virt_local="192.168.${OPTARG}.1"
-		ip_virt_remote="192.168.${OPTARG}.2"
-	;;
-	t) VIRT_PERF_THRESHOLD=$OPTARG ;;
 	d) vxlan_dst_addr=$OPTARG ;;
 	6) # skip, test_net library already processed it
 	;;
@@ -261,20 +240,18 @@ virt_compare_netperf()
 	local expect_res="${1:-pass}"
 	local opts="$2"
 
-	tst_netload -H $ip_virt_remote -a $clients_num -R $max_requests $opts \
-		-r $client_requests -d res_ipv4 -e $expect_res || ret1="fail"
+	tst_netload -H $ip_virt_remote $opts -d res_ipv4 -e $expect_res || \
+		ret1="fail"
 
-	tst_netload -H ${ip6_virt_remote} -a $clients_num $opts \
-		-R $max_requests -r $client_requests -d res_ipv6 \
-		-e $expect_res || ret2="fail"
+	tst_netload -H ${ip6_virt_remote} $opts -d res_ipv6 -e $expect_res || \
+		ret2="fail"
 
 	[ "$ret1" = "fail" -o "$ret2" = "fail" ] && return
 
 	local vt="$(cat res_ipv4)"
 	local vt6="$(cat res_ipv6)"
 
-	tst_netload -H $ip_remote -a $clients_num -R $max_requests $opts \
-		-r $client_requests -d res_ipv4
+	tst_netload -H $ip_remote $opts -d res_ipv4
 
 	local lt="$(cat res_ipv4)"
 	tst_resm TINFO "time lan($lt) $virt_type IPv4($vt) and IPv6($vt6) ms"
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [LTP] [PATCH 3/6] netstress: support setting local source address
  2017-11-28 13:08 [LTP] [PATCH 1/6] network/sctp: use TST_NETLOAD_* parameters Alexey Kodanev
  2017-11-28 13:08 ` [LTP] [PATCH 2/6] network/virt_lib: " Alexey Kodanev
@ 2017-11-28 13:08 ` Alexey Kodanev
  2017-11-28 13:08 ` [LTP] [PATCH 4/6] tst_netload: support -S and -A netstress options Alexey Kodanev
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Alexey Kodanev @ 2017-11-28 13:08 UTC (permalink / raw)
  To: ltp

Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com>
---
 testcases/network/netstress/netstress.c |   41 ++++++++++++++++++++++---------
 1 files changed, 29 insertions(+), 12 deletions(-)

diff --git a/testcases/network/netstress/netstress.c b/testcases/network/netstress/netstress.c
index 5d7c657..41d5952 100644
--- a/testcases/network/netstress/netstress.c
+++ b/testcases/network/netstress/netstress.c
@@ -33,6 +33,7 @@
 #include <errno.h>
 
 #include "lapi/posix_clocks.h"
+#include "tst_safe_stdio.h"
 #include "tst_safe_pthread.h"
 #include "tst_test.h"
 
@@ -108,6 +109,7 @@ static int client_max_requests	= 10;
 static int clients_num;
 static char *tcp_port		= "61000";
 static char *server_addr	= "localhost";
+static char *source_addr;
 static int busy_poll		= -1;
 static int max_etime_cnt = 12; /* ~30 sec max timeout if no connection */
 
@@ -278,6 +280,10 @@ static int client_connect_send(const char *msg, int size)
 		SAFE_SENDTO(1, cfd, msg, size, MSG_FASTOPEN | MSG_NOSIGNAL,
 			remote_addrinfo->ai_addr, remote_addrinfo->ai_addrlen);
 	} else {
+		if (local_addrinfo) {
+			SAFE_BIND(cfd, local_addrinfo->ai_addr,
+				  local_addrinfo->ai_addrlen);
+		}
 		/* old TCP API */
 		SAFE_CONNECT(cfd, remote_addrinfo->ai_addr,
 			     remote_addrinfo->ai_addrlen);
@@ -390,6 +396,19 @@ static int parse_client_request(const char *msg)
 static struct timespec tv_client_start;
 static struct timespec tv_client_end;
 
+static void setup_addrinfo(const char *src_addr, const char *port,
+			   const struct addrinfo *hints,
+			   struct addrinfo **addr_info)
+{
+	int err = getaddrinfo(src_addr, port, hints, addr_info);
+
+	if (err)
+		tst_brk(TBROK, "getaddrinfo failed, %s", gai_strerror(err));
+
+	if (!*addr_info)
+		tst_brk(TBROK, "failed to get the address");
+}
+
 static void client_init(void)
 {
 	if (clients_num >= MAX_THREADS) {
@@ -406,11 +425,9 @@ static void client_init(void)
 	hints.ai_flags = 0;
 	hints.ai_protocol = 0;
 
-	int err = getaddrinfo(server_addr, tcp_port, &hints, &remote_addrinfo);
-	if (err) {
-		tst_brk(TBROK, "getaddrinfo of '%s' failed, %s",
-			server_addr, gai_strerror(err));
-	}
+	if (source_addr)
+		setup_addrinfo(source_addr, NULL, &hints, &local_addrinfo);
+	setup_addrinfo(server_addr, tcp_port, &hints, &remote_addrinfo);
 
 	tst_res(TINFO, "Running the test over IPv%s",
 		(remote_addrinfo->ai_family == AF_INET6) ? "6" : "4");
@@ -570,6 +587,7 @@ static pthread_t server_thread_add(intptr_t client_fd)
 
 static void server_init(void)
 {
+	char *src_addr = NULL;
 	struct addrinfo hints;
 
 	memset(&hints, 0, sizeof(struct addrinfo));
@@ -577,13 +595,11 @@ static void server_init(void)
 	hints.ai_socktype = sock_type;
 	hints.ai_flags = AI_PASSIVE;
 
-	int err = getaddrinfo(NULL, tcp_port, &hints, &local_addrinfo);
-
-	if (err)
-		tst_brk(TBROK, "getaddrinfo failed, %s", gai_strerror(err));
-
-	if (!local_addrinfo)
-		tst_brk(TBROK, "failed to get the address");
+	if (source_addr && !strchr(source_addr, ':'))
+		SAFE_ASPRINTF(&src_addr, "::ffff:%s", source_addr);
+	setup_addrinfo(src_addr ? src_addr : source_addr, tcp_port,
+		       &hints, &local_addrinfo);
+	free(src_addr);
 
 	/* IPv6 socket is also able to access IPv4 protocol stack */
 	sfd = SAFE_SOCKET(family, sock_type, protocol);
@@ -842,6 +858,7 @@ static struct tst_option options[] = {
 		"-F       TCP_FASTOPEN_CONNECT socket option and standard API"},
 	{"t:", &targ, "-t x     Set tcp_fastopen value"},
 
+	{"S:", &source_addr, "-S x     Source address to bind"},
 	{"g:", &tcp_port, "-g x     x - server port"},
 	{"b:", &barg, "-b x     x - low latency busy poll timeout"},
 	{"T:", &type, "-T x     tcp (default), udp, dccp, sctp\n"},
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [LTP] [PATCH 4/6] tst_netload: support -S and -A netstress options
  2017-11-28 13:08 [LTP] [PATCH 1/6] network/sctp: use TST_NETLOAD_* parameters Alexey Kodanev
  2017-11-28 13:08 ` [LTP] [PATCH 2/6] network/virt_lib: " Alexey Kodanev
  2017-11-28 13:08 ` [LTP] [PATCH 3/6] netstress: support setting local source address Alexey Kodanev
@ 2017-11-28 13:08 ` Alexey Kodanev
  2017-11-28 13:08 ` [LTP] [PATCH 5/6] sctp: fix tests when hosts have multi-paths with diff MTU Alexey Kodanev
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Alexey Kodanev @ 2017-11-28 13:08 UTC (permalink / raw)
  To: ltp

Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com>
---
 testcases/lib/test_net.sh |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/testcases/lib/test_net.sh b/testcases/lib/test_net.sh
index 83639e2..1e001f7 100644
--- a/testcases/lib/test_net.sh
+++ b/testcases/lib/test_net.sh
@@ -402,6 +402,8 @@ tst_netload()
 	local expect_res="pass"
 	local ret=0
 	local type="tcp"
+	local hostopt=
+	local setup_srchost=0
 	# common options for client and server
 	local cs_opts=
 
@@ -414,15 +416,19 @@ tst_netload()
 	local s_opts=
 
 	OPTIND=0
-	while getopts :a:H:d:n:N:r:R:b:t:T:fFe:m: opt; do
+	while getopts :a:H:d:n:N:r:R:S:b:t:T:fFe:m:A: opt; do
 		case "$opt" in
 		a) c_num="$OPTARG" ;;
-		H) c_opts="${c_opts}-H $OPTARG " ;;
+		H) c_opts="${c_opts}-H $OPTARG "
+		   hostopt="$OPTARG" ;;
 		d) rfile="$OPTARG" ;;
 		n) c_opts="${c_opts}-n $OPTARG " ;;
 		N) c_opts="${c_opts}-N $OPTARG " ;;
 		r) c_requests="$OPTARG" ;;
+		A) c_opts="${c_opts}-A $OPTARG " ;;
 		R) s_replies="$OPTARG" ;;
+		S) c_opts="${c_opts}-S $OPTARG "
+		   setup_srchost=1 ;;
 		b) cs_opts="${cs_opts}-b $OPTARG " ;;
 		t) cs_opts="${cs_opts}-t $OPTARG " ;;
 		T) cs_opts="${cs_opts}-T $OPTARG "
@@ -436,6 +442,8 @@ tst_netload()
 	done
 	OPTIND=0
 
+	[ "$setup_srchost" = 1 ] && s_opts="${s_opts}-S $hostopt "
+
 	local expect_ret=0
 	[ "$expect_res" != "pass" ] && expect_ret=1
 
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [LTP] [PATCH 5/6] sctp: fix tests when hosts have multi-paths with diff MTU
  2017-11-28 13:08 [LTP] [PATCH 1/6] network/sctp: use TST_NETLOAD_* parameters Alexey Kodanev
                   ` (2 preceding siblings ...)
  2017-11-28 13:08 ` [LTP] [PATCH 4/6] tst_netload: support -S and -A netstress options Alexey Kodanev
@ 2017-11-28 13:08 ` Alexey Kodanev
  2017-11-28 13:08 ` [LTP] [PATCH 6/6] sctp: add test-case with random payload Alexey Kodanev
  2017-12-21 11:46 ` [LTP] [PATCH 1/6] network/sctp: use TST_NETLOAD_* parameters Alexey Kodanev
  5 siblings, 0 replies; 7+ messages in thread
From: Alexey Kodanev @ 2017-11-28 13:08 UTC (permalink / raw)
  To: ltp

Setup source address in sctp tests and bind to it, which
allows to avoid sending additional host IP addresses in
INIT/INIT ACK packets (sctp sets min MTU b/w those paths),
and bind the traffic to one path.

Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com>
---
 testcases/network/sctp/sctp01.sh                |    2 +-
 testcases/network/stress/sctp/sctp_ipsec.sh     |    2 +-
 testcases/network/stress/sctp/sctp_ipsec_vti.sh |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/testcases/network/sctp/sctp01.sh b/testcases/network/sctp/sctp01.sh
index 197c819..99dcce8 100755
--- a/testcases/network/sctp/sctp01.sh
+++ b/testcases/network/sctp/sctp01.sh
@@ -41,7 +41,7 @@ test_run()
 	tst_netload -H $(tst_ipaddr rhost) -T tcp
 	local res0="$(cat tst_netload.res)"
 
-	tst_netload -H $(tst_ipaddr rhost) -T sctp
+	tst_netload -S $(tst_ipaddr) -H $(tst_ipaddr rhost) -T sctp
 	local res1="$(cat tst_netload.res)"
 
 	local per=$(( $res0 * 100 / $res1 - 100 ))
diff --git a/testcases/network/stress/sctp/sctp_ipsec.sh b/testcases/network/stress/sctp/sctp_ipsec.sh
index 0b60238..677ccbf 100755
--- a/testcases/network/stress/sctp/sctp_ipsec.sh
+++ b/testcases/network/stress/sctp/sctp_ipsec.sh
@@ -36,7 +36,7 @@ do_test()
 {
 	for p in $IPSEC_SIZE_ARRAY; do
 		tst_netload -H $(tst_ipaddr rhost) -T sctp -n $p -N $p \
-			-r $IPSEC_REQUESTS
+			-r $IPSEC_REQUESTS -S $(tst_ipaddr)
 	done
 }
 
diff --git a/testcases/network/stress/sctp/sctp_ipsec_vti.sh b/testcases/network/stress/sctp/sctp_ipsec_vti.sh
index ddb4784..ab9ddc3 100755
--- a/testcases/network/stress/sctp/sctp_ipsec_vti.sh
+++ b/testcases/network/stress/sctp/sctp_ipsec_vti.sh
@@ -27,7 +27,7 @@ do_test()
 {
 	for p in $IPSEC_SIZE_ARRAY; do
 		tst_netload -H $ip_rmt_tun -T sctp -n $p -N $p \
-			-r $IPSEC_REQUESTS
+			-r $IPSEC_REQUESTS -S $ip_src_tun
 	done
 }
 
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [LTP] [PATCH 6/6] sctp: add test-case with random payload
  2017-11-28 13:08 [LTP] [PATCH 1/6] network/sctp: use TST_NETLOAD_* parameters Alexey Kodanev
                   ` (3 preceding siblings ...)
  2017-11-28 13:08 ` [LTP] [PATCH 5/6] sctp: fix tests when hosts have multi-paths with diff MTU Alexey Kodanev
@ 2017-11-28 13:08 ` Alexey Kodanev
  2017-12-21 11:46 ` [LTP] [PATCH 1/6] network/sctp: use TST_NETLOAD_* parameters Alexey Kodanev
  5 siblings, 0 replies; 7+ messages in thread
From: Alexey Kodanev @ 2017-11-28 13:08 UTC (permalink / raw)
  To: ltp

Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com>
---
 testcases/network/sctp/sctp01.sh |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/testcases/network/sctp/sctp01.sh b/testcases/network/sctp/sctp01.sh
index 99dcce8..51de2b1 100755
--- a/testcases/network/sctp/sctp01.sh
+++ b/testcases/network/sctp/sctp01.sh
@@ -17,7 +17,7 @@
 # Author: Alexey Kodanev <alexey.kodanev@oracle.com>
 
 TCID=sctp01
-TST_TOTAL=3
+TST_TOTAL=4
 TST_CLEANUP="cleanup"
 TST_NEEDS_TMPDIR=1
 
@@ -36,12 +36,14 @@ setup()
 
 test_run()
 {
+	local opt="$@"
+
 	tst_resm TINFO "compare TCP/SCTP performance"
 
-	tst_netload -H $(tst_ipaddr rhost) -T tcp
+	tst_netload -H $(tst_ipaddr rhost) -T tcp $opt
 	local res0="$(cat tst_netload.res)"
 
-	tst_netload -S $(tst_ipaddr) -H $(tst_ipaddr rhost) -T sctp
+	tst_netload -S $(tst_ipaddr) -H $(tst_ipaddr rhost) -T sctp $opt
 	local res1="$(cat tst_netload.res)"
 
 	local per=$(( $res0 * 100 / $res1 - 100 ))
@@ -55,5 +57,6 @@ test_run()
 
 setup
 test_run
+test_run -A 65000
 
 tst_exit
-- 
1.7.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [LTP] [PATCH 1/6] network/sctp: use TST_NETLOAD_* parameters
  2017-11-28 13:08 [LTP] [PATCH 1/6] network/sctp: use TST_NETLOAD_* parameters Alexey Kodanev
                   ` (4 preceding siblings ...)
  2017-11-28 13:08 ` [LTP] [PATCH 6/6] sctp: add test-case with random payload Alexey Kodanev
@ 2017-12-21 11:46 ` Alexey Kodanev
  5 siblings, 0 replies; 7+ messages in thread
From: Alexey Kodanev @ 2017-12-21 11:46 UTC (permalink / raw)
  To: ltp

Applied the patch-set.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-12-21 11:46 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-28 13:08 [LTP] [PATCH 1/6] network/sctp: use TST_NETLOAD_* parameters Alexey Kodanev
2017-11-28 13:08 ` [LTP] [PATCH 2/6] network/virt_lib: " Alexey Kodanev
2017-11-28 13:08 ` [LTP] [PATCH 3/6] netstress: support setting local source address Alexey Kodanev
2017-11-28 13:08 ` [LTP] [PATCH 4/6] tst_netload: support -S and -A netstress options Alexey Kodanev
2017-11-28 13:08 ` [LTP] [PATCH 5/6] sctp: fix tests when hosts have multi-paths with diff MTU Alexey Kodanev
2017-11-28 13:08 ` [LTP] [PATCH 6/6] sctp: add test-case with random payload Alexey Kodanev
2017-12-21 11:46 ` [LTP] [PATCH 1/6] network/sctp: use TST_NETLOAD_* parameters Alexey Kodanev

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.