struct_sock man page on OpenSuSE

Man page or keyword search:  
man Server   25941 pages
apropos Keyword Search (all sections)
Output format
OpenSuSE logo
[printable version]

STRUCT SOCK(9)		       Linux Networking			STRUCT SOCK(9)

NAME
       struct_sock - network layer representation of sockets

SYNOPSIS
       struct sock {
	 struct sock_common __sk_common;
       #define sk_node		     __sk_common.skc_node
       #define sk_nulls_node	     __sk_common.skc_nulls_node
       #define sk_refcnt	__sk_common.skc_refcnt
       #define sk_tx_queue_mapping   __sk_common.skc_tx_queue_mapping
       #define sk_dontcopy_begin     __sk_common.skc_dontcopy_begin
       #define sk_dontcopy_end	     __sk_common.skc_dontcopy_end
       #define sk_hash		     __sk_common.skc_hash
       #define sk_family	__sk_common.skc_family
       #define sk_state		__sk_common.skc_state
       #define sk_reuse		__sk_common.skc_reuse
       #define sk_reuseport	     __sk_common.skc_reuseport
       #define sk_bound_dev_if	     __sk_common.skc_bound_dev_if
       #define sk_bind_node	     __sk_common.skc_bind_node
       #define sk_prot		     __sk_common.skc_prot
       #define sk_net		__sk_common.skc_net
	 socket_lock_t sk_lock;
	 struct sk_buff_head sk_receive_queue;
	 struct sk_backlog;
       #define sk_rmem_alloc sk_backlog.rmem_alloc
	 int sk_forward_alloc;
       #ifdef CONFIG_RPS
	 __u32 sk_rxhash;
       #endif
       #ifdef CONFIG_NET_RX_BUSY_POLL
	 unsigned int sk_napi_id;
	 unsigned int sk_ll_usec;
       #endif
	 atomic_t sk_drops;
	 int sk_rcvbuf;
	 struct sk_filter __rcu * sk_filter;
	 struct socket_wq __rcu * sk_wq;
       #ifdef CONFIG_NET_DMA
	 struct sk_buff_head sk_async_wait_queue;
       #endif
       #ifdef CONFIG_XFRM
	 struct xfrm_policy * sk_policy[2];
       #endif
	 unsigned long sk_flags;
	 struct dst_entry * sk_rx_dst;
	 struct dst_entry __rcu * sk_dst_cache;
	 spinlock_t sk_dst_lock;
	 atomic_t sk_wmem_alloc;
	 atomic_t sk_omem_alloc;
	 int sk_sndbuf;
	 struct sk_buff_head sk_write_queue;
	 unsigned int sk_shutdown:2;
	 unsigned int sk_no_check:2;
	 unsigned int sk_userlocks:4;
	 unsigned int sk_protocol:8;
	 unsigned int sk_type:16;
	 int sk_wmem_queued;
	 gfp_t sk_allocation;
	 netdev_features_t sk_route_caps;
	 netdev_features_t sk_route_nocaps;
	 int sk_gso_type;
	 unsigned int sk_gso_max_size;
	 u16 sk_gso_max_segs;
	 int sk_rcvlowat;
	 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;
	 unsigned short sk_ack_backlog;
	 unsigned short sk_max_ack_backlog;
	 __u32 sk_priority;
       #if IS_ENABLED(CONFIG_NETPRIO_CGROUP)
	 __u32 sk_cgrp_prioidx;
       #endif
	 struct pid * sk_peer_pid;
	 const struct cred * sk_peer_cred;
	 long sk_rcvtimeo;
	 long sk_sndtimeo;
	 void * sk_protinfo;
	 struct timer_list sk_timer;
	 ktime_t sk_stamp;
	 struct socket * sk_socket;
	 void * sk_user_data;
	 struct page_frag sk_frag;
	 struct sk_buff * sk_send_head;
	 __s32 sk_peek_off;
	 int sk_write_pending;
       #ifdef CONFIG_SECURITY
	 void * sk_security;
       #endif
	 __u32 sk_mark;
	 u32 sk_classid;
	 struct cg_proto * sk_cgrp;
	 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_lock
	   synchronizer

       sk_receive_queue
	   incoming packets

       sk_backlog
	   always used with the per-socket spinlock held

       sk_forward_alloc
	   space allocated forward

       sk_rxhash
	   flow hash received from netif layer

       sk_napi_id
	   id of the last napi context to receive data for sk

       sk_ll_usec
	   usecs to busypoll when there is no data

       sk_drops
	   raw/udp drops counter

       sk_rcvbuf
	   size of receive buffer in bytes

       sk_filter
	   socket filtering instructions

       sk_wq
	   sock wait queue and async head

       sk_async_wait_queue
	   DMA copied packets

       sk_policy[2]
	   flow policy

       sk_flags
	   SO_LINGER (l_onoff), SO_BROADCAST, SO_KEEPALIVE, SO_OOBINLINE
	   settings, SO_TIMESTAMPING settings

       sk_rx_dst
	   receive input route used by early tcp demux

       sk_dst_cache
	   destination cache

       sk_dst_lock
	   destination cache lock

       sk_wmem_alloc
	   transmit queue bytes committed

       sk_omem_alloc
	   "o“ is ”option“ or ”other"

       sk_sndbuf
	   size of send buffer in bytes

       sk_write_queue
	   Packet sending queue

       sk_shutdown
	   mask of SEND_SHUTDOWN and/or RCV_SHUTDOWN

       sk_no_check
	   SO_NO_CHECK setting, whether 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_wmem_queued
	   persistent queue size

       sk_allocation
	   allocation mode

       sk_route_caps
	   route capabilities (e.g.  NETIF_F_TSO)

       sk_route_nocaps
	   forbidden route capabilities (e.g NETIF_F_GSO_MASK)

       sk_gso_type
	   GSO type (e.g.  SKB_GSO_TCPV4)

       sk_gso_max_size
	   Maximum GSO segment size to build

       sk_gso_max_segs
	   Maximum number of GSO segments

       sk_rcvlowat
	   SO_RCVLOWAT setting

       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_ack_backlog
	   current listen backlog

       sk_max_ack_backlog
	   listen backlog set in listen

       sk_priority
	   SO_PRIORITY setting

       sk_cgrp_prioidx
	   socket group's priority map index

       sk_peer_pid
	   struct pid for this socket's peer

       sk_peer_cred
	   SO_PEERCRED setting

       sk_rcvtimeo
	   SO_RCVTIMEO setting

       sk_sndtimeo
	   SO_SNDTIMEO setting

       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_frag
	   cached page frag

       sk_send_head
	   front of stuff to transmit

       sk_peek_off
	   current peek_offset value

       sk_write_pending
	   a write to stream socket waits to start

       sk_security
	   used by security modules

       sk_mark
	   generic packet mark

       sk_classid
	   this socket's cgroup classid

       sk_cgrp
	   this socket's cgroup-specific proto data

       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
Kernel Hackers Manual 3.11	 November 2013			STRUCT SOCK(9)
[top]

List of man pages available for OpenSuSE

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net