aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2020-10-18 14:31:48 -0700
committerMichal Kubecek <mkubecek@suse.cz>2020-10-19 09:45:55 +0200
commit66ecd38ca8b4e6184af4c38c234a9dcfb6804a4a (patch)
tree9da5a03a8b2a0d84a7d53ac2a220c416107417ac
parentd944e60dbeee28ef0c3581e6a90f2e3b75b1c8f7 (diff)
downloadethtool-66ecd38ca8b4e6184af4c38c234a9dcfb6804a4a.tar.gz
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>
-rw-r--r--ethtool.8.in7
-rw-r--r--ethtool.c8
-rw-r--r--internal.h1
3 files changed, 16 insertions, 0 deletions
diff --git a/ethtool.8.in b/ethtool.8.in
index 9beb1e5..429c75f 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
@@ -499,6 +502,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 403616b..1d9067e 100644
--- a/ethtool.c
+++ b/ethtool.c
@@ -6031,6 +6031,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;
}
@@ -6291,6 +6292,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 935ebac..27da8ea 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