Dual stack with qmicli 1.16.2/1.20.0 and D-Link DWM-222

Reinhard Speyerer rspmn at arcor.de
Sun Jun 10 12:11:12 UTC 2018


On Sun, Jun 10, 2018 at 11:54:57AM +0200, Reinhard Speyerer wrote:
> On Sat, Jun 09, 2018 at 09:39:47PM +0200, Marc Andre Selig wrote:
> > Hi all!
> > 
> > Apologies if this is the wrong place to ask; I would appreciate
> > pointers in that case.
> > 
> > I am trying to get a D-Link DWM-222 USB LTE modem to work in dual
> > stack mode using qmicli; I tried versions 1.16.2 and 1.20.0.
> > 
> > With qmicli 1.16.2 (from Debian Stretch), I have these results:
> > 
> > An IPv4-only connection works using
> >   qmicli -d /dev/cdc-wdm0 \
> >     --wds-start-network=apn=internet.t-mobile,ip-type=4 \
> >     --client-no-release-cid
> >   dhclient -4 wwan0 &
> > 
> > Similarly, an IPv6-only connection works with ip-type=6, followed
> > by static configuration with ip a add and the prefix output by
> > --wds-get-current-settings.
> > 
> > However, when I try adding an IPv6 connection to an existing IPv4
> > connection or vice-versa, I get this:
> >   # qmicli -d /dev/cdc-wdm0 \
> >   > --wds-start-network=apn=internet.t-mobile,ip-type=6 \
> >   > --client-no-release-cid
> >   error: couldn't start network: QMI protocol error (79): 'PolicyMismatch'
> >   [/dev/cdc-wdm0] Client ID not released:
> > 	  Service: 'wds'
> > 	      CID: '27'
> >   #
> > 
> > After this, --wds-get-current-settings using either CID only shows
> > the configuration for the first connection.
> > 
> > 
> > Next, I got some hope from
> > <https://lists.freedesktop.org/archives/libqmi-devel/2017-May/002354.html>
> > and installed the latest version from
> > <https://www.freedesktop.org/software/libqmi/>, which is 1.20.0.
> > 
> > This results in:
> >   # QAR="-d /dev/cdc-wdm0 --device-open-qmi --client-no-release-cid"
> >   # CID=$(qmicli $QAR --wds-noop|awk -F\' '/CID/{print $2}')
> >   # QARG="$QAR --client-cid=$CID"
> >   # qmicli $QARG --wds-set-ip-family=4
> >   [/dev/cdc-wdm0] Client ID not released:
> >   	Service: 'wds'
> >   	    CID: '26'
> >   # qmicli $QARG --wds-start-network=apn=internet.t-mobile
> >   [/dev/cdc-wdm0] Network started
> >   	Packet data handle: '89831284'
> >   [/dev/cdc-wdm0] Client ID not released:
> >   	Service: 'wds'
> >   	    CID: '26'
> >   # qmicli $QARG --wds-set-ip-family=6
> >   error: couldn't set IP family: QMI protocol error (48): 'InvalidArgument'
> >   [/dev/cdc-wdm0] Client ID not released:
> >   	Service: 'wds'
> >   	    CID: '26'
> >   #
> > 
> > And similar to above, I can do the dance the other way round,
> > successfully initiating an IPv6 connection but then getting
> > "QMI protocol error (48): 'InvalidArgument' with the call to
> > --wds-set-ip-family=4
> > 
> > Any hints?
> 
> Hi Marc,
> 
> for dualstack to work you need a corresponding IPV4V6 entry like this
> 
> at+cgdcont?
> +CGDCONT: 1,"IPV4V6","","0.0.0.0",0,0
> +CGDCONT: 2,"IPV4V6","internet.t-mobile","0.0.0.0",0,0
> OK
> 
> and you have to use a second CID for the IPv6 commands as in Bjørn's example.
> 

Sorry,
forgot to mention that MDM9x15/MDM9x25-based devices require the use of
raw IP mode for proper dualstack support. Please refer to
https://mail.gnome.org/archives/networkmanager-list/2015-November/msg00075.html
for details.

If the DWM-222 is one if them simply use

qmicli -d /dev/cdc-wdm0 --wda-set-data-format=raw-ip
echo Y > /sys/class/net/wwan0/qmi/raw_ip

initially to set both the device and the qmi_wwan driver to raw IP mode.

Regards,
Reinhard


More information about the libqmi-devel mailing list