echo 0 > /proc/sys/net/ipv4/tcp_westwood # echo 1 > /proc/sys/net/ipv4/tcp_bic echo 1 > /proc/sys/net/ipv4/tcp_no_metrics_save # D1=0 U1=500 DEV=vlan1 NOPRIOHOSTSRC="140.99.99.130" NOPRIOHOSTDST="140.99.99.130" NOPRIOPORTSRC="20 21 25 119 6881 9890 16700" NOPRIOPORTDST="20 21 25 119 6881 9890 16700" # clean existing down- and uplink qdiscs tc qdisc del dev $DEV root tc qdisc del dev $DEV ingress # tc qdisc add dev $DEV root handle 1: htb default 20 tc class add dev $DEV parent 1: classid 1:1 htb rate ${U1}kbit burst 10k tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${U1}kbit \ burst 10k prio 1 tc class add dev $DEV parent 1:1 classid 1:20 htb rate $(((8*$U1)/10))kbit \ ceil $(((85*$U1)/100))kbit burst 10k prio 2 tc class add dev $DEV parent 1:1 classid 1:30 htb rate $(((5*$U1)/10))kbit \ ceil $(((85*$U1)/100))kbit burst 10k prio 3 tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10 tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10 tc qdisc add dev $DEV parent 1:30 handle 30: sfq perturb 10 tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \ match ip tos 0x10 0xff flowid 1:10 tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 \ match ip protocol 1 0xff flowid 1:10 tc filter add dev $DEV parent 1: protocol ip prio 10 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 tc filter add dev $DEV parent 1: protocol ip prio 10 u32 \ match ip protocol 17 0xff \ flowid 1:10 # bulk for a in $NOPRIOPORTDST do tc filter add dev $DEV parent 1: protocol ip prio 14 u32 \ match ip dport $a 0xffff flowid 1:30 done for a in $NOPRIOPORTSRC do tc filter add dev $DEV parent 1: protocol ip prio 15 u32 \ match ip sport $a 0xffff flowid 1:30 done for a in $NOPRIOHOSTSRC do tc filter add dev $DEV parent 1: protocol ip prio 16 u32 \ match ip src $a flowid 1:30 done for a in $NOPRIOHOSTDST do tc filter add dev $DEV parent 1: protocol ip prio 17 u32 \ match ip dst $a flowid 1:30 done # default tc filter add dev $DEV parent 1: protocol ip prio 18 u32 \ match ip dst 0.0.0.0/0 flowid 1:20 tc qdisc add dev $DEV handle ffff: ingress tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src \ 0.0.0.0/0 police rate ${D1}kbit burst 10k drop flowid :1