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