[LARTC] can't understand strange PRIO behaviour
Viktor Horvath
ViktorHorvath@gmx.net
Wed Feb 2 03:46:04 CET 2005
--=-QfdLKD1ivnqbH5pi1aAo
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable
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)=20
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)=20
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)=20
qdisc sfq 110: parent 10:1 limit 128p quantum 1452b=20
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)=20
qdisc sfq 120: parent 10:2 limit 128p quantum 1452b=20
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)=20
qdisc sfq 210: parent 20:1 limit 128p quantum 1452b=20
Sent 5319176 bytes 9405 pkts (dropped 0, overlimits 0)=20
qdisc sfq 220: parent 20:2 limit 128p quantum 1452b=20
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=20
filter parent 1: protocol ip pref 2 u32 fh 800: ht divisor 1=20
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 )
--=-QfdLKD1ivnqbH5pi1aAo
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
iD8DBQBCAEz8O3SWVYLvaJQRAoamAKCJLLiov6+b+oOUgg235qRcjFLlCgCeJ/fw
wVWn6UL9ikwwT/IBMHvGjW4=
=7gVc
-----END PGP SIGNATURE-----
--=-QfdLKD1ivnqbH5pi1aAo--
More information about the LARTC
mailing list