1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-03-09 15:40:03 +00:00

Merge pull request #310 from Ysurac/develop

sync
This commit is contained in:
suyuan 2023-04-03 02:53:08 +08:00 committed by GitHub
commit d5f382823a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 76 additions and 9 deletions

View file

@ -258,6 +258,8 @@ function wizard_add()
end
-- Set interfaces settings
local downloadmax = 0
local uploadmax = 0
local interfaces = luci.http.formvaluetable("intf")
for intf, _ in pairs(interfaces) do
local label = luci.http.formvalue("cbid.network.%s.label" % intf) or ""
@ -462,6 +464,7 @@ function wizard_add()
end
ucic:set("network",intf,"downloadspeed",downloadspeed)
ucic:set("qos",intf,"download",math.ceil(downloadspeed*95/100))
downloadmax = downloadmax + tonumber(downloadspeed)
else
ucic:delete("network",intf,"downloadspeed")
ucic:set("sqm",intf,"download","0")
@ -477,6 +480,7 @@ function wizard_add()
end
ucic:set("network",intf,"uploadspeed",uploadspeed)
ucic:set("qos",intf,"upload",math.ceil(uploadspeed*95/100))
uploadmax = uploadmax + tonumber(uploadspeed)
else
ucic:delete("network",intf,"uploadspeed")
ucic:set("sqm",intf,"upload","0")
@ -547,6 +551,14 @@ function wizard_add()
vpn_intf = "bonding-omrvpn"
ucic:set("network","omrvpn","proto","bonding")
end
if downloadmax ~= 0 and uploadmax ~= 0 then
ucic:set("sqm","omrvpn","max_download",downloadmax)
ucic:set("sqm","omrvpn","max_upload",uploadmax)
ucic:set("sqm","omrvpn","download",math.ceil(downloadmax*50/100))
ucic:set("sqm","omrvpn","min_download",math.ceil(downloadmax*8/100))
ucic:set("sqm","omrvpn","upload",math.ceil(uploadmax*50/100))
ucic:set("sqm","omrvpn","min_upload",math.ceil(uploadmax*8/100))
end
if vpn_intf ~= "" then
ucic:set("network","omrvpn","device",vpn_intf)
ucic:set("sqm","omrvpn","interface",vpn_intf)

View file

@ -347,6 +347,12 @@ local statuslogo = ucic:get("openmptcprouter","settings","statuslogo") or "openm
statusMessageClass = "warning";
statusIcon = "<%=resource%>/openmptcprouter/images/statusWarning.png";
}
if (mArray.openmptcprouter.kernel_match == false)
{
statusMessage += '<%:MPTCP kernel on router and VPS doesn't match%>' + '<br/>';
statusMessageClass = "warning";
statusIcon = "<%=resource%>/openmptcprouter/images/statusWarning.png";
}
if (mArray.openmptcprouter.wan_addr6)
{
content += '<%:IPv6:%>' + " " + mArray.openmptcprouter.wan_addr6;

View file

@ -761,6 +761,7 @@ function interfaces_status()
mArray.openmptcprouter["local_addr"] = ipaddr
--mArray.openmptcprouter["local_addr"] = uci:get("network", "lan", "ipaddr")
mArray.openmptcprouter["hostname"] = "OpenMPTCProuter"
mArray.openmptcprouter["kernel"] = sys.exec("uname -r")
ucic:foreach("system", "system", function(s)
mArray.openmptcprouter["hostname"] = uci:get("system",s[".name"],"hostname") or "OpenMPTCProuter"
end)
@ -955,6 +956,12 @@ function interfaces_status()
end
end)
mArray.openmptcprouter["kernel_match"] = true
if mArray.openmptcprouter["vps_kernel"] ~= "" then
if mArray.openmptcprouter["kernel"]:sub(1,3) == "5.4" and mArray.openmptcprouter["vps_kernel"]:sub(1,3) ~= "5.4" then
mArray.openmptcprouter["kernel_match"] = false
end
end
if mArray.openmptcprouter["vps_hostname"] == "" then
mArray.openmptcprouter["vps_hostname"] = "Server"

View file

@ -625,6 +625,21 @@ return baseclass.extend({
o = this.replaceOption(s, 'devadvanced', form.Flag, 'autoneg', _('Autonegociation'));
o.default = o.enabled;
o = this.replaceOption(s, 'devadvanced', form.Flag, 'gro', _('Generic Receive Offload (GRO)'));
o.default = o.enabled;
o = this.replaceOption(s, 'devadvanced', form.Flag, 'gso', _('Generic Segmentation Offload (GSO)'));
o.default = o.enabled;
o = this.replaceOption(s, 'devadvanced', form.Flag, 'tso', _('TCP Segmentation Offload (TSO)'));
o.default = o.enabled;
o = this.replaceOption(s, 'devadvanced', form.Flag, 'lro', _('Large Receive Offload (LRO)'));
o.default = o.enabled;
o = this.replaceOption(s, 'devadvanced', form.Flag, 'ufo', _('UDP Fragmentation Offload (UFO)'));
o.default = o.enabled;
o = this.replaceOption(s, 'devadvanced', form.Value, 'speed', _('Speed'));
o.placeholder = dev ? dev.getSpeed() : '';
o.default = '';

View file

@ -116,6 +116,23 @@ interface_multipath_settings() {
uci -q set openmptcprouter.${config}.metric=$metric
config_get mode "$config" multipath
id=$metric
[ -n "$iface" ] && {
gro=$(uci -q network.${config}.gro)
[ "$gro" = "1" ] && ethtool -K $iface gro on 2>&1 >/dev/null
[ "$gro" = "0" ] && ethtool -K $iface gro on 2>&1 >/dev/null
gso=$(uci -q network.${config}.gso)
[ "$gso" = "1" ] && ethtool -K $iface gso on 2>&1 >/dev/null
[ "$gso" = "0" ] && ethtool -K $iface gso on 2>&1 >/dev/null
lro=$(uci -q network.${config}.lro)
[ "$lro" = "1" ] && ethtool -K $iface lro on 2>&1 >/dev/null
[ "$lro" = "0" ] && ethtool -K $iface lro on 2>&1 >/dev/null
ufo=$(uci -q network.${config}.ufo)
[ "$ufo" = "1" ] && ethtool -K $iface ufo on 2>&1 >/dev/null
[ "$ufo" = "0" ] && ethtool -K $iface ufo on 2>&1 >/dev/null
tso=$(uci -q network.${config}.tso)
[ "$tso" = "1" ] && ethtool -K $iface tso on 2>&1 >/dev/null
[ "$tso" = "0" ] && ethtool -K $iface tso on 2>&1 >/dev/null
}
[ "$mode" = "" ] && {
mode="$(uci -q get openmptcprouter.${config}.multipath)"
[ -n "$mode" ] && uci -q set network.${config}.multipath="$mode"

View file

@ -6,8 +6,8 @@ if [ "$(uci -q get openmptcprouter.settings.version)" = "" ]; then
uci -q batch <<-EOF >/dev/null
delete sqm.eth1
set sqm.wan1=queue
set sqm.wan1.qdisc="fq_codel"
set sqm.wan1.script="simple.qos"
set sqm.wan1.qdisc="cake"
set sqm.wan1.script="piece_of_cake.qos"
set sqm.wan1.qdisc_advanced='0'
set sqm.wan1.linklayer='none'
set sqm.wan1.enabled='1'
@ -19,8 +19,8 @@ if [ "$(uci -q get openmptcprouter.settings.version)" = "" ]; then
set sqm.wan1.iqdisc_opts='autorate-ingress dual-dsthost'
set sqm.wan1.eqdisc_opts='dual-srchost'
set sqm.wan2=queue
set sqm.wan2.qdisc="fq_codel"
set sqm.wan2.script="simple.qos"
set sqm.wan2.qdisc="cake"
set sqm.wan2.script="piece_of_cake.qos"
set sqm.wan2.qdisc_advanced='0'
set sqm.wan2.linklayer='none'
set sqm.wan2.enabled='1'
@ -37,8 +37,8 @@ if [ "$(uci -q get openmptcprouter.settings.version)" = "" ]; then
wan3="$(uci -q get network.wan3.device)"
uci -q batch <<-EOF >/dev/null
set sqm.wan3=queue
set sqm.wan3.qdisc="fq_codel"
set sqm.wan3.script="simple.qos"
set sqm.wan3.qdisc="cake"
set sqm.wan3.script="piece_of_cake.qos"
set sqm.wan3.qdisc_advanced='0'
set sqm.wan3.linklayer='none'
set sqm.wan3.enabled='1'
@ -56,8 +56,8 @@ if [ "$(uci -q get openmptcprouter.settings.version)" = "" ]; then
wan4="$(uci -q get network.wan4.device)"
uci -q batch <<-EOF >/dev/null
set sqm.wan4=queue
set sqm.wan4.qdisc="fq_codel"
set sqm.wan4.script="simple.qos"
set sqm.wan4.qdisc="cake"
set sqm.wan4.script="piece_of_cake.qos"
set sqm.wan4.qdisc_advanced='0'
set sqm.wan4.linklayer='none'
set sqm.wan4.enabled='1'
@ -74,7 +74,7 @@ if [ "$(uci -q get openmptcprouter.settings.version)" = "" ]; then
fi
fi
if [ "$(uci -q get sqm.omrvpn)" = "" ]; then
if [ "$(uci -q get sqm.omrvpn)" = "" ] || [ -z "$(uci -q get sqm.omrvpn.delay_thr_ms)" ]; then
uci -q batch <<-EOF >/dev/null
set sqm.omrvpn=queue
set sqm.omrvpn.qdisc="cake"
@ -89,6 +89,16 @@ if [ "$(uci -q get sqm.omrvpn)" = "" ]; then
set sqm.omrvpn.verbosity='5'
set sqm.omrvpn.overhead='40'
set sqm.omrvpn.iqdisc_opts='autorate-ingress'
set sqm.omrvpn.delay_thr_ms='300'
set sqm.omrvpn.reflector_ping_interval_s='0.5'
set sqm.omrvpn.download='20000'
set sqm.omrvpn.min_download='1000'
set sqm.omrvpn.max_download='60000'
set sqm.omrvpn.upload='20000'
set sqm.omrvpn.min_upload='1000'
set sqm.omrvpn.max_upload='60000'
set sqm.omrvpn.enable_sleep_function='0'
set sqm.omrvpn.autorate='1'
commit sqm
EOF
fi