SKB_UNLINK(9) Networking Functions SKB_UNLINK(9)NAME
__skb_unlink, skb_unlink - remove an sk_buff from its list
SYNOPSIS
#include <linux/skbuff.h>
void __skb_unlink(struct sk_buff *skb, struct sk_buff_head *list);
void skb_unlink(struct sk_buff *skb);
DESCRIPTION
The skb_unlink function is a wrapper for __skb_unlink. __skb_unlink
removes skb from its sk_buff_head. It decrements the list qlen
pointer, and cleanly detaches the sk_buff from its queue. This func‐
tion should always be used instead of performing this task manually, as
it provides a clean, standardized way of manipulating an sk_buff_head,
and provides interrupt disabling (see NOTES below.) Most users will
not call __skb_unlink directly, as it requires that two arguments be
supplied and does not provide any interrupt handling. skb_unlink
determines the list from which skb should be detached, and disables
interrupts.
RETURN VALUE
None.
NOTES
It is important to note the difference between not only __skb_unlink
and skb_unlink, but all the __skb_ functions and their skb_ counter‐
parts. Essentially, the __skb_ functions are non-atomic, and should
only be used with interrupts disabled. As a convenience, the skb_
functions are provided, which perform interrupt disable / enable wrap‐
per functionality in addition to performing their specific tasks.
AVAILABILITY
Linux 1.0+
SEE ALSOintro(9), skb_dequeue(9), skb_insert(9), skb_queue_head(9),
skb_queue_tail(9)
/usr/src/linux/net/core/skbuff.c /usr/src/linux/net/ipv4/af_inet.c
/usr/src/linux/net/ipv4/ip_output.c /usr/src/linux/net/ipv4/tcp.c
AUTHOR
Cyrus Durgin <cider@speakeasy.org>
Linux DDI November 24, 1997 SKB_UNLINK(9)