Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1588234 > unrolled thread
| Started by | Jiri Kosina <jikos@kernel.org> |
|---|---|
| First post | 2017-02-25 22:30 +0100 |
| Last post | 2017-02-27 13:10 +0100 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH 2/2] iproute2: add support for invisible qdisc dumping Jiri Kosina <jikos@kernel.org> - 2017-02-25 22:30 +0100
Re: [PATCH 2/2] iproute2: add support for invisible qdisc dumping Phil Sutter <phil@nwl.cc> - 2017-02-27 13:10 +0100
| From | Jiri Kosina <jikos@kernel.org> |
|---|---|
| Date | 2017-02-25 22:30 +0100 |
| Subject | [PATCH 2/2] iproute2: add support for invisible qdisc dumping |
| Message-ID | <teS4G-5je-21@gated-at.bofh.it> |
From: Jiri Kosina <jkosina@suse.cz>
Support the new TCA_DUMP_INVISIBLE netlink attribute that allows asking
kernel to perform 'full qdisc dump', as for historical reasons some of the
default qdiscs are being hidden by the kernel.
The command syntax is being extended by voluntary 'invisible' argument to
'tc qdisc show'.
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
---
tc/tc_qdisc.c | 25 +++++++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/tc/tc_qdisc.c b/tc/tc_qdisc.c
index 3a3701c2..29da9269 100644
--- a/tc/tc_qdisc.c
+++ b/tc/tc_qdisc.c
@@ -34,7 +34,7 @@ static int usage(void)
fprintf(stderr, " [ stab [ help | STAB_OPTIONS] ]\n");
fprintf(stderr, " [ [ QDISC_KIND ] [ help | OPTIONS ] ]\n");
fprintf(stderr, "\n");
- fprintf(stderr, " tc qdisc show [ dev STRING ] [ ingress | clsact ]\n");
+ fprintf(stderr, " tc qdisc show [ dev STRING ] [ ingress | clsact | invisible ]\n");
fprintf(stderr, "Where:\n");
fprintf(stderr, "QDISC_KIND := { [p|b]fifo | tbf | prio | cbq | red | etc. }\n");
fprintf(stderr, "OPTIONS := ... try tc qdisc add <desired QDISC_KIND> help\n");
@@ -292,6 +292,7 @@ static int tc_qdisc_list(int argc, char **argv)
{
struct tcmsg t = { .tcm_family = AF_UNSPEC };
char d[16] = {};
+ bool dump_invisible = false;
while (argc > 0) {
if (strcmp(*argv, "dev") == 0) {
@@ -306,6 +307,8 @@ static int tc_qdisc_list(int argc, char **argv)
t.tcm_parent = TC_H_INGRESS;
} else if (matches(*argv, "help") == 0) {
usage();
+ } else if (strcmp(*argv, "invisible") == 0) {
+ dump_invisible = true;
} else {
fprintf(stderr, "What is \"%s\"? Try \"tc qdisc help\".\n", *argv);
return -1;
@@ -325,7 +328,25 @@ static int tc_qdisc_list(int argc, char **argv)
filter_ifindex = t.tcm_ifindex;
}
- if (rtnl_dump_request(&rth, RTM_GETQDISC, &t, sizeof(t)) < 0) {
+ if (dump_invisible) {
+ struct {
+ struct nlmsghdr n;
+ struct tcmsg t;
+ char buf[256];
+ } req = {
+ .n.nlmsg_type = RTM_GETQDISC,
+ .n.nlmsg_len = NLMSG_LENGTH(sizeof(struct tcmsg)),
+ };
+
+ req.t.tcm_family = AF_UNSPEC;
+
+ addattr(&req.n, 256, TCA_DUMP_INVISIBLE);
+ if (rtnl_dump_request_n(&rth, &req.n) < 0) {
+ perror("Cannot send dump request");
+ return 1;
+ }
+
+ } else if (rtnl_dump_request(&rth, RTM_GETQDISC, &t, sizeof(t)) < 0) {
perror("Cannot send dump request");
return 1;
}
--
Jiri Kosina
SUSE Labs
[toc] | [next] | [standalone]
| From | Phil Sutter <phil@nwl.cc> |
|---|---|
| Date | 2017-02-27 13:10 +0100 |
| Message-ID | <tfshP-5m9-5@gated-at.bofh.it> |
| In reply to | #1588234 |
On Sat, Feb 25, 2017 at 10:29:17PM +0100, Jiri Kosina wrote: > From: Jiri Kosina <jkosina@suse.cz> > > Support the new TCA_DUMP_INVISIBLE netlink attribute that allows asking > kernel to perform 'full qdisc dump', as for historical reasons some of the > default qdiscs are being hidden by the kernel. > > The command syntax is being extended by voluntary 'invisible' argument to > 'tc qdisc show'. > > Signed-off-by: Jiri Kosina <jkosina@suse.cz> > --- > tc/tc_qdisc.c | 25 +++++++++++++++++++++++-- > 1 file changed, 23 insertions(+), 2 deletions(-) Would you mind adding a description of the new keyword to tc man page as well? > diff --git a/tc/tc_qdisc.c b/tc/tc_qdisc.c > index 3a3701c2..29da9269 100644 > --- a/tc/tc_qdisc.c > +++ b/tc/tc_qdisc.c > @@ -34,7 +34,7 @@ static int usage(void) > fprintf(stderr, " [ stab [ help | STAB_OPTIONS] ]\n"); > fprintf(stderr, " [ [ QDISC_KIND ] [ help | OPTIONS ] ]\n"); > fprintf(stderr, "\n"); > - fprintf(stderr, " tc qdisc show [ dev STRING ] [ ingress | clsact ]\n"); > + fprintf(stderr, " tc qdisc show [ dev STRING ] [ ingress | clsact | invisible ]\n"); Doesn't look like these are mutually exclusive. Therefore I would suggest fixing the syntax to: | + fprintf(stderr, " tc qdisc show [ dev STRING ] [ ingress | clsact ] [ invisible ]\n"); Cheers, Phil
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web