mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
parent
9916032c7a
commit
5f521932b2
185 changed files with 7761 additions and 4020 deletions
|
@ -63,7 +63,10 @@ function multipath_bandwidth()
|
|||
local label = s["label"]
|
||||
local dev = get_device(intname)
|
||||
if dev == "" then
|
||||
dev = get_device(s["ifname"])
|
||||
dev = get_device(s["device"])
|
||||
if dev == "" then
|
||||
dev = get_device(s["ifname"])
|
||||
end
|
||||
end
|
||||
local multipath = s["multipath"] or ""
|
||||
if dev ~= "lo" and dev ~= "" then
|
||||
|
@ -206,8 +209,8 @@ end
|
|||
function mptcp_monitor_data()
|
||||
luci.http.prepare_content("text/plain")
|
||||
local fullmesh
|
||||
fullmesh = io.popen("cat /proc/net/mptcp_net/snmp")
|
||||
if fullmesh then
|
||||
fullmesh = io.popen("multipath -m")
|
||||
if fullmesh:read() ~= nil then
|
||||
while true do
|
||||
local ln = fullmesh:read("*l")
|
||||
if not ln then break end
|
||||
|
@ -222,7 +225,7 @@ function mptcp_connections_data()
|
|||
luci.http.prepare_content("text/plain")
|
||||
local connections
|
||||
connections = io.popen("multipath -c")
|
||||
if connections then
|
||||
if connections:read() ~= nil then
|
||||
while true do
|
||||
local ln = connections:read("*l")
|
||||
if not ln then break end
|
||||
|
|
|
@ -21,56 +21,80 @@ o:value(0, translate("disable"))
|
|||
o = s:option(ListValue, "mptcp_path_manager", translate("Multipath TCP path-manager"), translate("Default is fullmesh"))
|
||||
o:value("default", translate("default"))
|
||||
o:value("fullmesh", "fullmesh")
|
||||
o:value("ndiffports", "ndiffports")
|
||||
o:value("binder", "binder")
|
||||
if uname.release:sub(1,4) ~= "4.14" then
|
||||
if uname.release:sub(1,4) ~= "5.14" then
|
||||
o:value("ndiffports", "ndiffports")
|
||||
o:value("binder", "binder")
|
||||
if uname.release:sub(1,4) ~= "4.14" then
|
||||
o:value("netlink", translate("Netlink"))
|
||||
end
|
||||
end
|
||||
o = s:option(ListValue, "mptcp_scheduler", translate("Multipath TCP scheduler"))
|
||||
o:value("default", translate("default"))
|
||||
o:value("roundrobin", "round-robin")
|
||||
o:value("redundant", "redundant")
|
||||
if uname.release:sub(1,4) ~= "4.14" then
|
||||
if uname.release:sub(1,4) ~= "5.15" then
|
||||
o:value("roundrobin", "round-robin")
|
||||
o:value("redundant", "redundant")
|
||||
if uname.release:sub(1,4) ~= "4.14" then
|
||||
o:value("blest", "BLEST")
|
||||
o:value("ecf", "ECF")
|
||||
end
|
||||
end
|
||||
if uname.release:sub(1,4) ~= "5.15" then
|
||||
o = s:option(Value, "mptcp_syn_retries", translate("Multipath TCP SYN retries"))
|
||||
o.datatype = "uinteger"
|
||||
o.rmempty = false
|
||||
end
|
||||
if uname.release:sub(1,4) ~= "5.15" then
|
||||
o = s:option(Value, "mptcp_version", translate("Multipath TCP version"))
|
||||
o.datatype = "uinteger"
|
||||
o.rmempty = false
|
||||
o.default = 0
|
||||
end
|
||||
o = s:option(Value, "mptcp_syn_retries", translate("Multipath TCP SYN retries"))
|
||||
o.datatype = "uinteger"
|
||||
o.rmempty = false
|
||||
o = s:option(ListValue, "congestion", translate("Congestion Control"),translate("Default is cubic"))
|
||||
local availablecong = sys.exec("sysctl -n net.ipv4.tcp_available_congestion_control | xargs -n1 | sort | xargs")
|
||||
for cong in string.gmatch(availablecong, "[^%s]+") do
|
||||
o:value(cong, translate(cong))
|
||||
end
|
||||
|
||||
o = s:option(Value, "mptcp_fullmesh_num_subflows", translate("Fullmesh subflows for each pair of IP addresses"))
|
||||
o.datatype = "uinteger"
|
||||
o.rmempty = false
|
||||
o.default = 1
|
||||
--o:depends("mptcp_path_manager","fullmesh")
|
||||
if uname.release:sub(1,4) == "5.15" then
|
||||
o = s:option(Value, "mptcp_subflows", translate("specifies the maximum number of additional subflows allowed for each MPTCP connection"))
|
||||
o.datatype = "uinteger"
|
||||
o.rmempty = false
|
||||
o.default = 3
|
||||
|
||||
o = s:option(Value, "mptcp_add_addr_accepted", translate("specifies the maximum number of ADD_ADDR suboptions accepted for each MPTCP connection"))
|
||||
o.datatype = "uinteger"
|
||||
o.rmempty = false
|
||||
o.default = 1
|
||||
else
|
||||
o = s:option(Value, "mptcp_fullmesh_num_subflows", translate("Fullmesh subflows for each pair of IP addresses"))
|
||||
o.datatype = "uinteger"
|
||||
o.rmempty = false
|
||||
o.default = 1
|
||||
--o:depends("mptcp_path_manager","fullmesh")
|
||||
|
||||
o = s:option(ListValue, "mptcp_fullmesh_create_on_err", translate("Re-create fullmesh subflows after a timeout"))
|
||||
o:value(1, translate("enable"))
|
||||
o:value(0, translate("disable"))
|
||||
--o:depends("mptcp_path_manager","fullmesh")
|
||||
o = s:option(ListValue, "mptcp_fullmesh_create_on_err", translate("Re-create fullmesh subflows after a timeout"))
|
||||
o:value(1, translate("enable"))
|
||||
o:value(0, translate("disable"))
|
||||
--o:depends("mptcp_path_manager","fullmesh")
|
||||
|
||||
o = s:option(Value, "mptcp_ndiffports_num_subflows", translate("ndiffports subflows number"))
|
||||
o.datatype = "uinteger"
|
||||
o.rmempty = false
|
||||
o.default = 1
|
||||
--o:depends("mptcp_path_manager","ndiffports")
|
||||
o = s:option(Value, "mptcp_ndiffports_num_subflows", translate("ndiffports subflows number"))
|
||||
o.datatype = "uinteger"
|
||||
o.rmempty = false
|
||||
o.default = 1
|
||||
--o:depends("mptcp_path_manager","ndiffports")
|
||||
|
||||
o = s:option(ListValue, "mptcp_rr_cwnd_limited", translate("Fill the congestion window on all subflows for round robin"))
|
||||
o:value("Y", translate("enable"))
|
||||
o:value("N", translate("disable"))
|
||||
o.default = "Y"
|
||||
--o:depends("mptcp_scheduler","roundrobin")
|
||||
o = s:option(ListValue, "mptcp_rr_cwnd_limited", translate("Fill the congestion window on all subflows for round robin"))
|
||||
o:value("Y", translate("enable"))
|
||||
o:value("N", translate("disable"))
|
||||
o.default = "Y"
|
||||
--o:depends("mptcp_scheduler","roundrobin")
|
||||
|
||||
o = s:option(Value, "mptcp_rr_num_segments", translate("Consecutive segments that should be sent for round robin"))
|
||||
o.datatype = "uinteger"
|
||||
o.rmempty = false
|
||||
o.default = 1
|
||||
--o:depends("mptcp_scheduler","roundrobin")
|
||||
o = s:option(Value, "mptcp_rr_num_segments", translate("Consecutive segments that should be sent for round robin"))
|
||||
o.datatype = "uinteger"
|
||||
o.rmempty = false
|
||||
o.default = 1
|
||||
--o:depends("mptcp_scheduler","roundrobin")
|
||||
end
|
||||
|
||||
s = m:section(TypedSection, "interface", translate("Interfaces Settings"))
|
||||
o = s:option(ListValue, "multipath", translate("Multipath TCP"), translate("One interface must be set as master"))
|
||||
|
|
|
@ -238,8 +238,8 @@
|
|||
labelup_25.parentNode.appendChild(textup);
|
||||
}
|
||||
|
||||
labeldn_scale.innerHTML = String.format('<%:(%d minutes window, %d seconds interval)%>', 3, data_wanted / 60);
|
||||
labelup_scale.innerHTML = String.format('<%:(%d minutes window, %d seconds interval)%>', 3, data_wanted / 60);
|
||||
labeldn_scale.innerHTML = String.format('<%:(%d minutes window, %d seconds interval)%>', 4, data_wanted / 60);
|
||||
labelup_scale.innerHTML = String.format('<%:(%d minutes window, %d seconds interval)%>', 4, data_wanted / 60);
|
||||
|
||||
/* render datasets, start update interval */
|
||||
XHR.poll(3, '<%=build_url(bandwidthtotalurl, all)%>', null,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue