diff --git a/luci-mod-admin-full/luasrc/model/cbi/admin_network/network.lua b/luci-mod-admin-full/luasrc/model/cbi/admin_network/network.lua index 505303e7d..b292fd8ac 100644 --- a/luci-mod-admin-full/luasrc/model/cbi/admin_network/network.lua +++ b/luci-mod-admin-full/luasrc/model/cbi/admin_network/network.lua @@ -129,6 +129,9 @@ if fs.access("/proc/sys/net/mptcp") then local mtcp = s:option(ListValue, "multipath", translate("Multipath TCP")) mtcp:value("enable", translate("enable")) mtcp:value("disable", translate("disable")) + local mtcpck = s:option(ListValueg, "mptcp_checksum", translate("Enable Multipath TCP checksum")) + mtcpck:value("enable", translate("enable")) + mtcpck:value("disable", 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")) @@ -143,6 +146,9 @@ if fs.access("/proc/sys/net/mptcp") then for cong in string.gmatch(availablecong, "[^%s]+") do congestion:value(cong, translate(cong)) end + local mtcpsyn = s:option(Value, "mptcp_syn_retries", translate("Multipath TCP SYN retries")) + mtcpsyn.datatype = "uinteger" + mtcpsyn.rmempty = false end m.pageaction = true diff --git a/mptcp/files/etc/init.d/mptcp b/mptcp/files/etc/init.d/mptcp index 1c23b39f4..6b7ad39bd 100755 --- a/mptcp/files/etc/init.d/mptcp +++ b/mptcp/files/etc/init.d/mptcp @@ -5,13 +5,15 @@ START=18 USE_PROCD=1 global_multipath_settings() { - local multipath mptcp_path_manager mptcp_schdeduler congestion + local multipath mptcp_path_manager mptcp_schdeduler congestion mptcp_checksum mptcp_syn_retries local multipath_status=0 config_load network config_get multipath globals multipath config_get mptcp_path_manager globals mptcp_path_manager config_get mptcp_scheduler globals mptcp_scheduler config_get congestion globals congestion + config_get mptcp_checksum globals mptcp_checksum + config_get mptcp_syn_retries globals mptcp_syn_retries [ "$multipath" = "enable" ] && multipath_status=1 # Global MPTCP configuration @@ -19,6 +21,8 @@ global_multipath_settings() { [ -z "$mptcp_path_manager" ] || sysctl -qw net.mptcp.mptcp_path_manager="$mptcp_path_manager" [ -z "$mptcp_scheduler" ] || sysctl -qw net.mptcp.mptcp_scheduler="$mptcp_scheduler" [ -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" } interface_multipath_settings() { diff --git a/mptcp/files/etc/uci-defaults/mptcp-defaults b/mptcp/files/etc/uci-defaults/mptcp-defaults index a2f2469b9..fdac46c93 100755 --- a/mptcp/files/etc/uci-defaults/mptcp-defaults +++ b/mptcp/files/etc/uci-defaults/mptcp-defaults @@ -1,8 +1,11 @@ #!/bin/sh uci -q batch <<-EOF + set network.globals.multipath='enable' set network.globals.mptcp_path_manager='fullmesh' set network.globals.mptcp_scheduler='default' set network.globals.congestion='olia' + set network.globals.mptcp_checksum=1 + set network.globals.mptcp_syn_retries=4 commit network EOF uci -q batch <<-EOF