SKB_UNLINK

Section: Networking Functions (9)
Updated: November 24, 1997
Page Index
 

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 function 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_ counterparts. 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 wrapper functionality in addition to performing their specific tasks.  

AVAILABILITY

Linux 1.0+  

SEE ALSO

intro(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>


 

Index

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUE
NOTES
AVAILABILITY
SEE ALSO
AUTHOR