question about filter priorities and "tc -d filter show" output

Linux Advanced Routing and Traffic Control

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

 



The interface is setup like this:
# tc qdisc del dev eth0 root
# tc qdisc add dev eth0 root handle 1: htb default 2
# tc class add dev eth0 parent 1: classid 1:2 htb rate 20mbit ceil 20mbit

If I add a second class and a filter to send traffic to it like this:
# tc class add dev eth0 parent 1: classid 1:130 htb rate 1Mbit ceil 1Mbit
# tc filter add dev eth0 protocol ip parent 1:0 prio 130 u32 match ip dst \
> 1.1.1.10 flowid 1:130

The output of "tc -d filter show dev eth0" makes sense to me and looks
like this:
filter parent 1: protocol ip pref 130 u32 
filter parent 1: protocol ip pref 130 u32 fh 800: ht divisor 1 
filter parent 1: protocol ip pref 130 u32 fh 800::800 order 2048 key
ht 800 bkt 0 flowid 1:130
  match 0101010a/ffffffff at 16

If I add a third class and a filter for it, things start looking weird to me:

# tc filter add dev eth0 protocol ip parent 1:0 prio 131 u32 match ip
dst 1.1.1.11 \
> flowid 1:131
# tc class add dev eth0 parent 1: classid 1:132 htb rate 1Mbit ceil 1Mbit
# tc -d filter show dev eth0
filter parent 1: protocol ip pref 130 u32 
filter parent 1: protocol ip pref 130 u32 fh 801: ht divisor 1 
filter parent 1: protocol ip pref 130 u32 fh 801::800 order 2048 key
ht 801 bkt 0 flowid 1:131
  match 0101010b/ffffffff at 16
filter parent 1: protocol ip pref 130 u32 fh 800: ht divisor 1 
filter parent 1: protocol ip pref 130 u32 fh 800::800 order 2048 key
ht 800 bkt 0 flowid 1:130
  match 0101010a/ffffffff at 16
filter parent 1: protocol ip pref 131 u32 
filter parent 1: protocol ip pref 131 u32 fh 801: ht divisor 1 
filter parent 1: protocol ip pref 131 u32 fh 801::800 order 2048 key
ht 801 bkt 0 flowid 1:131
  match 0101010b/ffffffff at 16
filter parent 1: protocol ip pref 131 u32 fh 800: ht divisor 1 
filter parent 1: protocol ip pref 131 u32 fh 800::800 order 2048 key
ht 800 bkt 0 flowid 1:130
  match 0101010a/ffffffff at 16

If N is the number of filters I have on the root qdisc, I get
N-squared entries from the "show filter" command.

Can someone explain how this works or point me to documentation that
explains it?  My system doesn't have a "tc-filters" manpage.

Thanks!

-Jacob
_______________________________________________
LARTC mailing list / LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

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