> > tc filter add dev $IF parent 30:0 prio 5 protocol ip u32 > > tc filter add dev $IF parent 30:0 prio 5 handle 2: protocol ip u32 divisor 256 > > tc filter add dev $IF parent 30:0 prio 5 handle 3: u32 ht 2:0: divisor 256 > > tc filter add dev $IF parent 30:0 prio 5 u32 ht 3:6: match ip dst 192.168.0.6 flowid 30:6 > > tc filter add dev $IF protocol ip parent 30:0 prio 5 u32 ht 800:: \ > > match ip dst 192.168.0.0/24 hashkey mask 0x0000ff00 at 12 link 2: > > tc filter add dev $IF protocol ip parent 30:0 prio 5 u32 ht 800:: \ > > match ip dst 192.168.0.0/24 hashkey mask 0x000000ff at 12 link 3: > > Doesn't work. Traffic never goes to class 30:6 but stays unclassified. > > Any suggestions? > > Because traffic goes to 2:X filters. > Put > > tc filter add dev $IF protocol ip parent 30:0 prio 5 u32 ht 800:: \ > > match ip dst 192.168.0.0/24 hashkey mask 0x000000ff at 12 link 3: > before the 2: test. Doesn't work anyway. Now the config looks like the follwing: tc filter add dev $IF parent 30:0 prio 5 protocol ip u32 tc filter add dev $IF parent 30:0 prio 5 handle 2: protocol ip u32 divisor 256 tc filter add dev $IF parent 30:0 prio 5 handle 3: protocol ip u32 ht 2:0: divisor 256 tc filter add dev $IF parent 30:0 prio 5 u32 ht 3:6: match ip dst 192.168.0.6 flowid 30:6 tc filter add dev $IF protocol ip parent 30:0 prio 5 u32 ht 800:: \ match ip dst 192.168.0.0/24 hashkey mask 0x000000ff at 12 link 3: tc filter add dev $IF protocol ip parent 30:0 prio 5 u32 ht 800:: \ match ip dst 192.168.0.0/24 hashkey mask 0x0000ff00 at 12 link 2: Here's output of tc filter ls: root@xxxxxxxx:~# tc filter ls dev eth0 parent 30: filter protocol ip pref 5 u32 filter protocol ip pref 5 u32 fh 3: ht divisor 256 filter protocol ip pref 5 u32 fh 3:6:800 order 2048 key ht 3 bkt 6 flowid 30:6 match c0a80006/ffffffff at 16 filter protocol ip pref 5 u32 fh 2: ht divisor 256 filter protocol ip pref 5 u32 fh 800: ht divisor 1 filter protocol ip pref 5 u32 fh 800::800 order 2048 key ht 800 bkt 0 link 3: match c0a80000/ffffff00 at 16 hash mask 000000ff at 12 filter protocol ip pref 5 u32 fh 800::801 order 2049 key ht 800 bkt 0 link 2: match c0a80000/ffffff00 at 16 hash mask 0000ff00 at 12 Moreover, if I try to add the 2nd nested table like this: tc filter add dev $IF parent 30:0 prio 5 handle 3: protocol ip u32 ht 2:1: \ divisor 256 tc filter add dev $IF parent 30:0 prio 5 u32 ht 3:6: \ match ip dst 192.168.1.6 flowid 30:15 I receive: RTNETLINK answers: File exists I would expect that nested tables have a separate handles namespace, but apparently they're not unless I'm missing something. So the question remains - has anybody managed to configure nested hashing filters for large number of addresses? Any ideas? Thanks. Michael