diff mbox series

[net,v3] bonding: fix ad_actor_system option setting to default

Message ID 20211218015001.1740-1-ffmancera@riseup.net (mailing list archive)
State Superseded
Delegated to: Netdev Maintainers
Headers show
Series [net,v3] bonding: fix ad_actor_system option setting to default | expand

Checks

Context Check Description
netdev/tree_selection success Clearly marked for net
netdev/fixes_present fail Series targets non-next tree, but doesn't contain any Fixes tags
netdev/subject_prefix success Link
netdev/cover_letter success Single patches do not need cover letters
netdev/patch_count success Link
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 1 this patch: 1
netdev/cc_maintainers fail 7 maintainers not CCed: j.vosburgh@gmail.com corbet@lwn.net linux-doc@vger.kernel.org vfalico@gmail.com kuba@kernel.org davem@davemloft.net andy@greyhouse.net
netdev/build_clang success Errors and warnings before: 0 this patch: 0
netdev/module_param success Was 0 now: 0
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/verify_fixes success No Fixes tag
netdev/build_allmodconfig_warn success Errors and warnings before: 1 this patch: 1
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 25 lines checked
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0

Commit Message

Fernando F. Mancera Dec. 18, 2021, 1:50 a.m. UTC
When 802.3ad bond mode is configured the ad_actor_system option is set to
"00:00:00:00:00:00". But when trying to set the all-zeroes MAC as actors'
system address it was failing with EINVAL.

An all-zeroes ethernet address is valid, only multicast addresses are not
valid values.

Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
---
v2: added documentation changes and modified commit message
v3: fixed format warning on commit message
---
 Documentation/networking/bonding.rst | 11 ++++++-----
 drivers/net/bonding/bond_options.c   |  2 +-
 2 files changed, 7 insertions(+), 6 deletions(-)

Comments

Jay Vosburgh Dec. 18, 2021, 2:34 a.m. UTC | #1
Fernando Fernandez Mancera <ffmancera@riseup.net> wrote:

>When 802.3ad bond mode is configured the ad_actor_system option is set to
>"00:00:00:00:00:00". But when trying to set the all-zeroes MAC as actors'
>system address it was failing with EINVAL.
>
>An all-zeroes ethernet address is valid, only multicast addresses are not
>valid values.
>
>Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>

Acked-by: Jay Vosburgh <jay.vosburgh@canonical.com>

>---
>v2: added documentation changes and modified commit message
>v3: fixed format warning on commit message
>---
> Documentation/networking/bonding.rst | 11 ++++++-----
> drivers/net/bonding/bond_options.c   |  2 +-
> 2 files changed, 7 insertions(+), 6 deletions(-)
>
>diff --git a/Documentation/networking/bonding.rst b/Documentation/networking/bonding.rst
>index 31cfd7d674a6..c0a789b00806 100644
>--- a/Documentation/networking/bonding.rst
>+++ b/Documentation/networking/bonding.rst
>@@ -196,11 +196,12 @@ ad_actor_sys_prio
> ad_actor_system
> 
> 	In an AD system, this specifies the mac-address for the actor in
>-	protocol packet exchanges (LACPDUs). The value cannot be NULL or
>-	multicast. It is preferred to have the local-admin bit set for this
>-	mac but driver does not enforce it. If the value is not given then
>-	system defaults to using the masters' mac address as actors' system
>-	address.
>+	protocol packet exchanges (LACPDUs). The value cannot be a multicast
>+	address. If the all-zeroes MAC is specified, bonding will internally
>+	use the MAC of the bond itself. It is preferred to have the
>+	local-admin bit set for this mac but driver does not enforce it. If
>+	the value is not given then system defaults to using the masters'
>+	mac address as actors' system address.
> 
> 	This parameter has effect only in 802.3ad mode and is available through
> 	SysFs interface.
>diff --git a/drivers/net/bonding/bond_options.c b/drivers/net/bonding/bond_options.c
>index a8fde3bc458f..b93337b5a721 100644
>--- a/drivers/net/bonding/bond_options.c
>+++ b/drivers/net/bonding/bond_options.c
>@@ -1526,7 +1526,7 @@ static int bond_option_ad_actor_system_set(struct bonding *bond,
> 		mac = (u8 *)&newval->value;
> 	}
> 
>-	if (!is_valid_ether_addr(mac))
>+	if (is_multicast_ether_addr(mac))
> 		goto err;
> 
> 	netdev_dbg(bond->dev, "Setting ad_actor_system to %pM\n", mac);
>-- 
>2.30.2
>
Fernando F. Mancera Dec. 20, 2021, 2:53 p.m. UTC | #2
On 12/18/21 03:34, Jay Vosburgh wrote:
> Fernando Fernandez Mancera <ffmancera@riseup.net> wrote:
> 
>> When 802.3ad bond mode is configured the ad_actor_system option is set to
>> "00:00:00:00:00:00". But when trying to set the all-zeroes MAC as actors'
>> system address it was failing with EINVAL.
>>
>> An all-zeroes ethernet address is valid, only multicast addresses are not
>> valid values.
>>
>> Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
> 
> Acked-by: Jay Vosburgh <jay.vosburgh@canonical.com>
> 
>> ---
>> v2: added documentation changes and modified commit message
>> v3: fixed format warning on commit message
>> ---
>> Documentation/networking/bonding.rst | 11 ++++++-----
>> drivers/net/bonding/bond_options.c   |  2 +-
>> 2 files changed, 7 insertions(+), 6 deletions(-)
>>
>> diff --git a/Documentation/networking/bonding.rst b/Documentation/networking/bonding.rst
>> index 31cfd7d674a6..c0a789b00806 100644
>> --- a/Documentation/networking/bonding.rst
>> +++ b/Documentation/networking/bonding.rst
>> @@ -196,11 +196,12 @@ ad_actor_sys_prio
>> ad_actor_system
>>
>> 	In an AD system, this specifies the mac-address for the actor in
>> -	protocol packet exchanges (LACPDUs). The value cannot be NULL or
>> -	multicast. It is preferred to have the local-admin bit set for this
>> -	mac but driver does not enforce it. If the value is not given then
>> -	system defaults to using the masters' mac address as actors' system
>> -	address.
>> +	protocol packet exchanges (LACPDUs). The value cannot be a multicast
>> +	address. If the all-zeroes MAC is specified, bonding will internally
>> +	use the MAC of the bond itself. It is preferred to have the
>> +	local-admin bit set for this mac but driver does not enforce it. If
>> +	the value is not given then system defaults to using the masters'
>> +	mac address as actors' system address.
>>
>> 	This parameter has effect only in 802.3ad mode and is available through
>> 	SysFs interface.
>> diff --git a/drivers/net/bonding/bond_options.c b/drivers/net/bonding/bond_options.c
>> index a8fde3bc458f..b93337b5a721 100644
>> --- a/drivers/net/bonding/bond_options.c
>> +++ b/drivers/net/bonding/bond_options.c
>> @@ -1526,7 +1526,7 @@ static int bond_option_ad_actor_system_set(struct bonding *bond,
>> 		mac = (u8 *)&newval->value;
>> 	}
>>
>> -	if (!is_valid_ether_addr(mac))
>> +	if (is_multicast_ether_addr(mac))
>> 		goto err;
>>
>> 	netdev_dbg(bond->dev, "Setting ad_actor_system to %pM\n", mac);
>> -- 
>> 2.30.2
>>

I noticed this patch state in patchwork is "changes requested"[1]. But I 
didn't get any reply or request. Is the state wrong? Should I ignore it? 
If not, what is missing?

Thanks,
Fernando.

[1] 
https://patchwork.kernel.org/project/netdevbpf/patch/20211218015001.1740-1-ffmancera@riseup.net/
Jakub Kicinski Dec. 20, 2021, 4:27 p.m. UTC | #3
On Mon, 20 Dec 2021 15:53:27 +0100 Fernando F. Mancera wrote:
> I noticed this patch state in patchwork is "changes requested"[1]. But I 
> didn't get any reply or request. Is the state wrong? Should I ignore it? 

Hm, unclear why. Could you send a v4 with a Fixes tag included and CCing
all the maintainers suggested by get_maintainer.pl?
Fernando F. Mancera Dec. 20, 2021, 4:54 p.m. UTC | #4
On 12/20/21 17:27, Jakub Kicinski wrote:
> On Mon, 20 Dec 2021 15:53:27 +0100 Fernando F. Mancera wrote:
>> I noticed this patch state in patchwork is "changes requested"[1]. But I
>> didn't get any reply or request. Is the state wrong? Should I ignore it?
> 
> Hm, unclear why. Could you send a v4 with a Fixes tag included and CCing
> all the maintainers suggested by get_maintainer.pl?
> 

Thanks Jakub, will do.
diff mbox series

Patch

diff --git a/Documentation/networking/bonding.rst b/Documentation/networking/bonding.rst
index 31cfd7d674a6..c0a789b00806 100644
--- a/Documentation/networking/bonding.rst
+++ b/Documentation/networking/bonding.rst
@@ -196,11 +196,12 @@  ad_actor_sys_prio
 ad_actor_system
 
 	In an AD system, this specifies the mac-address for the actor in
-	protocol packet exchanges (LACPDUs). The value cannot be NULL or
-	multicast. It is preferred to have the local-admin bit set for this
-	mac but driver does not enforce it. If the value is not given then
-	system defaults to using the masters' mac address as actors' system
-	address.
+	protocol packet exchanges (LACPDUs). The value cannot be a multicast
+	address. If the all-zeroes MAC is specified, bonding will internally
+	use the MAC of the bond itself. It is preferred to have the
+	local-admin bit set for this mac but driver does not enforce it. If
+	the value is not given then system defaults to using the masters'
+	mac address as actors' system address.
 
 	This parameter has effect only in 802.3ad mode and is available through
 	SysFs interface.
diff --git a/drivers/net/bonding/bond_options.c b/drivers/net/bonding/bond_options.c
index a8fde3bc458f..b93337b5a721 100644
--- a/drivers/net/bonding/bond_options.c
+++ b/drivers/net/bonding/bond_options.c
@@ -1526,7 +1526,7 @@  static int bond_option_ad_actor_system_set(struct bonding *bond,
 		mac = (u8 *)&newval->value;
 	}
 
-	if (!is_valid_ether_addr(mac))
+	if (is_multicast_ether_addr(mac))
 		goto err;
 
 	netdev_dbg(bond->dev, "Setting ad_actor_system to %pM\n", mac);