From 902d16b334fb746ba11637e2b2a2546c52fb3b8b Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Sat, 28 May 2022 08:36:44 +0200 Subject: [PATCH] Add QoS support in wizard --- .../luasrc/view/openmptcprouter/wizard.htm | 25 +++++ .../files/etc/uci-defaults/1960-omr-qos | 100 +++++++++--------- 2 files changed, 74 insertions(+), 51 deletions(-) diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm index e447518f4..f86b61ce7 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm @@ -9,6 +9,8 @@ local ifaces = sys.net:devices() local ifttyu = nixio.fs.glob("/dev/ttyUSB*") local ifttyc = nixio.fs.glob("/dev/cdc-wdm*") + local sqm = luci.sys.exec("opkg list-installed | grep -q luci-app-sqm && echo -n '1' || echo -n '0'") + local qos = luci.sys.exec("opkg list-installed | grep -q luci-app-qos && echo -n '1' || echo -n '0'") menuentry = uci:get("openmptcprouter","settings","menu") or "openmptcprouter" function device_notvirtual(dev) if dev:match("^eth.*") or dev:match("^wwan.*") or dev:match("^tun.*") or dev:match("/") then @@ -932,16 +934,39 @@ + <% + if sqm == "1" then + %>
checked<% end %> />
+ <%:SQM control bufferloat: the undesirable latency that arises when the router buffers too much data.%> <%:You should disable SQM for LTE or any interfaces with variable speed.%>
+ <% + end + %> + <% + if qos == "1" then + %> +
+ +
+ checked<% end %> /> +
+
+ <%:QoS permit to prioritize any upload traffic.%> +
+
+
+ <% + end + %>
diff --git a/openmptcprouter/files/etc/uci-defaults/1960-omr-qos b/openmptcprouter/files/etc/uci-defaults/1960-omr-qos index eaf728dc3..1eba41af4 100755 --- a/openmptcprouter/files/etc/uci-defaults/1960-omr-qos +++ b/openmptcprouter/files/etc/uci-defaults/1960-omr-qos @@ -1,58 +1,56 @@ #!/bin/sh -if [ "$(uci -q get openmptcprouter.latest_versions)" ]; then - if [ "$(uci -q get qos.wan1)" = "" ]; then +if [ -z "$(uci -q get qos.omrvpn)" ]; then + uci -q batch <<-EOF >/dev/null + delete qos.wan + set qos.wan1=interface + set qos.wan1.classgroup="Default" + set qos.wan1.enabled="0" + set qos.wan1.upload="4000" + set qos.wan1.download="100000" + set qos.wan2=interface + set qos.wan2.classgroup="Default" + set qos.wan2.enabled="0" + set qos.wan2.upload="4000" + set qos.wan2.download="100000" + set qos.omrvpn=interface + set qos.omrvpn.classgroup="Default" + set qos.omrvpn.enabled="0" + set qos.omrvpn.interface="tun0" + set qos.omrvpn.upload="0" + set qos.omrvpn.download="0" + set qos.omrvpn.qdisc="cake" + set qos.omrvpn.script="layer_cake.qos" + delete qos.@classify[-1] + add qos classify + set qos.@classify[-1].target='Express' + set qos.@classify[-1].ports='5600' + set qos.@classify[-1].comments='SIP' + add qos classify + set qos.@classify[-1].target='Express' + set qos.@classify[-1].portrange='27000-27050' + set qos.@classify[-1].proto='udp' + set qos.@classify[-1].comments='Steam' + commit qos + EOF + if [ "$(uci -q get network.wan3)" != "" ]; then uci -q batch <<-EOF >/dev/null - delete qos.wan - set qos.wan1=interface - set qos.wan1.classgroup="Default" - set qos.wan1.enabled="0" - set qos.wan1.upload="4000" - set qos.wan1.download="100000" - set qos.wan2=interface - set qos.wan2.classgroup="Default" - set qos.wan2.enabled="0" - set qos.wan2.upload="4000" - set qos.wan2.download="100000" - set qos.omrvpn=interface - set qos.omrvpn.classgroup="Default" - set qos.omrvpn.enabled="1" - set qos.omrvpn.interface="tun0" - set qos.omrvpn.upload="0" - set qos.omrvpn.download="0" - set qos.omrvpn.qdisc="cake" - set qos.omrvpn.script="layer_cake.qos" - delete qos.@classify[-1] - add qos classify - set qos.@classify[-1].target='Express' - set qos.@classify[-1].ports='5600' - set qos.@classify[-1].comments='SIP' - add qos classify - set qos.@classify[-1].target='Express' - set qos.@classify[-1].portrange='27000-27050' - set qos.@classify[-1].proto='udp' - set qos.@classify[-1].comments='Steam' + set qos.wan3=interface + set qos.wan3.classgroup="Default" + set qos.wan3.enabled="0" + set qos.wan3.upload="4000" + set qos.wan3.download="100000" + commit qos + EOF + fi + if [ "$(uci -q get network.wan4)" != "" ]; then + uci -q batch <<-EOF >/dev/null + set qos.wan4=interface + set qos.wan4.classgroup="Default" + set qos.wan4.enabled="0" + set qos.wan4.upload="4000" + set qos.wan4.download="100000" commit qos EOF - if [ "$(uci -q get network.wan3)" != "" ]; then - uci -q batch <<-EOF >/dev/null - set qos.wan3=interface - set qos.wan3.classgroup="Default" - set qos.wan3.enabled="0" - set qos.wan3.upload="4000" - set qos.wan3.download="100000" - commit qos - EOF - fi - if [ "$(uci -q get network.wan4)" != "" ]; then - uci -q batch <<-EOF >/dev/null - set qos.wan4=interface - set qos.wan4.classgroup="Default" - set qos.wan4.enabled="0" - set qos.wan4.upload="4000" - set qos.wan4.download="100000" - commit qos - EOF - fi fi fi rm -f /tmp/luci-indexcache