Hello, We have a strange problem with the filters on our setup... We have a PERL module which creates, upon connection of a user, a new class for bandwidth limiting. We then create a filter for that user based on his IP address. Code : "$TC class add dev $this->{device} parent $this->{parent} " . "classid 1:$pid cbq bandwidth $this->{MaxRate} rate $rlimit " . "allot $this->{allot} weight $weight$runit prio 5 " . "avpkt $this->{avpkt} bounded" ; "$TC filter add dev $this->{device} protocol ip parent " . "$this->{root} prio $pid u32 match ip dst $ipdst " . "flowid 1:$pid 2>/dev/null" ; Where : $this->{device} is eth1 $this->{allot} = 1514 $this->{avgpkt} = 1000 $weight is a 10% of $rlimit $this->{maxrate} is the rate of the eth interface $pid is a number between 300 and 16000 specific for each class/filter $this->{root} is 1: $this->parent is 1:1 Example : class cbq 1: root rate 100Mbit (bounded,isolated) prio no-transmit class cbq 1:1 parent 1: rate 100Mbit prio 1 class cbq 1:516 parent 1:1 rate 400Kbit (bounded) prio 5 class cbq 1:460 parent 1:1 rate 400Kbit (bounded) prio 5 Ok.. .the problem we have is with the filters. Limiting is working beautifully but when we do a tc filter ls dev eth1 | grep 516 (to see the number of filters with that particular priority), we should normally see only one filter related to our flowid, right ? However, we have one copy of the filter **for each** priority... Example for prio 516 : filter parent 1: protocol ip pref 450 u32 fh 8d7::800 order 2048 key ht 8d7 bkt 0 flowid 1:516 filter parent 1: protocol ip pref 460 u32 fh 8d7::800 order 2048 key ht 8d7 bkt 0 flowid 1:516 filter parent 1: protocol ip pref 516 u32 filter parent 1: protocol ip pref 516 u32 fh 878: ht divisor 1 filter parent 1: protocol ip pref 516 u32 fh 878::800 order 2048 key ht 878 bkt 0 flowid 1:2467 filter parent 1: protocol ip pref 516 u32 fh 877: ht divisor 1 filter parent 1: protocol ip pref 516 u32 fh 877::800 order 2048 key ht 877 bkt 0 flowid 1:2466 .... .... .... filter parent 1: protocol ip pref 2463 u32 fh 8d7::800 order 2048 key ht 8d7 bkt 0 flowid 1:516 filter parent 1: protocol ip pref 2464 u32 fh 8d7::800 order 2048 key ht 8d7 bkt 0 flowid 1:516 filter parent 1: protocol ip pref 2465 u32 fh 8d7::800 order 2048 key ht 8d7 bkt 0 flowid 1:516 filter parent 1: protocol ip pref 2466 u32 fh 8d7::800 order 2048 key ht 8d7 bkt 0 flowid 1:516 filter parent 1: protocol ip pref 2467 u32 fh 8d7::800 order 2048 key ht 8d7 bkt 0 flowid 1:516 Any idea what we are doing wrong ? Or maybe it is a problem in the tc filter ls command ? BTW, we are using kernel 2.4.3 with iproute2 version 2.2.4-10 (from RH7.1) Thanks and best regards, Frederic Lens & Thierry Coutelier