After qmi-network stop, not able to disconnect with service provider (sometimes).

Aleksander Morgado aleksander at aleksander.es
Sat Sep 26 03:20:44 PDT 2015


On Fri, Sep 25, 2015 at 11:08 PM, Kavula Suresh <kavulas at gmail.com> wrote:
> After successful integration libqmi, qmicli and qmi-network script with
> Sierra MC7354 embedded platform, tested most scenarios and works great.
> Thanks a lot for library and all of your support.
>
> There is the one case even though we generate "/usr/bin/qmi-network
> /dev/cdc-wdm0 stop", still we are able to ping google.com some times, but
> most cases it disconnects.
>
>
> To disconnect completely with service provider, is there do we need to use
> any other options?
>
>
> Here is the sequence (1 to 9) of commands generated from terminal for your
> references:
>
>
> 1. Start Connect with Service Provider:
>
> # /usr/bin/qmi-network /dev/cdc-wdm0 start
> Checking data format with 'qmicli -d /dev/cdc-wdm0 --wda-get-data-format
> '...
> Link layer protocol retrieved: 802-3
> Starting network with 'qmicli -d /dev/cdc-wdm0 --wds-start-network=
> --client-no-release-cid'...
> Saving state... (CID: 9)
> Saving state... (PDH: 1205837040)
> Network started successfully
>
> 2. Get IP Address:
>
> # /sbin/udhcpc -n -i wwan0
> udhcpc (v1.21.0) started
> Sending discover...
> Sending select for 100.126.36.186...
> Lease of 100.126.36.186 obtained, lease time 7200
> deleting routers
> route: SIOCDELRT: No such process
> adding dns 198.224.148.135
> adding dns 198.224.149.135
>
> 3. Test Connection status by googling:
>
> # ping google.com
> PING google.com (63.84.3.23): 56 data bytes
> 64 bytes from 63.84.3.23: seq=0 ttl=52 time=60.635 ms
> 64 bytes from 63.84.3.23: seq=1 ttl=52 time=337.837 ms
> 64 bytes from 63.84.3.23: seq=2 ttl=52 time=293.348 ms
> 64 bytes from 63.84.3.23: seq=3 ttl=52 time=243.975 ms
> 64 bytes from 63.84.3.23: seq=4 ttl=52 time=191.595 ms
>
> --- google.com ping statistics ---
> 5 packets transmitted, 5 packets received, 0% packet loss
> round-trip min/avg/max = 60.635/225.478/337.837 ms
>
> 4. Get network status:
>
> # /usr/bin/qmi-network /dev/cdc-wdm0 status
> Loading previous state...
>     Previous CID: 9
>     Previous PDH: 1205837040
> Getting status with 'qmicli -d /dev/cdc-wdm0 --wds-get-packet-service-status
> --client-cid=9 --client-no-release-cid'...
> Status: connected
>
> 5. Test Connection status by googling:
>
> # ping google.com
> PING google.com (63.84.3.21): 56 data bytes
> 64 bytes from 63.84.3.21: seq=0 ttl=52 time=66.322 ms
> 64 bytes from 63.84.3.21: seq=1 ttl=52 time=119.481 ms
> 64 bytes from 63.84.3.21: seq=2 ttl=52 time=68.153 ms
> [2]+  Stopped                    ping google.com
>
>
> 6. Stop Network connection:
>
> # /usr/bin/qmi-network /dev/cdc-wdm0 stop
> Loading previous state...
>     Previous CID: 9
>     Previous PDH: 1205837040
> Stopping network with 'qmicli -d /dev/cdc-wdm0 --wds-stop-network=1205837040
> --client-cid=9'...
> Network stopped successfully
> Clearing state...
>
>
> 7. Check is disconnected from service provider or not by googling......, no
> we are not able to disconnect with service provider.
>
> # ping google.com
> PING google.com (63.84.3.21): 56 data bytes
> 64 bytes from 63.84.3.21: seq=0 ttl=52 time=57.319 ms
> 64 bytes from 63.84.3.21: seq=1 ttl=52 time=307.718 ms
> 64 bytes from 63.84.3.21: seq=2 ttl=52 time=249.398 ms
> [3]+  Stopped                    ping google.com
>
>
> 8. Re-Stop Network connection:
>
> # /usr/bin/qmi-network /dev/cdc-wdm0 stop
> Network already stopped
> Clearing state...
>
> 9. Check once again:
>
> # ping google.com
> PING google.com (63.84.3.25): 56 data bytes
> 64 bytes from 63.84.3.25: seq=0 ttl=52 time=60.324 ms
> 64 bytes from 63.84.3.25: seq=1 ttl=52 time=293.281 ms
> 64 bytes from 63.84.3.25: seq=2 ttl=52 time=241.974 ms
> [4]+  Stopped                    ping google.com

What does " /usr/bin/qmicli -d /dev/cdc-wdm0
--wds-get-packet-service-status" say in that case?

The only thing I can think of is that you may have auto-connect
enabled in the device and it just gets re-connected itself (or never
disconnected?). You can try to verify that by just ifup-ing the wwan
interface and trying to call the dhcp client directly on that
interface; without having qmicli/qmi-network in advance.

-- 
Aleksander
https://aleksander.es


More information about the libqmi-devel mailing list