On 12/12/2018 12:52 PM, Florian Westphal wrote:
> Eric Dumazet <eric.duma...@gmail.com> wrote:
>>> If you prefer that, ok, but I don't see why we can't unify them behind
>>> a single layer?
>>
>> Well, for a start we do not use nf_brifge or secpath.
> 
> Then the extension framework isn't built and the result
> is exactly the same as before these patches: helpers
> turn into empty inline stubs.
> 
> If its built, sk_buff size is reduced by up to one pointer,
> and the added one isn't initialised at allocation time.
> 
> sk_buff layout with the extension patches is almost same
> as with XFRM=n BRIDGE_NF=n (because nf_bridge and sp pointers
> get removed), there is only one additional pointer at the end,
> not inited at alloc time.  The other new member fills a hole.
> 
>> XDP is all about not unifying because unifying has a cost.
>>
>> Do we really want to slow down the stack just because MPTCP is coming ?
> 
> I don't want to slow down the stack.  All places that gain a helper call
> do so instead of the nf_bridge/secpath one.  They only expand into code
> if at least one of secpath or nf_bridge are built in.
> Both struct secpath and nf_bridge have their refcounts removed, so no
> additional reference counts are added.
> 
> If you still think this is proposal is a bad idea, ok, let me know
> and I will stop working on this.

Certainly not a bad idea.

> 
> MPTCP can then just add skb->cb2[], but neither nf_bridge nor secpath can
> use it.
> 
> If not, I will send another iteration that just allocates the entire
> extension space if first extension is added, it simplifies allocation
> handling a little.
> 

I am still unsure of the added extra costs, but for a start, TCP xmit clones
the skbs. 

Does it mean an additional pair of atomic operations if the skb comes from 
MPTCP enabled flow ?

The clone is used in the lower layers (IP , qdisc, device xmit), so I do not 
see why a clone
should share the extdata from the master.

Reply via email to