Message ID | 20211111115717.1925230-1-willemdebruijn.kernel@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | d336509cb9d03970911878bb77f0497f64fda061 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] selftests/net: udpgso_bench_rx: fix port argument | expand |
Hello: This patch was applied to netdev/net.git (master) by David S. Miller <davem@davemloft.net>: On Thu, 11 Nov 2021 06:57:17 -0500 you wrote: > From: Willem de Bruijn <willemb@google.com> > > The below commit added optional support for passing a bind address. > It configures the sockaddr bind arguments before parsing options and > reconfigures on options -b and -4. > > This broke support for passing port (-p) on its own. > > [...] Here is the summary with links: - [net] selftests/net: udpgso_bench_rx: fix port argument https://git.kernel.org/netdev/net/c/d336509cb9d0 You are awesome, thank you!
On Thu, 2021-11-11 at 06:57 -0500, Willem de Bruijn wrote: > From: Willem de Bruijn <willemb@google.com> > > The below commit added optional support for passing a bind address. > It configures the sockaddr bind arguments before parsing options and > reconfigures on options -b and -4. > > This broke support for passing port (-p) on its own. > > Configure sockaddr after parsing all arguments. > > Fixes: 3327a9c46352 ("selftests: add functionals test for UDP GRO") > Reported-by: Eric Dumazet <edumazet@google.com> > Signed-off-by: Willem de Bruijn <willemb@google.com> > --- > tools/testing/selftests/net/udpgso_bench_rx.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/tools/testing/selftests/net/udpgso_bench_rx.c b/tools/testing/selftests/net/udpgso_bench_rx.c > index 76a24052f4b4..6a193425c367 100644 > --- a/tools/testing/selftests/net/udpgso_bench_rx.c > +++ b/tools/testing/selftests/net/udpgso_bench_rx.c > @@ -293,19 +293,17 @@ static void usage(const char *filepath) > > static void parse_opts(int argc, char **argv) > { > + const char *bind_addr = NULL; > int c; > > - /* bind to any by default */ > - setup_sockaddr(PF_INET6, "::", &cfg_bind_addr); > while ((c = getopt(argc, argv, "4b:C:Gl:n:p:rR:S:tv")) != -1) { > switch (c) { > case '4': > cfg_family = PF_INET; > cfg_alen = sizeof(struct sockaddr_in); > - setup_sockaddr(PF_INET, "0.0.0.0", &cfg_bind_addr); > break; > case 'b': > - setup_sockaddr(cfg_family, optarg, &cfg_bind_addr); > + bind_addr = optarg; > break; > case 'C': > cfg_connect_timeout_ms = strtoul(optarg, NULL, 0); > @@ -341,6 +339,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_bind_addr); > + > if (optind != argc) > usage(argv[0]); > LGTM, thanks Willem, Acked-by: Paolo Abeni <pabeni@redhat.com>
diff --git a/tools/testing/selftests/net/udpgso_bench_rx.c b/tools/testing/selftests/net/udpgso_bench_rx.c index 76a24052f4b4..6a193425c367 100644 --- a/tools/testing/selftests/net/udpgso_bench_rx.c +++ b/tools/testing/selftests/net/udpgso_bench_rx.c @@ -293,19 +293,17 @@ static void usage(const char *filepath) static void parse_opts(int argc, char **argv) { + const char *bind_addr = NULL; int c; - /* bind to any by default */ - setup_sockaddr(PF_INET6, "::", &cfg_bind_addr); while ((c = getopt(argc, argv, "4b:C:Gl:n:p:rR:S:tv")) != -1) { switch (c) { case '4': cfg_family = PF_INET; cfg_alen = sizeof(struct sockaddr_in); - setup_sockaddr(PF_INET, "0.0.0.0", &cfg_bind_addr); break; case 'b': - setup_sockaddr(cfg_family, optarg, &cfg_bind_addr); + bind_addr = optarg; break; case 'C': cfg_connect_timeout_ms = strtoul(optarg, NULL, 0); @@ -341,6 +339,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_bind_addr); + if (optind != argc) usage(argv[0]);