[openwrt/openwrt] uqmi: use built-in command for data-link verification

LEDE Commits lede-commits at lists.infradead.org
Sun Feb 18 00:35:15 PST 2018


blogic pushed a commit to openwrt/openwrt.git, branch lede-17.01:
https://git.lede-project.org/b3b16c8ce5c616a0d1f84c4263b4067ff099aa1e

commit b3b16c8ce5c616a0d1f84c4263b4067ff099aa1e
Author: Koen Vandeputte <koen.vandeputte at ncentric.com>
AuthorDate: Thu Feb 15 15:16:03 2018 +0100

    uqmi: use built-in command for data-link verification
    
    uqmi contains a command for directly querying the modem if there
    is a valid data connection, so let's use it.
    
    This avoids the cases were all previous tests are succesful, but the
    actual data link is not up for some reasons, leading to states were we
    thought the link was up when it actually wasn't ..
    
    Signed-off-by: Koen Vandeputte <koen.vandeputte at ncentric.com>
---
 package/network/utils/uqmi/Makefile                  |  2 +-
 .../network/utils/uqmi/files/lib/netifd/proto/qmi.sh | 20 +++++++++++++++++++-
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/package/network/utils/uqmi/Makefile b/package/network/utils/uqmi/Makefile
index 6e89143..993069e 100644
--- a/package/network/utils/uqmi/Makefile
+++ b/package/network/utils/uqmi/Makefile
@@ -1,7 +1,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=uqmi
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(LEDE_GIT)/project/uqmi.git
diff --git a/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh b/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
index bdab5ee..c3da5ed 100755
--- a/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
+++ b/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
@@ -27,7 +27,7 @@ proto_qmi_init_config() {
 
 proto_qmi_setup() {
 	local interface="$1"
-	local dataformat
+	local dataformat connstat
 	local device apn auth username password pincode delay modes pdptype profile dhcpv6 autoconnect plmn $PROTO_DEFAULT_OPTIONS
 	local cid_4 pdh_4 cid_6 pdh_6
 	local ip_6 ip_prefix_length gateway_6 dns1_6 dns2_6
@@ -164,6 +164,15 @@ proto_qmi_setup() {
 			proto_notify_error "$interface" CALL_FAILED
 			return 1
 		fi
+
+        # Check data connection state
+		connstat=$(uqmi -s -d "$device" --get-data-status)
+                [ "$connstat" == '"connected"' ] || {
+                        echo "No data link!"
+                        uqmi -s -d "$device" --set-client-id wds,"$cid_4" --release-client-id wds
+                        proto_notify_error "$interface" CALL_FAILED
+                        return 1
+                }
 	}
 
 	[ "$pdptype" = "ipv6" -o "$pdptype" = "ipv4v6" ] && {
@@ -192,6 +201,15 @@ proto_qmi_setup() {
 			proto_notify_error "$interface" CALL_FAILED
 			return 1
 		fi
+
+        # Check data connection state
+		connstat=$(uqmi -s -d "$device" --get-data-status)
+                [ "$connstat" == '"connected"' ] || {
+                        echo "No data link!"
+                        uqmi -s -d "$device" --set-client-id wds,"$cid_6" --release-client-id wds
+                        proto_notify_error "$interface" CALL_FAILED
+                        return 1
+                }
 	}
 
 	echo "Setting up $ifname"



More information about the lede-commits mailing list