Re: [PATCH 13/18] soc: qcom: ipa: IPA network device and microcontroller

From: Alex Elder
Date: Wed May 15 2019 - 08:47:58 EST


On 5/15/19 3:21 AM, Arnd Bergmann wrote:
> On Sun, May 12, 2019 at 3:25 AM Alex Elder <elder@xxxxxxxxxx> wrote:
>>
>> This patch includes the code that implements a Linux network device,
>> using one TX and one RX IPA endpoint. It is used to implement the
>> network device representing the modem and its connection to wireless
>> networks. There are only a few things that are really modem-specific
>> though, and they aren't clearly called out here. Such distinctions
>> will be made clearer if we wish to support a network device for
>> anything other than the modem.
>
> This does not seem to do much at all, as far as I can see it's a fairly
> small abstraction between the linux netdev layer and the actual
> implementation. Could you just merge this file into whichever file
> it interacts with most closely, and open-code the wrappers there?

This used to be a bigger file, containing IOCTLs for configuring
the endpoints used.

It is logically separate from endpoints, because not all endpoints
are attached to network devices. The IPA command TX endpoint isn't
associated with a network device, and the default route RX endpoint
isn't either.

In addition, the modem can crash and be restarted independent of
all other endpoints. I haven't added proper handling for that yet,
though (just the ipa_ssr_*() stubs), and I thought maybe in
finishing that I might find keeping it separated in this way
would better fit how that would work out. The presence of the
"rmnet_ipa0" network device essentially represents the presence
of a functioning modem.

That being said, in the process of trying to streamline the data
path, I *did* add a netdev pointer to the ipa_endpoint structure,
so I've already blurred the line between these layers.

So I will try to do as you suggest, and this code will most likely
end up in "ipa_endpoint.c".

-Alex


> Arnd
>