QMI vs. Direct IP

I’ve signed the NDA, after looking closer at the command references I found the command I was looking for and switched the modem to PID 68a3. sierra_net was throwing all sorts of errors:

Dec  3 21:41:11 localhost kernel: sierra_net 1-1.4:1.7: wwan0: Submit SYNC failed -32
Dec  3 21:41:11 localhost kernel: sierra_net 1-1.4:1.7: wwan0: Send SYNC failed, status -32

And I couldn’t access the control channel. This was kernel 3.4.19 with the stock sierra.c/sierra_net.c. I grabbed the updated sierra drivers from here and manually merged in the usb-serial changes to get them to compile (usb driver registration APIs had changed). I can now successfully connect to a cellular network with Direct IP.

Now this is a new platform with no legacy compatibility to deal with, so I don’t have anything invested in either technology. I will investigate ModemManager, when I had initially looked at building libqmi it looked to have fairly heavy Gnome dependencies that substantially increased our filesystem image size. I will talk to our rep about the Linux QMI SDK, that sounds promising.

I don’t think my requirements are anything special, I’d like to:

  • create a reliable persistent connection to a cell network for M2M TCP traffic
  • have the driver deal with reconnection logic so I don’t have to constantly validate network connectivity and reconnect when the connection drops
  • poll connection statistics (RSSI, bytes transferred) on a fixed interval

And of course, being a lazy programmer I would like to have as much of this handled by existing libraries as possible :slight_smile:

Thanks for all your help!

Blake