QMICLI IPV6 problem on MC7354
Bjørn Mork
bjorn at mork.no
Thu Aug 18 14:13:27 UTC 2016
Tang Nguyen <tang_nguyen at yahoo.com> writes:
> You are right. Verizon network requires 2 PDP context from modem to
> connect to their network. By factory default, Sierra program PDP#1 as
> vzwims, and PDP#3 as vzwinternet. To establish the data call,
> application sends request with PDP#3 to get ip address from network.
>
> Since I am using R&S CMW500 callbox, so the APN is not a matter. On
> Call box, I saw 2 PDP context is activated, one is for vzwims and
> other is vzwinternet. AT command replies with PDP#1 information.
Ah, OK.
IIUC, what you wanted was to have a dual-stack connection to one of
these. Or rather, to use the dual-stack connection you already have
established.
To do that with QMI you have to establish two WDS sessions referring to
the *same* PDP context, which of course has to be IPV4V6. This doesn't
actually establish two connections, but is simply the way Qualcomm chose
to map dual-stack contexts in QMI. To get both IPv4 and IPv6 settings,
you need to run --wds-get-current-settings twice as well, carefully
using the CIDs associated with the IPv4 or IPv6 part of the connection.
But you also need to set the wanted IP family for each --wds-start-network
call, which I don't think is supported by qmicli yet?
The whole procedure would be something like this, if --wds-set-ip-family
had existed:
qmicli -d /dev/cdc-wdm0 --wds-set-ip-family=4 --client-no-release-cid
[/dev/cdc-wdm0] Client ID not released:
Service: 'wds'
CID: 'x'
qmicli -d /dev/cdc-wdm0 --wds-start-network=vzwinternet --client-no-release-cid --client-cid=x
=> IPv4 handle
qmicli -d /dev/cdc-wdm0 --wds-set-ip-family=6 --client-no-release-cid
[/dev/cdc-wdm0] Client ID not released:
Service: 'wds'
CID: 'y'
qmicli -d /dev/cdc-wdm0 --wds-start-network=vzwinternet --client-no-release-cid --client-cid=y
=> IPv6 handle
qmicli -d /dev/cdc-wdm0 --wds-get-current-settings --client-no-release-cid --client-cid=x
=> IPv4 settings
qmicli -d /dev/cdc-wdm0 --wds-get-current-settings --client-no-release-cid --client-cid=y
=> IPv6 settings
I believe this is what MM implements for QMI dual-stack.
Bjørn
More information about the libqmi-devel
mailing list