* [PATCH net 1/5] net, team, bonding: Add netdev_base_features helper
@ 2024-12-10 14:12 Daniel Borkmann
2024-12-10 14:12 ` [PATCH net 2/5] bonding: Fix initial {vlan,mpls}_feature set in bond_compute_features Daniel Borkmann
` (7 more replies)
0 siblings, 8 replies; 18+ messages in thread
From: Daniel Borkmann @ 2024-12-10 14:12 UTC (permalink / raw)
To: netdev; +Cc: bpf, mkubecek, Nikolay Aleksandrov, Ido Schimmel, Jiri Pirko
Both bonding and team driver have logic to derive the base feature
flags before iterating over their slave devices to refine the set
via netdev_increment_features().
Add a small helper netdev_base_features() so this can be reused
instead of having it open-coded multiple times.
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 | 4 +---
drivers/net/team/team_core.c | 3 +--
include/linux/netdev_features.h | 7 +++++++
3 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 49dd4fe195e5..42c835c60cd8 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -1520,9 +1520,7 @@ static netdev_features_t bond_fix_features(struct net_device *dev,
struct slave *slave;
mask = features;
-
- features &= ~NETIF_F_ONE_FOR_ALL;
- features |= NETIF_F_ALL_FOR_ALL;
+ features = netdev_base_features(features);
bond_for_each_slave(bond, slave, iter) {
features = netdev_increment_features(features,
diff --git a/drivers/net/team/team_core.c b/drivers/net/team/team_core.c
index a1b27b69f010..1df062c67640 100644
--- a/drivers/net/team/team_core.c
+++ b/drivers/net/team/team_core.c
@@ -2011,8 +2011,7 @@ static netdev_features_t team_fix_features(struct net_device *dev,
netdev_features_t mask;
mask = features;
- features &= ~NETIF_F_ONE_FOR_ALL;
- features |= NETIF_F_ALL_FOR_ALL;
+ features = netdev_base_features(features);
rcu_read_lock();
list_for_each_entry_rcu(port, &team->port_list, list) {
diff --git a/include/linux/netdev_features.h b/include/linux/netdev_features.h
index 66e7d26b70a4..11be70a7929f 100644
--- a/include/linux/netdev_features.h
+++ b/include/linux/netdev_features.h
@@ -253,4 +253,11 @@ static inline int find_next_netdev_feature(u64 feature, unsigned long start)
NETIF_F_GSO_UDP_TUNNEL | \
NETIF_F_GSO_UDP_TUNNEL_CSUM)
+static inline netdev_features_t netdev_base_features(netdev_features_t features)
+{
+ features &= ~NETIF_F_ONE_FOR_ALL;
+ features |= NETIF_F_ALL_FOR_ALL;
+ return features;
+}
+
#endif /* _LINUX_NETDEV_FEATURES_H */
--
2.43.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH net 2/5] bonding: Fix initial {vlan,mpls}_feature set in bond_compute_features
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
2024-12-11 7:44 ` 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
` (6 subsequent siblings)
7 siblings, 2 replies; 18+ messages in thread
From: Daniel Borkmann @ 2024-12-10 14:12 UTC (permalink / raw)
To: netdev; +Cc: bpf, mkubecek, Nikolay Aleksandrov, Ido Schimmel, Jiri Pirko
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
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH net 3/5] bonding: Fix feature propagation of NETIF_F_GSO_ENCAP_ALL
2024-12-10 14:12 [PATCH net 1/5] net, team, bonding: Add netdev_base_features helper Daniel Borkmann
2024-12-10 14:12 ` [PATCH net 2/5] bonding: Fix initial {vlan,mpls}_feature set in bond_compute_features Daniel Borkmann
@ 2024-12-10 14:12 ` 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
` (5 subsequent siblings)
7 siblings, 2 replies; 18+ messages in thread
From: Daniel Borkmann @ 2024-12-10 14:12 UTC (permalink / raw)
To: netdev; +Cc: bpf, mkubecek, Nikolay Aleksandrov, Ido Schimmel, Jiri Pirko
Drivers like mlx5 expose NIC's vlan_features such as
NETIF_F_GSO_UDP_TUNNEL & NETIF_F_GSO_UDP_TUNNEL_CSUM which are
later not propagated when the underlying devices are bonded and
a vlan device created on top of the bond.
Right now, the more cumbersome workaround for this is to create
the vlan on top of the mlx5 and then enslave the vlan devices
to a bond.
To fix this, add NETIF_F_GSO_ENCAP_ALL to BOND_VLAN_FEATURES
such that bond_compute_features() can probe and propagate the
vlan_features from the slave devices up to the vlan device.
Given the following bond:
# ethtool -i enp2s0f{0,1}np{0,1}
driver: mlx5_core
[...]
# ethtool -k enp2s0f0np0 | grep udp
tx-udp_tnl-segmentation: on
tx-udp_tnl-csum-segmentation: on
tx-udp-segmentation: on
rx-udp_tunnel-port-offload: on
rx-udp-gro-forwarding: off
# ethtool -k enp2s0f1np1 | grep udp
tx-udp_tnl-segmentation: on
tx-udp_tnl-csum-segmentation: on
tx-udp-segmentation: on
rx-udp_tunnel-port-offload: on
rx-udp-gro-forwarding: off
# ethtool -k bond0 | grep udp
tx-udp_tnl-segmentation: on
tx-udp_tnl-csum-segmentation: on
tx-udp-segmentation: on
rx-udp_tunnel-port-offload: off [fixed]
rx-udp-gro-forwarding: off
Before:
# ethtool -k bond0.100 | grep udp
tx-udp_tnl-segmentation: off [requested on]
tx-udp_tnl-csum-segmentation: off [requested on]
tx-udp-segmentation: on
rx-udp_tunnel-port-offload: off [fixed]
rx-udp-gro-forwarding: off
After:
# ethtool -k bond0.100 | grep udp
tx-udp_tnl-segmentation: on
tx-udp_tnl-csum-segmentation: on
tx-udp-segmentation: on
rx-udp_tunnel-port-offload: off [fixed]
rx-udp-gro-forwarding: off
Various users have run into this reporting performance issues when
configuring Cilium in vxlan tunneling mode and having the combination
of bond & vlan for the core devices connecting the Kubernetes cluster
to the outside world.
Fixes: a9b3ace44c7d ("bonding: fix vlan_features computing")
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 | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 320dd71392ef..7b78c2bada81 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -1534,6 +1534,7 @@ static netdev_features_t bond_fix_features(struct net_device *dev,
#define BOND_VLAN_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
NETIF_F_FRAGLIST | NETIF_F_GSO_SOFTWARE | \
+ NETIF_F_GSO_ENCAP_ALL | \
NETIF_F_HIGHDMA | NETIF_F_LRO)
#define BOND_ENC_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
--
2.43.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH net 4/5] team: Fix initial vlan_feature set in __team_compute_features
2024-12-10 14:12 [PATCH net 1/5] net, team, bonding: Add netdev_base_features helper Daniel Borkmann
2024-12-10 14:12 ` [PATCH net 2/5] bonding: Fix initial {vlan,mpls}_feature set in bond_compute_features Daniel Borkmann
2024-12-10 14:12 ` [PATCH net 3/5] bonding: Fix feature propagation of NETIF_F_GSO_ENCAP_ALL Daniel Borkmann
@ 2024-12-10 14:12 ` 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
` (4 subsequent siblings)
7 siblings, 2 replies; 18+ messages in thread
From: Daniel Borkmann @ 2024-12-10 14:12 UTC (permalink / raw)
To: netdev; +Cc: bpf, mkubecek, Nikolay Aleksandrov, Ido Schimmel, Jiri Pirko
Similarly as with bonding, fix the calculation of vlan_features to 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: 3625920b62c3 ("teaming: fix vlan_features computing")
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/team/team_core.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/net/team/team_core.c b/drivers/net/team/team_core.c
index 1df062c67640..306416fc1db0 100644
--- a/drivers/net/team/team_core.c
+++ b/drivers/net/team/team_core.c
@@ -991,13 +991,14 @@ static void team_port_disable(struct team *team,
static void __team_compute_features(struct team *team)
{
struct team_port *port;
- netdev_features_t vlan_features = TEAM_VLAN_FEATURES &
- NETIF_F_ALL_FOR_ALL;
+ netdev_features_t vlan_features = TEAM_VLAN_FEATURES;
netdev_features_t enc_features = TEAM_ENC_FEATURES;
unsigned short max_hard_header_len = ETH_HLEN;
unsigned int dst_release_flag = IFF_XMIT_DST_RELEASE |
IFF_XMIT_DST_RELEASE_PERM;
+ vlan_features = netdev_base_features(vlan_features);
+
rcu_read_lock();
list_for_each_entry_rcu(port, &team->port_list, list) {
vlan_features = netdev_increment_features(vlan_features,
--
2.43.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH net 5/5] team: Fix feature propagation of NETIF_F_GSO_ENCAP_ALL
2024-12-10 14:12 [PATCH net 1/5] net, team, bonding: Add netdev_base_features helper Daniel Borkmann
` (2 preceding siblings ...)
2024-12-10 14:12 ` [PATCH net 4/5] team: Fix initial vlan_feature set in __team_compute_features Daniel Borkmann
@ 2024-12-10 14:12 ` 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
` (3 subsequent siblings)
7 siblings, 2 replies; 18+ messages in thread
From: Daniel Borkmann @ 2024-12-10 14:12 UTC (permalink / raw)
To: netdev; +Cc: bpf, mkubecek, Nikolay Aleksandrov, Ido Schimmel, Jiri Pirko
Similar to bonding driver, add NETIF_F_GSO_ENCAP_ALL to TEAM_VLAN_FEATURES
in order to support slave devices which propagate NETIF_F_GSO_UDP_TUNNEL &
NETIF_F_GSO_UDP_TUNNEL_CSUM as vlan_features.
Fixes: 3625920b62c3 ("teaming: fix vlan_features computing")
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/team/team_core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/team/team_core.c b/drivers/net/team/team_core.c
index 306416fc1db0..69ea2c3c76bf 100644
--- a/drivers/net/team/team_core.c
+++ b/drivers/net/team/team_core.c
@@ -983,7 +983,8 @@ static void team_port_disable(struct team *team,
#define TEAM_VLAN_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
NETIF_F_FRAGLIST | NETIF_F_GSO_SOFTWARE | \
- NETIF_F_HIGHDMA | NETIF_F_LRO)
+ NETIF_F_HIGHDMA | NETIF_F_LRO | \
+ NETIF_F_GSO_ENCAP_ALL)
#define TEAM_ENC_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
NETIF_F_RXCSUM | NETIF_F_GSO_SOFTWARE)
--
2.43.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH net 1/5] net, team, bonding: Add netdev_base_features helper
2024-12-10 14:12 [PATCH net 1/5] net, team, bonding: Add netdev_base_features helper Daniel Borkmann
` (3 preceding siblings ...)
2024-12-10 14:12 ` [PATCH net 5/5] team: Fix feature propagation of NETIF_F_GSO_ENCAP_ALL Daniel Borkmann
@ 2024-12-11 1:33 ` Hangbin Liu
2024-12-11 7:39 ` Nikolay Aleksandrov
` (2 subsequent siblings)
7 siblings, 0 replies; 18+ messages in thread
From: Hangbin Liu @ 2024-12-11 1:33 UTC (permalink / raw)
To: Daniel Borkmann
Cc: netdev, bpf, mkubecek, Nikolay Aleksandrov, Ido Schimmel,
Jiri Pirko
On Tue, Dec 10, 2024 at 03:12:41PM +0100, Daniel Borkmann wrote:
> Both bonding and team driver have logic to derive the base feature
> flags before iterating over their slave devices to refine the set
> via netdev_increment_features().
>
> Add a small helper netdev_base_features() so this can be reused
> instead of having it open-coded multiple times.
>
> 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 | 4 +---
> drivers/net/team/team_core.c | 3 +--
> include/linux/netdev_features.h | 7 +++++++
> 3 files changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
> index 49dd4fe195e5..42c835c60cd8 100644
> --- a/drivers/net/bonding/bond_main.c
> +++ b/drivers/net/bonding/bond_main.c
> @@ -1520,9 +1520,7 @@ static netdev_features_t bond_fix_features(struct net_device *dev,
> struct slave *slave;
>
> mask = features;
> -
> - features &= ~NETIF_F_ONE_FOR_ALL;
> - features |= NETIF_F_ALL_FOR_ALL;
> + features = netdev_base_features(features);
>
> bond_for_each_slave(bond, slave, iter) {
> features = netdev_increment_features(features,
> diff --git a/drivers/net/team/team_core.c b/drivers/net/team/team_core.c
> index a1b27b69f010..1df062c67640 100644
> --- a/drivers/net/team/team_core.c
> +++ b/drivers/net/team/team_core.c
> @@ -2011,8 +2011,7 @@ static netdev_features_t team_fix_features(struct net_device *dev,
> netdev_features_t mask;
>
> mask = features;
> - features &= ~NETIF_F_ONE_FOR_ALL;
> - features |= NETIF_F_ALL_FOR_ALL;
> + features = netdev_base_features(features);
>
> rcu_read_lock();
> list_for_each_entry_rcu(port, &team->port_list, list) {
> diff --git a/include/linux/netdev_features.h b/include/linux/netdev_features.h
> index 66e7d26b70a4..11be70a7929f 100644
> --- a/include/linux/netdev_features.h
> +++ b/include/linux/netdev_features.h
> @@ -253,4 +253,11 @@ static inline int find_next_netdev_feature(u64 feature, unsigned long start)
> NETIF_F_GSO_UDP_TUNNEL | \
> NETIF_F_GSO_UDP_TUNNEL_CSUM)
>
> +static inline netdev_features_t netdev_base_features(netdev_features_t features)
> +{
> + features &= ~NETIF_F_ONE_FOR_ALL;
> + features |= NETIF_F_ALL_FOR_ALL;
> + return features;
> +}
> +
> #endif /* _LINUX_NETDEV_FEATURES_H */
> --
> 2.43.0
>
Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH net 1/5] net, team, bonding: Add netdev_base_features helper
2024-12-10 14:12 [PATCH net 1/5] net, team, bonding: Add netdev_base_features helper Daniel Borkmann
` (4 preceding siblings ...)
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 11:10 ` patchwork-bot+netdevbpf
7 siblings, 0 replies; 18+ messages in thread
From: Nikolay Aleksandrov @ 2024-12-11 7:39 UTC (permalink / raw)
To: Daniel Borkmann, netdev; +Cc: bpf, mkubecek, Ido Schimmel, Jiri Pirko
On 12/10/24 16:12, Daniel Borkmann wrote:
> Both bonding and team driver have logic to derive the base feature
> flags before iterating over their slave devices to refine the set
> via netdev_increment_features().
>
> Add a small helper netdev_base_features() so this can be reused
> instead of having it open-coded multiple times.
>
> 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 | 4 +---
> drivers/net/team/team_core.c | 3 +--
> include/linux/netdev_features.h | 7 +++++++
> 3 files changed, 9 insertions(+), 5 deletions(-)
>
Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH net 2/5] bonding: Fix initial {vlan,mpls}_feature set in bond_compute_features
2024-12-10 14:12 ` [PATCH net 2/5] bonding: Fix initial {vlan,mpls}_feature set in bond_compute_features Daniel Borkmann
@ 2024-12-11 7:44 ` Nikolay Aleksandrov
2024-12-11 9:09 ` Hangbin Liu
1 sibling, 0 replies; 18+ messages in thread
From: Nikolay Aleksandrov @ 2024-12-11 7:44 UTC (permalink / raw)
To: Daniel Borkmann, netdev; +Cc: bpf, mkubecek, Ido Schimmel, Jiri Pirko
On 12/10/24 16:12, Daniel Borkmann wrote:
> 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,
Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH net 3/5] bonding: Fix feature propagation of NETIF_F_GSO_ENCAP_ALL
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
1 sibling, 0 replies; 18+ messages in thread
From: Nikolay Aleksandrov @ 2024-12-11 7:46 UTC (permalink / raw)
To: Daniel Borkmann, netdev; +Cc: bpf, mkubecek, Ido Schimmel, Jiri Pirko
On 12/10/24 16:12, Daniel Borkmann wrote:
> Drivers like mlx5 expose NIC's vlan_features such as
> NETIF_F_GSO_UDP_TUNNEL & NETIF_F_GSO_UDP_TUNNEL_CSUM which are
> later not propagated when the underlying devices are bonded and
> a vlan device created on top of the bond.
>
> Right now, the more cumbersome workaround for this is to create
> the vlan on top of the mlx5 and then enslave the vlan devices
> to a bond.
>
> To fix this, add NETIF_F_GSO_ENCAP_ALL to BOND_VLAN_FEATURES
> such that bond_compute_features() can probe and propagate the
> vlan_features from the slave devices up to the vlan device.
>
> Given the following bond:
>
> # ethtool -i enp2s0f{0,1}np{0,1}
> driver: mlx5_core
> [...]
>
> # ethtool -k enp2s0f0np0 | grep udp
> tx-udp_tnl-segmentation: on
> tx-udp_tnl-csum-segmentation: on
> tx-udp-segmentation: on
> rx-udp_tunnel-port-offload: on
> rx-udp-gro-forwarding: off
>
> # ethtool -k enp2s0f1np1 | grep udp
> tx-udp_tnl-segmentation: on
> tx-udp_tnl-csum-segmentation: on
> tx-udp-segmentation: on
> rx-udp_tunnel-port-offload: on
> rx-udp-gro-forwarding: off
>
> # ethtool -k bond0 | grep udp
> tx-udp_tnl-segmentation: on
> tx-udp_tnl-csum-segmentation: on
> tx-udp-segmentation: on
> rx-udp_tunnel-port-offload: off [fixed]
> rx-udp-gro-forwarding: off
>
> Before:
>
> # ethtool -k bond0.100 | grep udp
> tx-udp_tnl-segmentation: off [requested on]
> tx-udp_tnl-csum-segmentation: off [requested on]
> tx-udp-segmentation: on
> rx-udp_tunnel-port-offload: off [fixed]
> rx-udp-gro-forwarding: off
>
> After:
>
> # ethtool -k bond0.100 | grep udp
> tx-udp_tnl-segmentation: on
> tx-udp_tnl-csum-segmentation: on
> tx-udp-segmentation: on
> rx-udp_tunnel-port-offload: off [fixed]
> rx-udp-gro-forwarding: off
>
> Various users have run into this reporting performance issues when
> configuring Cilium in vxlan tunneling mode and having the combination
> of bond & vlan for the core devices connecting the Kubernetes cluster
> to the outside world.
>
> Fixes: a9b3ace44c7d ("bonding: fix vlan_features computing")
> 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 | 1 +
> 1 file changed, 1 insertion(+)
>
Indeed, I've tested a similar change a year ago to get the expected performance.
Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH net 4/5] team: Fix initial vlan_feature set in __team_compute_features
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
1 sibling, 0 replies; 18+ messages in thread
From: Nikolay Aleksandrov @ 2024-12-11 7:47 UTC (permalink / raw)
To: Daniel Borkmann, netdev; +Cc: bpf, mkubecek, Ido Schimmel, Jiri Pirko
On 12/10/24 16:12, Daniel Borkmann wrote:
> Similarly as with bonding, fix the calculation of vlan_features to 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: 3625920b62c3 ("teaming: fix vlan_features computing")
> 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/team/team_core.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/team/team_core.c b/drivers/net/team/team_core.c
> index 1df062c67640..306416fc1db0 100644
> --- a/drivers/net/team/team_core.c
> +++ b/drivers/net/team/team_core.c
> @@ -991,13 +991,14 @@ static void team_port_disable(struct team *team,
> static void __team_compute_features(struct team *team)
> {
> struct team_port *port;
> - netdev_features_t vlan_features = TEAM_VLAN_FEATURES &
> - NETIF_F_ALL_FOR_ALL;
> + netdev_features_t vlan_features = TEAM_VLAN_FEATURES;
> netdev_features_t enc_features = TEAM_ENC_FEATURES;
> unsigned short max_hard_header_len = ETH_HLEN;
> unsigned int dst_release_flag = IFF_XMIT_DST_RELEASE |
> IFF_XMIT_DST_RELEASE_PERM;
>
> + vlan_features = netdev_base_features(vlan_features);
> +
> rcu_read_lock();
> list_for_each_entry_rcu(port, &team->port_list, list) {
> vlan_features = netdev_increment_features(vlan_features,
Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH net 5/5] team: Fix feature propagation of NETIF_F_GSO_ENCAP_ALL
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
1 sibling, 0 replies; 18+ messages in thread
From: Nikolay Aleksandrov @ 2024-12-11 7:47 UTC (permalink / raw)
To: Daniel Borkmann, netdev; +Cc: bpf, mkubecek, Ido Schimmel, Jiri Pirko
On 12/10/24 16:12, Daniel Borkmann wrote:
> Similar to bonding driver, add NETIF_F_GSO_ENCAP_ALL to TEAM_VLAN_FEATURES
> in order to support slave devices which propagate NETIF_F_GSO_UDP_TUNNEL &
> NETIF_F_GSO_UDP_TUNNEL_CSUM as vlan_features.
>
> Fixes: 3625920b62c3 ("teaming: fix vlan_features computing")
> 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/team/team_core.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/team/team_core.c b/drivers/net/team/team_core.c
> index 306416fc1db0..69ea2c3c76bf 100644
> --- a/drivers/net/team/team_core.c
> +++ b/drivers/net/team/team_core.c
> @@ -983,7 +983,8 @@ static void team_port_disable(struct team *team,
>
> #define TEAM_VLAN_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
> NETIF_F_FRAGLIST | NETIF_F_GSO_SOFTWARE | \
> - NETIF_F_HIGHDMA | NETIF_F_LRO)
> + NETIF_F_HIGHDMA | NETIF_F_LRO | \
> + NETIF_F_GSO_ENCAP_ALL)
>
> #define TEAM_ENC_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
> NETIF_F_RXCSUM | NETIF_F_GSO_SOFTWARE)
Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH net 2/5] bonding: Fix initial {vlan,mpls}_feature set in bond_compute_features
2024-12-10 14:12 ` [PATCH net 2/5] bonding: Fix initial {vlan,mpls}_feature set in bond_compute_features Daniel Borkmann
2024-12-11 7:44 ` Nikolay Aleksandrov
@ 2024-12-11 9:09 ` Hangbin Liu
1 sibling, 0 replies; 18+ messages in thread
From: Hangbin Liu @ 2024-12-11 9:09 UTC (permalink / raw)
To: Daniel Borkmann
Cc: netdev, bpf, mkubecek, Nikolay Aleksandrov, Ido Schimmel,
Jiri Pirko
On Tue, Dec 10, 2024 at 03:12:42PM +0100, Daniel Borkmann wrote:
> 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
>
Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH net 4/5] team: Fix initial vlan_feature set in __team_compute_features
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
1 sibling, 0 replies; 18+ messages in thread
From: Hangbin Liu @ 2024-12-11 9:10 UTC (permalink / raw)
To: Daniel Borkmann
Cc: netdev, bpf, mkubecek, Nikolay Aleksandrov, Ido Schimmel,
Jiri Pirko
On Tue, Dec 10, 2024 at 03:12:44PM +0100, Daniel Borkmann wrote:
> Similarly as with bonding, fix the calculation of vlan_features to 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: 3625920b62c3 ("teaming: fix vlan_features computing")
> 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/team/team_core.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/team/team_core.c b/drivers/net/team/team_core.c
> index 1df062c67640..306416fc1db0 100644
> --- a/drivers/net/team/team_core.c
> +++ b/drivers/net/team/team_core.c
> @@ -991,13 +991,14 @@ static void team_port_disable(struct team *team,
> static void __team_compute_features(struct team *team)
> {
> struct team_port *port;
> - netdev_features_t vlan_features = TEAM_VLAN_FEATURES &
> - NETIF_F_ALL_FOR_ALL;
> + netdev_features_t vlan_features = TEAM_VLAN_FEATURES;
> netdev_features_t enc_features = TEAM_ENC_FEATURES;
> unsigned short max_hard_header_len = ETH_HLEN;
> unsigned int dst_release_flag = IFF_XMIT_DST_RELEASE |
> IFF_XMIT_DST_RELEASE_PERM;
>
> + vlan_features = netdev_base_features(vlan_features);
> +
> rcu_read_lock();
> list_for_each_entry_rcu(port, &team->port_list, list) {
> vlan_features = netdev_increment_features(vlan_features,
> --
> 2.43.0
>
Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH net 3/5] bonding: Fix feature propagation of NETIF_F_GSO_ENCAP_ALL
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
1 sibling, 0 replies; 18+ messages in thread
From: Hangbin Liu @ 2024-12-11 9:18 UTC (permalink / raw)
To: Daniel Borkmann
Cc: netdev, bpf, mkubecek, Nikolay Aleksandrov, Ido Schimmel,
Jiri Pirko
On Tue, Dec 10, 2024 at 03:12:43PM +0100, Daniel Borkmann wrote:
> Drivers like mlx5 expose NIC's vlan_features such as
> NETIF_F_GSO_UDP_TUNNEL & NETIF_F_GSO_UDP_TUNNEL_CSUM which are
> later not propagated when the underlying devices are bonded and
> a vlan device created on top of the bond.
>
> Right now, the more cumbersome workaround for this is to create
> the vlan on top of the mlx5 and then enslave the vlan devices
> to a bond.
>
> To fix this, add NETIF_F_GSO_ENCAP_ALL to BOND_VLAN_FEATURES
> such that bond_compute_features() can probe and propagate the
> vlan_features from the slave devices up to the vlan device.
>
> Given the following bond:
>
> # ethtool -i enp2s0f{0,1}np{0,1}
> driver: mlx5_core
> [...]
>
> # ethtool -k enp2s0f0np0 | grep udp
> tx-udp_tnl-segmentation: on
> tx-udp_tnl-csum-segmentation: on
> tx-udp-segmentation: on
> rx-udp_tunnel-port-offload: on
> rx-udp-gro-forwarding: off
>
> # ethtool -k enp2s0f1np1 | grep udp
> tx-udp_tnl-segmentation: on
> tx-udp_tnl-csum-segmentation: on
> tx-udp-segmentation: on
> rx-udp_tunnel-port-offload: on
> rx-udp-gro-forwarding: off
>
> # ethtool -k bond0 | grep udp
> tx-udp_tnl-segmentation: on
> tx-udp_tnl-csum-segmentation: on
> tx-udp-segmentation: on
> rx-udp_tunnel-port-offload: off [fixed]
> rx-udp-gro-forwarding: off
>
> Before:
>
> # ethtool -k bond0.100 | grep udp
> tx-udp_tnl-segmentation: off [requested on]
> tx-udp_tnl-csum-segmentation: off [requested on]
> tx-udp-segmentation: on
> rx-udp_tunnel-port-offload: off [fixed]
> rx-udp-gro-forwarding: off
>
> After:
>
> # ethtool -k bond0.100 | grep udp
> tx-udp_tnl-segmentation: on
> tx-udp_tnl-csum-segmentation: on
> tx-udp-segmentation: on
> rx-udp_tunnel-port-offload: off [fixed]
> rx-udp-gro-forwarding: off
>
> Various users have run into this reporting performance issues when
> configuring Cilium in vxlan tunneling mode and having the combination
> of bond & vlan for the core devices connecting the Kubernetes cluster
> to the outside world.
>
> Fixes: a9b3ace44c7d ("bonding: fix vlan_features computing")
> 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 | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
> index 320dd71392ef..7b78c2bada81 100644
> --- a/drivers/net/bonding/bond_main.c
> +++ b/drivers/net/bonding/bond_main.c
> @@ -1534,6 +1534,7 @@ static netdev_features_t bond_fix_features(struct net_device *dev,
>
> #define BOND_VLAN_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
> NETIF_F_FRAGLIST | NETIF_F_GSO_SOFTWARE | \
> + NETIF_F_GSO_ENCAP_ALL | \
> NETIF_F_HIGHDMA | NETIF_F_LRO)
>
> #define BOND_ENC_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
> --
> 2.43.0
>
Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH net 5/5] team: Fix feature propagation of NETIF_F_GSO_ENCAP_ALL
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
1 sibling, 0 replies; 18+ messages in thread
From: Hangbin Liu @ 2024-12-11 9:19 UTC (permalink / raw)
To: Daniel Borkmann
Cc: netdev, bpf, mkubecek, Nikolay Aleksandrov, Ido Schimmel,
Jiri Pirko
On Tue, Dec 10, 2024 at 03:12:45PM +0100, Daniel Borkmann wrote:
> Similar to bonding driver, add NETIF_F_GSO_ENCAP_ALL to TEAM_VLAN_FEATURES
> in order to support slave devices which propagate NETIF_F_GSO_UDP_TUNNEL &
> NETIF_F_GSO_UDP_TUNNEL_CSUM as vlan_features.
>
> Fixes: 3625920b62c3 ("teaming: fix vlan_features computing")
> 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/team/team_core.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/team/team_core.c b/drivers/net/team/team_core.c
> index 306416fc1db0..69ea2c3c76bf 100644
> --- a/drivers/net/team/team_core.c
> +++ b/drivers/net/team/team_core.c
> @@ -983,7 +983,8 @@ static void team_port_disable(struct team *team,
>
> #define TEAM_VLAN_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
> NETIF_F_FRAGLIST | NETIF_F_GSO_SOFTWARE | \
> - NETIF_F_HIGHDMA | NETIF_F_LRO)
> + NETIF_F_HIGHDMA | NETIF_F_LRO | \
> + NETIF_F_GSO_ENCAP_ALL)
>
> #define TEAM_ENC_FEATURES (NETIF_F_HW_CSUM | NETIF_F_SG | \
> NETIF_F_RXCSUM | NETIF_F_GSO_SOFTWARE)
> --
> 2.43.0
>
Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH net 1/5] net, team, bonding: Add netdev_base_features helper
2024-12-10 14:12 [PATCH net 1/5] net, team, bonding: Add netdev_base_features helper Daniel Borkmann
` (5 preceding siblings ...)
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
7 siblings, 1 reply; 18+ messages in thread
From: Paolo Abeni @ 2024-12-12 10:58 UTC (permalink / raw)
To: Daniel Borkmann
Cc: bpf, mkubecek, Nikolay Aleksandrov, Ido Schimmel, Jiri Pirko,
netdev
On 12/10/24 15:12, Daniel Borkmann wrote:
> Both bonding and team driver have logic to derive the base feature
> flags before iterating over their slave devices to refine the set
> via netdev_increment_features().
>
> Add a small helper netdev_base_features() so this can be reused
> instead of having it open-coded multiple times.
>
> 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>
The series looks good, I'm applying it right now, but please include a
(even small) cover letter in the next multi-patch submission, thanks!
Paolo
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH net 1/5] net, team, bonding: Add netdev_base_features helper
2024-12-10 14:12 [PATCH net 1/5] net, team, bonding: Add netdev_base_features helper Daniel Borkmann
` (6 preceding siblings ...)
2024-12-12 10:58 ` Paolo Abeni
@ 2024-12-12 11:10 ` patchwork-bot+netdevbpf
7 siblings, 0 replies; 18+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-12-12 11:10 UTC (permalink / raw)
To: Daniel Borkmann; +Cc: netdev, bpf, mkubecek, razor, idosch, jiri
Hello:
This series was applied to netdev/net.git (main)
by Paolo Abeni <pabeni@redhat.com>:
On Tue, 10 Dec 2024 15:12:41 +0100 you wrote:
> Both bonding and team driver have logic to derive the base feature
> flags before iterating over their slave devices to refine the set
> via netdev_increment_features().
>
> Add a small helper netdev_base_features() so this can be reused
> instead of having it open-coded multiple times.
>
> [...]
Here is the summary with links:
- [net,1/5] net, team, bonding: Add netdev_base_features helper
https://git.kernel.org/netdev/net/c/d2516c3a5370
- [net,2/5] bonding: Fix initial {vlan,mpls}_feature set in bond_compute_features
https://git.kernel.org/netdev/net/c/d064ea7fe2a2
- [net,3/5] bonding: Fix feature propagation of NETIF_F_GSO_ENCAP_ALL
https://git.kernel.org/netdev/net/c/77b11c8bf3a2
- [net,4/5] team: Fix initial vlan_feature set in __team_compute_features
https://git.kernel.org/netdev/net/c/396699ac2cb1
- [net,5/5] team: Fix feature propagation of NETIF_F_GSO_ENCAP_ALL
https://git.kernel.org/netdev/net/c/98712844589e
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] 18+ messages in thread
* Re: [PATCH net 1/5] net, team, bonding: Add netdev_base_features helper
2024-12-12 10:58 ` Paolo Abeni
@ 2024-12-12 12:07 ` Daniel Borkmann
0 siblings, 0 replies; 18+ messages in thread
From: Daniel Borkmann @ 2024-12-12 12:07 UTC (permalink / raw)
To: Paolo Abeni
Cc: bpf, mkubecek, Nikolay Aleksandrov, Ido Schimmel, Jiri Pirko,
netdev
On 12/12/24 11:58 AM, Paolo Abeni wrote:
> On 12/10/24 15:12, Daniel Borkmann wrote:
>> Both bonding and team driver have logic to derive the base feature
>> flags before iterating over their slave devices to refine the set
>> via netdev_increment_features().
>>
>> Add a small helper netdev_base_features() so this can be reused
>> instead of having it open-coded multiple times.
>>
>> 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>
>
> The series looks good, I'm applying it right now, but please include a
> (even small) cover letter in the next multi-patch submission, thanks!
Ok, thanks, will do next time!
Cheers,
Daniel
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2024-12-12 12:07 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-10 14:12 [PATCH net 1/5] net, team, bonding: Add netdev_base_features helper Daniel Borkmann
2024-12-10 14:12 ` [PATCH net 2/5] bonding: Fix initial {vlan,mpls}_feature set in bond_compute_features Daniel Borkmann
2024-12-11 7:44 ` 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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).