diff --git a/bin/bw b/bin/bw new file mode 100755 index 0000000..18ddf4c --- /dev/null +++ b/bin/bw @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +unlimit() { + sudo tc qdisc del dev lo root +} + +limit() { + + if [ "$1" = "5Mbps" ]; then + sudo tc qdisc del dev lo root + sudo tc qdisc add dev lo handle 1: root htb default 11 + sudo tc class add dev lo parent 1:1 classid 1:11 htb rate 5000kbit + sudo tc qdisc add dev lo parent 1:11 handle 10: netem delay 38ms loss 0.09% + elif [ "$1" = "10Mbps" ]; then + sudo tc qdisc del dev lo root + sudo tc qdisc add dev lo handle 1: root htb default 11 + sudo tc class add dev lo parent 1:1 classid 1:11 htb rate 10000kbit + sudo tc qdisc add dev lo parent 1:11 handle 10: netem delay 32ms loss 0.09% + elif [ "$1" = "20Mbps" ]; then + sudo tc qdisc del dev lo root + sudo tc qdisc add dev lo handle 1: root htb default 11 + sudo tc class add dev lo parent 1:1 classid 1:11 htb rate 20000kbit + sudo tc qdisc add dev lo parent 1:11 handle 10: netem delay 25ms loss 0.09% + else + echo -e >&2 "\x1B[31;1merror:\x1B[0m preset $1 not found" + exit 1 + fi +} + +if [ $# -eq 0 ]; then + echo -e >&2 "\x1B[31;1merror:\x1B[0m expecting command" + exit 1 +else + "$@" +fi