QMICLI IPV6 problem on MC7354
Tang Nguyen
tang_nguyen at yahoo.com
Thu Aug 18 14:34:04 UTC 2016
Yeah, option --wds-set-ip-family is what I wish but unfortunately it is not available on libqmi version 1.14.2.
Do you think the version 1.16.0 would support it ? if not, do we have any plan to add on ? I think it is quite useful option though.
Yes, i did set ipv4v6 to PDP#3 context, and using it to create 2 wds sessions as you suggested in another thread.
I got 2 packet handlers and 2 CIDs after creating 2 wds sessions, but still not able to get global ipv6 address.
qmicli command with option --wds-get-current-settings just show ipv4 address.
root at rx1500-lns-33:~# qmicli -d /dev/cdc-wdm1 --wds-get-current-settings
[/dev/cdc-wdm1] Current settings retrieved:
IP Family: IPv4
IPv4 address: 172.22.1.101
IPv4 subnet mask: 255.255.255.252
IPv4 gateway address: 172.22.1.102
IPv4 primary DNS: 172.22.1.201
MTU: 1428
Domains: none
Seems like libqmi does not send request to modem for ipv6 address, so the wwanX interface can't get ipv6 address.
--tang
On Thursday, August 18, 2016 10:15 AM, Bjørn Mork <bjorn at mork.no> wrote:
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