[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: multiple u32 filters




The following (simple) sequence of operations shows the bug I mentioned:

 - - - - - - - - - 
[root@bach confs]# tc qdisc add dev atm3 root handle 1:0 prio

[root@bach confs]# tc filter add dev atm3 parent 1:0 protocol ip pref 5 
handle 800::1 u32 match ip tos 0x10 0xff classid 1:1

[root@bach confs]# tc filter ls dev atm3

filter parent 1: protocol ip pref 5 u32
filter parent 1: protocol ip pref 5 u32 fh 800: ht divisor 1
filter parent 1: protocol ip pref 5 u32 fh 800::1 order 1 key ht 800 bkt 0 
flowid 1:1
  match 00100000/00ff0000 at 0

[root@bach confs]# tc filter add dev atm3 parent 1:0 protocol ip pref 6 
handle 800::1 u32 match ip tos 0x20 0xff classid 1:2

RTNETLINK answers: File exists

[root@bach confs]# tc filter ls dev atm3

filter parent 1: protocol ip pref 5 u32
filter parent 1: protocol ip pref 5 u32 fh 801: ht divisor 1
filter parent 1: protocol ip pref 5 u32 fh 800: ht divisor 1
filter parent 1: protocol ip pref 5 u32 fh 800::1 order 1 key ht 800 bkt 0 
flowid 1:1
  match 00100000/00ff0000 at 0
filter parent 1: protocol ip pref 6 u32
filter parent 1: protocol ip pref 6 u32 fh 801: ht divisor 1
filter parent 1: protocol ip pref 6 u32 fh 800: ht divisor 1
filter parent 1: protocol ip pref 6 u32 fh 800::1 order 1 key ht 800 bkt 0 
flowid 1:1
  match 00100000/00ff0000 at 0
 - - - - - - - - - -

Notice how u32 created junk (801: ht divisor 1) even though it reported an 
error, and how everything is replicated between pref 5 and pref 6...


Rui Prior