mtkhnat 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #!/bin/sh
  2. . /lib/functions.sh
  3. config_load mtkhnat
  4. config_get enable global enable 0
  5. [ "${enable}" -eq 1 ] || {
  6. echo 0 ${sch_upstream} > /sys/kernel/debug/hnat/scheduler0
  7. echo 0 ${sch_downstream} > /sys/kernel/debug/hnat/scheduler1
  8. rmmod mtkhnat
  9. exit 0
  10. }
  11. insmod mtkhnat
  12. sleep 1
  13. config_get sch_upstream global upstream 100000
  14. config_get sch_downstream global downstream 100000
  15. echo 1 ${sch_upstream} > /sys/kernel/debug/hnat/scheduler0
  16. echo 1 ${sch_downstream} > /sys/kernel/debug/hnat/scheduler1
  17. setup_queue() {
  18. local queue_id queue_scheduler queue_minebl queue_maxebl queue_minrate queue_maxrate queue_resv minrate maxrate queue_weight
  19. config_get queue_id $1 id 0
  20. config_get queue_minrate $1 minrate 0
  21. config_get queue_maxrate $1 maxrate 0
  22. config_get queue_resv $1 resv 22
  23. config_get queue_weight $1 weight 7
  24. [ "${queue_id}" -gt 7 ] && return 0
  25. queue_minebl=1
  26. queue_maxebl=1
  27. queue_scheduler=0
  28. [ "${queue_minrate}" -eq 0 ] && queue_minebl=0
  29. [ "${queue_maxrate}" -eq 0 ] && queue_maxebl=0
  30. minrate=$((sch_upstream * $queue_minrate))
  31. minrate=$((minrate / 100))
  32. maxrate=$((sch_upstream * $queue_maxrate))
  33. maxrate=$((maxrate / 100))
  34. echo 0 ${queue_minebl} ${minrate} ${queue_maxebl} ${maxrate} ${queue_weight} ${queue_resv} > /sys/kernel/debug/hnat/queue${queue_id}
  35. queue_id=$((queue_id + 8))
  36. minrate=$((sch_downstream * $queue_minrate))
  37. minrate=$((minrate / 100))
  38. maxrate=$((sch_downstream * $queue_maxrate))
  39. maxrate=$((maxrate / 100))
  40. echo 1 ${queue_minebl} ${minrate} ${queue_maxebl} ${maxrate} ${queue_weight} ${queue_resv} > /sys/kernel/debug/hnat/queue${queue_id}
  41. }
  42. config_foreach setup_scheduler scheduler
  43. config_foreach setup_queue queue