Call trace
forward a packet.
1 | > ip_rcv_finish |
1 | > > > > ip_mkroute_input |
1 | 1410 static struct rtable *rt_dst_alloc(struct net_device *dev, |
1 | 2711 int __init ip_rt_init(void) |
1 | 162 void *dst_alloc(struct dst_ops *ops, struct net_device *dev, |
1 | 1517 /* called in rcu_read_lock() section */ |
dst functions
__refcnt
is the important filed of struct dst_entry
.
dst_hold
1 | 235 static inline void dst_hold(struct dst_entry *dst) |
dst_clone
1 | 258 static inline struct dst_entry *dst_clone(struct dst_entry *dst) |
skb_dst_copy
1 | 287 static inline void skb_dst_copy(struct sk_buff *nskb, const struct sk_buff *oskb) |
dst free
If nobody is reference the dst, directly free it by dst_destroy
,
else put it into the garbage collection list dst_garbage.list
.
1 | 370 static inline void dst_free(struct dst_entry *dst) |