Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1/* SPDX-License-Identifier: GPL-2.0-or-later */
2#ifndef _NET_HOTDATA_H
3#define _NET_HOTDATA_H
4
5#include <linux/types.h>
6#include <linux/netdevice.h>
7#include <net/protocol.h>
8
9/* Read mostly data used in network fast paths. */
10struct net_hotdata {
11#if IS_ENABLED(CONFIG_INET)
12 struct packet_offload ip_packet_offload;
13 struct net_offload tcpv4_offload;
14 struct net_protocol tcp_protocol;
15 struct net_offload udpv4_offload;
16 struct net_protocol udp_protocol;
17 struct packet_offload ipv6_packet_offload;
18 struct net_offload tcpv6_offload;
19#if IS_ENABLED(CONFIG_IPV6)
20 struct inet6_protocol tcpv6_protocol;
21 struct inet6_protocol udpv6_protocol;
22#endif
23 struct net_offload udpv6_offload;
24#endif
25 struct list_head offload_base;
26 struct kmem_cache *skbuff_cache;
27 struct kmem_cache *skbuff_fclone_cache;
28 struct kmem_cache *skb_small_head_cache;
29#ifdef CONFIG_RPS
30 struct rps_sock_flow_table __rcu *rps_sock_flow_table;
31 u32 rps_cpu_mask;
32#endif
33 int gro_normal_batch;
34 int netdev_budget;
35 int netdev_budget_usecs;
36 int tstamp_prequeue;
37 int max_backlog;
38 int dev_tx_weight;
39 int dev_rx_weight;
40 int sysctl_max_skb_frags;
41 int sysctl_skb_defer_max;
42 int sysctl_mem_pcpu_rsv;
43};
44
45#define inet_ehash_secret net_hotdata.tcp_protocol.secret
46#define udp_ehash_secret net_hotdata.udp_protocol.secret
47#define inet6_ehash_secret net_hotdata.tcpv6_protocol.secret
48#define tcp_ipv6_hash_secret net_hotdata.tcpv6_offload.secret
49#define udp6_ehash_secret net_hotdata.udpv6_protocol.secret
50#define udp_ipv6_hash_secret net_hotdata.udpv6_offload.secret
51
52extern struct net_hotdata net_hotdata;
53
54#endif /* _NET_HOTDATA_H */