You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
737 B
30 lines
737 B
[ "$ACTION" = 'add' ] || exit 0 |
|
|
|
config_load gluon-simple-tc |
|
|
|
|
|
tc_interface() { |
|
local iface="$1" |
|
|
|
config_get ifname "$iface" ifname |
|
|
|
[ "$INTERFACE" = "$ifname" ] || return |
|
|
|
config_get_bool enabled "$iface" enabled 0 |
|
|
|
[ "$enabled" -eq 1 ] || return |
|
|
|
config_get limit_egress "$iface" limit_egress |
|
config_get limit_ingress "$iface" limit_ingress |
|
|
|
if [ "$limit_egress" ]; then |
|
tc qdisc add dev "$INTERFACE" root tbf rate "${limit_egress}kbit" latency 50ms burst 2k |
|
fi |
|
|
|
if [ "$limit_ingress" ]; then |
|
tc qdisc add dev "$INTERFACE" handle ffff: ingress |
|
tc filter add dev "$INTERFACE" parent ffff: u32 match u8 00 00 at 0 police rate "${limit_ingress}kbit" burst 10k drop flowid :1 |
|
fi |
|
} |
|
|
|
config_foreach tc_interface 'interface'
|
|
|