Re: Fwd: [LARTC] Hashing filters

Linux Advanced Routing and Traffic Control

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

 



> > 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


[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux