From 171cc553b2855f4bb6f8af94c98dd951fa6f6eec Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 13 Jul 2022 08:20:19 +0200 Subject: [PATCH 1/5] Force set firewall when wizard is saved --- luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index 5662c273f..9786f8914 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -602,6 +602,7 @@ function wizard_add() ucic:set("openmptcprouter",server,"disabled",openmptcprouter_vps_disabled) ucic:set_list("openmptcprouter",server,"ip",aserverips) ucic:set("openmptcprouter",server,"port","65500") + ucic:set("openmptcprouter",server,"set_firewall","1") ucic:save("openmptcprouter") end From d84c079b96f013d3a37bda78cdd97f6e6120784f Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 14 Jul 2022 17:11:51 +0200 Subject: [PATCH 2/5] Force config retrieve if server IP change --- .../luasrc/controller/openmptcprouter.lua | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index 9786f8914..071aa1805 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -600,7 +600,12 @@ function wizard_add() ucic:set("openmptcprouter",server,"username",openmptcprouter_vps_username:gsub("%s+", "")) ucic:set("openmptcprouter",server,"password",openmptcprouter_vps_key:gsub("%s+", "")) ucic:set("openmptcprouter",server,"disabled",openmptcprouter_vps_disabled) - ucic:set_list("openmptcprouter",server,"ip",aserverips) + if ucic:get("openmptcprouter",server,"ip") ~= aserverips then + ucic:set_list("openmptcprouter",server,"ip",aserverips) + if ucic:get("openmptcprouter",server,"master") == "1" then + ucic:set("openmptcprouter",server,"get_config","1") + end + end ucic:set("openmptcprouter",server,"port","65500") ucic:set("openmptcprouter",server,"set_firewall","1") ucic:save("openmptcprouter") From 3865cfa800613bf9fdf43239d894829f329d8a22 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 14 Jul 2022 17:12:22 +0200 Subject: [PATCH 3/5] Gateway is fixed for OpenVPN bonding --- openmptcprouter/files/etc/init.d/openmptcprouter-vps | 1 + 1 file changed, 1 insertion(+) diff --git a/openmptcprouter/files/etc/init.d/openmptcprouter-vps b/openmptcprouter/files/etc/init.d/openmptcprouter-vps index 503cf491c..94608a5f5 100755 --- a/openmptcprouter/files/etc/init.d/openmptcprouter-vps +++ b/openmptcprouter/files/etc/init.d/openmptcprouter-vps @@ -835,6 +835,7 @@ _set_vpn_ip() { [ -z "$vpnip_remote" ] && [ -n "$vpnifname" ] && vpnip_remote=$(ip -4 r list dev ${vpnifname} | grep kernel | awk '{print $1}' | tr -d "\n") [ -z "$vpnip_remote" ] && [ -n "$vpnifname" ] && vpnip_remote=$(ip -4 r list dev ${vpnifname} | grep "proto static src" | awk '{print $3}' | tr -d "\n") [ -z "$vpnip_remote" ] && vpnip_remote=$(ifstatus omrvpn | jsonfilter -e '@.route[0].nexthop') + [ -z "$vpnip_remote" ] && [ "$vpnifname" = "bonding-omrvpn" ] && vpnip_remote="10.255.248.1" ula="$(uci -q get network.globals.ula_prefix)" ula_current="$(echo "$vps_config" | jsonfilter -q -e '@.ip6in4.ula')" if [ "$vpnip_remote" != "" ] && [ "$vpnip_local" != "" ] && ([ "$vpnip_remote" != "$vpnip_remote_current" ] || [ "$vpnip_local" != "$vpnip_local_current" ] || [ "$ula" != "$ula_current" ]); then From 1243f58e21833f699b1a9d08cb9af42b679c7851 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 14 Jul 2022 17:12:41 +0200 Subject: [PATCH 4/5] Remove settings when OpenVPN is not used --- openmptcprouter/files/etc/init.d/openvpnbonding | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/openmptcprouter/files/etc/init.d/openvpnbonding b/openmptcprouter/files/etc/init.d/openvpnbonding index f3c085802..2df9d5897 100755 --- a/openmptcprouter/files/etc/init.d/openvpnbonding +++ b/openmptcprouter/files/etc/init.d/openvpnbonding @@ -56,6 +56,23 @@ _disable_openvpnbonding() name=$1 if [ "$(echo $name | grep omr_bonding)" != "" ]; then uci -q set openvpn.${name}.enabled='0' + uci -q batch <<-EOF >/dev/null + del network.omrvpn.bonding_policy + del network.omrvpn.packets_per_slave + del network.omrvpn.xmit_hash_policy + del network.omrvpn.all_slaves_active + del network.omrvpn.netmask + del network.omrvpn.ipaddr + del network.omrvpn.link_monitoring + del network.omrvpn.miimon + del network.omrvpn.downdelay + del network.omrvpn.updelay + del network.omrvpn.use_carrier + del network.omrvpn.force_link + del network.omrvpn.slaves + commit network + EOF + fi } From 4a3bde8e098416fe12b46860e85be1b80cf0f115 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 14 Jul 2022 21:34:36 +0200 Subject: [PATCH 5/5] Add MPTCP version support to use VPS with 5.4 kernel when router use 5.15 --- openmptcprouter/files/etc/init.d/openmptcprouter-vps | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/openmptcprouter/files/etc/init.d/openmptcprouter-vps b/openmptcprouter/files/etc/init.d/openmptcprouter-vps index 94608a5f5..723c52b55 100755 --- a/openmptcprouter/files/etc/init.d/openmptcprouter-vps +++ b/openmptcprouter/files/etc/init.d/openmptcprouter-vps @@ -728,6 +728,7 @@ _set_mptcp_vps() { scheduler_current="$(echo "$vps_config" | jsonfilter -q -e '@.mptcp.scheduler')" syn_retries_current="$(echo "$vps_config" | jsonfilter -q -e '@.mptcp.syn_retries')" congestion_control_current="$(echo "$vps_config" | jsonfilter -q -e '@.network.congestion_control')" + mptcp_version_current="$(echo "$vps_config" | jsonfilter -q -e '@.mptcp.version')" mptcp_enabled="$(uci -q get network.globals.multipath)" if [ "$mptcp_enabled" = "disable" ]; then mptcp_enabled="0" @@ -739,9 +740,11 @@ _set_mptcp_vps() { scheduler="$(uci -q get network.globals.mptcp_scheduler)" syn_retries="$(uci -q get network.globals.mptcp_syn_retries)" congestion="$(uci -q get network.globals.congestion)" + mptcp_version="0" + [ ! -f /proc/sys/net/mptcp/mptcp_enabled ] && mptcp_version="1" [ -z "$congestion" ] && congestion="bbr" - if [ "$mptcp_enabled_current" != "$mptcp_enabled" ] || [ "$checksum_current" != "$checksum" ] || ([ "$path_manager_current" != "" ] && [ "$path_manager_current" != "$path_manager" ]) || ([ "$scheduler_current" != "" ] && [ "$scheduler_current" != "$scheduler" ]) || ([ "$syn_retries_current" != "" ] && [ "$syn_retries_current" != "$syn_retries" ]) || [ "$congestion_control_current" != "$congestion" ]; then - settings='{"enabled" : "'$mptcp_enabled'", "checksum": "'$checksum'","path_manager": "'$path_manager'","scheduler": "'$scheduler'","syn_retries": "'$syn_retries'","congestion_control": "'$congestion'"}' + if [ "$mptcp_enabled_current" != "$mptcp_enabled" ] || [ "$checksum_current" != "$checksum" ] || ([ "$path_manager_current" != "" ] && [ "$path_manager_current" != "$path_manager" ]) || ([ "$scheduler_current" != "" ] && [ "$scheduler_current" != "$scheduler" ]) || ([ "$syn_retries_current" != "" ] && [ "$syn_retries_current" != "$syn_retries" ]) || [ "$congestion_control_current" != "$congestion" ] || [ "$mptcp_version_current" != "$mptcp_version" ]; then + settings='{"enabled" : "'$mptcp_enabled'", "checksum": "'$checksum'","path_manager": "'$path_manager'","scheduler": "'$scheduler'","syn_retries": "'$syn_retries'","congestion_control": "'$congestion'","version": "'$mptcp_version'"}' echo $(_set_json "mptcp" "$settings") else echo 1