From: Cong Wang <xiyou.wangc...@gmail.com>
Date: Thu, 30 Apr 2020 20:53:49 -0700

> When we tell kernel to dump filters from root (ffff:ffff),
> those filters on ingress (ffff:0000) are matched, but their
> true parents must be dumped as they are. However, kernel
> dumps just whatever we tell it, that is either ffff:ffff
> or ffff:0000:
> 
>  $ nl-cls-list --dev=dummy0 --parent=root
>  cls basic dev dummy0 id none parent root prio 49152 protocol ip match-all
>  cls basic dev dummy0 id :1 parent root prio 49152 protocol ip match-all
>  $ nl-cls-list --dev=dummy0 --parent=ffff:
>  cls basic dev dummy0 id none parent ffff: prio 49152 protocol ip match-all
>  cls basic dev dummy0 id :1 parent ffff: prio 49152 protocol ip match-all
> 
> This is confusing and misleading, more importantly this is
> a regression since 4.15, so the old behavior must be restored.
> 
> And, when tc filters are installed on a tc class, the parent
> should be the classid, rather than the qdisc handle. Commit
> edf6711c9840 ("net: sched: remove classid and q fields from tcf_proto")
> removed the classid we save for filters, we can just restore
> this classid in tcf_block.
> 
> Steps to reproduce this:
 ...
> Fixes: a10fa20101ae ("net: sched: propagate q and parent from caller down to 
> tcf_fill_node")
> Fixes: edf6711c9840 ("net: sched: remove classid and q fields from tcf_proto")
> Signed-off-by: Cong Wang <xiyou.wangc...@gmail.com>

Applied, thanks.

Reply via email to