include/net/hotdata.h

Source file repositories/reference/linux-study-clean/include/net/hotdata.h

File Facts

System
Linux kernel
Corpus path
include/net/hotdata.h
Extension
.h
Size
1873 bytes
Lines
66
Domain
Networking Core
Bucket
Sockets, Protocols, Packet Path, And Network Policy
Inferred role
Networking Core: implementation source
Status
source implementation candidate

Why This File Exists

Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.

Dependency Surface

Detected Declarations

Annotated Snippet

struct skb_defer_node {
	struct llist_head	defer_list;
	atomic_long_t		defer_count;
} ____cacheline_aligned_in_smp;

/* Read mostly data used in network fast paths. */
struct net_hotdata {
#if IS_ENABLED(CONFIG_INET)
	struct packet_offload	ip_packet_offload;
	struct net_offload	tcpv4_offload;
	struct net_protocol	tcp_protocol;
	struct net_offload 	udpv4_offload;
	struct net_protocol	udp_protocol;
	struct packet_offload	ipv6_packet_offload;
	struct net_offload	tcpv6_offload;
#if IS_ENABLED(CONFIG_IPV6)
	struct inet6_protocol	tcpv6_protocol;
	struct inet6_protocol	udpv6_protocol;
#endif
	struct net_offload	udpv6_offload;
#endif
	struct list_head	offload_base;
	struct kmem_cache	*skbuff_cache;
	struct kmem_cache	*skbuff_fclone_cache;
	struct kmem_cache	*skb_small_head_cache;
#ifdef CONFIG_RPS
	rps_tag_ptr		rps_sock_flow_table;
	u32			rps_cpu_mask;
#endif
	struct skb_defer_node __percpu *skb_defer_nodes;
	int			gro_normal_batch;
	int			netdev_budget;
	int			netdev_budget_usecs;
	int			tstamp_prequeue;
	int			max_backlog;
	int			qdisc_max_burst;
	int			dev_tx_weight;
	int			dev_rx_weight;
	int			sysctl_max_skb_frags;
	int			sysctl_skb_defer_max;
	int			sysctl_mem_pcpu_rsv;
};

#define inet_ehash_secret	net_hotdata.tcp_protocol.secret
#define udp_ehash_secret	net_hotdata.udp_protocol.secret
#define inet6_ehash_secret	net_hotdata.tcpv6_protocol.secret
#define tcp_ipv6_hash_secret	net_hotdata.tcpv6_offload.secret
#define udp6_ehash_secret	net_hotdata.udpv6_protocol.secret
#define udp_ipv6_hash_secret	net_hotdata.udpv6_offload.secret

extern struct net_hotdata net_hotdata;

#endif /* _NET_HOTDATA_H */

Annotation

Implementation Notes