On Sat, 2018-03-24 at 14:43 +0100, Vaclav Zindulka wrote: > Package: iproute2 > Version: 4.14.1-1~bpo9+1 > Severity: normal > > Dear Maintainer, > > I found some problems in tc class show and tc filter show commands. > We > use tc in large scale (thousands of subnets) on multiple servers. > Whole > shaping system is udergoing large overview and I'm rewriting it > almost > from the scratch. Tc rules are one of key elements so I started to > check > and change its whole structure. Until now we had everything in parent > qdisc 1:0 (all tc filter rules, tc classes). Now I decided to change > it, > so a lot of classes have its own hfsc qdiscs and in this qdiscs I > create > whole new structure of tc classes, tc filters a tc qdiscs. Let's say > it > is a tree within a tree. I can provide simple (prototype) bash > script, > which led to my discovery. (https://pastebin.com/A57x8fq5 - comments > are > in czech since I didn't plan to release it anywhere :-) - I can > provide > further info if needed. > > Problem is very annoying since I need to get > stats from tc -s class show dev ...etc. > > 1. First problem - tc class show dev enp0s31f6 prints whole structure > two times. I compared it with "sudo tc -s class show dev enp0s31f6" | > grep > -c "class" vs "sudo tc -s class show dev enp0s31f6" | sort | uniq | > grep > -c "class" which produces about a half of records. Reference class > 2000:ffff (produced by my script 2000 - 4fff) is shown twice (same > for > 2000: root). I'm not sure about behavior of executing command twice > in this case but it can't be defined twice for sure. Tc is veeery > picky > :-) > > 2. Second problem - tc filter show dev enp0s31f6 show just the parent > 1:0 rules. This one is not so critical, since I don't read stats > regularly, but for debugging it is very inconvenient since one has to > know classId of whole parent (let's say 2000:0 qdisc in which all > those > filters reside). When I execute tc filter show dev enp0s31f6 parent > 2000: (including colon :-) I get all those defined filter rules and > hash > tables. But not with base command. > > I discovered this on version 4.9 from stable stretch repository. I > tried > to install backport version 4.14 but resutls were exactly the same. I > didn't try to reboot after upgrade yet tho. I'll do this after > finishing > this bugreport. I didn't try to compile newest version from source > since > I need some kind of stable solution to put it on 21 servers. > > What I expected was to see defined classes just once. And to see tc > filter rules with base show command without specifying parent's > classid > for every hfsc qdisc containing additional rules and hash tables.
Hi, Since you mentioned it's working in the same way in 4.9 to 4.14 it doesn't look like it's a regression, so a better place to ask would probably be netdev: http://vger.kernel.org/vger-lists.html#netdev Stephen, any comment on the behaviour described above? -- Kind regards, Luca Boccassi
signature.asc
Description: This is a digitally signed message part

