mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Fernando Fernandez Mancera <fmancera@suse.de>
To: Joel Granados <joel.granados@kernel.org>
Cc: netdev@vger.kernel.org, horms@kernel.org, kuba@kernel.org,
	pabeni@redhat.com, edumazet@kernel.org, davem@davemloft.net,
	Eric Dumazet <edumazet@google.com>,
	Chia-Yu Chang <chia-yu.chang@nokia-bell-labs.com>,
	Wyatt Feng <bronzed_45_vested@icloud.com>,
	Yung Chih Su <yuuchihsu@gmail.com>,
	Ido Schimmel <idosch@nvidia.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 11/16 net-next v2] ipv4: disable IPv4-only sysctls when CONFIG_IPV4=n
Date: Tue, 29 Sep 2026 10:20:16 +0200	[thread overview]
Message-ID: <5cdbc432-7d7e-47f7-897d-2b71a1a4a7a4@suse.de> (raw)
In-Reply-To: <merysy6sadsrrmkiswnxlaohuftbvtaslbqhdhg5o57a7fxnkd@fkjcxi2cv2zs>

On 9/29/26 9:14 AM, Joel Granados wrote:
> On Mon, Sep 28, 2026 at 09:30:07PM +0200, Fernando Fernandez Mancera wrote:
>> To avoid noise and unexpected problems, let's hide all the sysctls that
>> are related to IPv4 only when the kernel is compiled without IPv4
>> support.
> 
> You are hiding the IPV4 sysctl with "#if IS_ENABLED(CONFIG_IPV4)" inside
> the sysctl_net_ipv4.c file. That is confusing as I would expect all
> sysctl_net_ipv4.c to be ipv4 specific. Wouldn't it be cleaner to just
> have an "ipv4" sysctl file and compile that when CONFIG_IPV4 is enabled?
> 
> I might be missing something obvious as I just got to see 3 patches of
> the series. Ignore, if this is addressed at some other point.
> 

Unfortunately, under net.ipv4.* sysctls there are plenty of them that 
are not exclusively related to IPv4. For example tcp_* or udp_* ones. 
These cannot be moved out of there because it would break plenty of 
systems.  I think it is good to have them all at sysctl_net_ipv4.c and 
guard them with ifdefs..

Technically, nothing prevent us to split the generic ones to net/ipv4 
sysctl_net.c or similar.

Thanks,
Fernando.

> Best
> 
>>
>> Signed-off-by: Fernando Fernandez Mancera <fmancera@suse.de>
>> ---
>>   net/ipv4/sysctl_net_ipv4.c | 407 +++++++++++++++++++------------------
>>   1 file changed, 205 insertions(+), 202 deletions(-)
>>
>> diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
>> index 0e7fef5973db..6096e9e4d82d 100644
>> --- a/net/ipv4/sysctl_net_ipv4.c
>> +++ b/net/ipv4/sysctl_net_ipv4.c
>> @@ -31,8 +31,8 @@ static int tcp_min_snd_mss_max = 65535;
>>   static int tcp_rto_max_max = TCP_RTO_MAX_SEC * MSEC_PER_SEC;
>>   static int ip_privileged_port_min;
>>   static int ip_privileged_port_max = 65535;
>> -static int ip_ttl_min = 1;
>> -static int ip_ttl_max = 255;
>> +static int ip_ttl_min __maybe_unused = 1;
>> +static int ip_ttl_max __maybe_unused = 255;
>>   static int tcp_syn_retries_min = 1;
>>   static int tcp_syn_retries_max = MAX_TCP_SYNCNT;
>>   static int tcp_syn_linear_timeouts_max = MAX_TCP_SYNCNT;
>> @@ -48,7 +48,7 @@ static int tcp_plb_max_rounds = 31;
>>   static int tcp_plb_max_cong_thresh = 256;
>>   static unsigned int tcp_tw_reuse_delay_max = TCP_PAWS_MSL * MSEC_PER_SEC;
>>   static int tcp_ecn_mode_max = 5;
>> -static u32 icmp_errors_extension_mask_all =
>> +static u32 icmp_errors_extension_mask_all __maybe_unused =
>>   	GENMASK_U8(ICMP_ERR_EXT_COUNT - 1, 0);
>>   
>>   static int tcp_min_rcvbuf = 4096;
>> @@ -201,8 +201,9 @@ static int ipv4_ping_group_range(const struct ctl_table *table, int write,
>>   	return ret;
>>   }
>>   
>> -static int ipv4_fwd_update_priority(const struct ctl_table *table, int write,
>> -				    void *buffer, size_t *lenp, loff_t *ppos)
>> +static int __maybe_unused
>> +ipv4_fwd_update_priority(const struct ctl_table *table, int write,
>> +			 void *buffer, size_t *lenp, loff_t *ppos)
>>   {
>>   	struct net *net;
>>   	int ret;
>> @@ -441,9 +442,9 @@ static int proc_udp_hash_entries(const struct ctl_table *table, int write,
>>   }
>>   
>>   #ifdef CONFIG_IP_ROUTE_MULTIPATH
>> -static int proc_fib_multipath_hash_policy(const struct ctl_table *table, int write,
>> -					  void *buffer, size_t *lenp,
>> -					  loff_t *ppos)
>> +static int __maybe_unused
>> +proc_fib_multipath_hash_policy(const struct ctl_table *table, int write,
>> +			       void *buffer, size_t *lenp, loff_t *ppos)
>>   {
>>   	struct net *net = container_of(table->data, struct net,
>>   	    ipv4.sysctl_fib_multipath_hash_policy);
>> @@ -456,9 +457,9 @@ static int proc_fib_multipath_hash_policy(const struct ctl_table *table, int wri
>>   	return ret;
>>   }
>>   
>> -static int proc_fib_multipath_hash_fields(const struct ctl_table *table, int write,
>> -					  void *buffer, size_t *lenp,
>> -					  loff_t *ppos)
>> +static int __maybe_unused
>> +proc_fib_multipath_hash_fields(const struct ctl_table *table, int write,
>> +			       void *buffer, size_t *lenp, loff_t *ppos)
>>   {
>>   	struct net *net;
>>   	int ret;
>> @@ -492,9 +493,9 @@ static void proc_fib_multipath_hash_set_seed(struct net *net, u32 user_seed)
>>   	WRITE_ONCE(net->ipv4.sysctl_fib_multipath_hash_seed.mp_seed, new.mp_seed);
>>   }
>>   
>> -static int proc_fib_multipath_hash_seed(const struct ctl_table *table, int write,
>> -					void *buffer, size_t *lenp,
>> -					loff_t *ppos)
>> +static int __maybe_unused
>> +proc_fib_multipath_hash_seed(const struct ctl_table *table, int write,
>> +			     void *buffer, size_t *lenp, loff_t *ppos)
>>   {
>>   	struct sysctl_fib_multipath_hash_seed *mphs;
>>   	struct net *net = table->data;
>> @@ -636,15 +637,6 @@ static const struct ctl_table ipv4_net_table[] = {
>>   		.mode		= 0644,
>>   		.proc_handler	= proc_dointvec
>>   	},
>> -	{
>> -		.procname	= "icmp_echo_ignore_all",
>> -		.data		= &init_net.ipv4.sysctl_icmp_echo_ignore_all,
>> -		.maxlen		= sizeof(u8),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_dou8vec_minmax,
>> -		.extra1		= SYSCTL_ZERO,
>> -		.extra2		= SYSCTL_ONE
>> -	},
>>   	{
>>   		.procname	= "icmp_echo_enable_probe",
>>   		.data		= &init_net.ipv4.sysctl_icmp_echo_enable_probe,
>> @@ -654,56 +646,6 @@ static const struct ctl_table ipv4_net_table[] = {
>>   		.extra1		= SYSCTL_ZERO,
>>   		.extra2		= SYSCTL_ONE
>>   	},
>> -	{
>> -		.procname	= "icmp_echo_ignore_broadcasts",
>> -		.data		= &init_net.ipv4.sysctl_icmp_echo_ignore_broadcasts,
>> -		.maxlen		= sizeof(u8),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_dou8vec_minmax,
>> -		.extra1		= SYSCTL_ZERO,
>> -		.extra2		= SYSCTL_ONE
>> -	},
>> -	{
>> -		.procname	= "icmp_ignore_bogus_error_responses",
>> -		.data		= &init_net.ipv4.sysctl_icmp_ignore_bogus_error_responses,
>> -		.maxlen		= sizeof(u8),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_dou8vec_minmax,
>> -		.extra1		= SYSCTL_ZERO,
>> -		.extra2		= SYSCTL_ONE
>> -	},
>> -	{
>> -		.procname	= "icmp_errors_use_inbound_ifaddr",
>> -		.data		= &init_net.ipv4.sysctl_icmp_errors_use_inbound_ifaddr,
>> -		.maxlen		= sizeof(u8),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_dou8vec_minmax,
>> -		.extra1		= SYSCTL_ZERO,
>> -		.extra2		= SYSCTL_ONE
>> -	},
>> -	{
>> -		.procname	= "icmp_errors_extension_mask",
>> -		.data		= &init_net.ipv4.sysctl_icmp_errors_extension_mask,
>> -		.maxlen		= sizeof(u8),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_dou8vec_minmax,
>> -		.extra1		= SYSCTL_ZERO,
>> -		.extra2		= &icmp_errors_extension_mask_all,
>> -	},
>> -	{
>> -		.procname	= "icmp_ratelimit",
>> -		.data		= &init_net.ipv4.sysctl_icmp_ratelimit,
>> -		.maxlen		= sizeof(int),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_dointvec_ms_jiffies,
>> -	},
>> -	{
>> -		.procname	= "icmp_ratemask",
>> -		.data		= &init_net.ipv4.sysctl_icmp_ratemask,
>> -		.maxlen		= sizeof(int),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_dointvec
>> -	},
>>   	{
>>   		.procname	= "icmp_msgs_per_sec",
>>   		.data		= &init_net.ipv4.sysctl_icmp_msgs_per_sec,
>> @@ -774,13 +716,6 @@ static const struct ctl_table ipv4_net_table[] = {
>>   		.extra1		= SYSCTL_ZERO,
>>   		.extra2		= SYSCTL_ONE,
>>   	},
>> -	{
>> -		.procname	= "ip_dynaddr",
>> -		.data		= &init_net.ipv4.sysctl_ip_dynaddr,
>> -		.maxlen		= sizeof(u8),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_dou8vec_minmax,
>> -	},
>>   	{
>>   		.procname	= "ip_early_demux",
>>   		.data		= &init_net.ipv4.sysctl_ip_early_demux,
>> @@ -811,15 +746,6 @@ static const struct ctl_table ipv4_net_table[] = {
>>   		.extra1		= SYSCTL_ZERO,
>>   		.extra2		= SYSCTL_ONE,
>>   	},
>> -	{
>> -		.procname	= "ip_default_ttl",
>> -		.data		= &init_net.ipv4.sysctl_ip_default_ttl,
>> -		.maxlen		= sizeof(u8),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_dou8vec_minmax,
>> -		.extra1		= &ip_ttl_min,
>> -		.extra2		= &ip_ttl_max,
>> -	},
>>   	{
>>   		.procname	= "ip_local_port_range",
>>   		.maxlen		= 0,
>> @@ -841,36 +767,6 @@ static const struct ctl_table ipv4_net_table[] = {
>>   		.mode		= 0644,
>>   		.proc_handler	= proc_do_large_bitmap,
>>   	},
>> -	{
>> -		.procname	= "ip_no_pmtu_disc",
>> -		.data		= &init_net.ipv4.sysctl_ip_no_pmtu_disc,
>> -		.maxlen		= sizeof(u8),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_dou8vec_minmax,
>> -	},
>> -	{
>> -		.procname	= "ip_forward_use_pmtu",
>> -		.data		= &init_net.ipv4.sysctl_ip_fwd_use_pmtu,
>> -		.maxlen		= sizeof(u8),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_dou8vec_minmax,
>> -	},
>> -	{
>> -		.procname	= "ip_forward_update_priority",
>> -		.data		= &init_net.ipv4.sysctl_ip_fwd_update_priority,
>> -		.maxlen		= sizeof(u8),
>> -		.mode		= 0644,
>> -		.proc_handler   = ipv4_fwd_update_priority,
>> -		.extra1		= SYSCTL_ZERO,
>> -		.extra2		= SYSCTL_ONE,
>> -	},
>> -	{
>> -		.procname	= "ip_nonlocal_bind",
>> -		.data		= &init_net.ipv4.sysctl_ip_nonlocal_bind,
>> -		.maxlen		= sizeof(u8),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_dou8vec_minmax,
>> -	},
>>   	{
>>   		.procname	= "ip_autobind_reuse",
>>   		.data		= &init_net.ipv4.sysctl_ip_autobind_reuse,
>> @@ -880,13 +776,6 @@ static const struct ctl_table ipv4_net_table[] = {
>>   		.extra1         = SYSCTL_ZERO,
>>   		.extra2         = SYSCTL_ONE,
>>   	},
>> -	{
>> -		.procname	= "fwmark_reflect",
>> -		.data		= &init_net.ipv4.sysctl_fwmark_reflect,
>> -		.maxlen		= sizeof(u8),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_dou8vec_minmax,
>> -	},
>>   	{
>>   		.procname	= "tcp_fwmark_accept",
>>   		.data		= &init_net.ipv4.sysctl_tcp_fwmark_accept,
>> @@ -952,37 +841,6 @@ static const struct ctl_table ipv4_net_table[] = {
>>   		.proc_handler	= proc_douintvec_minmax,
>>   		.extra2		= &u32_max_div_HZ,
>>   	},
>> -	{
>> -		.procname	= "igmp_link_local_mcast_reports",
>> -		.data		= &init_net.ipv4.sysctl_igmp_llm_reports,
>> -		.maxlen		= sizeof(u8),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_dou8vec_minmax,
>> -	},
>> -	{
>> -		.procname	= "igmp_max_memberships",
>> -		.data		= &init_net.ipv4.sysctl_igmp_max_memberships,
>> -		.maxlen		= sizeof(int),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_dointvec
>> -	},
>> -	{
>> -		.procname	= "igmp_max_msf",
>> -		.data		= &init_net.ipv4.sysctl_igmp_max_msf,
>> -		.maxlen		= sizeof(int),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_dointvec
>> -	},
>> -#ifdef CONFIG_IP_MULTICAST
>> -	{
>> -		.procname	= "igmp_qrv",
>> -		.data		= &init_net.ipv4.sysctl_igmp_qrv,
>> -		.maxlen		= sizeof(int),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_dointvec_minmax,
>> -		.extra1		= SYSCTL_ONE
>> -	},
>> -#endif
>>   	{
>>   		.procname	= "tcp_congestion_control",
>>   		.data		= &init_net.ipv4.tcp_congestion_control,
>> @@ -1154,42 +1012,6 @@ static const struct ctl_table ipv4_net_table[] = {
>>   		.proc_handler	= proc_tfo_blackhole_detect_timeout,
>>   		.extra1		= SYSCTL_ZERO,
>>   	},
>> -#ifdef CONFIG_IP_ROUTE_MULTIPATH
>> -	{
>> -		.procname	= "fib_multipath_use_neigh",
>> -		.data		= &init_net.ipv4.sysctl_fib_multipath_use_neigh,
>> -		.maxlen		= sizeof(u8),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_dou8vec_minmax,
>> -		.extra1		= SYSCTL_ZERO,
>> -		.extra2		= SYSCTL_ONE,
>> -	},
>> -	{
>> -		.procname	= "fib_multipath_hash_policy",
>> -		.data		= &init_net.ipv4.sysctl_fib_multipath_hash_policy,
>> -		.maxlen		= sizeof(u8),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_fib_multipath_hash_policy,
>> -		.extra1		= SYSCTL_ZERO,
>> -		.extra2		= SYSCTL_THREE,
>> -	},
>> -	{
>> -		.procname	= "fib_multipath_hash_fields",
>> -		.data		= &init_net.ipv4.sysctl_fib_multipath_hash_fields,
>> -		.maxlen		= sizeof(u32),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_fib_multipath_hash_fields,
>> -		.extra1		= SYSCTL_ONE,
>> -		.extra2		= &fib_multipath_hash_fields_all_mask,
>> -	},
>> -	{
>> -		.procname	= "fib_multipath_hash_seed",
>> -		.data		= &init_net,
>> -		.maxlen		= sizeof(u32),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_fib_multipath_hash_seed,
>> -	},
>> -#endif
>>   	{
>>   		.procname	= "ip_unprivileged_port_start",
>>   		.maxlen		= sizeof(int),
>> @@ -1563,15 +1385,6 @@ static const struct ctl_table ipv4_net_table[] = {
>>   		.proc_handler	= proc_dointvec_minmax,
>>   		.extra1		= SYSCTL_ONE
>>   	},
>> -	{
>> -		.procname	= "fib_notify_on_flag_change",
>> -		.data		= &init_net.ipv4.sysctl_fib_notify_on_flag_change,
>> -		.maxlen		= sizeof(u8),
>> -		.mode		= 0644,
>> -		.proc_handler	= proc_dou8vec_minmax,
>> -		.extra1		= SYSCTL_ZERO,
>> -		.extra2		= SYSCTL_TWO,
>> -	},
>>   	{
>>   		.procname       = "tcp_plb_enabled",
>>   		.data           = &init_net.ipv4.sysctl_tcp_plb_enabled,
>> @@ -1656,6 +1469,196 @@ static const struct ctl_table ipv4_net_table[] = {
>>   		.extra1		= SYSCTL_ONE_THOUSAND,
>>   		.extra2		= &tcp_rto_max_max,
>>   	},
>> +#if IS_ENABLED(CONFIG_IPV4)
>> +	{
>> +		.procname	= "icmp_echo_ignore_all",
>> +		.data		= &init_net.ipv4.sysctl_icmp_echo_ignore_all,
>> +		.maxlen		= sizeof(u8),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_dou8vec_minmax,
>> +		.extra1		= SYSCTL_ZERO,
>> +		.extra2		= SYSCTL_ONE
>> +	},
>> +	{
>> +		.procname	= "icmp_echo_ignore_broadcasts",
>> +		.data		= &init_net.ipv4.sysctl_icmp_echo_ignore_broadcasts,
>> +		.maxlen		= sizeof(u8),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_dou8vec_minmax,
>> +		.extra1		= SYSCTL_ZERO,
>> +		.extra2		= SYSCTL_ONE
>> +	},
>> +	{
>> +		.procname	= "icmp_ignore_bogus_error_responses",
>> +		.data		= &init_net.ipv4.sysctl_icmp_ignore_bogus_error_responses,
>> +		.maxlen		= sizeof(u8),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_dou8vec_minmax,
>> +		.extra1		= SYSCTL_ZERO,
>> +		.extra2		= SYSCTL_ONE
>> +	},
>> +	{
>> +		.procname	= "icmp_errors_use_inbound_ifaddr",
>> +		.data		= &init_net.ipv4.sysctl_icmp_errors_use_inbound_ifaddr,
>> +		.maxlen		= sizeof(u8),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_dou8vec_minmax,
>> +		.extra1		= SYSCTL_ZERO,
>> +		.extra2		= SYSCTL_ONE
>> +	},
>> +	{
>> +		.procname	= "icmp_errors_extension_mask",
>> +		.data		= &init_net.ipv4.sysctl_icmp_errors_extension_mask,
>> +		.maxlen		= sizeof(u8),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_dou8vec_minmax,
>> +		.extra1		= SYSCTL_ZERO,
>> +		.extra2		= &icmp_errors_extension_mask_all,
>> +	},
>> +	{
>> +		.procname	= "icmp_ratelimit",
>> +		.data		= &init_net.ipv4.sysctl_icmp_ratelimit,
>> +		.maxlen		= sizeof(int),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_dointvec_ms_jiffies,
>> +	},
>> +	{
>> +		.procname	= "icmp_ratemask",
>> +		.data		= &init_net.ipv4.sysctl_icmp_ratemask,
>> +		.maxlen		= sizeof(int),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_dointvec
>> +	},
>> +	{
>> +		.procname	= "ip_dynaddr",
>> +		.data		= &init_net.ipv4.sysctl_ip_dynaddr,
>> +		.maxlen		= sizeof(u8),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_dou8vec_minmax,
>> +	},
>> +	{
>> +		.procname	= "ip_default_ttl",
>> +		.data		= &init_net.ipv4.sysctl_ip_default_ttl,
>> +		.maxlen		= sizeof(u8),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_dou8vec_minmax,
>> +		.extra1		= &ip_ttl_min,
>> +		.extra2		= &ip_ttl_max,
>> +	},
>> +	{
>> +		.procname	= "ip_no_pmtu_disc",
>> +		.data		= &init_net.ipv4.sysctl_ip_no_pmtu_disc,
>> +		.maxlen		= sizeof(u8),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_dou8vec_minmax,
>> +	},
>> +	{
>> +		.procname	= "ip_forward_use_pmtu",
>> +		.data		= &init_net.ipv4.sysctl_ip_fwd_use_pmtu,
>> +		.maxlen		= sizeof(u8),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_dou8vec_minmax,
>> +	},
>> +	{
>> +		.procname	= "ip_forward_update_priority",
>> +		.data		= &init_net.ipv4.sysctl_ip_fwd_update_priority,
>> +		.maxlen		= sizeof(u8),
>> +		.mode		= 0644,
>> +		.proc_handler   = ipv4_fwd_update_priority,
>> +		.extra1		= SYSCTL_ZERO,
>> +		.extra2		= SYSCTL_ONE,
>> +	},
>> +	{
>> +		.procname	= "ip_nonlocal_bind",
>> +		.data		= &init_net.ipv4.sysctl_ip_nonlocal_bind,
>> +		.maxlen		= sizeof(u8),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_dou8vec_minmax,
>> +	},
>> +	{
>> +		.procname	= "fwmark_reflect",
>> +		.data		= &init_net.ipv4.sysctl_fwmark_reflect,
>> +		.maxlen		= sizeof(u8),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_dou8vec_minmax,
>> +	},
>> +	{
>> +		.procname	= "igmp_link_local_mcast_reports",
>> +		.data		= &init_net.ipv4.sysctl_igmp_llm_reports,
>> +		.maxlen		= sizeof(u8),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_dou8vec_minmax,
>> +	},
>> +	{
>> +		.procname	= "igmp_max_memberships",
>> +		.data		= &init_net.ipv4.sysctl_igmp_max_memberships,
>> +		.maxlen		= sizeof(int),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_dointvec
>> +	},
>> +	{
>> +		.procname	= "igmp_max_msf",
>> +		.data		= &init_net.ipv4.sysctl_igmp_max_msf,
>> +		.maxlen		= sizeof(int),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_dointvec
>> +	},
>> +#ifdef CONFIG_IP_MULTICAST
>> +	{
>> +		.procname	= "igmp_qrv",
>> +		.data		= &init_net.ipv4.sysctl_igmp_qrv,
>> +		.maxlen		= sizeof(int),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_dointvec_minmax,
>> +		.extra1		= SYSCTL_ONE
>> +	},
>> +#endif
>> +#ifdef CONFIG_IP_ROUTE_MULTIPATH
>> +	{
>> +		.procname	= "fib_multipath_use_neigh",
>> +		.data		= &init_net.ipv4.sysctl_fib_multipath_use_neigh,
>> +		.maxlen		= sizeof(u8),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_dou8vec_minmax,
>> +		.extra1		= SYSCTL_ZERO,
>> +		.extra2		= SYSCTL_ONE,
>> +	},
>> +	{
>> +		.procname	= "fib_multipath_hash_policy",
>> +		.data		= &init_net.ipv4.sysctl_fib_multipath_hash_policy,
>> +		.maxlen		= sizeof(u8),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_fib_multipath_hash_policy,
>> +		.extra1		= SYSCTL_ZERO,
>> +		.extra2		= SYSCTL_THREE,
>> +	},
>> +	{
>> +		.procname	= "fib_multipath_hash_fields",
>> +		.data		= &init_net.ipv4.sysctl_fib_multipath_hash_fields,
>> +		.maxlen		= sizeof(u32),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_fib_multipath_hash_fields,
>> +		.extra1		= SYSCTL_ONE,
>> +		.extra2		= &fib_multipath_hash_fields_all_mask,
>> +	},
>> +	{
>> +		.procname	= "fib_multipath_hash_seed",
>> +		.data		= &init_net,
>> +		.maxlen		= sizeof(u32),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_fib_multipath_hash_seed,
>> +	},
>> +#endif
>> +	{
>> +		.procname	= "fib_notify_on_flag_change",
>> +		.data		= &init_net.ipv4.sysctl_fib_notify_on_flag_change,
>> +		.maxlen		= sizeof(u8),
>> +		.mode		= 0644,
>> +		.proc_handler	= proc_dou8vec_minmax,
>> +		.extra1		= SYSCTL_ZERO,
>> +		.extra2		= SYSCTL_TWO,
>> +	},
>> +#endif
>>   };
>>   
>>   static const struct ctl_table *ipv4_net_table_dup(struct net *net)
>> -- 
>> 2.55.0
>>


  reply	other threads:[~2026-09-29  8:21 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20260928193046.6698-1-fmancera@suse.de>
2026-09-28 19:29 ` [PATCH 01/16 net-next v2] ipv4: introduce CONFIG_IPV4 to decouple the IPv4 stack Fernando Fernandez Mancera
2026-09-28 19:29 ` [PATCH 02/16 net-next v2] net: core: add IPv4 fallback stubs and guards for CONFIG_IPV4=n Fernando Fernandez Mancera
2026-09-28 19:29 ` [PATCH 03/16 net-next v2] net: inet: relocate ip_generic_getfrag and guard IPv4 socket logic Fernando Fernandez Mancera
2026-09-28 19:30 ` [PATCH 04/16 net-next v2] tcp: move protocol agnostic TCP functions out of tcp_ipv4.c Fernando Fernandez Mancera
2026-09-28 19:30 ` [PATCH 05/16 net-next v2] ipv4: raw: split IPv4 specific logic into raw_ipv4.c Fernando Fernandez Mancera
2026-09-28 19:30 ` [PATCH 06/16 net-next v2] ipv4: udp: split IPv4 specific logic into udp_ipv4.c Fernando Fernandez Mancera
2026-09-28 19:30 ` [PATCH 07/16 net-next v2] ipv4: icmp: split IPv4 specific logic into icmp_ipv4.c Fernando Fernandez Mancera
2026-09-28 19:30 ` [PATCH 08/16 net-next v2] ipv4: ping: split IPv4 specific logic into ping_ipv4.c Fernando Fernandez Mancera
2026-09-28 19:30 ` [PATCH 09/16 net-next v2] ipv4: fib: split common nexthop logic to fib_core.c Fernando Fernandez Mancera
2026-09-28 19:30 ` [PATCH 10/16 net-next v2] tunnels: guard IPv4 tunnel functions with CONFIG_IPV4 Fernando Fernandez Mancera
2026-09-28 19:30 ` [PATCH 11/16 net-next v2] ipv4: disable IPv4-only sysctls when CONFIG_IPV4=n Fernando Fernandez Mancera
2026-09-29  7:14   ` Joel Granados
2026-09-29  8:20     ` Fernando Fernandez Mancera [this message]
2026-09-28 19:30 ` [PATCH 12/16 net-next v2] netfilter: ipv4: guard ip_route_me_harder() with CONFIG_IPV4 Fernando Fernandez Mancera
2026-09-28 19:30 ` [PATCH 13/16 net-next v2] net: bridge: guard ARP/RARP proxy and suppression " Fernando Fernandez Mancera
2026-09-28 19:30 ` [PATCH 14/16 net-next v2] wifi: mac80211: replace CONFIG_INET with CONFIG_IPV4 guards Fernando Fernandez Mancera
2026-09-28 19:30 ` [PATCH 15/16 net-next v2] netlabel: cipso: introduce CONFIG_CIPSO to decouple IPv4 dependency Fernando Fernandez Mancera
2026-09-28 19:30 ` [PATCH 16/16 net-next v2] ipv4: make CONFIG_IPV4 boolean Fernando Fernandez Mancera

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5cdbc432-7d7e-47f7-897d-2b71a1a4a7a4@suse.de \
    --to=fmancera@suse.de \
    --cc=bronzed_45_vested@icloud.com \
    --cc=chia-yu.chang@nokia-bell-labs.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=edumazet@kernel.org \
    --cc=horms@kernel.org \
    --cc=idosch@nvidia.com \
    --cc=joel.granados@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=yuuchihsu@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®