1 /* SPDX-License-Identifier: GPL-2.0 */
3 * ipv4 in net namespaces
6 #ifndef __NETNS_IPV4_H__
7 #define __NETNS_IPV4_H__
9 #include <linux/uidgid.h>
10 #include <net/inet_frag.h>
11 #include <linux/rcupdate.h>
12 #include <linux/siphash.h>
14 struct tcpm_hash_bucket
;
15 struct ctl_table_header
;
27 struct ping_group_range
{
34 struct inet_timewait_death_row
{
37 struct inet_hashinfo
*hashinfo ____cacheline_aligned_in_smp
;
38 int sysctl_max_tw_buckets
;
41 struct tcp_fastopen_context
;
45 struct ctl_table_header
*forw_hdr
;
46 struct ctl_table_header
*frags_hdr
;
47 struct ctl_table_header
*ipv4_hdr
;
48 struct ctl_table_header
*route_hdr
;
49 struct ctl_table_header
*xfrm4_hdr
;
51 struct ipv4_devconf
*devconf_all
;
52 struct ipv4_devconf
*devconf_dflt
;
53 struct ip_ra_chain __rcu
*ra_chain
;
54 struct mutex ra_mutex
;
55 #ifdef CONFIG_IP_MULTIPLE_TABLES
56 struct fib_rules_ops
*rules_ops
;
57 bool fib_has_custom_rules
;
58 unsigned int fib_rules_require_fldissect
;
59 struct fib_table __rcu
*fib_main
;
60 struct fib_table __rcu
*fib_default
;
62 bool fib_has_custom_local_routes
;
63 #ifdef CONFIG_IP_ROUTE_CLASSID
64 int fib_num_tclassid_users
;
66 struct hlist_head
*fib_table_hash
;
67 bool fib_offload_disabled
;
70 struct sock
* __percpu
*icmp_sk
;
71 struct sock
*mc_autojoin_sk
;
73 struct inet_peer_base
*peers
;
74 struct sock
* __percpu
*tcp_sk
;
76 #ifdef CONFIG_NETFILTER
77 struct xt_table
*iptable_filter
;
78 struct xt_table
*iptable_mangle
;
79 struct xt_table
*iptable_raw
;
80 struct xt_table
*arptable_filter
;
81 #ifdef CONFIG_SECURITY
82 struct xt_table
*iptable_security
;
84 struct xt_table
*nat_table
;
87 int sysctl_icmp_echo_ignore_all
;
88 int sysctl_icmp_echo_ignore_broadcasts
;
89 int sysctl_icmp_ignore_bogus_error_responses
;
90 int sysctl_icmp_ratelimit
;
91 int sysctl_icmp_ratemask
;
92 int sysctl_icmp_errors_use_inbound_ifaddr
;
94 struct local_ports ip_local_ports
;
97 int sysctl_tcp_ecn_fallback
;
99 int sysctl_ip_default_ttl
;
100 int sysctl_ip_no_pmtu_disc
;
101 int sysctl_ip_fwd_use_pmtu
;
102 int sysctl_ip_fwd_update_priority
;
103 int sysctl_ip_nonlocal_bind
;
104 int sysctl_ip_autobind_reuse
;
105 /* Shall we try to damage output packets if routing dev changes? */
106 int sysctl_ip_dynaddr
;
107 int sysctl_ip_early_demux
;
108 #ifdef CONFIG_NET_L3_MASTER_DEV
109 int sysctl_raw_l3mdev_accept
;
111 int sysctl_tcp_early_demux
;
112 int sysctl_udp_early_demux
;
114 int sysctl_nexthop_compat_mode
;
116 int sysctl_fwmark_reflect
;
117 int sysctl_tcp_fwmark_accept
;
118 #ifdef CONFIG_NET_L3_MASTER_DEV
119 int sysctl_tcp_l3mdev_accept
;
121 int sysctl_tcp_mtu_probing
;
122 int sysctl_tcp_mtu_probe_floor
;
123 int sysctl_tcp_base_mss
;
124 int sysctl_tcp_min_snd_mss
;
125 int sysctl_tcp_probe_threshold
;
126 u32 sysctl_tcp_probe_interval
;
128 int sysctl_tcp_keepalive_time
;
129 int sysctl_tcp_keepalive_probes
;
130 int sysctl_tcp_keepalive_intvl
;
132 int sysctl_tcp_syn_retries
;
133 int sysctl_tcp_synack_retries
;
134 int sysctl_tcp_syncookies
;
135 int sysctl_tcp_reordering
;
136 int sysctl_tcp_retries1
;
137 int sysctl_tcp_retries2
;
138 int sysctl_tcp_orphan_retries
;
139 int sysctl_tcp_fin_timeout
;
140 unsigned int sysctl_tcp_notsent_lowat
;
141 int sysctl_tcp_tw_reuse
;
143 int sysctl_tcp_window_scaling
;
144 int sysctl_tcp_timestamps
;
145 int sysctl_tcp_early_retrans
;
146 int sysctl_tcp_recovery
;
147 int sysctl_tcp_thin_linear_timeouts
;
148 int sysctl_tcp_slow_start_after_idle
;
149 int sysctl_tcp_retrans_collapse
;
150 int sysctl_tcp_stdurg
;
151 int sysctl_tcp_rfc1337
;
152 int sysctl_tcp_abort_on_overflow
;
154 int sysctl_tcp_max_reordering
;
155 int sysctl_tcp_dsack
;
156 int sysctl_tcp_app_win
;
157 int sysctl_tcp_adv_win_scale
;
159 int sysctl_tcp_nometrics_save
;
160 int sysctl_tcp_no_ssthresh_metrics_save
;
161 int sysctl_tcp_moderate_rcvbuf
;
162 int sysctl_tcp_tso_win_divisor
;
163 int sysctl_tcp_workaround_signed_windows
;
164 int sysctl_tcp_limit_output_bytes
;
165 int sysctl_tcp_challenge_ack_limit
;
166 int sysctl_tcp_min_tso_segs
;
167 int sysctl_tcp_min_rtt_wlen
;
168 int sysctl_tcp_autocorking
;
169 int sysctl_tcp_invalid_ratelimit
;
170 int sysctl_tcp_pacing_ss_ratio
;
171 int sysctl_tcp_pacing_ca_ratio
;
172 int sysctl_tcp_wmem
[3];
173 int sysctl_tcp_rmem
[3];
174 int sysctl_tcp_comp_sack_nr
;
175 unsigned long sysctl_tcp_comp_sack_delay_ns
;
176 unsigned long sysctl_tcp_comp_sack_slack_ns
;
177 struct inet_timewait_death_row tcp_death_row
;
178 int sysctl_max_syn_backlog
;
179 int sysctl_tcp_fastopen
;
180 const struct tcp_congestion_ops __rcu
*tcp_congestion_control
;
181 struct tcp_fastopen_context __rcu
*tcp_fastopen_ctx
;
182 spinlock_t tcp_fastopen_ctx_lock
;
183 unsigned int sysctl_tcp_fastopen_blackhole_timeout
;
184 atomic_t tfo_active_disable_times
;
185 unsigned long tfo_active_disable_stamp
;
186 int sysctl_tcp_reflect_tos
;
188 int sysctl_udp_wmem_min
;
189 int sysctl_udp_rmem_min
;
191 #ifdef CONFIG_NET_L3_MASTER_DEV
192 int sysctl_udp_l3mdev_accept
;
195 int sysctl_igmp_max_memberships
;
196 int sysctl_igmp_max_msf
;
197 int sysctl_igmp_llm_reports
;
200 struct ping_group_range ping_group_range
;
202 atomic_t dev_addr_genid
;
205 unsigned long *sysctl_local_reserved_ports
;
206 int sysctl_ip_prot_sock
;
209 #ifdef CONFIG_IP_MROUTE
210 #ifndef CONFIG_IP_MROUTE_MULTIPLE_TABLES
211 struct mr_table
*mrt
;
213 struct list_head mr_tables
;
214 struct fib_rules_ops
*mr_rules_ops
;
217 #ifdef CONFIG_IP_ROUTE_MULTIPATH
218 int sysctl_fib_multipath_use_neigh
;
219 int sysctl_fib_multipath_hash_policy
;
222 struct fib_notifier_ops
*notifier_ops
;
223 unsigned int fib_seq
; /* protected by rtnl_mutex */
225 struct fib_notifier_ops
*ipmr_notifier_ops
;
226 unsigned int ipmr_seq
; /* protected by rtnl_mutex */
229 siphash_key_t ip_id_key
;