1 /* SPDX-License-Identifier: GPL-2.0-or-later * 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 #ifndef _NET_HOTDATA_H 2 #ifndef _NET_HOTDATA_H 3 #define _NET_HOTDATA_H 3 #define _NET_HOTDATA_H 4 4 5 #include <linux/types.h> 5 #include <linux/types.h> 6 #include <linux/netdevice.h> 6 #include <linux/netdevice.h> 7 #include <net/protocol.h> 7 #include <net/protocol.h> 8 8 9 /* Read mostly data used in network fast paths 9 /* Read mostly data used in network fast paths. */ 10 struct net_hotdata { 10 struct net_hotdata { 11 #if IS_ENABLED(CONFIG_INET) 11 #if IS_ENABLED(CONFIG_INET) 12 struct packet_offload ip_packet_offl 12 struct packet_offload ip_packet_offload; 13 struct net_offload tcpv4_offload; 13 struct net_offload tcpv4_offload; 14 struct net_protocol tcp_protocol; 14 struct net_protocol tcp_protocol; 15 struct net_offload udpv4_offload; 15 struct net_offload udpv4_offload; 16 struct net_protocol udp_protocol; 16 struct net_protocol udp_protocol; 17 struct packet_offload ipv6_packet_of 17 struct packet_offload ipv6_packet_offload; 18 struct net_offload tcpv6_offload; 18 struct net_offload tcpv6_offload; 19 #if IS_ENABLED(CONFIG_IPV6) 19 #if IS_ENABLED(CONFIG_IPV6) 20 struct inet6_protocol tcpv6_protocol 20 struct inet6_protocol tcpv6_protocol; 21 struct inet6_protocol udpv6_protocol 21 struct inet6_protocol udpv6_protocol; 22 #endif 22 #endif 23 struct net_offload udpv6_offload; 23 struct net_offload udpv6_offload; 24 #endif 24 #endif 25 struct list_head offload_base; 25 struct list_head offload_base; 26 struct list_head ptype_all; 26 struct list_head ptype_all; 27 struct kmem_cache *skbuff_cache; 27 struct kmem_cache *skbuff_cache; 28 struct kmem_cache *skbuff_fclone 28 struct kmem_cache *skbuff_fclone_cache; 29 struct kmem_cache *skb_small_hea 29 struct kmem_cache *skb_small_head_cache; 30 #ifdef CONFIG_RPS 30 #ifdef CONFIG_RPS 31 struct rps_sock_flow_table __rcu *rps_ 31 struct rps_sock_flow_table __rcu *rps_sock_flow_table; 32 u32 rps_cpu_mask; 32 u32 rps_cpu_mask; 33 #endif 33 #endif 34 int gro_normal_bat 34 int gro_normal_batch; 35 int netdev_budget; 35 int netdev_budget; 36 int netdev_budget_ 36 int netdev_budget_usecs; 37 int tstamp_prequeu 37 int tstamp_prequeue; 38 int max_backlog; 38 int max_backlog; 39 int dev_tx_weight; 39 int dev_tx_weight; 40 int dev_rx_weight; 40 int dev_rx_weight; 41 int sysctl_max_skb 41 int sysctl_max_skb_frags; 42 int sysctl_skb_def 42 int sysctl_skb_defer_max; 43 int sysctl_mem_pcp 43 int sysctl_mem_pcpu_rsv; 44 }; 44 }; 45 45 46 #define inet_ehash_secret net_hotdata.tc 46 #define inet_ehash_secret net_hotdata.tcp_protocol.secret 47 #define udp_ehash_secret net_hotdata.ud 47 #define udp_ehash_secret net_hotdata.udp_protocol.secret 48 #define inet6_ehash_secret net_hotdata.tc 48 #define inet6_ehash_secret net_hotdata.tcpv6_protocol.secret 49 #define tcp_ipv6_hash_secret net_hotdata.tc 49 #define tcp_ipv6_hash_secret net_hotdata.tcpv6_offload.secret 50 #define udp6_ehash_secret net_hotdata.ud 50 #define udp6_ehash_secret net_hotdata.udpv6_protocol.secret 51 #define udp_ipv6_hash_secret net_hotdata.ud 51 #define udp_ipv6_hash_secret net_hotdata.udpv6_offload.secret 52 52 53 extern struct net_hotdata net_hotdata; 53 extern struct net_hotdata net_hotdata; 54 54 55 #endif /* _NET_HOTDATA_H */ 55 #endif /* _NET_HOTDATA_H */ 56 56
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.