modemmanager: swap plmn and technology set command in the proto
authorFlorian Eckert <fe@dev.tdt.de>
Tue, 5 Nov 2024 07:37:02 +0000 (08:37 +0100)
committerFlorian Eckert <fe@dev.tdt.de>
Fri, 15 Nov 2024 10:19:33 +0000 (11:19 +0100)
In the current implementation of the modemmanager 'proto', if a 'plmn' and a
'technology' is configured, the 'plmn' is set first and then second the
'technology' on a 'proto' setup.

However, this is problematic if a 'technology' has already been set in an
earlier run. It is possible, that this previously set 'technology' is not
available at the current location, as the modem remembers the setting.

To fix this, first set the technology and then the plmn.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 3a5aa8a387d82e0e02a67bfa96a050c2f01d6edf)

net/modemmanager/files/lib/netifd/proto/modemmanager.sh

index 295f7767443be80cd6efe077bde2bbb6d7d7010f..f5f91c0eae16af1b2d6ec18f667379451179c484 100644 (file)
@@ -644,12 +644,6 @@ proto_modemmanager_setup() {
                [ "$?" -ne "0" ] && return 1
        }
 
-       [ -z "${plmn}" ] || {
-               echo "starting network registration with plmn '${plmn}'..."
-               modemmanager_set_plmn "$device" "$interface" "$plmn" "$force_connection"
-               [ "$?" -ne "0" ] && return 1
-       }
-
        if [ -z "${allowedmode}" ]; then
                modemmanager_set_allowed_mode "$device" "$interface" "any"
        else
@@ -679,6 +673,12 @@ proto_modemmanager_setup() {
                [ "$?" -ne "0" ] && return 1
        fi
 
+       [ -z "${plmn}" ] || {
+               echo "starting network registration with plmn '${plmn}'..."
+               modemmanager_set_plmn "$device" "$interface" "$plmn" "$force_connection"
+               [ "$?" -ne "0" ] && return 1
+       }
+
        # setup connect args; APN mandatory (even if it may be empty)
        echo "starting connection with apn '${apn}'..."