| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #!/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
|