All pastes #907992 Raw Edit

Untitled

public text v1 · immutable
·published 2008-02-18 01:27 UTC
rendered paste body
#!/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