BPF List
 help / color / mirror / Atom feed
From: Daniel Borkmann <daniel@iogearbox.net>
To: netdev@vger.kernel.org
Cc: bpf@vger.kernel.org, mkubecek@suse.cz,
	Nikolay Aleksandrov <razor@blackwall.org>,
	Ido Schimmel <idosch@idosch.org>, Jiri Pirko <jiri@nvidia.com>
Subject: [PATCH net 2/5] bonding: Fix initial {vlan,mpls}_feature set in bond_compute_features
Date: Tue, 10 Dec 2024 15:12:42 +0100	[thread overview]
Message-ID: <20241210141245.327886-2-daniel@iogearbox.net> (raw)
In-Reply-To: <20241210141245.327886-1-daniel@iogearbox.net>

If a bonding device has slave devices, then the current logic to derive
the feature set for the master bond device is limited in that flags which
are fully supported by the underlying slave devices cannot be propagated
up to vlan devices which sit on top of bond devices. Instead, these get
blindly masked out via current NETIF_F_ALL_FOR_ALL logic.

vlan_features and mpls_features should reuse netdev_base_features() in
order derive the set in the same way as ndo_fix_features before iterating
through the slave devices to refine the feature set.

Fixes: a9b3ace44c7d ("bonding: fix vlan_features computing")
Fixes: 2e770b507ccd ("net: bonding: Inherit MPLS features from slave devices")
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Cc: Nikolay Aleksandrov <razor@blackwall.org>
Cc: Ido Schimmel <idosch@idosch.org>
Cc: Jiri Pirko <jiri@nvidia.com>
---
 drivers/net/bonding/bond_main.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 42c835c60cd8..320dd71392ef 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -1563,8 +1563,9 @@ static void bond_compute_features(struct bonding *bond)
 
 	if (!bond_has_slaves(bond))
 		goto done;
-	vlan_features &= NETIF_F_ALL_FOR_ALL;
-	mpls_features &= NETIF_F_ALL_FOR_ALL;
+
+	vlan_features = netdev_base_features(vlan_features);
+	mpls_features = netdev_base_features(mpls_features);
 
 	bond_for_each_slave(bond, slave, iter) {
 		vlan_features = netdev_increment_features(vlan_features,
-- 
2.43.0


  reply	other threads:[~2024-12-10 14:12 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-10 14:12 [PATCH net 1/5] net, team, bonding: Add netdev_base_features helper Daniel Borkmann
2024-12-10 14:12 ` Daniel Borkmann [this message]
2024-12-11  7:44   ` [PATCH net 2/5] bonding: Fix initial {vlan,mpls}_feature set in bond_compute_features Nikolay Aleksandrov
2024-12-11  9:09   ` Hangbin Liu
2024-12-10 14:12 ` [PATCH net 3/5] bonding: Fix feature propagation of NETIF_F_GSO_ENCAP_ALL Daniel Borkmann
2024-12-11  7:46   ` Nikolay Aleksandrov
2024-12-11  9:18   ` Hangbin Liu
2024-12-10 14:12 ` [PATCH net 4/5] team: Fix initial vlan_feature set in __team_compute_features Daniel Borkmann
2024-12-11  7:47   ` Nikolay Aleksandrov
2024-12-11  9:10   ` Hangbin Liu
2024-12-10 14:12 ` [PATCH net 5/5] team: Fix feature propagation of NETIF_F_GSO_ENCAP_ALL Daniel Borkmann
2024-12-11  7:47   ` Nikolay Aleksandrov
2024-12-11  9:19   ` Hangbin Liu
2024-12-11  1:33 ` [PATCH net 1/5] net, team, bonding: Add netdev_base_features helper Hangbin Liu
2024-12-11  7:39 ` Nikolay Aleksandrov
2024-12-12 10:58 ` Paolo Abeni
2024-12-12 12:07   ` Daniel Borkmann
2024-12-12 11:10 ` patchwork-bot+netdevbpf

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=20241210141245.327886-2-daniel@iogearbox.net \
    --to=daniel@iogearbox.net \
    --cc=bpf@vger.kernel.org \
    --cc=idosch@idosch.org \
    --cc=jiri@nvidia.com \
    --cc=mkubecek@suse.cz \
    --cc=netdev@vger.kernel.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox