Moving libqmi-glib to fd.o's libqmi repo

Aleksander Morgado aleksander at lanedo.com
Mon Jul 2 01:18:37 PDT 2012


Hey Marcel,

> 
>>> I looked deeply into all areas of QMI services. Trying to create a fully
>>> bloated library with API support for all services is a waste of time. At
>>> least for oFono it is useless. The problem is that QMI itself is deeply
>>> service context sensitive and there is no point in creating another
>>> abstraction on top of it. I decided to just put the service specific
>>> handling directly into the oFono drivers. Have a look at the code for
>>> yourself, it worked out super nicely for us.
>>
>> Sure it did, but we really want to have a library here, instead of 
>> having everyone implement the message-specific logic over and over.
> 
> I am still failing to see what this all buys you. You still need to
> understand what message input and output is available/required. You are
> just getting fancy accessor methods. And these come at the price of a
> larger binary size. If you look at QMI as something besides DMS and WDS,
> it is pretty large API.
> 

Not only fancy accessor methods. With this library, users do not need
know message/tlv id enums (neither know nor implement them); users do
not need to analyze and write packed structs to match input/output TLVs
themselves; users do not need to care of parsing arrays or
variable-length structs; users do not need to define enums themselves...
 Users instead will get all the raw protocol stuff already 'digested'
into a set of new types and methods (hopefully well documented at some
point), with built-in GError-based error reporting and built-in GIO-like
async method support. Of course, if you prefer to analyze and write
support for the protocol yourself, this library buys you nothing.

> And a small side note; so for QMI it has to be a library that is suppose
> to do everything. For AT commands it is then fine to redo things over
> and over again and use resource intensive regular expressions.
> 

You said that, not me :-)

> How many users of this library are you actually expecting? Since the QMI
> device exposed by the kernel can only be opened by one user at a time.
> 

Well, not everyone in the world is using the same connection manager.
This library is just trying to provide a common way to handle the
protocol for every connection manager interested, either directly in C
(e.g. ModemManager), with python via introspection (e.g. Wader), or even
with the 'qmicli' utility in shell scripts (e.g. the qmi4g protocol
handler in OpenWRT).

Cheers!

-- 
Aleksander




More information about the libqmi-devel mailing list