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@ncentric.com>
This commit is contained in:
Koen Vandeputte 2018-02-15 15:16:03 +01:00 committed by John Crispin
parent e9eb219e5a
commit b3b16c8ce5
2 changed files with 20 additions and 2 deletions

View File

@ -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

View File

@ -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"