#!/bin/bash
TC=/sbin/tc
DNLD=512Kbit # Limite de download
DWEIGHT=51Kbit # coefficient de DOWNLOAD (Weight Factor) ~ 1/10 of DOWNLOAD Limit
UPLD=128KBit # Limite d'upload Limit
UWEIGHT=13Kbit # Coefficient d'UPLOAD (Weight Factor)
tc_start() {
$TC qdisc add dev eth1 root handle 11: cbq bandwidth 100Mbit avpkt 1000 mpu 64
$TC class add dev eth1 parent 11:0 classid 11:1 cbq rate $DNLD weight $DWEIGHT allot 1514 prio 1 avpkt 1000 bounded
$TC filter add dev eth1 parent 11:0 protocol ip handle 4 fw flowid 11:1
$TC qdisc add dev eth0 root handle 10: cbq bandwidth 10Mbit avpkt 1000 mpu 64
$TC class add dev eth0 parent 10:0 classid 10:1 cbq rate $UPLD weight $UWEIGHT allot 1514 prio 1 avpkt 1000 bounded
$TC filter add dev eth0 parent 10:0 protocol ip handle 3 fw flowid 10:1
}
tc_stop() {
$TC qdisc del dev eth0 root
$TC qdisc del dev eth1 root
}
case "$1" in
start)
echo -n "Starting bandwidth shaping: "
tc_start
echo "done"
;;
stop)
echo -n "Stopping bandwidth shaping: "
tc_stop
echo "done"
;;
*)
echo "Usage: /etc/init.d/tc.sh {start|stop|restart|show}"
;;
esac
exit 0
Partager