diff options
author | David Ahern <dsahern@gmail.com> | 2021-01-14 06:09:47 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2021-01-15 03:26:49 +0300 |
commit | 8a909735fa29fb700fef064b339988ff404d2d72 (patch) | |
tree | 66ca2dd962c111c0e7e858081232dd7ebe5c003e /tools/testing/selftests/net/nettest.c | |
parent | d3857b8f0d192e0313990481d223e554db7d878e (diff) | |
download | linux-8a909735fa29fb700fef064b339988ff404d2d72.tar.xz |
selftests: Add separate options for server device bindings
Add new options to nettest to specify device binding and expected
device binding for server mode, and update fcnal-test script. This
is needed to allow a single instance of nettest running both server
and client modes to use different device bindings.
Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/testing/selftests/net/nettest.c')
-rw-r--r-- | tools/testing/selftests/net/nettest.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/tools/testing/selftests/net/nettest.c b/tools/testing/selftests/net/nettest.c index e20e74e001a2..1707af21eb15 100644 --- a/tools/testing/selftests/net/nettest.c +++ b/tools/testing/selftests/net/nettest.c @@ -79,6 +79,7 @@ struct sock_args { int use_setsockopt; int use_cmsg; const char *dev; + const char *server_dev; int ifindex; const char *clientns; @@ -96,6 +97,7 @@ struct sock_args { /* expected addresses and device index for connection */ const char *expected_dev; + const char *expected_server_dev; int expected_ifindex; /* local address */ @@ -1424,6 +1426,8 @@ static int do_server(struct sock_args *args, int ipc_fd) log_msg("Switched server netns\n"); } + args->dev = args->server_dev; + args->expected_dev = args->expected_server_dev; if (resolve_devices(args) || validate_addresses(args)) goto err_exit; @@ -1767,7 +1771,7 @@ static int ipc_parent(int cpid, int fd, struct sock_args *args) return client_status; } -#define GETOPT_STR "sr:l:p:t:g:P:DRn:M:X:m:d:BN:O:SCi6L:0:1:2:Fbq" +#define GETOPT_STR "sr:l:p:t:g:P:DRn:M:X:m:d:I:BN:O:SCi6L:0:1:2:3:Fbq" static void print_usage(char *prog) { @@ -1791,6 +1795,7 @@ static void print_usage(char *prog) " -l addr local address to bind to\n" "\n" " -d dev bind socket to given device name\n" + " -I dev bind socket to given device name - server mode\n" " -S use setsockopt (IP_UNICAST_IF or IP_MULTICAST_IF)\n" " to set device binding\n" " -C use cmsg and IP_PKTINFO to specify device binding\n" @@ -1807,6 +1812,7 @@ static void print_usage(char *prog) " -0 addr Expected local address\n" " -1 addr Expected remote address\n" " -2 dev Expected device name (or index) to receive packet\n" + " -3 dev Expected device name (or index) to receive packets - server mode\n" "\n" " -b Bind test only.\n" " -q Be quiet. Run test without printing anything.\n" @@ -1919,6 +1925,9 @@ int main(int argc, char *argv[]) case 'd': args.dev = optarg; break; + case 'I': + args.server_dev = optarg; + break; case 'i': interactive = 1; break; @@ -1945,6 +1954,9 @@ int main(int argc, char *argv[]) case '2': args.expected_dev = optarg; break; + case '3': + args.expected_server_dev = optarg; + break; case 'q': quiet = 1; break; |