Public feed #723655

dd-wrt trafic shaping

public text v1 · immutable
Raw Edit
·published 2007-10-02 22:59 UTC
rendered paste body
echo 0 > /proc/sys/net/ipv4/tcp_westwood
#
echo 1 > /proc/sys/net/ipv4/tcp_bic
echo 1 > /proc/sys/net/ipv4/tcp_no_metrics_save
#
D1=0
U1=500
DEV=vlan1
NOPRIOHOSTSRC="140.99.99.130"
NOPRIOHOSTDST="140.99.99.130"
NOPRIOPORTSRC="20 21 25 119 6881 9890 16700"
NOPRIOPORTDST="20 21 25 119 6881 9890 16700"
# clean existing down- and uplink qdiscs
tc qdisc del dev $DEV root
tc qdisc del dev $DEV ingress
#
tc qdisc add dev $DEV root handle 1: htb default 20
tc class add dev $DEV parent 1: classid 1:1 htb rate ${U1}kbit burst 10k
tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${U1}kbit \
   burst 10k prio 1
tc class add dev $DEV parent 1:1 classid 1:20 htb rate $(((8*$U1)/10))kbit \
   ceil $(((85*$U1)/100))kbit burst 10k prio 2
tc class add dev $DEV parent 1:1 classid 1:30 htb rate $(((5*$U1)/10))kbit \
   ceil $(((85*$U1)/100))kbit burst 10k prio 3
tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev $DEV parent 1:30 handle 30: sfq perturb 10
tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \
      match ip tos 0x10 0xff  flowid 1:10
tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \
        match ip protocol 1 0xff flowid 1:10
tc filter add dev $DEV parent 1: protocol ip prio 10 u32 \
   match ip protocol 6 0xff \
   match u8 0x05 0x0f at 0 \
   match u16 0x0000 0xffc0 at 2 \
   match u8 0x10 0xff at 33 \
   flowid 1:10
tc filter add dev $DEV parent 1: protocol ip prio 10 u32 \
   match ip protocol 17 0xff \
   flowid 1:10

# bulk
for a in $NOPRIOPORTDST
do
        tc filter add dev $DEV parent 1: protocol ip prio 14 u32 \
           match ip dport $a 0xffff flowid 1:30
done

for a in $NOPRIOPORTSRC
do
        tc filter add dev $DEV parent 1: protocol ip prio 15 u32 \
           match ip sport $a 0xffff flowid 1:30
done
for a in $NOPRIOHOSTSRC
do
        tc filter add dev $DEV parent 1: protocol ip prio 16 u32 \
           match ip src $a flowid 1:30
done
for a in $NOPRIOHOSTDST
do
        tc filter add dev $DEV parent 1: protocol ip prio 17 u32 \
           match ip dst $a flowid 1:30
done

# default

tc filter add dev $DEV parent 1: protocol ip prio 18 u32 \
   match ip dst 0.0.0.0/0 flowid 1:20
tc qdisc add dev $DEV handle ffff: ingress
tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src \
   0.0.0.0/0 police rate ${D1}kbit burst 10k drop flowid :1