On Tue, Jun 18, 2019 at 11:15 PM Subash Abhinov Kasiviswanathan <subashab@xxxxxxxxxxxxxx> wrote: > > On 2019-06-18 14:55, Arnd Bergmann wrote: > > On Tue, Jun 18, 2019 at 10:36 PM Johannes Berg > > <johannes@xxxxxxxxxxxxxxxx> wrote: > >> > >> On Tue, 2019-06-18 at 21:59 +0200, Arnd Bergmann wrote: > >> > > >> > From my understanding, the ioctl interface would create the lower > >> > netdev after talking to the firmware, and then user space would use > >> > the rmnet interface to create a matching upper-level device for that. > >> > This is an artifact of the strong separation of ipa and rmnet in the > >> > code. > >> > >> Huh. But if rmnet has muxing, and IPA supports that, why would you > >> ever > >> need multiple lower netdevs? > > > > From my reading of the code, there is always exactly a 1:1 relationship > > between an rmnet netdev an an ipa netdev. rmnet does the encapsulation/ > > decapsulation of the qmap data and forwards it to the ipa netdev, > > which then just passes data through between a hardware queue and > > its netdevice. > > > > There is a n:1 relationship between rmnet and IPA. > rmnet does the de-muxing to multiple netdevs based on the mux id > in the MAP header for RX packets and vice versa. Oh, so you mean that even though IPA supports multiple channels and multiple netdev instances for a physical device, all the rmnet devices end up being thrown into a single channel in IPA? What are the other channels for in IPA? I understand that there is one channel for commands that is separate, while the others are for network devices, but that seems to make no sense if we only use a single channel for rmnet data. > >> Yeah, but if you actually have a hardware queue per upper netdev then > >> you don't really need this - you just stop the netdev queue when the > >> hardware queue is full, and you have flow control automatically. > >> > >> So I really don't see any reason to have these messages going back and > >> forth unless you plan to have multiple sessions muxed on a single > >> hardware queue. > > > > Hardware may flow control specific PDNs (rmnet interfaces) based on QoS > - > not necessarily only in case of hardware queue full. Right, I guess that makes sense if everything ends up in a single queue in IPA. Arnd