rendered paste body#!/bin/bashRATEUP=500DEV=eth1if [ "$1" = "status" ]then echo "" echo "=====" tc -s qdisc ls dev $DEV echo "" tc -s class ls dev $DEV echo "=====" exitfitc qdisc del dev $DEV root 2>/dev/null >/dev/nullif [ "$1" = "stop" ]then exitfi#the qdisctc qdisc add dev $DEV root handle 1: hfsc default 20#root class and leaf classestc class add dev $DEV parent 1: classid 1:1 hfsc \ sc rate ${RATEUP}kbit \ ul rate ${RATEUP}kbit#bulk traffictc class add dev $DEV parent 1:1 classid 1:20 hfsc \ sc umax 1500b dmax 15ms rate $[5*$RATEUP/100]kbit \ ul rate ${RATEUP}kbit#low-latency classtc class add dev $DEV parent 1:1 classid 1:10 hfsc \ sc umax 1500b dmax 15ms rate $[95*$RATEUP/100]kbit \ ul rate ${RATEUP}kbit#sochastic fair queueingtc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10#TOS & ICMPtc filter add dev $DEV parent 1:0 protocol ip prio 1 u32 match ip tos 0x10 0xff flowid 1:10tc filter add dev $DEV parent 1:0 protocol ip prio 1 u32 match ip protocol 1 0xff flowid 1:10#ACKStc filter add dev $DEV parent 1: protocol ip prio 1 u32 \ match ip protocol 6 0xff \ match u8 0x05 0x0f at 0 \ match u16 0x0000 0xffc0 at 2 \ match u8 0x10 0xff at 33 \ flowid 1:10