modemmanager: reconnect interface if the modemmanager detects a disconnect
authorFlorian Eckert <fe@dev.tdt.de>
Tue, 5 Mar 2024 13:58:33 +0000 (14:58 +0100)
committerFlorian Eckert <fe@dev.tdt.de>
Wed, 6 Mar 2024 08:11:57 +0000 (09:11 +0100)
There are situation for mobile routers, that the modemmanager can not
stay connected to the mobile network. There can have various reasons.
In order for the system to reconnect automatically, the netifd must be
informed that it must re-establish the connection.

The modem manager already does have a script callback handling which is
already used by the modemmanager in openwrt. Currently the modem is marked
as not unavailable when a disconnected event is detected.

The behavior was changed with this commit, so that a reconnect of the
interface is now triggerd via the netifd if the modem disconnects.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
net/modemmanager/Makefile
net/modemmanager/files/usr/lib/ModemManager/connection.d/10-report-down

index 97f8dce06a60a74e28c1a1489b2774458cce4377..8759cd4054e4606cd0cb5a94949d97cf1ea4d098 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=modemmanager
 PKG_SOURCE_VERSION:=1.22.0
-PKG_RELEASE:=11
+PKG_RELEASE:=12
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/ModemManager.git
index 0ebe87de52ab2bf5f0497d69b520e21c92713e83..b8feb267790728aabd65afe51472d55a93f9d0c9 100644 (file)
@@ -31,9 +31,9 @@ CFG=$(mm_get_modem_config "${MODEM_DEVICE}")
 IFUP=$(ifstatus "${CFG}" | jsonfilter -e "@.up")
 
 [ "${IFUP}" = "true" ] && {
-       logger -t "modemmanager" "interface ${CFG} (network device ${INTERFACE}) ${STATE}"
-       proto_init_update $INTERFACE 0
-       proto_send_update $CFG
+       mm_log "info" "Reconnecting '${CFG}' on '${STATE}' event"
+       ubus call network.interface down "{ 'interface': '${CFG}'}"
+       ubus call network.interface up "{ 'interface': '${CFG}'}"
 }
 
 exit 0