Oliver Neukum <oli...@neukum.org> writes:

> On Tue, 2013-08-20 at 12:35 +0200, Bjørn Mork wrote:
>
>> bjorn@nemi:~$ mbimcli -d /dev/cdc-wdm0 --query-packet-service-state
>
> How does that work internally?

The userspace application/library creates a MBIM message and sends it to
the firmware by writing the complete preformatted message to the
character device. The firmware replies with its current state and the
application reads this message, and decodes it and acts accordingly.

The driver is not directly involved. It doesn't even know the
protocol. It only provides the transport between the userspace
application and the firmware, and all coding and decoding takes place
there.

The firmware is responsible for keeping track of the current modem
state, including connection status, signal level, speed etc.  Userspace
will query the state when necessary.  But it can also keep its own
cached version, supported by unsolicited notifications from the
firmware.  The driver will forward these notifications to the character
device, but it will not log or otherwise act on them.

I assume this separate channel for device management was added to MBIM
because it wouldn't scale to keep adding new CDC notifications and
requests. The MBIM management protocol is easily extended by adding new
commands and services, including vendor specific services, without
requiring any change to the standard or driver.

>> So I propose that we add something like this to cdc-wdm instead of
>> extending the 
>
> If you think the speed will also be handled at a non-generic
> level, go ahead.

Great.  I'll cook something up then.

>  We can revisit that decision if new protocols show up.

Yes.


Bjørn
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to