#!/bin/bash
#in Kbits/sec
#DONLOADLIMIT=3800
DEV=eth0
if [ "$1" = "status" ]
then
/sbin/tc -s qdisc ls dev $DEV
/sbin/tc -s class ls dev $DEV
exit
fi
if [ "$1" = "stop" ]
then
/sbin/tc qdisc del dev $DEV root 2> /dev/null > /dev/null
/sbin/tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null
exit
fi
if [ "$1" = "" ]
then
echo "D'Oh!"
exit
fi
# clean existing filter
/sbin/tc qdisc del dev $DEV root 2> /dev/null > /dev/null
/sbin/tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null
########## downlink #############
# attach ingress policer:
/sbin/tc qdisc add dev $DEV handle ffff: ingress
# filter *everything* to it (0.0.0.0/0), drop everything that's
# coming in too fast:
/sbin/tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src \
0.0.0.0/0 match ip sport 0x0077 0xffff police rate $1kbit burst 10k drop flowid :1