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