struct sock(9)

NAME

struct_sock - network layer representation of sockets

SYNOPSIS

struct sock {
  struct sock_common __sk_common;
#define sk_family        __sk_common.skc_family
#define sk_state         __sk_common.skc_state
#define sk_reuse         __sk_common.skc_reuse
#define sk_bound_dev_if       __sk_common.skc_bound_dev_if
#define sk_node               __sk_common.skc_node
#define sk_bind_node          __sk_common.skc_bind_node
#define sk_refcnt        __sk_common.skc_refcnt
#define sk_hash               __sk_common.skc_hash
#define sk_prot               __sk_common.skc_prot
#define sk_net           __sk_common.skc_net
  unsigned char sk_shutdown:2;
  unsigned char sk_no_check:2;
  unsigned char sk_userlocks:4;
  unsigned char sk_protocol;
  unsigned short sk_type;
  int sk_rcvbuf;
  socket_lock_t sk_lock;
  struct sk_backlog;
  wait_queue_head_t * sk_sleep;
  struct dst_entry * sk_dst_cache;
  struct xfrm_policy * sk_policy[2];
  rwlock_t sk_dst_lock;
  atomic_t sk_rmem_alloc;
  atomic_t sk_wmem_alloc;
  atomic_t sk_omem_alloc;
  int sk_sndbuf;
  struct sk_buff_head sk_receive_queue;
  struct sk_buff_head sk_write_queue;
  struct sk_buff_head sk_async_wait_queue;
  int sk_wmem_queued;
  int sk_forward_alloc;
  gfp_t sk_allocation;
  int sk_route_caps;
  int sk_gso_type;
  unsigned int sk_gso_max_size;
  int sk_rcvlowat;
  unsigned long sk_flags;
  unsigned long sk_lingertime;
  struct sk_buff_head sk_error_queue;
  struct proto * sk_prot_creator;
  rwlock_t sk_callback_lock;
  int sk_err;
  int sk_err_soft;
  atomic_t sk_drops;
  unsigned short sk_ack_backlog;
  unsigned short sk_max_ack_backlog;
  __u32 sk_priority;
  struct ucred sk_peercred;
  long sk_rcvtimeo;
  long sk_sndtimeo;
  struct sk_filter * sk_filter;
  void * sk_protinfo;
  struct timer_list sk_timer;
  ktime_t sk_stamp;
  struct socket * sk_socket;
  void * sk_user_data;
  struct page * sk_sndmsg_page;
  struct sk_buff * sk_send_head;
  __u32 sk_sndmsg_off;
  int sk_write_pending;
  void * sk_security;
  __u32 sk_mark;
  void (* sk_state_change) (struct sock *sk);
  void (* sk_data_ready) (struct sock *sk, int bytes);
  void (* sk_write_space) (struct sock *sk);
  void (* sk_error_report) (struct sock *sk);
  int (* sk_backlog_rcv) (struct sock *sk,struct sk_buff *skb);
  void (* sk_destruct) (struct sock *sk);
};

MEMBERS

__sk_common
shared layout with inet_timewait_sock
sk_shutdown
mask of SEND_SHUTDOWN and/or RCV_SHUTDOWN
sk_no_check

SO_NO_CHECK setting, wether or not checkup packets
sk_userlocks

SO_SNDBUF and SO_RCVBUF settings
sk_protocol
which protocol this socket belongs in this network family
sk_type
socket type (SOCK_STREAM, etc)
sk_rcvbuf
size of receive buffer in bytes
sk_lock
synchronizer
sk_backlog
always used with the per-socket spinlock held
sk_sleep
sock wait queue
sk_dst_cache
destination cache
sk_policy[2]
flow policy
sk_dst_lock
destination cache lock
sk_rmem_alloc
receive queue bytes committed
sk_wmem_alloc
transmit queue bytes committed
sk_omem_alloc
"o" is "option" or "other"
sk_sndbuf
size of send buffer in bytes
sk_receive_queue
incoming packets
sk_write_queue
Packet sending queue
sk_async_wait_queue
DMA copied packets
sk_wmem_queued
persistent queue size
sk_forward_alloc
space allocated forward
sk_allocation
allocation mode
sk_route_caps
route capabilities (e.g. NETIF_F_TSO)
sk_gso_type
GSO type (e.g. SKB_GSO_TCPV4)
sk_gso_max_size
Maximum GSO segment size to build
sk_rcvlowat

SO_RCVLOWAT setting
sk_flags

SO_LINGER (l_onoff), SO_BROADCAST, SO_KEEPALIVE, SO_OOBINLINE settings
sk_lingertime

SO_LINGER l_linger setting
sk_error_queue
rarely used
sk_prot_creator
sk_prot of original sock creator (see ipv6_setsockopt,
IPV6_ADDRFORM for instance)
sk_callback_lock
used with the callbacks in the end of this struct
sk_err
last error
sk_err_soft
errors that donīt cause failure but are the cause of a persistent
failure not just ītimed outī
sk_drops
raw drops counter
sk_ack_backlog
current listen backlog
sk_max_ack_backlog
listen backlog set in listen
sk_priority

SO_PRIORITY setting
sk_peercred

SO_PEERCRED setting
sk_rcvtimeo

SO_RCVTIMEO setting
sk_sndtimeo

SO_SNDTIMEO setting
sk_filter
socket filtering instructions
sk_protinfo
private area, net family specific, when not using slab
sk_timer
sock cleanup timer
sk_stamp
time stamp of last packet received
sk_socket
Identd and reporting IO signals
sk_user_data
RPC layer private data
sk_sndmsg_page
cached page for sendmsg
sk_send_head
front of stuff to transmit
sk_sndmsg_off
cached offset for sendmsg
sk_write_pending
a write to stream socket waits to start
sk_security
used by security modules
sk_mark
generic packet mark
sk_state_change
callback to indicate change in the state of the sock
sk_data_ready
callback to indicate there is data to be processed
sk_write_space
callback to indicate there is bf sending space available
sk_error_report
callback to indicate errors (e.g. MSG_ERRQUEUE)
sk_backlog_rcv
callback to process the backlog
sk_destruct
called at sock freeing time, i.e. when all refcnt == 0

COPYRIGHT

Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout