[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20200127.105324.147634448385166681.davem@davemloft.net>
Date: Mon, 27 Jan 2020 10:53:24 +0100 (CET)
From: David Miller <davem@...emloft.net>
To: xiyou.wangcong@...il.com
Cc: netdev@...r.kernel.org, jhs@...atatu.com, jiri@...nulli.us
Subject: Re: [Patch net] net_sched: walk through all child classes in
tc_bind_tclass()
From: Cong Wang <xiyou.wangcong@...il.com>
Date: Thu, 23 Jan 2020 17:27:08 -0800
> In a complex TC class hierarchy like this:
>
> tc qdisc add dev eth0 root handle 1:0 cbq bandwidth 100Mbit \
> avpkt 1000 cell 8
> tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 100Mbit \
> rate 6Mbit weight 0.6Mbit prio 8 allot 1514 cell 8 maxburst 20 \
> avpkt 1000 bounded
>
> tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip \
> sport 80 0xffff flowid 1:3
> tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip \
> sport 25 0xffff flowid 1:4
>
> tc class add dev eth0 parent 1:1 classid 1:3 cbq bandwidth 100Mbit \
> rate 5Mbit weight 0.5Mbit prio 5 allot 1514 cell 8 maxburst 20 \
> avpkt 1000
> tc class add dev eth0 parent 1:1 classid 1:4 cbq bandwidth 100Mbit \
> rate 3Mbit weight 0.3Mbit prio 5 allot 1514 cell 8 maxburst 20 \
> avpkt 1000
>
> where filters are installed on qdisc 1:0, so we can't merely
> search from class 1:1 when creating class 1:3 and class 1:4. We have
> to walk through all the child classes of the direct parent qdisc.
> Otherwise we would miss filters those need reverse binding.
>
> Fixes: 07d79fc7d94e ("net_sched: add reverse binding for tc class")
> Cc: Jamal Hadi Salim <jhs@...atatu.com>
> Cc: Jiri Pirko <jiri@...nulli.us>
> Signed-off-by: Cong Wang <xiyou.wangcong@...il.com>
Applied and queued up for -stable.
Powered by blists - more mailing lists