net: define accessors to get/set skb->dst and skb->rtable
Subsystems (2)
cover net: define accessors to get/set skb->dst and skb->rtable
David
Here are patches I originally cooked to review all places that could need skb->dst
I believe they could be applied in net-next-2.6 because we could then implement what we discussed in last december, about avoiding refcounting on dst_entries in input path (thread about IP_PKTINFO stuff, and a patch we had to revert)
You suggested to use the low order bit of skb->dst to tell if we got a refcount or not.
These four patches implement grounding for this idea (no functional changes yet)
Next step is adding the low order bit handling (or another bit if it happens to be too expensive to check this bit each time we want skb->dst, we still have to benchmark this)
First patchs adds _skb_dst opaque field in existing union
Second patch removes skb->rtable field and implements skb_rtable() method :
struct rtable *skb_rtable(const struct sk_buff *skb)
Third patch removes skb->dst field and implements several methods :
struct dst_entry *skb_dst(const struct sk_buff *skb) void skb_dst_set(struct sk_buff *skb, struct dst_entry *dst) void skb_dst_drop(struct sk_buff *skb) (skb_dst_drop() is not yet necessary but prepares next patches)
Fourth patch is a cleanup, avoiding the mono-field anonymous union.
Thank you
David Miller
maintainerFrom: Eric Dumazet <[email protected]>
Date: Tue, 02 Jun 2009 17:12:13 +0200
Quoted 7 lines
Here are patches I originally cooked to review all places that could need
skb->dstI believe they could be applied in net-next-2.6 because we could then implement what we discussed in last december, about avoiding refcounting on
dst_entriesin input path (thread aboutIP_PKTINFOstuff, and a patch we had to revert)
Quoted 8 lines
You suggested to use the low order bit of
skb->dstto tell if we got a refcount or not.These four patches implement grounding for this idea (no functional changes yet)
Next step is adding the low order bit handling (or another bit if it happens to be too expensive to check this bit each time we want
skb->dst, we still have to benchmark this)
It all looks great, applied, thanks Eric!