[Asterisk-Users] Can you comment on this Qos script? How does
one shape RTP?
Doug Lytle
support at drdos.info
Sun Apr 10 05:29:25 MST 2005
cmisip wrote:
>far asterisk seems to use 1:10 while all other traffic uses 1:102. How
>does one packet shape RTP?
>
>Thanks for any help.
>
>
>
>
># +---------+
># | root 1: |
># +---------+
># |
># +----------------------------+
># | class 1:1 |
># +----------------------------+
># | | |
># +----+ +----+ +----+
># |1:10| |1:20| |1:30|
># +----+ +----+ +----+
># |
># +--------+--------+
># | | |
># +-----+ +-----+ +-----+
># |1:100| |1:101| |1:102|
># +-----+ +-----+ +-----+
>
>
>
I'm using the same script, but I found it searching Google. Yours seems
to be incomplete. My script follows:
#!/bin/sh
TCOP="add"
IPTOP="-A"
if [ "$1" == "stop" ]; then
echo "Stopping..."
TCOP="del"
IPTOP="-D"
fi
# +---------+
# | root 1: |
# +---------+
# |
# +----------------------------+
# | class 1:1 |
# +----------------------------+
# | | |
# +----+ +----+ +----+
# |1:10| |1:20| |1:30|
# +----+ +----+ +----+
# |
# +--------+--------+
# | | |
# +-----+ +-----+ +-----+
# |1:100| |1:101| |1:102|
# +-----+ +-----+ +-----+
# 1:10 is the class for VOIP traffic, pfifo qdisc
# 1:20 is for bulk traffic (htb, leaves use sfq)
# 1:30 is the class that interactive and TCP SYN/ACK traffic (sfq qdisc)
# 1:20 is further split up into different kinds of bulk traffic: web,
mail and
# everything else. 1:100-102 fight amongst themselves for their slice
of excess
# bandwidth, and in turn 1:10,20 and 30 then fight for any excess above
their
# minimum rates.
# which interface to throw all this on (DSL)
IF=eth2
# ceil is 75% of max rate (768kbps)
# rate is 65% of max rate
# we don't let it go to 100% because we don't want the DSL modem
(Pairgain MegaBit Modem 300S)
# to have a ton of packets in their buffers. *we* want to do the buffering.
RATE=576
CEIL=640
#RATE=450
#CEIL=500
tc qdisc ${TCOP} dev ${IF} root handle 1: htb default 102
tc class ${TCOP} dev ${IF} parent 1: classid 1:1 htb rate ${RATE}kbit
ceil ${CEIL}kbit
tc class ${TCOP} dev ${IF} parent 1:1 classid 1:10 htb rate 64kbit ceil
${RATE}kbit prio 1
tc class ${TCOP} dev ${IF} parent 1:1 classid 1:20 htb rate 64kbit ceil
${RATE}kbit prio 2
tc class ${TCOP} dev ${IF} parent 1:20 classid 1:100 htb rate ${RATE}kbit
tc class ${TCOP} dev ${IF} parent 1:20 classid 1:101 htb rate ${RATE}kbit
tc class ${TCOP} dev ${IF} parent 1:20 classid 1:102 htb rate ${RATE}kbit
tc qdisc ${TCOP} dev ${IF} parent 1:10 handle 10: pfifo
tc qdisc ${TCOP} dev ${IF} parent 1:100 handle 100: sfq perturb 10
tc qdisc ${TCOP} dev ${IF} parent 1:101 handle 101: sfq perturb 10
tc qdisc ${TCOP} dev ${IF} parent 1:102 handle 102: sfq perturb 10
tc filter ${TCOP} dev ${IF} parent 1:0 protocol ip prio 1 handle 1 fw
classid 1:10
tc filter ${TCOP} dev ${IF} parent 1:0 protocol ip prio 4 handle 4 fw
classid 1:100
# IAX2 prio 0.
iptables -t mangle ${IPTOP} PREROUTING -p udp -m udp --dport 4569 -j
MARK --set-mark 0x1
iptables -t mangle ${IPTOP} PREROUTING -p udp -m udp --dport 4569 -j RETURN
# everything else goes into lowest priority (best effort).
iptables -t mangle ${IPTOP} PREROUTING -j MARK --set-mark 0x4
iptables -t mangle ${IPTOP} OUTPUT -j MARK --set-mark 0x4
Doug
More information about the asterisk-users
mailing list