From: Jiri Pirko <j...@mellanox.com>

Signed-off-by: Jiri Pirko <j...@mellanox.com>
---
 devlink/devlink.c  | 12 ++++++++++--
 man/man8/devlink.8 |  4 ++++
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/devlink/devlink.c b/devlink/devlink.c
index d8197ea3a478..9242cc05ad0c 100644
--- a/devlink/devlink.c
+++ b/devlink/devlink.c
@@ -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"
@@ -6332,7 +6333,7 @@ static int cmd_health(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 }\n"
               "       OPTIONS := { -V[ersion] | -n[o-nice-names] | -j[son] | 
-p[retty] | -v[erbose] }\n");
 }
@@ -6478,6 +6479,7 @@ int main(int argc, char **argv)
                { "json",               no_argument,            NULL, 'j' },
                { "pretty",             no_argument,            NULL, 'p' },
                { "verbose",            no_argument,            NULL, 'v' },
+               { "Netns",              required_argument,      NULL, 'N' },
                { NULL, 0, NULL, 0 }
        };
        const char *batch_file = NULL;
@@ -6493,7 +6495,7 @@ int main(int argc, char **argv)
                return EXIT_FAILURE;
        }
 
-       while ((opt = getopt_long(argc, argv, "Vfb:njpv",
+       while ((opt = getopt_long(argc, argv, "Vfb:njpvN:",
                                  long_options, NULL)) >= 0) {
 
                switch (opt) {
@@ -6519,6 +6521,12 @@ int main(int argc, char **argv)
                case 'v':
                        dl->verbose = true;
                        break;
+               case 'N':
+                       if (netns_switch(optarg)) {
+                               ret = EXIT_FAILURE;
+                               goto dl_free;
+                       }
+                       break;
                default:
                        pr_err("Unknown option.\n");
                        help();
diff --git a/man/man8/devlink.8 b/man/man8/devlink.8
index 13d4dcd908b3..9fc9b034eefe 100644
--- a/man/man8/devlink.8
+++ b/man/man8/devlink.8
@@ -51,6 +51,10 @@ When combined with -j generate a pretty JSON output.
 .BR "\-v" , " --verbose"
 Turn on verbose output.
 
+.TP
+.BR "\-N", " \-Netns " <NETNSNAME>
+Switches to the specified network namespace.
+
 .SS
 .I OBJECT
 
-- 
2.21.0

Reply via email to