net: define accessors to get/set skb->dst and skb->rtable
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest4 patches 1 replyIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/4 | net: add _skb_dst opaque fieldinclude/ | +1 | 0 replies | |
| 2/4 | net: skb->rtable accessordrivers/ include/ include/ +20 more | +89 | 0 replies | |
| 3/4 | net: skb->dst accessorsdrivers/ drivers/ drivers/ +80 more | +414 | 0 replies | |
| 4/4 | net: skb cleanupinclude/ | +1 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 0/4] 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