tc: add oneline mode

Add initial support for oneline mode in tc; actions, filters and qdiscs
will be gradually updated in the follow-up patches.

Signed-off-by: Roman Mashak <mrv@mojatatu.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
Roman Mashak 2018-03-29 18:12:35 -04:00 committed by David Ahern
parent 8c5bf7f0e6
commit 6e8634eb13
2 changed files with 21 additions and 2 deletions

View File

@ -95,7 +95,8 @@ tc \- show / manipulate traffic control settings
\fB[ \fB-n\fR[\fIetns\fR] name \fB] \fR|
\fB[ \fB-nm \fR| \fB-nam\fR[\fIes\fR] \fB] \fR|
\fB[ \fR{ \fB-cf \fR| \fB-c\fR[\fIonf\fR] \fR} \fB[ filename ] \fB] \fR
\fB[ -t\fR[imestamp\fR] \fB\] \fR| \fB[ -t\fR[short\fR] \fB]\fR }
\fB[ -t\fR[imestamp\fR] \fB\] \fR| \fB[ -t\fR[short\fR] \fR| \fB[
-o\fR[neline\fR] \fB]\fR }
.ti 8
.IR FORMAT " := {"
@ -648,6 +649,18 @@ First failure will cause termination of tc.
don't terminate tc on errors in batch mode.
If there were any errors during execution of the commands, the application return code will be non zero.
.TP
.BR "\-o" , " \-oneline"
output each record on a single line, replacing line feeds
with the
.B '\e'
character. This is convenient when you want to count records
with
.BR wc (1)
or to
.BR grep (1)
the output.
.TP
.BR "\-n" , " \-net" , " \-netns " <NETNS>
switches

View File

@ -42,6 +42,8 @@ int force;
bool use_names;
int json;
int color;
int oneline;
const char *_SL_;
static char *conf_file;
@ -191,7 +193,7 @@ static void usage(void)
"where OBJECT := { qdisc | class | filter | action | monitor | exec }\n"
" OPTIONS := { -s[tatistics] | -d[etails] | -r[aw] | -b[atch] [filename] | -n[etns] name |\n"
" -nm | -nam[es] | { -cf | -conf } path } |\n"
" -j[son] -p[retty] -c[olor]\n");
" -o[neline] -j[son] -p[retty] -c[olor]\n");
}
static int do_cmd(int argc, char **argv, void *buf, size_t buflen)
@ -487,6 +489,8 @@ int main(int argc, char **argv)
++timestamp_short;
} else if (matches(argv[1], "-json") == 0) {
++json;
} else if (matches(argv[1], "-oneline") == 0) {
++oneline;
} else {
fprintf(stderr, "Option \"%s\" is unknown, try \"tc -help\".\n", argv[1]);
return -1;
@ -494,6 +498,8 @@ int main(int argc, char **argv)
argc--; argv++;
}
_SL_ = oneline ? "\\" : "\n";
if (color & !json)
enable_color();