trying to prioritize voip traffick

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I am using a server with asterisk and I am trying to prioritize voip
traffick -- I am a newbie at this traffic shaping, so please bear with
me.  I used the script below and what happens is thatall traffic in
the bulk class stops after a couple of minutes.  Also, should I
include the ports for rtp in the filter statements with the ports 5061
and 4569?  Note I have a fairly big pipe -- supposed to be able to do
the full 100mb out.


Here is the script.

#!/bin/sh
#####################################
############ VARIABLES ##############
#                                   #
e=eth0       # interface
t1=70Mbit  # size of your WAN - remember you can't max this or you'll  experience latency. 75-80% of max is a good place to start.
el=100Mbit   # size of eth0
w=7.5Mbit   # weighting of your WAN (10% of t1)
sizeCitrix=5Mbit
sizeVoIP=55Mbit

sizeBulk=10Mbit

weightCitrix=0.5Mbit
weightVoIP=5.5Mbit
weightBulk=1Mbit


#                                   #
#####################################
#####################################

# Delete any old rules #
set -v
set -x
tc qdisc del root dev $e

## each class is able to take more bandwidth as it is available, but must
## surrender it as the higher priorities (2, 3, then 4) need it.
## The lower the priority number, the more priority it gets. Thus when
## there is extra bandwidth available, the lower number classes get it as
## they need it.

# root qdisc /  qdisc = queueing discipline #
tc qdisc add dev $e root handle 1:0 cbq bandwidth 100Mbit avpkt 1000 cell 8||exit 1

tc class add dev $e parent 1:0 classid 1:1 cbq bandwidth 100Mbit rate $t1 weight $w prio 8 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded||exit 1

# child qdiscs (like child nodes on a tree) #
tc class add dev $e parent 1:1 classid 1:3 cbq bandwidth 100Mbit rate $sizeCitrix weight $weightCitrix prio 8 allot 1514 cell 8 maxburst 20 avpkt 300 isolated||exit 1
tc qdisc add dev $e parent 1:3 handle 30: sfq perturb 20||exit 1

tc class add dev $e parent 1:1 classid 1:5 cbq bandwidth 100Mbit rate $sizeVoIP weight $weightVoIP prio 8 allot 1514 cell 8 maxburst 20 avpkt 204 bounded ||exit 1



tc class add dev $e parent 1:1 classid 1:9 cbq bandwidth 100Mbit rate $sizeBulk weight $weightBulk prio 8 allot 1514 cell 8 maxburst 20 avpkt 1000||exit 1
tc qdisc add dev $e parent 1:9 handle 90: sfq perturb 20||exit 1

#####################################
############### Citrix ##############
#                                   #

# SSH #
tc filter add dev $e protocol ip parent 1:0 prio 1 u32 match ip sport 22 0xffff flowid 1:3||exit 1
tc filter add dev $e protocol ip parent 1:0 prio 1 u32 match ip dport 22 0xffff flowid 1:3||exit 1


#####################################
############### VoIP ################
#                                   #

# IAX # this is the old format - IAX2 should be what's really seen going 
#on
tc filter add dev $e protocol ip parent 1:0 prio 1 u32 match ip sport 5061 0xffff flowid 1:5||exit 1
tc filter add dev $e protocol ip parent 1:0 prio 1 u32 match ip dport 5061 0xffff flowid 1:5||exit 1

# IAX2 #
tc filter add dev $e protocol ip parent 1:0 prio 1 u32 match ip sport 4569 0xffff flowid 1:5||exit 1
tc filter add dev $e protocol ip parent 1:0 prio 1 u32 match ip dport 4569 0xffff flowid 1:5||exit 1


#####################################
######### Bulk / Default ############
#                                   #

tc filter add dev $e protocol ip parent 1:0 prio 3 u32 match ip src 0.0.0.0/0 flowid 1:9||exit 1
tc filter add dev $e protocol ip parent 1:0 prio 3 u32 match ip dst 0.0.0.0/0 flowid 1:9||exit 1


Any assistance would be appreciated.

-- 
Your life is like a penny.  You're going to lose it.  The question is:
How do
you spend it?

         John Covici
         covici@xxxxxxxxxxxxxx
_______________________________________________
LARTC mailing list
LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux