On Wed, 2016-04-06 at 16:55 +0100, Edward Cree wrote: > On 06/04/16 16:39, Eric Dumazet wrote: > > Look at the mess of some helpers in net/core/skbuff.c, and imagine the > > super mess it would be if using a concept of 'super packet with various > > headers on each segment'. > Maybe I'm still not explaining this very well, but there is _no_ concept of > 'super packet [anything]' in this idea. There is just 'list of skbs that > were all received in the same NAPI poll, and have not yet been determined to > be different'. > > Any layer that doesn't want to deal with this stuff will always have the > option of "while (skb = skb_dequeue(list)) my_normal_receive_function(skb);" > and in fact I'd make that happen by default for anything that hadn't > registered a function to take a list. > > netfilter is already complex, it would become a nightmare. > A netfilter hook could, for instance, run on each packet in the list, then > partition the list into sub-lists of packets that all had the same verdict > (letting go of any that were DROP or STOLEN). That doesn't seem like it > should be nightmarish.
Okay, I will let you try this alone ;)