Denis Gubin <denis.gu...@gmail.com> writes: > Hello everybody! > > Could you help me, please? > > I use Debian 10 and iproute2 version iproute2 > > dpkg -l iproute2 > iproute2 4.20.0-2 amd64 > > My problem is this: > I can't convert "tc -j filter show u32" command to json format. > Here it is command: > tc qdisc add dev eno1 ingress > tc filter add dev eno1 parent ffff: protocol all u32 match u8 0 0 > action mirred egress mirror dev lo > > Have a look: > > ~$ tc -j filter show parent ffff: dev eno1 > [{ > "protocol": "all", > "pref": 49152, > "kind": "u32", > "chain": 0 > },{ > "protocol": "all", > "pref": 49152, > "kind": "u32", > "chain": 0, > "options": {fh 800: ht divisor 1 } > },{ > "protocol": "all", > "pref": 49152, > "kind": "u32", > "chain": 0, > "options": {fh 800::800 order 2048 key ht 800 bkt 0 terminal > flowid ??? not_in_hw > match 00000000/00000000 at 0 > "actions": [{ > "order": 1, > "kind": "mirred", > "mirred_action": "mirror", > "direction": "egress", > "to_dev": "lo", > "control_action": { > "type": "pipe" > }, > "index": 1, > "ref": 1, > "bind": 1 > }] > } > } > ] > > > May be problem when there is actions in tc filter the problem is... I > don't know about it. > Have a look: > > "options": {fh 800::800 order 2048 key ht 800 bkt 0 terminal flowid > ??? not_in_hw > match 00000000/00000000 at 0 > "actions":
Looks like the u32 filter code hasn't been converted to JSON output at all, yet. > The json output is not valid. > Has somebody made a patch for fix it? Don't think so. But it's a fairly straight-forward thing to go through f_u32.c and converting all the fprintf() calls to the various print_XXX() functions if you want to give it a shot - just look at one of the other files for how to use those functions :) -Toke