From a04b44f56bab6af546aedd79ad3e0e83cd6f57b3 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 28 Dec 2023 15:44:05 +0100 Subject: [PATCH 1/4] Fix mptcp init due to latest ipcalc.sh changes --- mptcp/files/etc/init.d/mptcp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mptcp/files/etc/init.d/mptcp b/mptcp/files/etc/init.d/mptcp index 2ca1050af..781cf49cc 100755 --- a/mptcp/files/etc/init.d/mptcp +++ b/mptcp/files/etc/init.d/mptcp @@ -230,8 +230,8 @@ interface_multipath_settings() { config_get ipaddr $config ipaddr config_get gateway $config gateway config_get netmask $config netmask - [ -n "$ipaddr" ] && [ -n "$netmask" ] && netmask=`ipcalc.sh $ipaddr $netmask | sed -n '/PREFIX=/{;s/.*=//;s/ .*//;p;}'` - [ -n "$ipaddr" ] && [ -n "$netmask" ] && network=`ipcalc.sh $ipaddr $netmask | sed -n '/NETWORK=/{;s/.*=//;s/ .*//;p;}'` + [ -n "$ipaddr" ] && [ -n "$netmask" ] && netmask=`ipcalc.sh $ipaddr/$netmask | sed -n '/PREFIX=/{;s/.*=//;s/ .*//;p;}'` + [ -n "$ipaddr" ] && [ -n "$netmask" ] && network=`ipcalc.sh $ipaddr/$netmask | sed -n '/NETWORK=/{;s/.*=//;s/ .*//;p;}'` elif [ "$proto" != "gre" ]; then network_get_ipaddr ipaddr $config [ -z "$ipaddr" ] && ipaddr=$(ip -4 addr show dev $iface | grep inet | awk '{print $2}' | cut -d/ -f1 | tr -d "\n") @@ -257,8 +257,8 @@ interface_multipath_settings() { [ -z "$netmask" ] && netmask=$(ip -4 addr show dev $iface | grep peer | awk '{print $4}' | cut -d/ -f2 | tr -d "\n") [ -z "$netmask" ] && netmask=$(ip -4 addr show dev $iface | grep inet | awk '{print $2}' | cut -d/ -f2 | tr -d "\n") [ -n "$ipaddr" ] && ipaddr=$(echo $ipaddr | cut -d/ -f1 | tr -d "\n") - [ -n "$ipaddr" ] && [ -n "$netmask" ] && netmask=`ipcalc.sh $ipaddr $netmask | sed -n '/PREFIX=/{;s/.*=//;s/ .*//;p;}'` - [ -n "$ipaddr" ] && [ -n "$netmask" ] && network=`ipcalc.sh $ipaddr $netmask | sed -n '/NETWORK=/{;s/.*=//;s/ .*//;p;}'` + [ -n "$ipaddr" ] && [ -n "$netmask" ] && netmask=`ipcalc.sh $ipaddr/$netmask | sed -n '/PREFIX=/{;s/.*=//;s/ .*//;p;}'` + [ -n "$ipaddr" ] && [ -n "$netmask" ] && network=`ipcalc.sh $ipaddr/$netmask | sed -n '/NETWORK=/{;s/.*=//;s/ .*//;p;}'` fi if [ "$(uci -q get openmptcprouter.settings.uci_route)" = "1" ]; then uci -q batch <<-EOF >/dev/null @@ -443,8 +443,8 @@ add_route() { routeset="$target" config_get netmask "$1" netmask [ -n "$target" ] && [ -n "$netmask" ] && { - netmask=`ipcalc.sh $target $netmask | sed -n '/PREFIX=/{;s/.*=//;s/ .*//;p;}'` - network=`ipcalc.sh $target $netmask | sed -n '/NETWORK=/{;s/.*=//;s/ .*//;p;}'` + netmask=`ipcalc.sh $target/$netmask | sed -n '/PREFIX=/{;s/.*=//;s/ .*//;p;}'` + network=`ipcalc.sh $target/$netmask | sed -n '/NETWORK=/{;s/.*=//;s/ .*//;p;}'` [ -n "$netmask" ] && [ "$target" = "$network" ] && routeset="$routeset/$netmask" } config_get gateway "$1" gateway From 08157799fbcdc919527b4c7195d4feb4ce8089dc Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 28 Dec 2023 15:44:33 +0100 Subject: [PATCH 2/4] Reset modem when in failed state --- .../files/usr/share/omr/post-tracking.d/001-post-tracking | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking b/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking index 12f10e425..40c4308bf 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking @@ -743,8 +743,14 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then elif [ -n "$OMR_TRACKER_INTERFACE" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ] && [ "$interface_up" = "false" ] && [ "$interface_available" = "false" ] && [ "$interface_pending" = "false" ] && [ "$interface_autostart" = "true" ]; then modemfind="0" for modem in $(timeout 3 mmcli -L | awk -F/ '{ print $6}' | awk '{print $1}'); do - if [ -n "$(timeout 2 mmcli -m $modem -K | grep $OMR_TRACKER_DEVICE)" ]; then + modeminfo="$(timeout 2 mmcli -m $modem -K)" + if [ -n "$(echo $modeminfo | grep $OMR_TRACKER_DEVICE)" ]; then modemfind="1" + if [ -n "$(echo $modeminfo | grep 'modem.generic.state ' | grep failed)" ] && [ -n "$(echo $modeminfo | grep 'modem.generic.state-failed-reason' | grep 'unknown-capabilities')" ]; then + _log "Interface $OMR_TRACKER_INTERFACE in failed state in ModemManager, reset modem..." + /usr/bin/mmcli -m ${modem} -r 2>&1 >/dev/null + sleep 30 + fi fi done if [ "$modemfind" = "0" ]; then From 20c219fdf26a7b48efcfddfde84d40b67b3ea3ef Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 28 Dec 2023 15:44:57 +0100 Subject: [PATCH 3/4] Increase omr-tracker interval test for proxy --- omr-tracker/files/etc/config/omr-tracker | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/omr-tracker/files/etc/config/omr-tracker b/omr-tracker/files/etc/config/omr-tracker index c8e484e08..6f1e926a5 100644 --- a/omr-tracker/files/etc/config/omr-tracker +++ b/omr-tracker/files/etc/config/omr-tracker @@ -41,7 +41,7 @@ config proxy 'proxy' option tries '3' option wait_test '0' option interval_tries '1' - option interval '5' + option interval '10' option mail_alert '0' config server 'server' From 1cf24d2475b8dddde4930aed0ff6361ae1c43a40 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 28 Dec 2023 15:45:20 +0100 Subject: [PATCH 4/4] Remove ipset migration --- openmptcprouter/files/etc/uci-defaults/0000-omr-update | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openmptcprouter/files/etc/uci-defaults/0000-omr-update b/openmptcprouter/files/etc/uci-defaults/0000-omr-update index 82a2cee3b..03f36123e 100755 --- a/openmptcprouter/files/etc/uci-defaults/0000-omr-update +++ b/openmptcprouter/files/etc/uci-defaults/0000-omr-update @@ -1,6 +1,9 @@ #!/bin/sh cd /etc/uci-defaults || exit 0 +# Keep dnsmasq ipset with old method +rm -f /etc/uci-defaults/50-dnsmasq-migrate-ipset.sh + source /etc/os-release files="$(ls /etc/uci-defaults/)"