From: Andi Kleen <[EMAIL PROTECTED]>
Date: Tue, 12 Jul 2005 06:48:02 +0200

> >>
> #  skb->real_dev, it is used in one place, in bonding device. Suggestion
> is to remove it and replace with an ugly per-cpu static variable (but
> still less ugly than keeping a useless pointer in struct sk_buff) We
> can add per-cpu variable real_dev, save real_dev there and bonding can
> fetch it from there. The trick relies on the fact that real_dev can be
> forgotten after we leave softirq handler.
> <<
> 
> You can just put it into ->cb while bond is active.

Yes, but we must have a consistent layout with other things
potentially stuff into there in the pre-protocol input path.
See my other email.

> >>
> skb->h is really useless and can be eliminated immediately. The only place 
> where it is really used is checksumming offload on output. skb->h is used 
> there to mark the beginning of area to checksum, the idea was to support 
> offload for protocols other than TCP and UDP. Given that this generality is 
> not used, it can be replaced with direct parsing of IP header.
> <<
> 
> I would rather add an u16 header_offset field instead of adding
> header parsing code in all drivers. With some other fields
> being u16 there should be enough padding for that.

The idea is, rather, that skb->data is not pushed by the drivers,
it is left at the MAC header when the SKB is given to netif_receive_skb().
I think this is a much cleaner thing than what happens now.

Then we just pass skb->data to the ptype handlers.

So it's not really "all drivers", it's things like eth_header_type()
and friends that get changed.
-
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

Reply via email to