Re: MBIM

Bjørn Mork
2012-09-07T08:53:12Z

Oliver Neukum <oneukum@suse.de> writes:
> On Thursday 06 September 2012 10:17:46 Bjørn Mork wrote:
>> Not really related, but I am still worrying how MBIM is going to fit
>> into the usbnet model where you have a strict relation between one
>> netdev and one USB interface. Do you see any way usbnet could be
>> extended to manage a list of netdevs?
>>
>> All the netdev related functions doing
>>
>> struct usbnet *dev = netdev_priv(net);
>>
>> would still work. But all the USB related functions using dev->net to
>> get the netdev would fail. Maybe this will be too difficult to
>> implement within the usbnet framework at all?
>
> It depends on how much support we get from upper layers.
> You can give two IPs to an ethernet card as well.

Yes, of course. But I don't think that fits the MBIM model, where
multiple independent connections (Internet, VoIP, MMS, VPN1, VPN2, etc)
to different APNs will be multiplexed over the same USB endpoints. And
to make this not fly at all: Some of these may be IPv4, some IPv6 and
some dual stack. You cannot support that on a single netdev. Mixing
them all together on the host will not do. When the driver sees an IPv6
multicast packet (RS, ND, whatever) on the netdev, which MBIM session
should it forward that packet too?

If I understand MBIM correctly, we will see device configurations with
_one_ CDC data interface carrying all data traffic for multiple device
functions. A MBIM driver must de-multiplex this, and each IP function
should be routed to its own netdev IMHO.

> It would be best if you could come up with some preliminary code
> at least.

Yup. Finally got a device. Will start playing.

Bjørn