mywiki:linux:skb
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| mywiki:linux:skb [2021/10/07 11:02] – [skb_reserve()] shaoguoh | mywiki:linux:skb [2022/04/02 17:29] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 42: | Line 42: | ||
| ====== skb_headroom(), | ====== skb_headroom(), | ||
| Prototype / Description: | Prototype / Description: | ||
| - | | int skb_headroom(const struct sk_buff *skb); | bytes at buffer head | | + | | int skb_headroom(const struct sk_buff *skb); | bytes at buffer head | |
| | int skb_tailroom(const struct sk_buff *skb); | bytes at buffer | | int skb_tailroom(const struct sk_buff *skb); | bytes at buffer | ||
| {{: | {{: | ||
| + | |||
| + | |||
| + | |||
| ====== skb_reserve() ====== | ====== skb_reserve() ====== | ||
| Prototype / Description: | Prototype / Description: | ||
| | void skb_reserve(struct sk_buff *skb, unsigned int len); | adjust headroom \\ skb-> | | void skb_reserve(struct sk_buff *skb, unsigned int len); | adjust headroom \\ skb-> | ||
| {{: | {{: | ||
| + | | linear/ | ||
| + | | skb_push | NA | | ||
| + | | skb_pull | **p**skb_pull: | ||
| + | | skb_put | pskb_put | | ||
| + | | skb_trim | pskb_trim | | ||
| + | |||
| ====== skb_push() ====== | ====== skb_push() ====== | ||
| Prototype / Description: | Prototype / Description: | ||
| Line 111: | Line 120: | ||
| } </ | } </ | ||
| + | |||
| + | |||
| + | ====== other skb APIs ====== | ||
| + | * skb_orphan(): | ||
| + | * skb-> | ||
| + | * skb-> | ||
| + | * skb-> | ||
| + | * skb_cow(): 确保SKB存在指定的headroom空间。如果不足,会重新分配。 | ||
| + | * skb_cow - copy header of skb when it is required, iek, if the skb passed lacks sufficient headroom or its data part is shared, data is reallocated. If reallocation fails, an error is returned and original skb is not changed. | ||
| + | * skb_condense(): | ||
mywiki/linux/skb.1633575731.txt.gz · Last modified: (external edit)
