Re: Qualcomm "raw IP" mode (was Re: Huawei E398 cdc/serialmodem-ppp 3G/4G)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Bjørn Mork <bjorn@xxxxxxx> writes:

> grepping around I found that there are at least one example of a driver
> providing a headerless interface.  From drivers/net/usb/hso.c :
>
>         net->flags = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST;
>         net->type = ARPHRD_NONE;
>
>
> Do anyone of you know how this is used?  Which tools support it?

Never mind.  I should google before asking.  I found these excellent
instructions: http://www.switzernet.com/public/081001-alix-umts-debian/
which demonstrate it nicely:

 1) use vendor specific AT commands to connect and retrieve IP config
 2) ifconfig hso0 $PIP netmask 255.255.255.255 && route add default dev hso0

and I see that ModemManager also supports it.

So, although I still do not see the point of this exercise, I could add
a mode like this to the driver.  But that would be an additional mode
and not the default, as the device also typically defaults to ethernet
mode.  And synchronizing device mode and driver mode would be up to the
managing userspace app (no way around that as long as the driver has no
knowledge of QMI).

Then there is the question of switching modes.  How should this be done?
I'm tempted to use ethtool to set a driver specific flag.  That would
require a pretty recent ethtool (v3.2), but would have the advantage
that it is sort of a standard solution to a driver specific problem.
The other options would be private ioctls or module parameters, which
both are obviously inferior.  Am I missing anything?

Bjørn



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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux