2013-05-24 17:09:43

by Sarah Sharp

[permalink] [raw]
Subject: Mobile Broadband Interface Model (MBIM) support?

Do we have support for the new extensions for USB communication devices
that use the Mobile Broadband Interface Model (MBIM) spec?

http://www.usb.org/developers/devclass_docs/MBIM10Errata1.zip

The spec was released pretty recently, which is why I'm asking on the
mailing lists, rather than digging around the kernel tree for a driver.

Sarah Sharp


2013-05-24 19:31:34

by Bjørn Mork

[permalink] [raw]
Subject: Re: Mobile Broadband Interface Model (MBIM) support?

Bjørn Mork <[email protected]> writes:

>> http://www.usb.org/developers/devclass_docs/MBIM10Errata1.zip
>
> Thanks for that pointer. I haven't seen the errata before. Will study
> it, but fortunately we are protected against anything involving
> management protocol updates.

Yuck. When did the USB-IF start publishing the erratas merged with the
original with absolutely no indication about what they changed? This
sucks.

And the changes I notice also suck. WTF do they need another functional
descriptor for? For these two numbers? :

bMaxOutstandingCommand - Max number of outstanding Command Messages the
device can handle simultaneously. Shall be greater than 0.
wMTU - Operator preferred MTU for home network. wMTU applies to IP Data
Streams.

This is just plain stupid. Sorry. I don't know how else to describe
it. They already have an extensible management protocol. These numbers
could easily have been published through that. And "Operator preferred
MTU for home network" cannot possibly be a device specific attribute.
That's obviously a network attribute. How the heck can you put that
into a functional descriptor? It may change with the SIM card.

And then there are the things they didn't correct. I've been looking
for the "MBIMRegistry" they refer to ever since the initial version was
published. AFAICS there is none. I tried mailing [email protected] about
it in February, but haven't received any replies. As expected.

There are already several vendor specific UUIDs in use. The registry is
needed if we are expected to support any of these. Microsoft is the only
one documenting theirs AFAIK:
http://msdn.microsoft.com/en-us/library/windows/hardware/jj248720.aspx
http://msdn.microsoft.com/en-us/library/windows/hardware/jj248721.aspx
http://msdn.microsoft.com/en-us/library/windows/hardware/jj149393.aspx

But I've also seen vendor specific services from Qualcomm, AT&T,
Ericsson, Huawei and MediaTek. All completely undocumented wrt open
source implementations, although I have successfully guessed how to use
the Qualcomm service (it embeds Qualcomms proprietary, but partly openly
documented, QMI protocol in MBIM).


Bjørn

2013-05-24 19:08:52

by Bjørn Mork

[permalink] [raw]
Subject: Re: Mobile Broadband Interface Model (MBIM) support?

[resending due to an unreliable smtp smarthost - apologies if you
receive any duplicates]

Sarah Sharp <[email protected]> writes:

> Do we have support for the new extensions for USB communication devices
> that use the Mobile Broadband Interface Model (MBIM) spec?

We do. See drivers/net/usb/cdc_mbim.c. It's a usbnet minidriver based on
reusing parts of cdc_ncm. It should be fairly complete, but the IP
session multiplexing and Device Service Streams features are not tested
on actual devices. I just haven't found any device with those features
yet. Any hints are appreciated...

The management protocol implementation is completely delegated to
userspace. The driver isn't involved at all. One implementation is
libmbim, which just had its 1.0.0 release:
http://www.freedesktop.org/software/libmbim/

The next ModemManager release will support MBIM devices using this
library.

> http://www.usb.org/developers/devclass_docs/MBIM10Errata1.zip

Thanks for that pointer. I haven't seen the errata before. Will study
it, but fortunately we are protected against anything involving
management protocol updates.

> The spec was released pretty recently, which is why I'm asking on the
> mailing lists, rather than digging around the kernel tree for a driver.

Well, a "git grep MBIM drivers/" would be enough. But I'm happy to
answer your questions :)


Bjørn

2013-05-24 18:10:51

by Sarah Sharp

[permalink] [raw]
Subject: Re: Mobile Broadband Interface Model (MBIM) support?

Ccing Dan Williams, since Johannes Berg mentioned on IRC that Dan might
know the status of MBIM support.

On Fri, May 24, 2013 at 10:09:15AM -0700, Sarah Sharp wrote:
> Do we have support for the new extensions for USB communication devices
> that use the Mobile Broadband Interface Model (MBIM) spec?
>
> http://www.usb.org/developers/devclass_docs/MBIM10Errata1.zip
>
> The spec was released pretty recently, which is why I'm asking on the
> mailing lists, rather than digging around the kernel tree for a driver.
>
> Sarah Sharp
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2013-05-25 00:11:17

by Dan Williams

[permalink] [raw]
Subject: Re: Mobile Broadband Interface Model (MBIM) support?

On Fri, 2013-05-24 at 11:10 -0700, Sarah Sharp wrote:
> Ccing Dan Williams, since Johannes Berg mentioned on IRC that Dan might
> know the status of MBIM support.

As Bjorn mentioned, libmbim just got a 1.0 release, and ModemManager
0.7.x (git master, basically) has support for MBIM devices via libmbim.
0.7.x will turn into an official 0.8 release Real Soon Now; it's already
built for Fedora 20, though we don't have libmbim capability in F20
quite yet.

Dan

> On Fri, May 24, 2013 at 10:09:15AM -0700, Sarah Sharp wrote:
> > Do we have support for the new extensions for USB communication devices
> > that use the Mobile Broadband Interface Model (MBIM) spec?
> >
> > http://www.usb.org/developers/devclass_docs/MBIM10Errata1.zip
> >
> > The spec was released pretty recently, which is why I'm asking on the
> > mailing lists, rather than digging around the kernel tree for a driver.
> >
> > Sarah Sharp
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> > the body of a message to [email protected]
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html



2013-05-24 19:11:44

by Bjørn Mork

[permalink] [raw]
Subject: Re: Mobile Broadband Interface Model (MBIM) support?

Sarah Sharp <[email protected]> writes:

> Do we have support for the new extensions for USB communication devices
> that use the Mobile Broadband Interface Model (MBIM) spec?

We do. See drivers/net/usb/cdc_mbim.c. It's a usbnet minidriver based on
reusing parts of cdc_ncm. It should be fairly complete, but the IP
session multiplexing and Device Service Streams features are not tested
on actual devices. I just haven't found any device with those features
yet. Any hints are appreciated...

The management protocol implementation is completely delegated to
userspace. The driver isn't involved at all. One implementation is
libmbim, which just had its 1.0.0 release:
http://www.freedesktop.org/software/libmbim/

The next ModemManager release will support MBIM devices using this
library.

> http://www.usb.org/developers/devclass_docs/MBIM10Errata1.zip

Thanks for that pointer. I haven't seen the errata before. Will study
it, but fortunately we are protected against anything involving
management protocol updates.

> The spec was released pretty recently, which is why I'm asking on the
> mailing lists, rather than digging around the kernel tree for a driver.

Well, a "git grep MBIM drivers/" would be enough. But I'm happy to
answer your questions :)


Bjørn