一。skbuff的结构图如下
二.Basic functions for sk_buff
-
skb_headroom(), skb_tailroom()
-
-
Prototype / Description
-
- bytes at buffer head
- bytes at buffer
int skb_headroom(const struct sk_buff *skb);
int skb_tailroom(const struct sk_buff *skb);
Image
skb_reserve()
-
-
-
Prototype
-
void skb_reserve(struct sk_buff *skb, unsigned int len);
Description
- adjust headroom Image
skb_push()
-
-
-
Prototype
-
unsigned char *skb_push(struct sk_buff *skb, unsigned int len);
Description
- add data to the start of a buffer Image
skb_pull()
-
-
-
Prototype
-
unsigned char *skb_pull(struct sk_buff *skb, unsigned int len);
Description
- remove data from the start of a buffer Image
skb_put()
-
-
-
Prototype
-
unsigned char *skb_put(struct sk_buff *skb, unsigned int len);
Description
- add data to a buffer Image
skb_trim()
-
-
void skb_trim(struct sk_buff *skb, unsigned int len);
Description
- remove end from a buffer Image
- get queue length
- get pointer to the head element
- get pointer to the tail element
- Image
- skb_queue_head() Prototype
- skb_queue_tail() Prototype
- queue a buffer at the list ta
-
Prototype
__u32 skb_queue_len(const struct sk_buff_head *list_);
struct sk_buff *skb_peek(struct sk_buff_head *list);
struct sk_buff *skb_peek_tail(struct sk_buff_head *list);
void skb_queue_head(struct sk_buff_head *list, struct sk_buff *newsk);
Description
queue a buffer at the list head
Image
void skb_queue_tail(struct sk_buff_head *list, struct sk_buff *newsk);
Description
Image
-
-
-
Prototype
-
struct sk_buff *skb_dequeue(struct sk_buff_head *list);
Description
- remove from the head of the queue Image
-
-
skb_dequeue()
-
-
-
-
Prototype
-
struct sk_buff *skb_dequeue_tail(struct sk_buff_head *list);
Description
- remove from the tail of the queue Image
-
-
skb_dequeue_tail()
-
-
-
-
Prototype
-
void skb_insert(struct sk_buff *old, struct sk_buff *newsk);
Description
- insert a buffer Image
-
-
skb_insert()
-
-
-
Prototype
-
void skb_append(struct sk_buff *old, struct sk_buff *newsk);
Description
- append a buffer Image
-
- skb_unlink() Prototype
-
skb_append()
void skb_unlink(struct sk_buff *skb);
Description
remove a buffer from a list
Image