# QoS configuration for OpenWrt
# INTERFACES:
config interface wan
option classgroup "Default"
option enabled 1
option overhead 1
option upload 1024
option download 1024
# RULES:
config classify
option target "Bulk"
option srchost "192.168.1.20"
config classify
option target "Bulk"
option dsthost "192.168.1.20"
config classify
option target "Bulk"
option ipp2p "all"
config classify
option target "Bulk"
option layer7 "edonkey"
config classify
option target "Bulk"
option layer7 "bittorrent"
config classify
option target "Priority"
option ports "22,53"
config classify
option target "Normal"
option proto "tcp"
option ports "20,21,25,80,110,443,993,995"
config classify
option target "Express"
option ports "5190"
config default
option target "Express"
option proto "udp"
option pktsize "-500"
config default
option target "Express"
option proto "udp"
option srcports "27000-27030"
config default
option target "Express"
option proto "udp"
option dstports "27000-27030"
config default
option target "Express"
option proto "udp"
option srcports "6112-6113"
config default
option target "Express"
option proto "udp"
option dstports "6112-6113"
config default
option target "Bulk"
option portrange "1024-65535"
config reclassify
option target "Priority"
option proto "icmp"
config reclassify
option target "Priority"
option proto "tcp"
option pktsize "-128"
option mark "!Bulk"
option tcpflags "SYN"
config reclassify
option target "Priority"
option proto "tcp"
option pktsize "-128"
option mark "!Bulk"
option tcpflags "ACK"
# Don't change the stuff below unless you
# really know what it means :)
config classgroup "Default"
option classes "Priority Express Normal Bulk"
option default "Normal"
### Params:
#
# maxsize:
# limits packet size in iptables rule
#
# avgrate: (note: sum(avgrates) ~ 100)
# rt m1 = avgrate / sum (avgrate) * max_bandwidth
# rt m2 = avgrate * max_bandwidth / 100
# ls m1 = rt m1
#
# packetsize & packetdelay: (only works if avgrate is present)
# rt d = max( packetdelay, 'time required for packetsize to transfer' ) (smaller ps -> smaller d)
# ls d = rt d
#
# priority:
# ls m2 = priority / sum (priority) * max_bandwidth
#
# limitrate:
# ul rate = limitrate * max_bandwidth / 100
config class "Priority"
option packetsize 400
option maxsize 400
option avgrate 49
option priority 10
# u/d sum_avgrate = 10/10
config class "Express"
option packetsize 1000
option maxsize 800
option avgrate 49
option priority 10
# u/d sum_avgrate = 60/60
config class "Normal"
option avgrate 1
option packetsize 1500
option packetdelay 100
option priority 5
config class "Bulk"
option avgrate 1
option packetdelay 300
option priority 1
# [EOF]