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

Signed-off-by: Jiri Pirko <j...@mellanox.com>
---
v3->v4:
- rebased on top of trap patches
---
 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 a1be8528c3c9..8020d76dd7f7 100644
--- a/devlink/devlink.c
+++ b/devlink/devlink.c
@@ -31,6 +31,7 @@
 #include "mnlg.h"
 #include "json_writer.h"
 #include "utils.h"
+#include "namespace.h"
 
 #define ESWITCH_MODE_LEGACY "legacy"
 #define ESWITCH_MODE_SWITCHDEV "switchdev"
@@ -6748,7 +6749,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");
 }
@@ -6898,6 +6899,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;
@@ -6913,7 +6915,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) {
@@ -6942,6 +6944,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();
diff --git a/man/man8/devlink.8 b/man/man8/devlink.8
index 12d489440a3d..7f4eda568081 100644
--- a/man/man8/devlink.8
+++ b/man/man8/devlink.8
@@ -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
 
-- 
2.21.0

Reply via email to