Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- if [ $1 -eq clear ]; then
- /sbin/tc qdisc del dev $2 root 2> /dev/null > /dev/null
- /sbin/tc qdisc del dev $2 ingress 2> /dev/null > /dev/null
- echo Wondershaper queues have been cleared.
- exit
- fi
- DEV=$1
- DOWNLINK=$2
- UPLINK=$3
- #echo $dev
- #echo $rate
- ## Очищаем текущие значения
- tc qdisc del dev $DEV root 2> /dev/null > /dev/null
- tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null
- ### Корневая дисциплина ###
- # Для корневой дисциплины используем Hierarchical Token Bucket
- # по-умолчанию трафик падает в класс 30:
- tc qdisc add dev $DEV root handle 1: htb default 30
- ## Описываем корневой класс
- tc class add dev $DEV parent 1: classid 1:1 htb rate ${UPLINK}kbit burst 3m # Общее ограничение согласно введенному значению
- ## Описываем краевые классы
- tc class add dev $DEV parent 1:1 classid 1:10 htb rate $(($UPLINK/10))kbit burst 500k # класс интерактивного трафика
- tc class add dev $DEV parent 1:1 classid 1:20 htb rate $((7*$UPLINK/10))kbit ceil $((9*$UPLINK/10))kbit burst 2m # класс общего полезного трафика 1 типа
- # tc class add dev $DEV parent 1:1 classid 1:21 htb rate $((4*$UPLINK/10))kbit ceil $((7*$UPLINK/10))kbit burst 2m # класс общего полезного трафика 2 типа
- tc class add dev $DEV parent 1:1 classid 1:30 htb rate $((2*$UPLINK/10))kbit ceil $((4*$UPLINK/10))kbit burst 15k # класс остального трафика
- ## Задаем дисциплины краевых классов (пропускная способность в пределах каждого канала делится поровну между сессиями)
- tc qdisc add dev $DEV parent 1:10 handle 10: sfq
- tc qdisc add dev $DEV parent 1:20 handle 20: sfq
- tc qdisc add dev $DEV parent 1:30 handle 30: sfq
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement