#!/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