84 lines
2.7 KiB
Diff
84 lines
2.7 KiB
Diff
From 26b419d729ee84a1924c31b2140281dace819dbc Mon Sep 17 00:00:00 2001
|
|
From: Jakub Kicinski <kuba@kernel.org>
|
|
Date: Sun, 18 Oct 2020 14:31:48 -0700
|
|
Subject: [PATCH 31/37] add support for stats in subcommands
|
|
|
|
Add new parameters (-I | --include-statistics) which will
|
|
control requesting statistic dumps from the kernel.
|
|
|
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
|
|
(cherry picked from commit 66ecd38ca8b4e6184af4c38c234a9dcfb6804a4a)
|
|
---
|
|
ethtool.8.in | 7 +++++++
|
|
ethtool.c | 8 ++++++++
|
|
internal.h | 1 +
|
|
3 files changed, 16 insertions(+)
|
|
|
|
diff --git a/ethtool.8.in b/ethtool.8.in
|
|
index 12866dc456cf..e0601b3db0cf 100644
|
|
--- a/ethtool.8.in
|
|
+++ b/ethtool.8.in
|
|
@@ -140,6 +140,9 @@ ethtool \- query or control network driver and hardware settings
|
|
.B ethtool [--json]
|
|
.I args
|
|
.HP
|
|
+.B ethtool [-I | --include-statistics]
|
|
+.I args
|
|
+.HP
|
|
.B ethtool \-\-monitor
|
|
[
|
|
.I command
|
|
@@ -496,6 +499,10 @@ Output results in JavaScript Object Notation (JSON). Only a subset of
|
|
options support this. Those which do not will continue to output
|
|
plain text in the presence of this option.
|
|
.TP
|
|
+.B \-I \-\-include\-statistics
|
|
+Include command-related statistics in the output. This option allows
|
|
+displaying relevant device statistics for selected get commands.
|
|
+.TP
|
|
.B \-a \-\-show\-pause
|
|
Queries the specified Ethernet device for pause parameter information.
|
|
.TP
|
|
diff --git a/ethtool.c b/ethtool.c
|
|
index 9b56b0e2a628..f5fbb01e553a 100644
|
|
--- a/ethtool.c
|
|
+++ b/ethtool.c
|
|
@@ -5979,6 +5979,7 @@ static int show_usage(struct cmd_context *ctx __maybe_unused)
|
|
fprintf(stdout, "FLAGS:\n");
|
|
fprintf(stdout, " --debug MASK turn on debugging messages\n");
|
|
fprintf(stdout, " --json enable JSON output format (not supported by all commands)\n");
|
|
+ fprintf(stdout, " -I|--include-statistics request device statistics related to the command (not supported by all commands)\n");
|
|
|
|
return 0;
|
|
}
|
|
@@ -6239,6 +6240,13 @@ int main(int argc, char **argp)
|
|
argc -= 1;
|
|
continue;
|
|
}
|
|
+ if (*argp && (!strcmp(*argp, "--include-statistics") ||
|
|
+ !strcmp(*argp, "-I"))) {
|
|
+ ctx.show_stats = true;
|
|
+ argp += 1;
|
|
+ argc -= 1;
|
|
+ continue;
|
|
+ }
|
|
break;
|
|
}
|
|
if (*argp && !strcmp(*argp, "--monitor")) {
|
|
diff --git a/internal.h b/internal.h
|
|
index d096a28abfa2..1c0652d28793 100644
|
|
--- a/internal.h
|
|
+++ b/internal.h
|
|
@@ -225,6 +225,7 @@ struct cmd_context {
|
|
char **argp; /* arguments to the sub-command */
|
|
unsigned long debug; /* debugging mask */
|
|
bool json; /* Output JSON, if supported */
|
|
+ bool show_stats; /* include command-specific stats */
|
|
#ifdef ETHTOOL_ENABLE_NETLINK
|
|
struct nl_context *nlctx; /* netlink context (opaque) */
|
|
#endif
|
|
--
|
|
2.26.2
|
|
|