can't understand strange PRIO behaviour

Linux Advanced Routing and Traffic Control

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

 



Hello everybody,

sorry for bothering you, but after some hours, I'm stuck. I'm living in
a student's foundation where I want to connect lots of people to a tiny
DSL link. We have exactly four types of traffic. We want a really hard
PRIO solution (as I promised to someone that group X will only use the
link capacity which isn't used by group Y). I could make a PRIO with
four classes, but as I want to separate first by MAC address in two
groups and separate each group another time afterwards, I decided to put
two PRIOs after the main one:

	   PRIO 1:
	  /       \
	 /         \
   PRIO 10:        PRIO 20:
    /   \           /     \
   /     \         /       \
SFQ 110: SFQ 120: SFQ 210: SFQ 220:

My problem now is, that my filters don't work. In fact, I wrote only
one, and all packages get elsewhere, but not in the flow I commanded.
Strangely, tc says that my rule is successfully matched. Here are the
proofs, my rule filters to flowid 10:2, but everything goes to 20:1.
Have I made an error? Am I missing some kernel feature? My versions:
Kernel 2.6.10 and newest iproute from Debian unstable (20041019-2).

Thank you for reading,
Viktor.




                --------> CONFIGURATION SCRIPT <--------

# Create the main PRIO qdisc
tc qdisc add dev ppp0 root handle 1: prio bands 2 priomap 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
# Create the two PRIO sub-qdiscs
tc qdisc add dev ppp0 parent 1:1 handle 10: prio bands 2 priomap 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
tc qdisc add dev ppp0 parent 1:2 handle 20: prio bands 2 priomap 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
# Create the four subclasses
tc qdisc add dev ppp0 parent 10:1 handle 110: sfq
tc qdisc add dev ppp0 parent 10:2 handle 120: sfq
tc qdisc add dev ppp0 parent 20:1 handle 210: sfq
tc qdisc add dev ppp0 parent 20:2 handle 220: sfq
# Filters for classifying
# catch-all
tc filter add dev ppp0 protocol ip parent 1: prio 2 u32 match ip src
0.0.0.0/0 flowid 10:2



         --------> OUTPUT "tc -s qdisc show dev ppp0" <--------

qdisc prio 1: bands 2 priomap  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 Sent 5321336 bytes 9407 pkts (dropped 0, overlimits 0) 
qdisc prio 10: parent 1:1 bands 2 priomap  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0
 Sent 2160 bytes 2 pkts (dropped 0, overlimits 0) 
qdisc prio 20: parent 1:2 bands 2 priomap  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0
 Sent 5319176 bytes 9405 pkts (dropped 0, overlimits 0) 
qdisc sfq 110: parent 10:1 limit 128p quantum 1452b 
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0) 
qdisc sfq 120: parent 10:2 limit 128p quantum 1452b 
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0) 
qdisc sfq 210: parent 20:1 limit 128p quantum 1452b 
 Sent 5319176 bytes 9405 pkts (dropped 0, overlimits 0) 
qdisc sfq 220: parent 20:2 limit 128p quantum 1452b 
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)



  --------> OUTPUT "tc -s filter show dev ppp0" (bit later) <--------

filter parent 1: protocol ip pref 2 u32 
filter parent 1: protocol ip pref 2 u32 fh 800: ht divisor 1 
filter parent 1: protocol ip pref 2 u32 fh 800::800 order 2048 key ht
800 bkt 0 flowid 10:2  (rule hit 13430 success 13430)
  match 00000000/00000000 at 12 (success 13430 )

Attachment: signature.asc
Description: This is a digitally signed message part


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