aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mediatek/base-files/sbin/mtkhnat
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/mediatek/base-files/sbin/mtkhnat')
-rwxr-xr-xtarget/linux/mediatek/base-files/sbin/mtkhnat64
1 files changed, 64 insertions, 0 deletions
diff --git a/target/linux/mediatek/base-files/sbin/mtkhnat b/target/linux/mediatek/base-files/sbin/mtkhnat
new file mode 100755
index 0000000000..fdfc8427c5
--- /dev/null
+++ b/target/linux/mediatek/base-files/sbin/mtkhnat
@@ -0,0 +1,64 @@
+#!/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