Issues with Netgear 340U latest firmware

Bjørn Mork bjorn at
Fri Aug 15 02:14:40 PDT 2014

Gopakumar Choorakkot Edakkunni <gopakumar.c.e at> writes:

> Thanks Dan. Making this the "first thing" is doable but a lil tricky since
> everything is so asynchronous .. as soon as wwan0 interface is created,
> then brings signals dhcp to start sending packets etc.. Let me think of how
> I can get this done, or to be absolutely reliable, I am thinking add this
> into the qmi_wwan.c driver itself as some module option ? Let the driver do
> it as the first thing so that we are 100% sure that nothing else (dhcp
> etc..) went through before doing this. I will spend some time over the
> weekend to see what this qmicli 802-3 option does and if I can patch it
> into the qmi_wwan.c

No, sorry, please don't.

I started out on the qmi_wwan driver with the idea that it should Just
Work out-of-the-box.  Luckily Dan and others set me straight and made me
realize that the QMI protocol is far too complex for this to be
achievable.  You end up putting lots of policy into the driver, which
really isn't something you want to do.

So we ended up with a completely clean design where *all* QMI commands
are delegated to userspace and where the driver doesn't know the first
thing about QMI.  I do not want this design broken for whatever reason.
Framing configuration is part of the management application domain, like
any other QMI command.

Note that if you wanted to do this properly, it would require the driver
to do a number of QMI request and response pairs:
 - subsystem version request to see of the WDA commands are supported
 - CTL cid request for the WDA subsystem
 - WDA framing format get(?)
 - WDA framing format set
 - CTL cid release
 - CTL data format fallback

And that's only for the known firmware revisions.  We do not know when
this breaks because some new method is added, or some TLV changed, or
something else.

Again: We do not want this in the driver.  It is up to the management
application to do the QMI stuff necessary to set up the data session.
The driver only provides the QMI pass-through and 802.3 netdev.


More information about the libqmi-devel mailing list