1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-02-12 18:41:51 +00:00

Add and fix some MPTCP settings

This commit is contained in:
Ycarus 2018-06-08 19:07:53 +02:00
parent 0baa8cba4b
commit 5e05415e4e
4 changed files with 42 additions and 6 deletions

View file

@ -10,8 +10,8 @@ local mtcpg = s:option(ListValue, "multipath", translate("Multipath TCP"))
mtcpg:value("enable", translate("enable"))
mtcpg:value("disable", translate("disable"))
local mtcpck = s:option(ListValue, "mptcp_checksum", translate("Multipath TCP checksum"))
mtcpck:value("enable", translate("enable"))
mtcpck:value("disable", translate("disable"))
mtcpck:value(1, translate("enable"))
mtcpck:value(0, translate("disable"))
local mtcppm = s:option(ListValue, "mptcp_path_manager", translate("Multipath TCP path-manager"))
mtcppm:value("default", translate("default"))
mtcppm:value("fullmesh", translate("fullmesh"))
@ -29,6 +29,16 @@ local availablecong = sys.exec("sysctl net.ipv4.tcp_available_congestion_control
for cong in string.gmatch(availablecong, "[^%s]+") do
congestion:value(cong, translate(cong))
end
local mtcpfm_subflows = s:option(Value, "mptcp_fullmesh_num_subflows", translate("Fullmesh subflows for each pair of IP addresses"))
mtcpfm_subflows.datatype = "uinteger"
mtcpfm_subflows.rmempty = false
local mtcpfm_createonerr = s:option(Value, "mptcp_fullmesh_create_on_err", translate("Re-create fullmesh subflows after a timeout"))
mtcpfm_createonerr:value(1, translate("enable"))
mtcpfm_createonerr:value(0, translate("disable"))
local mtcpnd_subflows = s:option(Value, "mptcp_ndiffports_num_subflows", translate("ndiffports subflows number"))
mtcpnd_subflows.datatype = "uinteger"
mtcpnd_subflows.rmempty = false
s = m:section(TypedSection, "interface", translate("Interfaces Settings"))
mptcp = s:option(ListValue, "multipath", translate("Multipath TCP"), translate("One interface must be set as master"))

View file

@ -130,8 +130,8 @@ if fs.access("/proc/sys/net/mptcp") then
mtcp:value("enable", translate("enable"))
mtcp:value("disable", translate("disable"))
local mtcpck = s:option(ListValue, "mptcp_checksum", translate("Multipath TCP checksum"))
mtcpck:value("enable", translate("enable"))
mtcpck:value("disable", translate("disable"))
mtcpck:value(1, translate("enable"))
mtcpck:value(0, translate("disable"))
local mtcppm = s:option(ListValue, "mptcp_path_manager", translate("Multipath TCP path-manager"))
mtcppm:value("default", translate("default"))
mtcppm:value("fullmesh", translate("fullmesh"))

View file

@ -5,7 +5,7 @@ START=18
USE_PROCD=1
global_multipath_settings() {
local multipath mptcp_path_manager mptcp_schdeduler congestion mptcp_checksum mptcp_syn_retries
local multipath mptcp_path_manager mptcp_schdeduler congestion mptcp_checksum mptcp_syn_retries mptcp_fullmesh_num_subflows mptcp_fullmesh_create_on_err mptcp_ndiffports_num_subflows
local multipath_status=0
config_load network
config_get multipath globals multipath
@ -14,6 +14,10 @@ global_multipath_settings() {
config_get congestion globals congestion
config_get mptcp_checksum globals mptcp_checksum
config_get mptcp_syn_retries globals mptcp_syn_retries
config_get mptcp_fullmesh_num_subflows globals mptcp_fullmesh_num_subflows
config_get mptcp_fullmesh_create_on_err globals mptcp_fullmesh_create_on_err
config_get mptcp_ndiffports_num_subflows globals mptcp_ndiffports_num_subflows
[ "$multipath" = "enable" ] && multipath_status=1
# Global MPTCP configuration
@ -23,6 +27,9 @@ global_multipath_settings() {
[ -z "$congestion" ] || sysctl -qw net.ipv4.tcp_congestion_control="$congestion"
[ -z "$mptcp_checksum" ] || sysctl -qw net.mptcp.mptcp_checksum="$mptcp_checksum"
[ -z "$mptcp_syn_retries" ] || sysctl -qw net.mptcp.mptcp_syn_retries="$mptcp_syn_retries"
[ -z "$mptcp_fullmesh_num_subflows" ] || sysctl -qw /sys/module/mptcp_fullmesh/parameters/num_subflows="$mptcp_fullmesh_num_subflows"
[ -z "$mptcp_fullmesh_create_on_err" ] || sysctl -qw /sys/module/mptcp_fullmesh/parameters/create_on_err="$mptcp_fullmesh_create_on_err"
[ -z "$mptcp_ndiffports_num_subflows" ] || sysctl -qw /sys/module/mptcp_ndiffports/parameters/num_subflows="$mptcp_ndiffports_num_subflows"
}
interface_multipath_settings() {

View file

@ -1,5 +1,5 @@
#!/bin/sh
if [ "$(uci -q show network.globals | grep mptcp)" = "" ]; then
if [ "$(uci -q show network.globals | grep mptcp_path_manager)" = "" ]; then
uci -q batch <<-EOF
set network.globals.multipath='enable'
set network.globals.mptcp_path_manager='fullmesh'
@ -10,6 +10,25 @@ if [ "$(uci -q show network.globals | grep mptcp)" = "" ]; then
commit network
EOF
fi
if [ "$(uci -q get network.globals.mptcp_checksum")" = "enable" ]; then
uci -q batch <<-EOF
set network.globals.mptcp_checksum=1
EOF
fi
if [ "$(uci -q get network.globals.mptcp_checksum")" = "disable" ]; then
uci -q batch <<-EOF
set network.globals.mptcp_checksum=0
EOF
fi
if [ "$(uci -q show network.globals | grep mptcp_fullmesh)" = "" ]; then
uci -q batch <<-EOF
set network.globals.mptcp_fullmesh_num_subflows=1
set network.globals.mptcp_fullmesh_create_on_err=0
set network.globals.mptcp_ndiffports_num_subflows=1
commit network
EOF
fi
uci -q batch <<-EOF
delete ucitrack.@mptcp[-1]
add ucitrack mptcp