用tc警察限制传入的stream量

我有一个要求限制总stream量到5mbit。 我知道这可以通过使用下面的tc命令来实现。 “tc filter add dev eth0 parent ffff:protocol ip u32 match u32 0 0 police rate 5mbit burst 10k drop flowid:1”

问题:我有两个交通stream,说tcp和udp。 我的目标是将tcp和udp总stream量限制在5mbit,并使tcp的优先级高于udp。 这就是说,如果总传入stream量是7mbit,我只需要5mbit而tcp丢失较less(因为它有更高的优先级)。 我知道我可以写3个不同的规则,例如3mbit和2mbit。

tc filter add dev eth0 parent ffff:protocol ip prio 10 u32 match u32 tcp 0xff police rate 3mbit burst 10k drop flowid:1”“tc filter add dev eth0 parent ffff:protocol ip prio 50 u32 match u32 udp 0xff police rate 2mbit burst 10k下落stream畅:1 “,

但是,即使没有udp数据包,这也会将tcp数据包限制在3mbits。

有什么办法可以限制总传入带宽,并根据优先级丢弃多余的数据包