mirror of https://github.com/hak5/openwrt.git
65 lines
1.7 KiB
Bash
Executable File
65 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
. /lib/functions.sh
|
|
|
|
config_load mtkhnat
|
|
config_get enable global enable 0
|
|
|
|
[ "${enable}" -eq 1 ] || {
|
|
echo 0 ${sch_upstream} > /sys/kernel/debug/hnat/scheduler0
|
|
echo 0 ${sch_downstream} > /sys/kernel/debug/hnat/scheduler1
|
|
|
|
rmmod mtkhnat
|
|
exit 0
|
|
}
|
|
|
|
insmod mtkhnat
|
|
|
|
sleep 1
|
|
|
|
config_get sch_upstream global upstream 100000
|
|
config_get sch_downstream global downstream 100000
|
|
|
|
echo 1 ${sch_upstream} > /sys/kernel/debug/hnat/scheduler0
|
|
echo 1 ${sch_downstream} > /sys/kernel/debug/hnat/scheduler1
|
|
|
|
setup_queue() {
|
|
local queue_id queue_scheduler queue_minebl queue_maxebl queue_minrate queue_maxrate queue_resv minrate maxrate queue_weight
|
|
|
|
config_get queue_id $1 id 0
|
|
config_get queue_minrate $1 minrate 0
|
|
config_get queue_maxrate $1 maxrate 0
|
|
config_get queue_resv $1 resv 22
|
|
config_get queue_weight $1 weight 7
|
|
|
|
[ "${queue_id}" -gt 7 ] && return 0
|
|
|
|
queue_minebl=1
|
|
queue_maxebl=1
|
|
queue_scheduler=0
|
|
|
|
[ "${queue_minrate}" -eq 0 ] && queue_minebl=0
|
|
[ "${queue_maxrate}" -eq 0 ] && queue_maxebl=0
|
|
|
|
minrate=$((sch_upstream * $queue_minrate))
|
|
minrate=$((minrate / 100))
|
|
|
|
maxrate=$((sch_upstream * $queue_maxrate))
|
|
maxrate=$((maxrate / 100))
|
|
|
|
echo 0 ${queue_minebl} ${minrate} ${queue_maxebl} ${maxrate} ${queue_weight} ${queue_resv} > /sys/kernel/debug/hnat/queue${queue_id}
|
|
|
|
queue_id=$((queue_id + 8))
|
|
|
|
minrate=$((sch_downstream * $queue_minrate))
|
|
minrate=$((minrate / 100))
|
|
|
|
maxrate=$((sch_downstream * $queue_maxrate))
|
|
maxrate=$((maxrate / 100))
|
|
|
|
echo 1 ${queue_minebl} ${minrate} ${queue_maxebl} ${maxrate} ${queue_weight} ${queue_resv} > /sys/kernel/debug/hnat/queue${queue_id}
|
|
}
|
|
|
|
config_foreach setup_scheduler scheduler
|
|
config_foreach setup_queue queue
|