[LARTC] HTB does not respect the prio parameter
Martin Björnsson
martin.bjornsson at businessecurity.com
Wed Aug 29 10:06:28 CEST 2007
Hi all,
I'm experimenting with HTB and the prio parameter and it does not give me results I
expect. I've created 4 HTB classes:
1:10 TCP ACKs (prio 0)
1:20 TCP traffic on dst port 10001 (prio 1)
1:30 TCP traffic on dst port 10000 (prio 2)
1:40 Default (prio 3)
ceil and rate parameters are the same for all 4 classes (rate is 1000kbit and ceil is
55000kbit).
Then I start 2 TCP flows on src/dst ports 10000 and 10001. The packets seem to be
correctly classified by the filter (I get hits on classes 10, 20 and 30).
The problem is that I get the same throughput on both TCP flows. Shouldn't I get about
1000kbit through class 30 and much more through class 20 since it has higher priority?
Here's my setup script:
#!/bin/sh
/bin/tc qdisc add dev eth0 root handle 1: htb default 40 && \
/bin/tc class add dev eth0 parent 1:0 classid 1:1 htb rate 55000kbit ceil 55000kbit
quantum 60000 && \
/bin/tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1000kbit ceil 55000kbit prio 0
quantum 60000 && \
/bin/tc class add dev eth0 parent 1:1 classid 1:20 htb rate 1000kbit ceil 55000kbit prio 1
quantum 60000 && \
/bin/tc class add dev eth0 parent 1:1 classid 1:30 htb rate 1000kbit ceil 55000kbit prio 2
quantum 60000 && \
/bin/tc class add dev eth0 parent 1:1 classid 1:40 htb rate 1000kbit ceil 55000kbit prio 3
quantum 60000 && \
/bin/tc filter add dev eth0 parent 1:0 prio 99 handle 2: protocol ip u32 divisor 256 && \
/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 10 u32 \
ht 2:0: \
match u8 0x06 0xff at 9 \
match u8 0x10 0xff at nexthdr+13 \
flowid 1:10 && \
/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 10 u32 \
ht 2:0: \
match u8 0x06 0xff at 9 \
match u16 0x2711 0xffff at nexthdr+2 \
flowid 1:20 && \
/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 10 u32 \
ht 2:0: \
match u8 0x06 0xff at 9 \
match u16 0x2710 0xffff at nexthdr+2 \
flowid 1:30 && \
/bin/tc filter add dev eth0 parent 1:0 protocol ip prio 99 u32 ht 800:: offset at 0 mask
0x0f00 shift 6 plus 0 match u8 0x40 0xf0 at 0 link 2: && \
/bin/tc qdisc add dev eth0 parent 1:10 handle 20: red limit 1000KB min 10KB max 300KB
avpkt 1000 burst 100 probability 0.02 && \
/bin/tc qdisc add dev eth0 parent 1:20 handle 30: red limit 1000KB min 10KB max 300KB
avpkt 1000 burst 100 probability 0.02 && \
/bin/tc qdisc add dev eth0 parent 1:30 handle 40: red limit 1000KB min 10KB max 300KB
avpkt 1000 burst 100 probability 0.02 && \
/bin/tc qdisc add dev eth0 parent 1:40 handle 50: red limit 1000KB min 10KB max 300KB
avpkt 1000 burst 100 probability 0.02 && \
Regards,
Martin
More information about the LARTC
mailing list