On Fri, Nov 6, 2015 at 5:58 AM, Herbert Xu <[email protected]> wrote: > I don't see anything fundamentally wrong with your idea. After > all what you're describing is the basis of GSO, i.e., letting > data stay in the form of super-packets for as long as we can. > > Of course there's going to be a lot of niggly bits that you'll > have to sort out to get it to work.
Okay, great. In that case, it's the niggly bits I need to wrestle with. Any nice convenience functions for this? Or pointers to examples? Would it be best to (1) allocate a massive linear skb, and then bit by bit call skb_put (as in my example in the last email)? Or would it be best to (2) make individual packets, and then string them together in a FRAGLIST fashion (or is there no driver support for this)? Or would it be best (3) to some how use the array of 16 frags, and allocate with the alloc_skb_wth_frags function, and then super cumbersomely try to iterate over broken-up pages? I think (3) is going to be super hard if not impossible for my setup. If there were some way of combining multiple skbs into a super packet, or if the fraglist was okay to use in this regard, that'd be a lifesaver. So far my approach with (1) hasn't been working. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
