1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| #!/bin/bash
PORT=$2 DELAY=$3 SPEED=$4 FLOW=$5 NETWORK_CARD=eth1
set -x start () { /sbin/tc qdisc add dev ${NETWORK_CARD} root handle 1: htb default 25 /sbin/tc class add dev ${NETWORK_CARD} parent 1: classid 1:1 htb rate ${SPEED}kbps /sbin/tc qdisc add dev ${NETWORK_CARD} parent 1:1 netem delay ${DELAY}ms ${FLOW}ms /sbin/tc filter add dev ${NETWORK_CARD} parent 1: protocol ip prio 1 u32 match ip sport ${PORT} 0xffff flowid 1:1 }
stop () { /sbin/tc qdisc dele dev ${NETWORK_CARD} root }
case "$1" in start) start ;; stop) stop ;; *) echo "Usage: `basename $0` {start|stop} port delay(ms) speed(KB) flow(ms)" esac
|