netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/4] mlxsw: Several updates
@ 2019-02-12 16:29 Ido Schimmel
  2019-02-12 16:29 ` [PATCH net-next 1/4] mlxsw: spectrum: Set LAG port collector only when active Ido Schimmel
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Ido Schimmel @ 2019-02-12 16:29 UTC (permalink / raw)
  To: netdev; +Cc: davem, Jiri Pirko, Nir Dotan, mlxsw, Ido Schimmel

Patches #1-#3 contain misc updates for the mlxsw driver, one of which is
a fix following recent introduction of flow_rule infrastructure.

Patch #4 avoids double sourcing of lib.sh in forwarding selftests.

Ido Schimmel (2):
  mlxsw: spectrum_router: Drop unnecessary WARN_ON_ONCE()
  mlxsw: spectrum_flower: Fix VLAN modify action support

Jiri Pirko (1):
  selftests: mlxsw: avoid double sourcing of lib.sh

Nir Dotan (1):
  mlxsw: spectrum: Set LAG port collector only when active

 .../net/ethernet/mellanox/mlxsw/spectrum.c    | 62 ++++++++++++++-----
 .../ethernet/mellanox/mlxsw/spectrum_flower.c |  3 +-
 .../ethernet/mellanox/mlxsw/spectrum_router.c |  2 +-
 .../net/mlxsw/spectrum/resource_scale.sh      |  1 -
 4 files changed, 47 insertions(+), 21 deletions(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH net-next 1/4] mlxsw: spectrum: Set LAG port collector only when active
  2019-02-12 16:29 [PATCH net-next 0/4] mlxsw: Several updates Ido Schimmel
@ 2019-02-12 16:29 ` Ido Schimmel
  2019-02-12 16:29 ` [PATCH net-next 2/4] mlxsw: spectrum_router: Drop unnecessary WARN_ON_ONCE() Ido Schimmel
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Ido Schimmel @ 2019-02-12 16:29 UTC (permalink / raw)
  To: netdev; +Cc: davem, Jiri Pirko, Nir Dotan, mlxsw, Ido Schimmel

From: Nir Dotan <nird@mellanox.com>

The LAG port collecting (receive) function was mistakenly set when the
port was registered as a LAG member, while it should be set only when
the port collection state is set to true. Set LAG port to collecting
when it is set to distributing, as described in the IEEE link
aggregation standard coupled control mux machine state diagram.

Signed-off-by: Nir Dotan <nird@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
---
 .../net/ethernet/mellanox/mlxsw/spectrum.c    | 62 ++++++++++++++-----
 1 file changed, 45 insertions(+), 17 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
index 7c9745cecbbd..9686d3822b92 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
@@ -4771,9 +4771,6 @@ static int mlxsw_sp_port_lag_join(struct mlxsw_sp_port *mlxsw_sp_port,
 	err = mlxsw_sp_lag_col_port_add(mlxsw_sp_port, lag_id, port_index);
 	if (err)
 		goto err_col_port_add;
-	err = mlxsw_sp_lag_col_port_enable(mlxsw_sp_port, lag_id);
-	if (err)
-		goto err_col_port_enable;
 
 	mlxsw_core_lag_mapping_set(mlxsw_sp->core, lag_id, port_index,
 				   mlxsw_sp_port->local_port);
@@ -4787,8 +4784,6 @@ static int mlxsw_sp_port_lag_join(struct mlxsw_sp_port *mlxsw_sp_port,
 
 	return 0;
 
-err_col_port_enable:
-	mlxsw_sp_lag_col_port_remove(mlxsw_sp_port, lag_id);
 err_col_port_add:
 	if (!lag->ref_count)
 		mlxsw_sp_lag_destroy(mlxsw_sp, lag_id);
@@ -4807,7 +4802,6 @@ static void mlxsw_sp_port_lag_leave(struct mlxsw_sp_port *mlxsw_sp_port,
 	lag = mlxsw_sp_lag_get(mlxsw_sp, lag_id);
 	WARN_ON(lag->ref_count == 0);
 
-	mlxsw_sp_lag_col_port_disable(mlxsw_sp_port, lag_id);
 	mlxsw_sp_lag_col_port_remove(mlxsw_sp_port, lag_id);
 
 	/* Any VLANs configured on the port are no longer valid */
@@ -4852,21 +4846,56 @@ static int mlxsw_sp_lag_dist_port_remove(struct mlxsw_sp_port *mlxsw_sp_port,
 	return mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(sldr), sldr_pl);
 }
 
-static int mlxsw_sp_port_lag_tx_en_set(struct mlxsw_sp_port *mlxsw_sp_port,
-				       bool lag_tx_enabled)
+static int
+mlxsw_sp_port_lag_col_dist_enable(struct mlxsw_sp_port *mlxsw_sp_port)
 {
-	if (lag_tx_enabled)
-		return mlxsw_sp_lag_dist_port_add(mlxsw_sp_port,
-						  mlxsw_sp_port->lag_id);
-	else
-		return mlxsw_sp_lag_dist_port_remove(mlxsw_sp_port,
-						     mlxsw_sp_port->lag_id);
+	int err;
+
+	err = mlxsw_sp_lag_col_port_enable(mlxsw_sp_port,
+					   mlxsw_sp_port->lag_id);
+	if (err)
+		return err;
+
+	err = mlxsw_sp_lag_dist_port_add(mlxsw_sp_port, mlxsw_sp_port->lag_id);
+	if (err)
+		goto err_dist_port_add;
+
+	return 0;
+
+err_dist_port_add:
+	mlxsw_sp_lag_col_port_disable(mlxsw_sp_port, mlxsw_sp_port->lag_id);
+	return err;
+}
+
+static int
+mlxsw_sp_port_lag_col_dist_disable(struct mlxsw_sp_port *mlxsw_sp_port)
+{
+	int err;
+
+	err = mlxsw_sp_lag_dist_port_remove(mlxsw_sp_port,
+					    mlxsw_sp_port->lag_id);
+	if (err)
+		return err;
+
+	err = mlxsw_sp_lag_col_port_disable(mlxsw_sp_port,
+					    mlxsw_sp_port->lag_id);
+	if (err)
+		goto err_col_port_disable;
+
+	return 0;
+
+err_col_port_disable:
+	mlxsw_sp_lag_dist_port_add(mlxsw_sp_port, mlxsw_sp_port->lag_id);
+	return err;
 }
 
 static int mlxsw_sp_port_lag_changed(struct mlxsw_sp_port *mlxsw_sp_port,
 				     struct netdev_lag_lower_state_info *info)
 {
-	return mlxsw_sp_port_lag_tx_en_set(mlxsw_sp_port, info->tx_enabled);
+	if (info->tx_enabled)
+		return mlxsw_sp_port_lag_col_dist_enable(mlxsw_sp_port);
+	else
+		return mlxsw_sp_port_lag_col_dist_disable(mlxsw_sp_port);
 }
 
 static int mlxsw_sp_port_stp_set(struct mlxsw_sp_port *mlxsw_sp_port,
@@ -5089,8 +5118,7 @@ static int mlxsw_sp_netdevice_port_upper_event(struct net_device *lower_dev,
 				err = mlxsw_sp_port_lag_join(mlxsw_sp_port,
 							     upper_dev);
 			} else {
-				mlxsw_sp_port_lag_tx_en_set(mlxsw_sp_port,
-							    false);
+				mlxsw_sp_port_lag_col_dist_disable(mlxsw_sp_port);
 				mlxsw_sp_port_lag_leave(mlxsw_sp_port,
 							upper_dev);
 			}
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH net-next 2/4] mlxsw: spectrum_router: Drop unnecessary WARN_ON_ONCE()
  2019-02-12 16:29 [PATCH net-next 0/4] mlxsw: Several updates Ido Schimmel
  2019-02-12 16:29 ` [PATCH net-next 1/4] mlxsw: spectrum: Set LAG port collector only when active Ido Schimmel
@ 2019-02-12 16:29 ` Ido Schimmel
  2019-02-12 16:29 ` [PATCH net-next 3/4] mlxsw: spectrum_flower: Fix VLAN modify action support Ido Schimmel
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Ido Schimmel @ 2019-02-12 16:29 UTC (permalink / raw)
  To: netdev; +Cc: davem, Jiri Pirko, Nir Dotan, mlxsw, Ido Schimmel

In case the register access failed an error would be logged anyway, so
we can drop the warning.

Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
index 818040ce4d68..52fed8c7bf1e 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
@@ -6142,7 +6142,7 @@ static int mlxsw_sp_router_rif_disable(struct mlxsw_sp *mlxsw_sp, u16 rif)
 
 	mlxsw_reg_ritr_rif_pack(ritr_pl, rif);
 	err = mlxsw_reg_query(mlxsw_sp->core, MLXSW_REG(ritr), ritr_pl);
-	if (WARN_ON_ONCE(err))
+	if (err)
 		return err;
 
 	mlxsw_reg_ritr_enable_set(ritr_pl, false);
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH net-next 3/4] mlxsw: spectrum_flower: Fix VLAN modify action support
  2019-02-12 16:29 [PATCH net-next 0/4] mlxsw: Several updates Ido Schimmel
  2019-02-12 16:29 ` [PATCH net-next 1/4] mlxsw: spectrum: Set LAG port collector only when active Ido Schimmel
  2019-02-12 16:29 ` [PATCH net-next 2/4] mlxsw: spectrum_router: Drop unnecessary WARN_ON_ONCE() Ido Schimmel
@ 2019-02-12 16:29 ` Ido Schimmel
  2019-02-12 18:49   ` Pablo Neira Ayuso
  2019-02-12 16:29 ` [PATCH net-next 4/4] selftests: mlxsw: avoid double sourcing of lib.sh Ido Schimmel
  2019-02-12 17:03 ` [PATCH net-next 0/4] mlxsw: Several updates David Miller
  4 siblings, 1 reply; 7+ messages in thread
From: Ido Schimmel @ 2019-02-12 16:29 UTC (permalink / raw)
  To: netdev
  Cc: davem, Jiri Pirko, Nir Dotan, mlxsw, Ido Schimmel, Pablo Neira Ayuso

The driver does not support VLAN push and pop, but only VLAN modify.

Fixes: 738678817573 ("drivers: net: use flow action infrastructure")
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Cc: Pablo Neira Ayuso <pablo@netfilter.org>
---
 drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c
index 9af9f5c1b25c..15f804453cd6 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_flower.c
@@ -102,8 +102,7 @@ static int mlxsw_sp_flower_parse_actions(struct mlxsw_sp *mlxsw_sp,
 				return err;
 			}
 			break;
-		case FLOW_ACTION_VLAN_PUSH:
-		case FLOW_ACTION_VLAN_POP: {
+		case FLOW_ACTION_VLAN_MANGLE: {
 			u16 proto = be16_to_cpu(act->vlan.proto);
 			u8 prio = act->vlan.prio;
 			u16 vid = act->vlan.vid;
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH net-next 4/4] selftests: mlxsw: avoid double sourcing of lib.sh
  2019-02-12 16:29 [PATCH net-next 0/4] mlxsw: Several updates Ido Schimmel
                   ` (2 preceding siblings ...)
  2019-02-12 16:29 ` [PATCH net-next 3/4] mlxsw: spectrum_flower: Fix VLAN modify action support Ido Schimmel
@ 2019-02-12 16:29 ` Ido Schimmel
  2019-02-12 17:03 ` [PATCH net-next 0/4] mlxsw: Several updates David Miller
  4 siblings, 0 replies; 7+ messages in thread
From: Ido Schimmel @ 2019-02-12 16:29 UTC (permalink / raw)
  To: netdev; +Cc: davem, Jiri Pirko, Nir Dotan, mlxsw, Ido Schimmel

From: Jiri Pirko <jiri@mellanox.com>

Don't source lib.sh 2 times and make the script work with ifnames
passed on the command line.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
---
 .../selftests/drivers/net/mlxsw/spectrum/resource_scale.sh       | 1 -
 1 file changed, 1 deletion(-)

diff --git a/tools/testing/selftests/drivers/net/mlxsw/spectrum/resource_scale.sh b/tools/testing/selftests/drivers/net/mlxsw/spectrum/resource_scale.sh
index a0a80e1a69e8..e7ffc79561b7 100755
--- a/tools/testing/selftests/drivers/net/mlxsw/spectrum/resource_scale.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/spectrum/resource_scale.sh
@@ -2,7 +2,6 @@
 # SPDX-License-Identifier: GPL-2.0
 
 NUM_NETIFS=6
-source ../../../../net/forwarding/lib.sh
 source ../../../../net/forwarding/tc_common.sh
 source devlink_lib_spectrum.sh
 
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH net-next 0/4] mlxsw: Several updates
  2019-02-12 16:29 [PATCH net-next 0/4] mlxsw: Several updates Ido Schimmel
                   ` (3 preceding siblings ...)
  2019-02-12 16:29 ` [PATCH net-next 4/4] selftests: mlxsw: avoid double sourcing of lib.sh Ido Schimmel
@ 2019-02-12 17:03 ` David Miller
  4 siblings, 0 replies; 7+ messages in thread
From: David Miller @ 2019-02-12 17:03 UTC (permalink / raw)
  To: idosch; +Cc: netdev, jiri, nird, mlxsw

From: Ido Schimmel <idosch@mellanox.com>
Date: Tue, 12 Feb 2019 16:29:49 +0000

> Patches #1-#3 contain misc updates for the mlxsw driver, one of which is
> a fix following recent introduction of flow_rule infrastructure.
> 
> Patch #4 avoids double sourcing of lib.sh in forwarding selftests.

Series applied.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH net-next 3/4] mlxsw: spectrum_flower: Fix VLAN modify action support
  2019-02-12 16:29 ` [PATCH net-next 3/4] mlxsw: spectrum_flower: Fix VLAN modify action support Ido Schimmel
@ 2019-02-12 18:49   ` Pablo Neira Ayuso
  0 siblings, 0 replies; 7+ messages in thread
From: Pablo Neira Ayuso @ 2019-02-12 18:49 UTC (permalink / raw)
  To: Ido Schimmel; +Cc: netdev, davem, Jiri Pirko, Nir Dotan, mlxsw

On Tue, Feb 12, 2019 at 04:29:53PM +0000, Ido Schimmel wrote:
> The driver does not support VLAN push and pop, but only VLAN modify.
> 
> Fixes: 738678817573 ("drivers: net: use flow action infrastructure")
> Signed-off-by: Ido Schimmel <idosch@mellanox.com>
> Acked-by: Jiri Pirko <jiri@mellanox.com>
> Cc: Pablo Neira Ayuso <pablo@netfilter.org>

Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-02-12 18:49 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-12 16:29 [PATCH net-next 0/4] mlxsw: Several updates Ido Schimmel
2019-02-12 16:29 ` [PATCH net-next 1/4] mlxsw: spectrum: Set LAG port collector only when active Ido Schimmel
2019-02-12 16:29 ` [PATCH net-next 2/4] mlxsw: spectrum_router: Drop unnecessary WARN_ON_ONCE() Ido Schimmel
2019-02-12 16:29 ` [PATCH net-next 3/4] mlxsw: spectrum_flower: Fix VLAN modify action support Ido Schimmel
2019-02-12 18:49   ` Pablo Neira Ayuso
2019-02-12 16:29 ` [PATCH net-next 4/4] selftests: mlxsw: avoid double sourcing of lib.sh Ido Schimmel
2019-02-12 17:03 ` [PATCH net-next 0/4] mlxsw: Several updates David Miller

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).