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. */ 10 struct 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 list_head ptype_all; 27 struct kmem_cache *skbuff_cache; 28 struct kmem_cache *skbuff_fclone_cache; 29 struct kmem_cache *skb_small_head_cache; 30 int gro_normal_batch; 31 int netdev_budget; 32 int netdev_budget_usecs; 33 int tstamp_prequeue; 34 int max_backlog; 35 int dev_tx_weight; 36 int dev_rx_weight; 37 }; 38 39 extern struct net_hotdata net_hotdata; 40 41 #endif /* _NET_HOTDATA_H */ 42