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 :)

Reply via email to