> > 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@testcomp:~# 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
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/