Socket Buffer Functions
Prev
Chapter 1. Linux Networking
Next
Socket Buffer Functions
struct skb_shared_hwtstamps
— hardware time stamps
struct skb_mstamp
— multi resolution time stamps
skb_mstamp_get
— get current timestamp
skb_mstamp_us_delta
— compute the difference in usec between two skb_mstamp
struct sk_buff
— socket buffer
skb_dst
— returns skb dst_entry
skb_dst_set
— sets skb dst
skb_dst_set_noref
— sets skb dst, hopefully, without taking reference
skb_dst_is_noref
— Test if skb dst isn't refcounted
skb_fclone_busy
— check if fclone is busy
skb_queue_empty
— check if a queue is empty
skb_queue_is_last
— check if skb is the last entry in the queue
skb_queue_is_first
— check if skb is the first entry in the queue
skb_queue_next
— return the next packet in the queue
skb_queue_prev
— return the prev packet in the queue
skb_get
— reference buffer
skb_cloned
— is the buffer a clone
skb_header_cloned
— is the header a clone
skb_header_release
— release reference to header
__skb_header_release
— release reference to header
skb_shared
— is the buffer shared
skb_share_check
— check if buffer is shared and if so clone it
skb_unshare
— make a copy of a shared buffer
skb_peek
— peek at the head of an
sk_buff_head
skb_peek_next
— peek skb following the given one from a queue
skb_peek_tail
— peek at the tail of an
sk_buff_head
skb_queue_len
— get queue length
__skb_queue_head_init
— initialize non-spinlock portions of sk_buff_head
skb_queue_splice
— join two skb lists, this is designed for stacks
skb_queue_splice_init
— join two skb lists and reinitialise the emptied list
skb_queue_splice_tail
— join two skb lists, each list being a queue
skb_queue_splice_tail_init
— join two skb lists and reinitialise the emptied list
__skb_queue_after
— queue a buffer at the list head
__skb_fill_page_desc
— initialise a paged fragment in an skb
skb_fill_page_desc
— initialise a paged fragment in an skb
skb_headroom
— bytes at buffer head
skb_tailroom
— bytes at buffer end
skb_availroom
— bytes at buffer end
skb_reserve
— adjust headroom
pskb_trim_unique
— remove end from a paged unique (not cloned) buffer
skb_orphan
— orphan a buffer
skb_orphan_frags
— orphan the frags contained in a buffer
netdev_alloc_skb
— allocate an skbuff for rx on a specific device
__dev_alloc_pages
— allocate page for network Rx
__dev_alloc_page
— allocate a page for network Rx
skb_propagate_pfmemalloc
— Propagate pfmemalloc if skb is allocated after RX page
skb_frag_page
— retrieve the page referred to by a paged fragment
__skb_frag_ref
— take an addition reference on a paged fragment.
skb_frag_ref
— take an addition reference on a paged fragment of an skb.
__skb_frag_unref
— release a reference on a paged fragment.
skb_frag_unref
— release a reference on a paged fragment of an skb.
skb_frag_address
— gets the address of the data contained in a paged fragment
skb_frag_address_safe
— gets the address of the data contained in a paged fragment
__skb_frag_set_page
— sets the page contained in a paged fragment
skb_frag_set_page
— sets the page contained in a paged fragment of an skb
skb_frag_dma_map
— maps a paged fragment via the DMA API
skb_clone_writable
— is the header of a clone writable
skb_cow
— copy header of skb when it is required
skb_cow_head
— skb_cow but only making the head writable
skb_padto
— pad an skbuff up to a minimal size
skb_put_padto
— increase size and pad an skbuff up to a minimal size
skb_linearize
— convert paged skb to linear one
skb_has_shared_frag
— can any frag be overwritten
skb_linearize_cow
— make sure skb is linear and writable
skb_postpull_rcsum
— update checksum for received skb after pull
pskb_trim_rcsum
— trim received skb and update checksum
skb_needs_linearize
— check if we need to linearize a given skb depending on the given device features.
skb_get_timestamp
— get timestamp from a skb
skb_tx_timestamp
— Driver hook for transmit timestamping
skb_checksum_complete
— Calculate checksum of an entire packet
skb_checksum_none_assert
— make sure skb ip_summed is CHECKSUM_NONE
skb_head_is_locked
— Determine if the skb->head is locked down
skb_gso_network_seglen
— Return length of individual segments of a gso packet
struct sock_common
— minimal network layer representation of sockets
struct sock
— network layer representation of sockets
sk_nulls_for_each_entry_offset
— iterate over a list at a given struct offset
unlock_sock_fast
— complement of lock_sock_fast
sk_wmem_alloc_get
— returns write allocations
sk_rmem_alloc_get
— returns read allocations
sk_has_allocations
— check if allocations are outstanding
wq_has_sleeper
— check if there are any waiting processes
sock_poll_wait
— place memory barrier behind the poll_wait call.
sk_page_frag
— return an appropriate page_frag
sock_tx_timestamp
— checks whether the outgoing packet is to be time stamped
sk_eat_skb
— Release a skb if it is no longer needed
sockfd_lookup
— Go from a file number to its socket slot
sock_release
— close a socket
kernel_recvmsg
— Receive a message from a socket (kernel space)
sock_register
— add a socket protocol handler
sock_unregister
— remove a protocol handler
__alloc_skb
— allocate a network buffer
netdev_alloc_frag
— allocate a page fragment
__netdev_alloc_skb
— allocate an skbuff for rx on a specific device
__napi_alloc_skb
— allocate skbuff for rx in a specific NAPI instance
__kfree_skb
— private function
kfree_skb
— free an sk_buff
skb_tx_error
— report an sk_buff xmit error
consume_skb
— free an skbuff
skb_morph
— morph one skb into another
skb_copy_ubufs
— copy userspace skb frags buffers to kernel
skb_clone
— duplicate an sk_buff
skb_copy
— create private copy of an sk_buff
__pskb_copy_fclone
— create copy of an sk_buff with private head.
pskb_expand_head
— reallocate header of
sk_buff
skb_copy_expand
— copy and expand sk_buff
skb_pad
— zero pad the tail of an skb
pskb_put
— add data to the tail of a potentially fragmented buffer
skb_put
— add data to a buffer
skb_push
— add data to the start of a buffer
skb_pull
— remove data from the start of a buffer
skb_trim
— remove end from a buffer
__pskb_pull_tail
— advance tail of skb header
skb_copy_bits
— copy bits from skb to kernel buffer
skb_store_bits
— store bits from kernel buffer to skb
skb_zerocopy
— Zero copy skb to skb
skb_dequeue
— remove from the head of the queue
skb_dequeue_tail
— remove from the tail of the queue
skb_queue_purge
— empty a list
skb_queue_head
— queue a buffer at the list head
skb_queue_tail
— queue a buffer at the list tail
skb_unlink
— remove a buffer from a list
skb_append
— append a buffer
skb_insert
— insert a buffer
skb_split
— Split fragmented skb to two parts at length len.
skb_prepare_seq_read
— Prepare a sequential read of skb data
skb_seq_read
— Sequentially read skb data
skb_abort_seq_read
— Abort a sequential read of skb data
skb_find_text
— Find a text pattern in skb data
skb_append_datato_frags
— append the user data to a skb
skb_pull_rcsum
— pull skb and update receive checksum
skb_segment
— Perform protocol segmentation on skb.
skb_cow_data
— Check that a socket buffer's data buffers are writable
skb_clone_sk
— create clone of skb, and take reference to socket
skb_partial_csum_set
— set up and verify partial csum values for packet
skb_checksum_setup
— set up partial checksum offset
skb_try_coalesce
— try to merge skb to prior one
skb_scrub_packet
— scrub an skb
skb_gso_transport_seglen
— Return length of individual segments of a gso packet
alloc_skb_with_frags
— allocate skb with page frags
sk_ns_capable
— General socket capability test
sk_capable
— Socket global capability test
sk_net_capable
— Network namespace socket capability test
sk_set_memalloc
— sets
SOCK_MEMALLOC
sk_alloc
— All socket objects are allocated here
sk_clone_lock
— clone a socket, and lock its clone
skb_page_frag_refill
— check that a page_frag contains enough room
sk_wait_data
— wait for data to arrive at sk_receive_queue
__sk_mem_schedule
— increase sk_forward_alloc and memory_allocated
__sk_mem_reclaim
— reclaim memory_allocated
lock_sock_fast
— fast version of lock_sock
__skb_recv_datagram
— Receive a datagram skbuff
skb_kill_datagram
— Free a datagram skbuff forcibly
skb_copy_datagram_iter
— Copy a datagram to an iovec iterator.
skb_copy_datagram_from_iter
— Copy a datagram from an iov_iter.
zerocopy_sg_from_iter
— Build a zerocopy datagram from an iov_iter
skb_copy_and_csum_datagram_msg
— Copy and checksum skb to user iovec.
datagram_poll
— generic datagram poll
sk_stream_write_space
— stream socket write_space callback.
sk_stream_wait_connect
— Wait for a socket to get into the connected state
sk_stream_wait_memory
— Wait for more memory for a socket