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_portpair __sk_common.skc_portpair #define sk_num __sk_common.skc_num #define sk_dport __sk_common.skc_dport #define sk_addrpair __sk_common.skc_addrpair #define sk_daddr __sk_common.skc_daddr #define sk_rcv_saddr __sk_common.skc_rcv_saddr #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_ipv6only __sk_common.skc_ipv6only #define sk_net_refcnt __sk_common.skc_net_refcnt #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 #define sk_v6_daddr __sk_common.skc_v6_daddr #define sk_v6_rcv_saddr __sk_common.skc_v6_rcv_saddr #define sk_cookie __sk_common.skc_cookie #define sk_incoming_cpu __sk_common.skc_incoming_cpu #define sk_flags __sk_common.skc_flags #define sk_rxhash __sk_common.skc_rxhash
socket_lock_t sk_lock;
struct sk_buff_head sk_receive_queue;
struct {unnamed_struct}; #ifdef CONFIG_XFRM
struct xfrm_policy __rcu * sk_policy[2]; #endif
struct dst_entry * sk_rx_dst;
struct dst_entry __rcu * sk_dst_cache;
atomic_t sk_wmem_alloc;
atomic_t sk_omem_alloc;
int sk_sndbuf;
struct sk_buff_head sk_write_queue;
unsigned int sk_padding:2;
unsigned int sk_no_check_tx:1;
unsigned int sk_no_check_rx:1;
unsigned int sk_userlocks:4;
unsigned int sk_protocol:8;
unsigned int sk_type:16; #define SK_PROTOCOL_MAX U8_MAX
int sk_wmem_queued;
gfp_t sk_allocation;
u32 sk_pacing_rate;
u32 sk_max_pacing_rate;
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;
u32 sk_ack_backlog;
u32 sk_max_ack_backlog;
__u32 sk_priority;
__u32 sk_mark;
struct pid * sk_peer_pid;
const struct cred * sk_peer_cred;
long sk_rcvtimeo;
long sk_sndtimeo;
struct timer_list sk_timer;
ktime_t sk_stamp;
u16 sk_tsflags;
u8 sk_shutdown;
u32 sk_tskey;
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
struct sock_cgroup_data sk_cgrp_data;
struct mem_cgroup * sk_memcg;
void (* sk_state_change) (struct sock *sk);
void (* sk_data_ready) (struct sock *sk);
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);
struct sock_reuseport __rcu * sk_reuseport_cb;
struct rcu_head sk_rcu; };
MEMBERS¶
__sk_common
sk_lock
sk_receive_queue
{unnamed_struct}
sk_policy[2]
sk_rx_dst
sk_dst_cache
sk_wmem_alloc
sk_omem_alloc
sk_sndbuf
sk_write_queue
sk_padding
sk_no_check_tx
sk_no_check_rx
sk_userlocks
sk_protocol
sk_type
sk_wmem_queued
sk_allocation
sk_pacing_rate
sk_max_pacing_rate
sk_route_caps
sk_route_nocaps
sk_gso_type
sk_gso_max_size
sk_gso_max_segs
sk_rcvlowat
sk_lingertime
sk_error_queue
sk_prot_creator
sk_callback_lock
sk_err
sk_err_soft
sk_ack_backlog
sk_max_ack_backlog
sk_priority
sk_mark
sk_peer_pid
sk_peer_cred
sk_rcvtimeo
sk_sndtimeo
sk_timer
sk_stamp
sk_tsflags
sk_shutdown
sk_tskey
sk_socket
sk_user_data
sk_frag
sk_send_head
sk_peek_off
sk_write_pending
sk_security
sk_cgrp_data
sk_memcg
sk_state_change
sk_data_ready
sk_write_space
sk_error_report
sk_backlog_rcv
sk_destruct
sk_reuseport_cb
sk_rcu
COPYRIGHT¶
June 2017 | Kernel Hackers Manual 4.9. |