Linux???????sk_buff?й?????????
???????????? ???????[ 2012/12/21 10:27:59 ] ????????
????3??skb_shared_info????
struct skb_shared_info {
unsigned short nr_frags;
unsigned short gso_size;//???
/* Warning: this field is not always filled in (UFO)! */
unsigned short gso_segs;//???
unsigned short gso_type;
__be32 ip6_frag_id;
__u8 tx_flags;
struct sk_buff *frag_list;//?????sk_buff?б?
struct skb_shared_hwtstamps hwtstamps;//???????
/*
* Warning : all fields before dataref are cleared in __alloc_skb()
*/
atomic_t dataref;//??ü???
/* Intermediate layers must ensure that destructor_arg
* remains valid until skb destructor */
void * destructor_arg;
/* must be last field?? see pskb_expand_head() */
skb_frag_t frags[MAX_SKB_FRAGS];
};
???????????????????????????????????????????skb????
#define skb_shinfo(SKB) ((struct skb_shared_info *)(skb_end_pointer(SKB)))
#ifdef NET_SKBUFF_DATA_USES_OFFSET
static inline unsigned char *skb_end_pointer(const struct sk_buff *skb)
{
return skb->head + skb->end;
}
#else
static inline unsigned char *skb_end_pointer(const struct sk_buff *skb)
{
return skb->end;
}
#endif
???????????????????????????????????skb??end???????????????洢??????????
????????????й?sk_buff???????????????
????????????http://blog.csdn.net/yming0221/article/details/7971463
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11