All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jay Vosburgh <jv@jvosburgh.net>
To: Eric Dumazet <edumazet@google.com>
Cc: Jiale Yao <yaojiale02@163.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Alexander Aring <alex.aring@gmail.com>,
	Marcel Holtmann <marcel@holtmann.org>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	Oliver Hartkopp <socketcan@hartkopp.net>
Subject: Re: [PATCH] bonding: reject IEEE 802.15.4 devices in bond_enslave
Date: Tue, 01 Sep 2026 16:55:06 -0700	[thread overview]
Message-ID: <588055.1788306906@famine> (raw)
In-Reply-To: <CANn89iJthuCa-BZD9vik7LUw1to8aqTFKRgQfmOGozGvMeLanw@mail.gmail.com>

Eric Dumazet <edumazet@google.com> wrote:

>On Mon, Aug 31, 2026 at 4:07 PM Jiale Yao <yaojiale02@163.com> wrote:
>>
>> Bonding already refuses CAN devices because their protocol-specific state
>> is incompatible with the bonding model. IEEE 802.15.4 devices have the
>> same constraint: they keep protocol-specific state in
>> dev->ieee802154_ptr and do not use Ethernet link-layer semantics.
>>
>> Extend the existing check to reject ARPHRD_IEEE802154 and
>> ARPHRD_IEEE802154_MONITOR devices before bonding changes their link-layer
>> settings.
>>
>> Link: https://lore.kernel.org/netdev/aohMHTTH4VqqgZA7@fedora/
>> Link: https://lore.kernel.org/netdev/6001bd73-ef68-4820-8371-a22775fb820a@hartkopp.net/
>> Fixes: d5ae67bacd96 ("ieee802154: rework interface registration")
>> Suggested-by: Oliver Hartkopp <socketcan@hartkopp.net>
>> Signed-off-by: Jiale Yao <yaojiale02@163.com>
>> ---
>>  drivers/net/bonding/bond_main.c | 6 ++++--
>>  1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
>> index 522eab060f9e..c716336c5172 100644
>> --- a/drivers/net/bonding/bond_main.c
>> +++ b/drivers/net/bonding/bond_main.c
>> @@ -1894,9 +1894,11 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
>>         struct sockaddr_storage ss;
>>         int res = 0, i;
>>
>> -       if (slave_dev->type == ARPHRD_CAN) {
>> +       if (slave_dev->type == ARPHRD_CAN ||
>> +           slave_dev->type == ARPHRD_IEEE802154 ||
>> +           slave_dev->type == ARPHRD_IEEE802154_MONITOR) {
>>                 BOND_NL_ERR(bond_dev, extack,
>> -                           "CAN devices cannot be enslaved");
>> +                           "CAN and IEEE 802.15.4 devices cannot be enslaved");
>>                 return -EPERM;
>>         }
>
>What about ARPHRD_6LOWPAN ?
>
>I think it is due time to use an allowlist in bonding (and team) to
>stop applying bandaids.
>
>Plan of action:
>
>1) Add:
>
>static inline bool netdev_type_is_lag_compatible(unsigned short type)
>{
>      return type == ARPHRD_ETHER || type == ARPHRD_INFINIBAND;
>}
>
>2) And use it in bond_enslave() and team_port_add()

	Agreed, although the list might need to be more than just ETHER
and INFINIBAND.  I recall that folks in the past have bonded ethernet
with wifi; does wifi show up as ARPHRD_ETHER or ARPHRD_IEEE80211?  A
quick grep suggests that most of them are ETHER, but not all.

	Dummy interfaces are used a lot in the tests, but those should
be ETHER.

	-J

>Thanks.
>
>pw-bot: cr

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


      reply	other threads:[~2026-09-01 23:55 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-31 14:07 [PATCH] bonding: reject IEEE 802.15.4 devices in bond_enslave Jiale Yao
2026-08-31 14:20 ` Eric Dumazet
2026-09-01 23:55   ` Jay Vosburgh [this message]

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=588055.1788306906@famine \
    --to=jv@jvosburgh.net \
    --cc=alex.aring@gmail.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcel@holtmann.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=socketcan@hartkopp.net \
    --cc=yaojiale02@163.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 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.