* [PATCH net] selftests: bonding: do not set port down before adding to bond
@ 2023-08-17 8:24 Hangbin Liu
2023-08-17 10:38 ` Phil Sutter
2023-08-22 2:10 ` patchwork-bot+netdevbpf
0 siblings, 2 replies; 3+ messages in thread
From: Hangbin Liu @ 2023-08-17 8:24 UTC (permalink / raw)
To: netdev
Cc: Jay Vosburgh, David S . Miller, Jakub Kicinski, Paolo Abeni,
Eric Dumazet, Liang Li, Jiri Pirko, Nikolay Aleksandrov,
Phil Sutter, Hangbin Liu, Zhengchao Shao
Before adding a port to bond, it need to be set down first. In the
lacpdu test the author set the port down specifically. But commit
a4abfa627c38 ("net: rtnetlink: Enslave device before bringing it up")
changed the operation order, the kernel will set the port down _after_
adding to bond. So all the ports will be down at last and the test failed.
In fact, the veth interfaces are already inactive when added. This
means there's no need to set them down again before adding to the bond.
Let's just remove the link down operation.
Reported-by: Zhengchao Shao <shaozhengchao@huawei.com>
Closes: https://lore.kernel.org/netdev/a0ef07c7-91b0-94bd-240d-944a330fcabd@huawei.com/
Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
---
PS: I'm not sure if this should be a regression of a4abfa627c38.
---
.../selftests/drivers/net/bonding/bond-break-lacpdu-tx.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/drivers/net/bonding/bond-break-lacpdu-tx.sh b/tools/testing/selftests/drivers/net/bonding/bond-break-lacpdu-tx.sh
index 47ab90596acb..6358df5752f9 100755
--- a/tools/testing/selftests/drivers/net/bonding/bond-break-lacpdu-tx.sh
+++ b/tools/testing/selftests/drivers/net/bonding/bond-break-lacpdu-tx.sh
@@ -57,8 +57,8 @@ ip link add name veth2-bond type veth peer name veth2-end
# add ports
ip link set fbond master fab-br0
-ip link set veth1-bond down master fbond
-ip link set veth2-bond down master fbond
+ip link set veth1-bond master fbond
+ip link set veth2-bond master fbond
# bring up
ip link set veth1-end up
--
2.38.1
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH net] selftests: bonding: do not set port down before adding to bond
2023-08-17 8:24 [PATCH net] selftests: bonding: do not set port down before adding to bond Hangbin Liu
@ 2023-08-17 10:38 ` Phil Sutter
2023-08-22 2:10 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: Phil Sutter @ 2023-08-17 10:38 UTC (permalink / raw)
To: Hangbin Liu
Cc: netdev, Jay Vosburgh, David S . Miller, Jakub Kicinski,
Paolo Abeni, Eric Dumazet, Liang Li, Jiri Pirko,
Nikolay Aleksandrov, Zhengchao Shao
On Thu, Aug 17, 2023 at 04:24:59PM +0800, Hangbin Liu wrote:
> Before adding a port to bond, it need to be set down first. In the
> lacpdu test the author set the port down specifically. But commit
> a4abfa627c38 ("net: rtnetlink: Enslave device before bringing it up")
> changed the operation order, the kernel will set the port down _after_
> adding to bond. So all the ports will be down at last and the test failed.
>
> In fact, the veth interfaces are already inactive when added. This
> means there's no need to set them down again before adding to the bond.
> Let's just remove the link down operation.
>
> Reported-by: Zhengchao Shao <shaozhengchao@huawei.com>
> Closes: https://lore.kernel.org/netdev/a0ef07c7-91b0-94bd-240d-944a330fcabd@huawei.com/
> Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
> ---
> PS: I'm not sure if this should be a regression of a4abfa627c38.
Well, in theory it might be as ip-link's behaviour changed in this
detail. Yet:
> -ip link set veth1-bond down master fbond
Without prior knowledge of kernel interna[1], one would expect this
command to result in veth1-bond being enslaved and down, irrespective of
in which order the link changes happen.
The command my patch enables, namely:
| ip link set veth1-bond up master fbond
is actually intuitive. OK, it won't work if veth1-bond is up already.
But I guess that's rather a missing feature (bridge driver supports it
for instance).
Cheers, Phil
[1] - link-state change happens before master assignment
- bond driver "ups" newly attached ports
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH net] selftests: bonding: do not set port down before adding to bond
2023-08-17 8:24 [PATCH net] selftests: bonding: do not set port down before adding to bond Hangbin Liu
2023-08-17 10:38 ` Phil Sutter
@ 2023-08-22 2:10 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+netdevbpf @ 2023-08-22 2:10 UTC (permalink / raw)
To: Hangbin Liu
Cc: netdev, j.vosburgh, davem, kuba, pabeni, edumazet, liali, jiri,
razor, phil, shaozhengchao
Hello:
This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Thu, 17 Aug 2023 16:24:59 +0800 you wrote:
> Before adding a port to bond, it need to be set down first. In the
> lacpdu test the author set the port down specifically. But commit
> a4abfa627c38 ("net: rtnetlink: Enslave device before bringing it up")
> changed the operation order, the kernel will set the port down _after_
> adding to bond. So all the ports will be down at last and the test failed.
>
> In fact, the veth interfaces are already inactive when added. This
> means there's no need to set them down again before adding to the bond.
> Let's just remove the link down operation.
>
> [...]
Here is the summary with links:
- [net] selftests: bonding: do not set port down before adding to bond
https://git.kernel.org/netdev/net/c/be809424659c
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-08-22 2:10 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-17 8:24 [PATCH net] selftests: bonding: do not set port down before adding to bond Hangbin Liu
2023-08-17 10:38 ` Phil Sutter
2023-08-22 2:10 ` patchwork-bot+netdevbpf
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.