Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ### basic settings - speed in bits/sec
- WAN_INTF=eth0
- WAN_UP_SPEED=2800000
- WAN_DOWN_SPEED=28000000
- ### advanced settings
- TQDISC=fq_codel
- # Dave Taht's recommendation:
- # less than 40mbit: 300
- # otherwise: 1514
- FQ_CODEL_QUANTUM_UP=300
- FQ_CODEL_QUANTUM_DOWN=300
- # Dave Taht's recommendation:
- # less than 3mbit: 15ms
- # otherwise: 5ms
- FQ_CODEL_TARGET_UP=15ms
- FQ_CODEL_TARGET_DOWN=5ms
- # Dave Taht's recommendation:
- # less than 40mbit: 1500
- # otherwise: higher (e.g., 8000 or higher for 100mbit etc.)
- HTB_QUANTUM_UP=1500
- HTB_QUANTUM_DOWN=1500
- ### configurable knobs end here
- TQDISC_OPTS_UP=
- TQDISC_OPTS_DOWN=
- if [ "$TQDISC" == fq_codel ]; then
- TQDISC_OPTS_UP+="quantum $FQ_CODEL_QUANTUM_UP "
- TQDISC_OPTS_UP+="target $FQ_CODEL_TARGET_UP "
- TQDISC_OPTS_DOWN+="quantum $FQ_CODEL_QUANTUM_DOWN "
- TQDISC_OPTS_DOWN+="target $FQ_CODEL_TARGET_DOWN "
- fi
- WAN_IFB="ifb_${WAN_INTF}"
- TC=/sbin/tc
- IP=/sbin/ip
- $TC qdisc del dev $WAN_INTF root >/dev/null 2>&1
- $TC qdisc del dev $WAN_INTF ingress >/dev/null 2>&1
- $TC qdisc del dev $WAN_IFB root >/dev/null 2>&1
- [ "$1" == clear ] && exit 0
- $TC qdisc add dev $WAN_INTF root handle 1: htb default 10
- $TC class add dev $WAN_INTF parent 1: classid 1:1 \
- htb quantum $HTB_QUANTUM_UP \
- rate $WAN_UP_SPEED ceil $WAN_UP_SPEED
- $TC class add dev $WAN_INTF parent 1:1 classid 1:10 \
- htb quantum $HTB_QUANTUM_UP \
- rate $WAN_UP_SPEED ceil $WAN_UP_SPEED
- $TC qdisc add dev $WAN_INTF parent 1:10 handle 100: $TQDISC $TQDISC_OPTS_UP
- $IP link add $WAN_IFB type ifb >/dev/null 2>&1
- $TC qdisc add dev $WAN_IFB root handle 1: htb default 10
- $TC class add dev $WAN_IFB parent 1: classid 1:1 \
- htb quantum $HTB_QUANTUM_DOWN \
- rate $WAN_DOWN_SPEED ceil $WAN_DOWN_SPEED
- $TC class add dev $WAN_IFB parent 1:1 classid 1:10 \
- htb quantum $HTB_QUANTUM_DOWN \
- rate $WAN_DOWN_SPEED ceil $WAN_DOWN_SPEED
- $TC qdisc add dev $WAN_IFB parent 1:10 handle 100: $TQDISC $TQDISC_OPTS_DOWN
- $IP link set $WAN_IFB up
- $TC qdisc add dev $WAN_INTF handle ffff: ingress
- $TC filter add dev $WAN_INTF parent ffff: \
- protocol all prio 10 u32 match u32 0 0 flowid 1:1 \
- action mirred egress redirect dev $WAN_IFB
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement