On Mon, 1 Feb 2021 13:33:05 -0500 Willem de Bruijn wrote: > On Mon, Feb 1, 2021 at 11:41 AM Loic Poulain <loic.poul...@linaro.org> wrote: > > On Mon, 1 Feb 2021 at 15:24, Willem de Bruijn wrote: > > > What is this path to rmnet, if not the usual xmit path / > > > validate_xmit_skb? > > > > I mean, not sure what to do exactly here, instead of using > > skb_copy_expand to re-aggregate data from the different skbs, Jakub > > suggests chaining the skbs instead (via 'frag_list' and 'next' pointer > > I assume), and to push this chained skb to net core via netif_rx. In > > that case, I assume the de-fragmentation/linearization will happen in > > the net core, right? If the transported protocol is rmnet, the packet > > is supposed to reach the rmnet_rx_handler at some point, but rmnet > > only works with standard/linear skbs. > > If it has that limitation, the rx_handler should have a check and linearize.
Do you mean it's there or we should add it? > That is simpler than this skb_copy_expand, and as far as I can see no > more expensive. rx_handler is only used by uppers which are 100% SW. I think the right path is to fix the upper, rather than add a check to the fastpath, no? Perhaps all that's needed is a: pskb_may_pull(skb, sizeof(struct rmnet_map_header)) in rmnet? Hope I'm not missing some crucial point :)