| From 6a97350858affb4547cbad2f7ec8540c77979fe1 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 29 Dec 2021 18:58:10 +0800 |
| Subject: selftests/net: udpgso_bench_tx: fix dst ip argument |
| |
| From: wujianguo <wujianguo@chinatelecom.cn> |
| |
| [ Upstream commit 9c1952aeaa98b3cfc49e2a79cb2c7d6a674213e9 ] |
| |
| udpgso_bench_tx call setup_sockaddr() for dest address before |
| parsing all arguments, if we specify "-p ${dst_port}" after "-D ${dst_ip}", |
| then ${dst_port} will be ignored, and using default cfg_port 8000. |
| |
| This will cause test case "multiple GRO socks" failed in udpgro.sh. |
| |
| Setup sockaddr after parsing all arguments. |
| |
| Fixes: 3a687bef148d ("selftests: udp gso benchmark") |
| Signed-off-by: Jianguo Wu <wujianguo@chinatelecom.cn> |
| Reviewed-by: Willem de Bruijn <willemb@google.com> |
| Link: https://lore.kernel.org/r/ff620d9f-5b52-06ab-5286-44b945453002@163.com |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| tools/testing/selftests/net/udpgso_bench_tx.c | 8 +++++++- |
| 1 file changed, 7 insertions(+), 1 deletion(-) |
| |
| diff --git a/tools/testing/selftests/net/udpgso_bench_tx.c b/tools/testing/selftests/net/udpgso_bench_tx.c |
| index e821564053cfb..463a2cbd0261a 100644 |
| --- a/tools/testing/selftests/net/udpgso_bench_tx.c |
| +++ b/tools/testing/selftests/net/udpgso_bench_tx.c |
| @@ -247,6 +247,7 @@ static void usage(const char *filepath) |
| |
| static void parse_opts(int argc, char **argv) |
| { |
| + const char *bind_addr = NULL; |
| int max_len, hdrlen; |
| int c; |
| |
| @@ -271,7 +272,7 @@ static void parse_opts(int argc, char **argv) |
| cfg_cpu = strtol(optarg, NULL, 0); |
| break; |
| case 'D': |
| - setup_sockaddr(cfg_family, optarg, &cfg_dst_addr); |
| + bind_addr = optarg; |
| break; |
| case 'l': |
| cfg_runtime_ms = strtoul(optarg, NULL, 10) * 1000; |
| @@ -300,6 +301,11 @@ static void parse_opts(int argc, char **argv) |
| } |
| } |
| |
| + if (!bind_addr) |
| + bind_addr = cfg_family == PF_INET6 ? "::" : "0.0.0.0"; |
| + |
| + setup_sockaddr(cfg_family, bind_addr, &cfg_dst_addr); |
| + |
| if (optind != argc) |
| usage(argv[0]); |
| |
| -- |
| 2.34.1 |
| |