#!/bin/sh
OPTION="allot 1514 maxburst 20 avpkt 1000"
tc qdisc del dev eth0 root
tc qdisc add dev eth0 root handle 10: cbq bandwidth 10mbit avpkt 1000
tc class add dev eth0 parent 10: classid 10:2 cbq bandwidth 10mbit rate
34kbit $OPTION prio 3 bounded
tc class add dev eth0 parent 10:2 classid 10:10 cbq bandwidth 10mbit rate
30kbit $OPTION prio 3
tc class add dev eth0 parent 10:2 classid 10:20 cbq bandwidth 10mbit rate
4kbit $OPTION prio3
tc filter add dev eth0 parent 10: protocol ip prio 3
u32 match ip tos 0x20 0xf0 flowid 10:2
tc filter add dev eth0 parent 10: protocol ip prio 3 u32 match ip dst 0/0
flowid 10:2
tc filter add dev eth0 parent 10:2 protocol ip prio 3 u32 match ip tos 0x20
0xf0 flowid 10:10
tc filter add dev eth0 parent 10:2 protocol ip prio 3 u32 match ip dst 0/0
flowid 10:20
It
seemed working -- when there was no VoIP traffic, a ftp link was using all
34kbit rate. When there was VoIP traffic, the ftp rate dropped to 17kbit
(which was correct because the voice traffic was using 17kbit). Unfortunately,
the voice quality was not good. Even if without ftp traffic, there were packets
loss for voice traffic (if you count from 1 to 20 with one handset, you
miss certain figures on the other end, they are 4, 5, 8, 9, 12, 13
etc).
Any one had the same problem before? Any one
can explain it? Any parameter I should adjust to better suit this
application?
Another thing I noticed was, when I changed
the parameters for "allot" (ex 300) and "avpkt" (ex 500) in order to
seek better setting for this application, the CBQ stopped doing
anything, so the rate was the NIC rate instead of 34kbit. I could
change "maxburst" but it didn't improve the voice quality. Could any one tell me
how to use these parameters?
Thanks,
James