lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <3124000.1757699435@famine>
Date: Fri, 12 Sep 2025 10:50:35 -0700
From: Jay Vosburgh <jv@...sburgh.net>
To: Nikolay Aleksandrov <razor@...ckwall.org>
cc: Pradyumn Rahar <pradyumn.rahar@...cle.com>,
    linux-kernel@...r.kernel.org, linux-rdma@...r.kernel.org,
    andrew+netdev@...n.ch, davem@...emloft.net, edumazet@...gle.com,
    kuba@...nel.org, pabeni@...hat.com, netdev@...r.kernel.org,
    anand.a.khoje@...cle.com, rama.nichanamatlu@...cle.com,
    manjunath.b.patil@...cle.com, rajesh.sivaramasubramaniom@...cle.com
Subject: Re: [PATCH RFC net 1/1] net/bonding: add 0 to the range of
 arp_missed_max

Nikolay Aleksandrov <razor@...ckwall.org> wrote:

>On 9/12/25 12:16, Pradyumn Rahar wrote:
>> NetworkManager uses 0 to indicate that the option `arp_missed_max`
>> is in unset state as this option is not compatible with 802.3AD,
>> balance-tlb and balance-alb modes.
>> This causes kernel to report errors like this:
>> kernel: backend0: option arp_missed_max: invalid value (0)
>> kernel: backend0: option arp_missed_max: allowed values 1 - 255
>> NetworkManager[1766]: <error> [1757489103.9525] platform-linux: sysctl: failed to set 'bonding/arp_missed_max' to '0': (22) Invalid argument
>> NetworkManager[1766]: <warn>  [1757489103.9525] device (backend0): failed to set bonding attribute 'arp_missed_max' to '0'
>> when NetworkManager tries to set this value to 0
>> Signed-off-by: Pradyumn Rahar <pradyumn.rahar@...cle.com>
>> ---
>>   drivers/net/bonding/bond_options.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>> diff --git a/drivers/net/bonding/bond_options.c
>> b/drivers/net/bonding/bond_options.c
>> index 3b6f815c55ff..243fde3caecd 100644
>> --- a/drivers/net/bonding/bond_options.c
>> +++ b/drivers/net/bonding/bond_options.c
>> @@ -230,7 +230,7 @@ static const struct bond_opt_value bond_ad_user_port_key_tbl[] = {
>>   };
>>     static const struct bond_opt_value bond_missed_max_tbl[] = {
>> -	{ "minval",	1,	BOND_VALFLAG_MIN},
>> +	{ "minval",	0,	BOND_VALFLAG_MIN},
>>   	{ "maxval",	255,	BOND_VALFLAG_MAX},
>>   	{ "default",	2,	BOND_VALFLAG_DEFAULT},
>>   	{ NULL,		-1,	0},
>
>This sounds like a problem in NetworkManager, why not fix it?
>The kernel code is correct and there are many other options which don't make sense in these
>modes, we're not going to add new states to them just to accommodate broken user-space code.
>
>The option's definition clearly states:
>               .unsuppmodes = BIT(BOND_MODE_8023AD) | BIT(BOND_MODE_TLB) |
>                               BIT(BOND_MODE_ALB)

	In addition to Nikolay's comment, permitting arp_missed_max to
be set to zero implies that zero is a valid setting for the option.
That's not the case here, as a setting of zero makes no logical sense in
the context of its documented behavior:

arp_missed_max

        Specifies the number of arp_interval monitor checks that must
        fail in order for an interface to be marked down by the ARP monitor.

        In order to provide orderly failover semantics, backup interfaces
        are permitted an extra monitor check (i.e., they must fail
        arp_missed_max + 1 times before being marked down).

        The default value is 2, and the allowable range is 1 - 255.

	-J

---
	-Jay Vosburgh, jv@...sburgh.net

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ