Changes in MBIM v1.0 "Errata" 1

Bjørn Mork bjorn at mork.no
Fri May 31 04:56:59 PDT 2013


Aleksander Morgado <aleksander at lanedo.com> writes:

> Hey!
>
>> I briefly looked through the documents side by side, and noted the
>> following differences (numbering refer to the updated version, dated May
>> 2013).  Also including my personal view on how this affects the driver
>> and libmbim:
>> 
>
> Superb! Thanks for doing this
>
>> 
>>   Section 6.5 MBIM EXTENDED FUNCTIONAL DESCRIPTOR
>>     new functional descriptor
>> 
>>     driver: useless new functionaliy
>>     libmbim: should use bMaxOutstandingCommandMessages 
>> 
>
> Any idea how libmbim is going to get this property? Will you update the
> driver with a new ioctl()? In libmbim side we just need to keep count of
> how many ongoing requests the MbimDevice has sent, and avoid sending
> more than the max allowed. Clients using the MbimDevice won't need to
> take care of anything.

I haven't thought about how this should be implemented yet. And I don't
think I'm going to put any effort into it until we see a device using
the descriptor. I considered adding a patch to lsusb, but at the moment
even that seems like a waste of time.  We can easily do manual parsing
of this descriptor of/when it appears, and the "UNRECOGNIZED CDC" dump
will actually help us spot it.

Better leave this as a very low priority task.  Maybe "should use" was
too strong here...

>>   Section 7 DATA TRANSPORT
>>     giving explicit minimum datagram lengths for IPv4 (20) IPv6 (40)
>>     and DSS (0)
>> 
>>     driver: implements this for IPv4 and DSS, but reuse the IPv4 limit
>>             for IPv6.  Should be fixed.
>>     libmbim: no effect
>> 
>> 
>>   Section 7.1.5 MBIM ALLOWS MULTIPLE NDPS WITHIN ONE NTB
>>     wNextNdpIndex cannot be reserved if we are to support multiplexing
>>     sessions within a single NTB
>> 
>>     driver: as already implemented
>>     libmbim: no effect
>> 
>> 
>>   Section 9.1 MBIM MESSAGE HEADER
>>     TransactionId 0 is reserved for exclusive use by notifications and
>>     by MBIM_FUNCTION_ERROR_MSG if the TransactionId of the control
>>     message causing the error cannot be determined.
>> 
>>     driver: no effect
>>     libmbim: as already implemented?
>> 
>
> It is probably fine as we handle it right now, but I would need to
> check... specially because I internally treated 0 as invalid.
>
>> 
>>   Section 9.3.1.1 MBIM_OPEN_MSG FORMAT
>>     If the MaxControlTransfer is less than 64 bytes the device behavior
>>     is unspecified.
>> 
>>     For test purposes the function shall support a MaxControlTransfer of
>>     64 bytes.  In addition any other value shall be a multiple of the
>>     maximum control endpoint size
>> 
>>     driver: no effect
>>     libmbim: no effect (this affects only the device side)
>> 
>> 
>>   Section 9.5 FRAGMENTATION OF MESSAGES
>> 
>>     If the function receives a first fragment of a new command with a
>>     new TransactionId, the function shall discard the previous command
>>     and start handling the new command. If the function receives a
>>     fragment that is not the first fragment of a new command with a new
>>     TransactionId, both commands shall be discarded. One
>>     MBIM_FUNCTION_ERROR_MSG message per TransactionId shall be sent.
>> 
>>     driver: no effect
>>     libmbim: no effect (this affects only the device side)
>> 
>
> In libmbim side, we should make sure that multiple fragments of
> different requests are never mixed. I believe this is the current
> approach, but will check it anyway.

I read strict fragment ordering as a requirement in the initial version,
so I don't think that is new.  Only claryfied.

>>   Section 10.5.1 MBIM_CID_DEVICE_CAPS
>> 
>>     This is a bitmap that represents the control capabilities that the
>>     device supports. The following table shows the valid MBIM_CTRL_CAPS
>>     settings for GSM-based and CDMA-based devices. Devices that support
>>     CDMA must specify MBIMCtrlCapsCdmaMobileIp, or
>>     MBIMCtrlCapsCdmaSimpleIp, or both flags to inform the host about the
>>     type of IP that the device supports.
>> 
>>     driver: no effect
>>     libmbim: no effect (this affects only the device side) ?
>> 
>
> I'd love to have a CDMA-based MBIM device; still need to support those
> properly in MM.

We'd all love to have more assorted MBIM devices :) Guess we'll just
have to wait and see what shows up.  I'm a bit surprised there aren't
more of them yet.

>> That's as far as I got.  Haven't checked the rest yet.  And I could very
>> well have missed important changes when manually diffing the documents
>> like this...
>
> So far, not much to be changed, if anything, in libmbim.

Yup.  And there are no new CIDs (according to the index table in section
10.1), so I don't exepect any major changes in the part that is left.


Bjørn


More information about the libmbim-devel mailing list