uqmi: set CID during 'query-data-status' operation
authorLech Perczak <lech.perczak@gmail.com>
Sat, 12 Mar 2022 00:50:53 +0000 (01:50 +0100)
committerDaniel Golle <daniel@makrotopia.org>
Sat, 12 Mar 2022 10:38:11 +0000 (10:38 +0000)
Modems used in ZTE mobile broadband routers require to query the data
session status using the same CID as one used to establish the session,
otherwise they will report the session as "disconnected" despite
reporting correct PDH in previous step. Without this change, IPv6
connection on these modems doesn't establish properly. In IPv4 this bug
is present as well, but for some reason querying of IPv4 status works
using temporary CID, this however seems noncompliant with QMI
specifications, so fix it as well.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh

index 156e57b13529195961e5ce5194ef3ffe9e30bd71..ad577ea317f2703ab8e1a6c2475ffd93a3fc6429 100755 (executable)
@@ -285,7 +285,7 @@ proto_qmi_setup() {
                fi
 
                # Check data connection state
-               connstat=$(uqmi -s -d "$device" --get-data-status)
+               connstat=$(uqmi -s -d "$device" --set-client-id wds,"$cid_4" --get-data-status)
                [ "$connstat" == '"connected"' ] || {
                        echo "No data link!"
                        uqmi -s -d "$device" --set-client-id wds,"$cid_4" --release-client-id wds > /dev/null 2>&1
@@ -322,7 +322,7 @@ proto_qmi_setup() {
                fi
 
                # Check data connection state
-               connstat=$(uqmi -s -d "$device" --get-data-status)
+               connstat=$(uqmi -s -d "$device" --set-client-id wds,"$cid_6" --get-data-status)
                [ "$connstat" == '"connected"' ] || {
                        echo "No data link!"
                        uqmi -s -d "$device" --set-client-id wds,"$cid_6" --release-client-id wds > /dev/null 2>&1