problems with QMI dual stack connections from MM - works with qmicli

Daniele Palmas dnlplm at gmail.com
Fri Apr 30 15:03:51 UTC 2021


Hi Bjørn,

Il giorno lun 26 apr 2021 alle ore 18:23 Bjørn Mork <bjorn at mork.no> ha scritto:
>
> Bjørn Mork <bjorn at mork.no> writes:
>
> > Sorry, i do not think these issues are related to ModemManager at all.
>
> This is a test from freshly booted modem, MM not running:
>
> root at finn:~# qmicli -p -d /dev/cdc-wdm0 --device-open-sync --wda-set-data-format=ep-type=hsusb,ep-iface-number=4,link-layer-protocol=raw-ip,ul-protocol=qmapv5,dl-protocol=qmapv5,dl-max-datagrams=32,dl-datagram-max-size=31744
> [/dev/cdc-wdm0] Successfully set data format
>                         QoS flow header: no
>                     Link layer protocol: 'raw-ip'
>        Uplink data aggregation protocol: 'qmapv5'
>      Downlink data aggregation protocol: 'qmapv5'
>                           NDP signature: '0'
> Downlink data aggregation max datagrams: '32'
>      Downlink data aggregation max size: '31744'
> root at finn:~# qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid --wds-bind-mux-data-port=mux-id=1,ep-type=hsusb,ep-iface-number=4
> [/dev/cdc-wdm0] Client ID not released:
>         Service: 'wds'
>             CID: '15'
> root at finn:~# qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=15 --wds-set-ip-family=4
> [/dev/cdc-wdm0] Client ID not released:
>         Service: 'wds'
>             CID: '15'
> root at finn:~# qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=15 --wds-start-network=apn=telenor.smart,ip-type=4
> [/dev/cdc-wdm0] Network started
>         Packet data handle: '3891631616'
> [/dev/cdc-wdm0] Client ID not released:
>         Service: 'wds'
>             CID: '15'
> root at finn:~# qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid --wds-bind-mux-data-port=mux-id=1,ep-type=hsusb,ep-iface-number=4
> [/dev/cdc-wdm0] Client ID not released:
>         Service: 'wds'
>             CID: '16'
> root at finn:~# qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=16 --wds-set-ip-family=6
> [/dev/cdc-wdm0] Client ID not released:
>         Service: 'wds'
>             CID: '16'
> root at finn:~#  qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=16 --wds-start-network=apn=telenor.smart,ip-type=6
> [/dev/cdc-wdm0] Network started
>         Packet data handle: '3891309184'
> [/dev/cdc-wdm0] Client ID not released:
>         Service: 'wds'
>             CID: '16'
> root at finn:~# qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid --wds-bind-mux-data-port=mux-id=2,ep-type=hsusb,ep-iface-number=4
> [/dev/cdc-wdm0] Client ID not released:
>         Service: 'wds'
>             CID: '17'
> root at finn:~# qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=17 --wds-set-ip-family=4
> [/dev/cdc-wdm0] Client ID not released:
>         Service: 'wds'
>             CID: '17'
> root at finn:~# qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=17 --wds-start-network=apn=telenor,ip-type=4
> error: couldn't start network: QMI protocol error (14): 'CallFailed'
> call end reason (1): generic-unspecified
> verbose call end reason (2,236): [internal] call-already-present
> [/dev/cdc-wdm0] Client ID not released:
>         Service: 'wds'
>             CID: '17'

I guess the modem you are using is based on SDX55.

Testing with a modem based on the same chipset, I can replicate your
issue with just two ipv4 connections:

$ sudo ./src/qmicli/qmicli -p -d /dev/cdc-wdm0 --device-open-sync
--wda-set-data-format=ep-type=hsusb,ep-iface-number=2,link-layer-protocol=raw-ip,ul-protocol=qmapv5,dl-protocol=qmapv5,dl-max-datagrams=32,dl-datagram-max-size=31744
[/dev/cdc-wdm0] Successfully set data format
                        QoS flow header: no
                    Link layer protocol: 'raw-ip'
       Uplink data aggregation protocol: 'qmapv5'
     Downlink data aggregation protocol: 'qmapv5'
                          NDP signature: '0'
Downlink data aggregation max datagrams: '32'
     Downlink data aggregation max size: '16384'

$ sudo ./src/qmicli/qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid
--wds-bind-mux-data-port=mux-id=1,ep-type=hsusb,ep-iface-number=2
[/dev/cdc-wdm0] Client ID not released:
        Service: 'wds'
            CID: '17'

$ sudo ./src/qmicli/qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid
--client-cid=17 --wds-set-ip-family=4
[/dev/cdc-wdm0] Client ID not released:
        Service: 'wds'
            CID: '17'

$ sudo ./src/qmicli/qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid
--client-cid=17 --wds-start-network=apn=ibox.tim.it,ip-type=4
[/dev/cdc-wdm0] Network started
        Packet data handle: '4120009568'
[/dev/cdc-wdm0] Client ID not released:
        Service: 'wds'
            CID: '17'

$ sudo ./src/qmicli/qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid
--wds-bind-mux-data-port=mux-id=2,ep-type=hsusb,ep-iface-number=2
[/dev/cdc-wdm0] Client ID not released:
        Service: 'wds'
            CID: '18'

$ sudo ./src/qmicli/qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid
--client-cid=18 --wds-set-ip-family=4
[/dev/cdc-wdm0] Client ID not released:
        Service: 'wds'
            CID: '18'

$ sudo ./src/qmicli/qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid
--client-cid=18 --wds-start-network=apn=wap.tim.it,ip-type=4
error: couldn't start network: QMI protocol error (14): 'CallFailed'
call end reason (1): generic-unspecified
verbose call end reason (2,236): [internal] call-already-present
[/dev/cdc-wdm0] Client ID not released:
        Service: 'wds'
            CID: '18'

but if I create two profiles:

$ sudo ./src/qmicli/qmicli -p -d /dev/cdc-wdm0
--wds-create-profile=3gpp,apn=ibox.tim.it,pdp-type=IP
New profile created:
        Profile type: '3gpp'
        Profile index: '2'

$ sudo ./src/qmicli/qmicli -p -d /dev/cdc-wdm0
--wds-create-profile=3gpp,apn=wap.tim.it,pdp-type=IP
New profile created:
        Profile type: '3gpp'
        Profile index: '3'

and make the connection using profiles:

$ sudo ./src/qmicli/qmicli -p -d /dev/cdc-wdm0 --device-open-sync
--wda-set-data-format=ep-type=hsusb,ep-iface-number=2,link-layer-protocol=raw-ip,ul-protocol=qmapv5,dl-protocol=qmapv5,dl-max-datagrams=32,dl-datagram-max-size=31744
[/dev/cdc-wdm0] Successfully set data format
                        QoS flow header: no
                    Link layer protocol: 'raw-ip'
       Uplink data aggregation protocol: 'qmapv5'
     Downlink data aggregation protocol: 'qmapv5'
                          NDP signature: '0'
Downlink data aggregation max datagrams: '32'
     Downlink data aggregation max size: '16384'

$ sudo ./src/qmicli/qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid
--wds-bind-mux-data-port=mux-id=1,ep-type=hsusb,ep-iface-number=2
[/dev/cdc-wdm0] Client ID not released:
        Service: 'wds'
            CID: '17'

$ sudo ./src/qmicli/qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid
--client-cid=17 --wds-set-ip-family=4
[/dev/cdc-wdm0] Client ID not released:
        Service: 'wds'
            CID: '17'

$ sudo ./src/qmicli/qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid
--client-cid=17 --wds-start-network=3gpp-profile=2
[/dev/cdc-wdm0] Network started
        Packet data handle: '999450704'
[/dev/cdc-wdm0] Client ID not released:
        Service: 'wds'
            CID: '17'

$ sudo ./src/qmicli/qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid
--wds-bind-mux-data-port=mux-id=2,ep-type=hsusb,ep-iface-number=2
[/dev/cdc-wdm0] Client ID not released:
        Service: 'wds'
            CID: '18'

$ sudo ./src/qmicli/qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid
--client-cid=18 --wds-set-ip-family=4
[/dev/cdc-wdm0] Client ID not released:
        Service: 'wds'
            CID: '18'

$ sudo ./src/qmicli/qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid
--client-cid=18 --wds-start-network=3gpp-profile=3
[/dev/cdc-wdm0] Network started
        Packet data handle: '1012176704'
[/dev/cdc-wdm0] Client ID not released:
        Service: 'wds'
            CID: '18'

things work!

So maybe you'll have better luck using profiles.

Regards,
Daniele

> root at finn:~# qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=17 --wds-start-network=apn=internet.public,ip-type=4
> error: couldn't start network: QMI protocol error (14): 'CallFailed'
> call end reason (1): generic-unspecified
> verbose call end reason (2,236): [internal] call-already-present
> [/dev/cdc-wdm0] Client ID not released:
>         Service: 'wds'
>             CID: '17'
> root at finn:~# qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=17 --wds-bind-mux-data-port=mux-id=2,ep-type=hsusb,ep-iface-number=4
> [/dev/cdc-wdm0] Client ID not released:
>         Service: 'wds'
>             CID: '17'
> root at finn:~# qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=17 --wds-start-network=apn=internet.public,ip-type=4
> error: couldn't start network: QMI protocol error (14): 'CallFailed'
> call end reason (1): generic-unspecified
> verbose call end reason (2,236): [internal] call-already-present
> [/dev/cdc-wdm0] Client ID not released:
>         Service: 'wds'
>             CID: '17'
> root at finn:~# qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=17 --wds-set-ip-family=6
> [/dev/cdc-wdm0] Client ID not released:
>         Service: 'wds'
>             CID: '17'
> root at finn:~# qmicli -p -d /dev/cdc-wdm0 --client-no-release-cid --client-cid=17 --wds-start-network=apn=tdt2.telenor.smart,ip-type=6
> [/dev/cdc-wdm0] Network started
>         Packet data handle: '3891374016'
> [/dev/cdc-wdm0] Client ID not released:
>         Service: 'wds'
>             CID: '17'
>
>
>
> I don't think there is much MM can do here.  This modem firmware does
> not work properly with QMAP muxing.  Sorry about the confusion I've
> caused by assuming this would work.
>
> Unless I am missing something in the sequence above?
>
> I'll switch the firmware to MBIM and see how that goes.  I hear it's the
> future anyway :-)
>
>
> Bjørn
> _______________________________________________
> ModemManager-devel mailing list
> ModemManager-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel


More information about the ModemManager-devel mailing list