Zyxel NR7101 QMI Mode crash

Hi, I have successfully installed OpenWRT on NR7101 and currently using MBIM mode as I've read that QMI mode will crash the usb on speeds more than 200mbps.

Now I have some questions:

  1. How come the stock Zyxel Firmware can use QMI mode for the modem but openWRT cannot, since Zyxel's fw seems to be some locked-up version of OpenWRT
  2. Why is there so different performance between QMI on stock Zyxel Firmware vs MBIM mode on OpenWRT? The NR7101 cannot keep a good CA on MBIM (B3 or B7 + N28) while on stock firmware QMI I get B3 + CA B1+B7+B20 + N28
  3. Is there any roadmap on fixing this?

you can't assume it'll be fixed, ever.

it might get fixed, but the person most suitable for implementing the fix(es) is the one with
the device on hand, which would be you.

Thanks for the response @frollic

You are right, but I have no experience in this software engineering domain, however, since I do own the device, I will be more than happy to somehow assist, if someone puts me in the right direction.

The stock firmware use QMI with buffering/aggregation (QMAP). This is not yet supported with OpenWrt. Using MBIM will achieve the same and is preferred anyway. Much easier to set up and use.

Note that mode only affects framing in practice. All the useful QMI configuration and monitoring requests are available in either mode, with proper tools. For example:

root@OpenWrt:/# mbimcli -p -d /dev/cdc-wdm0  --query-device-caps
[/dev/cdc-wdm0] Device capabilities retrieved:
              Device type: 'embedded'
           Cellular class: 'gsm'
              Voice class: 'no-voice'
                SIM class: 'removable'
               Data class: 'umts, hsdpa, hsupa, lte, custom'
                 SMS caps: 'pdu-receive, pdu-send'
                Ctrl caps: 'reg-manual'
             Max sessions: '15'
        Custom data class: '5G/TDS'
                Device ID: '354351110015210'
            Firmware info: 'RG502QEAACR13A02M4G_ZYXEL'
            Hardware info: 'RG502Q-EA'
root@OpenWrt:/# qmicli -p -d /dev/cdc-wdm0 --device-open-mbim    --get-service-v
[/dev/cdc-wdm0] Supported versions:
        ctl (1.5)
        wds (1.229)
        dms (1.79)
        nas (1.25)
        qos (1.18)
        wms (1.10)
        auth (1.14)
        at (1.6)
        voice (2.1)
        cat2 (2.24)
        uim (1.77)
        pbm (1.4)
        test (1.0)
        loc (2.145)
        sar (1.0)
        ims (1.93)
        csd (1.0)
        ts (1.0)
        tmd (1.0)
        wda (1.28)
        csvt (1.6)
        imsa (1.44)
        coex (1.0)
        pdc (1.0)
        rfrpe (1.0)
        dsd (1.77)
        unknown [0x2d] (1.3)
        unknown [0x30] (1.12)
        unknown [0x31] (1.0)
        unknown [0x44] (1.6)
        unknown [0x47] (1.1)
        unknown [0x49] (1.7)
        unknown [0x4a] (1.1)
        unknown [0x4b] (1.3)
        unknown [0x4c] (1.0)
        unknown [0x4d] (1.5)
        unknown [0x4e] (1.2)
        unknown [0x55] (1.0)
[23 Jan 2023, 15:35:17] -Warning ** [/dev/cdc-wdm0] MBIM device wasn't explicitly closed

This is unexpected. Don't see why that would be different. Worth looking into if you're interested in working on this.

How may I help @bmork ?

I don't know exactly how.

But that's not a problem which is likely to be solved unless someone figures out what stock and we do differently. And it's not something I'd know how to reproduce. I guess that goes for others as well.

Which means that if this is going to be solved, then it's probably up to you to poke around the stock firmware and see if there is any trick we can pick up from them.

Note that you can run most AT commands on stock firmware using the atcmd command:

root@NR7101:~# atcmd /dev/ttyUSB3 ATI
Revision: RG502QEAACR13A02M4G_ZYXEL


This is awesome. I am not sure with what commands to start though? Is the any specific sort of output that would be useful to you?