problem with Sierra MC7750 (and a workaround)

Aleksander Morgado aleksander at lanedo.com
Mon Dec 9 04:35:47 PST 2013


On 06/12/13 16:29, Tim Harvey wrote:
>>> I was trying to get an MC7750-based USB modem working with libqmi. The
>>> >> kernel modules sierra and qmi_wwan are loaded when the device is
>>> >> connected; I can use qmi-network to start the data connection, and
>>> >> everything seems to work except there's no data flow. No packets get
>>> >> sent or received.
>>> >>
>>> >> Turns out the problem is that the modem needs to be explicitly told to
>>> >> use QMI_CTL_DATA_LINK_PROTOCOL_802_3 via CtlSetDataFormat. And since
>>> >> qmicli basically uses the default flags to qmi_device_open, libqmi
>>> >> doesn't send a CtlSetDataFormat.
>>> >>
>>> >> As a quick-and-dirty workaround, I hacked qmicli.c to add
>>> >> QMI_DEVICE_OPEN_FLAGS_NET_802_3 and
>>> >> QMI_DEVICE_OPEN_FLAGS_NET_NO_QOS_HEADER to open_flags. With that
>>> >> change, the MC7750 works.
>>> >>
>>> >> I was thinking I could extend qmicli.c to add a new option to be able
>>> >> to set those flags. Something like:
>>> >>
>>> >>    --device-open-net=<mode> where mode is:
>>> >>             "en"  : 802_3 + NO_QOS_HEADER
>>> >>             "eq" : 802_3 + QOS_HEADER
>>> >>             "rn" : RAW_IP + NO_QOS_HEADER
>>> >>             "rq" : RAW_IP + QOS_HEADER
>>> >>
>>> >> If the option is not given, the behavior will be like it is now (no
>>> >> flags, which means no CtlSetDataFormat is sent).
>>> >>
>>> >> Thoughts?
>> >
>> > Adding the option, indluding the ability to not send CtlSetDataFormat at
>> > all, seems like a very good idea to me.
>> >
>> > But I wonder if maybe the default should be set to "802_3 +
>> > NO_QOS_HEADER"? That's the only mode currently supported by the driver,
>> > and I don't see any immediate change coming up.  So this is most likely
>> > to just Make Stuff Work.  Unless there is some buggy device which barfs
>> > on this command, of course.  But I haven't heard of that yet, and as you
>> > note: MM will send this command on open.
>> >
>> >
>> > Bjørn
> Did anything ever come of this idea?  It appears to me that this patch
> is necessary for a 4G/LTE connection but not a CDMA-1X/EVDO
> connection.

I don't think anyone ended up implementing that change, no; or maybe I
missed it. Anyone up to it? This is what I suggested:

  --device-open-net="net-802-3,net-no-qos-header"
  --device-open-net="net-802-3,net-qos-header"
  --device-open-net="net-raw-ip,net-no-qos-header"
  --device-open-net="net-raw-ip,net-qos-header"

So, --device-open-net would accept a list of up to 2 strings; where each
string given is one of the "nicknames" of the QmiDeviceOpenFlags.


-- 
Aleksander


More information about the libqmi-devel mailing list