From: Ido Schimmel <idosch@nvidia.com>
To: netdev@vger.kernel.org
Cc: davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com,
edumazet@kernel.org, jv@jvosburgh.net, andrew+netdev@lunn.ch,
razor@blackwall.org, aahila@google.com,
Ido Schimmel <idosch@nvidia.com>
Subject: [PATCH net-next 1/2] bonding: 3ad: Receive packets in COLLECTING state
Date: Wed, 11 Nov 2026 19:19:46 +0200 [thread overview]
Message-ID: <20261111171947.2816258-1-idosch@nvidia.com> (raw)
When coupled control is disabled, a port in COLLECTING state is supposed
to receive packets, but it does not. The bond only delivers packets from
slaves whose 'inactive' flag is cleared, whereas
bond_set_slave_rx_enabled_flags() only clears 'rx_disabled'.
Fix by clearing 'inactive' as well.
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
Notes:
Targeting at net-next since this never worked.
Known issues that this patch does not address:
1. Changing 'all_slaves_active' from 1 to 0 while a port is in
COLLECTING state sets its 'inactive' flag and the port stops
receiving until the next mux state transition. This is not new,
COLLECTING is a transient state and the option is off by default, so I
do not think it is worth handling.
2. The 'inactive' flag shares a bitfield with other slave flags. The
802.3ad state machine writes them under the mode lock, while the
'all_slaves_active' handler writes 'inactive' under RTNL only. This is
not new.
include/net/bonding.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/net/bonding.h b/include/net/bonding.h
index 598d56b1bc97..cb89aff437f4 100644
--- a/include/net/bonding.h
+++ b/include/net/bonding.h
@@ -594,6 +594,7 @@ static inline void bond_set_slave_active_flags(struct slave *slave,
static inline void bond_set_slave_rx_enabled_flags(struct slave *slave,
bool notify)
{
+ slave->inactive = 0;
slave->rx_disabled = 0;
}
--
2.56.0
next reply other threads:[~2026-11-11 17:20 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-11 17:19 Ido Schimmel [this message]
2026-11-11 17:19 ` [PATCH net-next 2/2] selftests: bonding: Add a test for 802.3ad with coupled control disabled Ido Schimmel
2026-11-12 20:21 ` netdev-bot+sashiko
2026-11-13 2:16 ` Hangbin Liu
2026-11-13 2:24 ` Hangbin Liu
2026-11-12 20:21 ` [PATCH net-next 1/2] bonding: 3ad: Receive packets in COLLECTING state netdev-bot+sashiko
2026-11-13 1:32 ` Hangbin Liu
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=20261111171947.2816258-1-idosch@nvidia.com \
--to=idosch@nvidia.com \
--cc=aahila@google.com \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@kernel.org \
--cc=jv@jvosburgh.net \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=razor@blackwall.org \
/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 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.