First wds/wda command fails in approx 70% of all boots on SIMCom 7600E-H

Tor Rune Skoglund trs at fourc.eu
Fri Jul 17 16:17:50 UTC 2020


Hi List,

I have a very weird problem with the SIMCom 7600E-H. In approx. 70% of 
all bootups, some wda/wds commands that apparently talk with the card 
always fail the first time (and possibly subsequent times) they are run. 
E.g. if I do:

platform ~ # ip link set dev wwp0s20u5u1i5 down
platform ~ # qmicli -p -d /dev/cdc-wdm0 --wda-get-data-format
error: couldn't create client for the 'wda' service: CID allocation 
failed in the CTL client: Transaction timed out
platform ~ # qmicli -p -d /dev/cdc-wdm0 --wda-get-data-format
error: couldn't create client for the 'wda' service: QMI protocol error 
(3): 'Internal'

As you see, subsequent calls then also fail.

However, if the first command is e.g. wds-get-autoconnect-settings or 
wds-reset or others, then subsequent wda/wds commands always work:

platform ~ # ip link set dev wwp0s20u5u1i5 down
platform ~ # qmicli -p -d /dev/cdc-wdm0 --wds-get-autoconnect-settings  
# should print disabled, but fails ~70% of the time
error: couldn't create client for the 'wds' service: CID allocation 
failed in the CTL client: Transaction timed out
platform ~ # qmicli -p -d /dev/cdc-wdm0 --get-expected-data-format
802-3
platform ~ # qmicli -p -d /dev/cdc-wdm0 --set-expected-data-format=raw-ip
[/dev/cdc-wdm0] expected data format set to: raw-ip
platform ~ # qmicli -p -d /dev/cdc-wdm0 --wda-get-data-format
[/dev/cdc-wdm0] Successfully got data format
                    QoS flow header: no
                Link layer protocol: 'raw-ip'
   Uplink data aggregation protocol: 'disabled'
Downlink data aggregation protocol: 'disabled'
                      NDP signature: '0'
   Uplink data aggregation max size: '0'
Downlink data aggregation max size: '0'
platform ~ # qmicli -p -d /dev/cdc-wdm0 --wda-set-data-format=raw-ip
[/dev/cdc-wdm0] Successfully set data format
                         QoS flow header: no
                     Link layer protocol: 'raw-ip'
        Uplink data aggregation protocol: 'disabled'
      Downlink data aggregation protocol: 'disabled'
                           NDP signature: '0'
Downlink data aggregation max datagrams: '0'
      Downlink data aggregation max size: '0'

One quick and dirty fix is to run an "empty" wds command first (which 
then fails or works - does not matter), as subsequent wds/wda commands 
do never seem to fail then:

platform ~ # ip link set dev wwp0s20u5u1i5 down
platform ~ # qmicli -p -d /dev/cdc-wdm0 --wds-noop
error: couldn't create client for the 'wds' service: CID allocation 
failed in the CTL client: Transaction timed out
platform ~ # qmicli -p -d /dev/cdc-wdm0 --wds-get-autoconnect-settings  
# should print disabled
Autoconnect settings retrieved:
         Status: 'disabled'
.... working, as above ....

Of course, this also makes qmi-network to fail at ~70% of the 
invocations. The fix above could work fine, but I think it would be best 
to know the actual reason for the problem and have a proper solution 
that could be trusted in the longer run. And save 10 secs during boot :)

The system is Gentoo, 32-bit, kernel 4.9.221. Tested with both newest 
SIMCom FW and the FW before that, and with two modems. Settings for the 
cards reset to factury without any change. Also tested with 
libqmi-1.22.2 and the newest master. Does not happen on Sierra Wireless 
MC7304. No dhcpc client is active. Autoconnect is disabled:

platform ~ # qmicli -p -d /dev/cdc-wdm0 --wds-get-autoconnect-settings
Autoconnect settings retrieved:
         Status: 'disabled'

Any clues? Am wondering if I have hit a bug, or if I just am plain 
stupid and am not getting something.... Been trying to figure out this 
for some days now. Any help appreciated.

BR,
Tor Rune Skoglund
*
*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libqmi-devel/attachments/20200717/09c7127e/attachment.htm>


More information about the libqmi-devel mailing list