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