devlink: introduce cmdline option to switch to a different namespace

Similar to ip tool, add an option to devlink to operate under certain
network namespace. Unfortunately, "-n" is already taken, so use "-N"
instead.

Example:

$ devlink -N testns1 dev show

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David Ahern <dsahern@kernel.org>
This commit is contained in:
Jiri Pirko 2019-10-03 11:51:14 +02:00 committed by David Ahern
parent f93134841e
commit 29993df876
2 changed files with 14 additions and 2 deletions

View File

@ -32,6 +32,7 @@
#include "mnlg.h"
#include "json_writer.h"
#include "utils.h"
#include "namespace.h"
#define ESWITCH_MODE_LEGACY "legacy"
#define ESWITCH_MODE_SWITCHDEV "switchdev"
@ -7023,7 +7024,7 @@ static int cmd_trap(struct dl *dl)
static void help(void)
{
pr_err("Usage: devlink [ OPTIONS ] OBJECT { COMMAND | help }\n"
" devlink [ -f[orce] ] -b[atch] filename\n"
" devlink [ -f[orce] ] -b[atch] filename -N[etns] netnsname\n"
"where OBJECT := { dev | port | sb | monitor | dpipe | resource | region | health | trap }\n"
" OPTIONS := { -V[ersion] | -n[o-nice-names] | -j[son] | -p[retty] | -v[erbose] -s[tatistics] }\n");
}
@ -7173,6 +7174,7 @@ int main(int argc, char **argv)
{ "pretty", no_argument, NULL, 'p' },
{ "verbose", no_argument, NULL, 'v' },
{ "statistics", no_argument, NULL, 's' },
{ "Netns", required_argument, NULL, 'N' },
{ NULL, 0, NULL, 0 }
};
const char *batch_file = NULL;
@ -7188,7 +7190,7 @@ int main(int argc, char **argv)
return EXIT_FAILURE;
}
while ((opt = getopt_long(argc, argv, "Vfb:njpvs",
while ((opt = getopt_long(argc, argv, "Vfb:njpvsN:",
long_options, NULL)) >= 0) {
switch (opt) {
@ -7217,6 +7219,12 @@ int main(int argc, char **argv)
case 's':
dl->stats = true;
break;
case 'N':
if (netns_switch(optarg)) {
ret = EXIT_FAILURE;
goto dl_free;
}
break;
default:
pr_err("Unknown option.\n");
help();

View File

@ -55,6 +55,10 @@ Turn on verbose output.
.BR "\-s" , " --statistics"
Output statistics.
.TP
.BR "\-N", " \-Netns " <NETNSNAME>
Switches to the specified network namespace.
.SS
.I OBJECT