netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/7] mlxsw: Misc updates
@ 2020-12-06  8:22 Ido Schimmel
  2020-12-06  8:22 ` [PATCH net-next 1/7] mlxsw: spectrum: Apply RIF configuration when joining a LAG Ido Schimmel
                   ` (6 more replies)
  0 siblings, 7 replies; 13+ messages in thread
From: Ido Schimmel @ 2020-12-06  8:22 UTC (permalink / raw)
  To: netdev; +Cc: davem, kuba, jiri, petrm, mlxsw, Ido Schimmel

From: Ido Schimmel <idosch@nvidia.com>

This patch set contains various updates for mlxsw in various areas.

Patch #1 fixes a corner case in router interface (RIF) configuration.
Targeted at net-next since this is not a regression. Patch #2 adds a
test case.

Patch #3 enables tracing of EMAD events via 'devlink:devlink_hwmsg'
tracepoint, in addition to the existing request / response EMAD
messages. It enables a more complete logging of all the exchanged
hardware messages.

Patches #4-#5 suppress "WARNING use flexible-array member instead"
coccinelle warnings.

Patch #6 bumps the minimum firmware version enforced by the driver.

Patch #7 is a small refactoring in IPinIP code.

Ido Schimmel (5):
  mlxsw: spectrum: Apply RIF configuration when joining a LAG
  selftests: mlxsw: Test RIF's reference count when joining a LAG
  mlxsw: core: Trace EMAD events
  mlxsw: spectrum_mr: Use flexible-array member instead of zero-length
    array
  mlxsw: core_acl: Use an array instead of a struct with a zero-length
    array

Jiri Pirko (1):
  mlxsw: spectrum_router: Reduce mlxsw_sp_ipip_fib_entry_op_gre4()

Petr Machata (1):
  mlxsw: spectrum: Bump minimum FW version to xx.2008.2018

 drivers/net/ethernet/mellanox/mlxsw/core.c    |  7 +++
 .../mellanox/mlxsw/core_acl_flex_keys.c       | 26 +++++-----
 .../net/ethernet/mellanox/mlxsw/spectrum.c    | 23 +++++++--
 .../net/ethernet/mellanox/mlxsw/spectrum.h    |  4 ++
 .../ethernet/mellanox/mlxsw/spectrum_ipip.c   | 45 ++---------------
 .../ethernet/mellanox/mlxsw/spectrum_ipip.h   |  8 +--
 .../net/ethernet/mellanox/mlxsw/spectrum_mr.c |  2 +-
 .../ethernet/mellanox/mlxsw/spectrum_router.c | 49 +++++++++++++++----
 .../ethernet/mellanox/mlxsw/spectrum_router.h |  4 --
 .../selftests/drivers/net/mlxsw/rtnetlink.sh  | 43 ++++++++++++++++
 10 files changed, 129 insertions(+), 82 deletions(-)

-- 
2.28.0


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

* [PATCH net-next 1/7] mlxsw: spectrum: Apply RIF configuration when joining a LAG
  2020-12-06  8:22 [PATCH net-next 0/7] mlxsw: Misc updates Ido Schimmel
@ 2020-12-06  8:22 ` Ido Schimmel
  2020-12-06  8:22 ` [PATCH net-next 2/7] selftests: mlxsw: Test RIF's reference count " Ido Schimmel
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 13+ messages in thread
From: Ido Schimmel @ 2020-12-06  8:22 UTC (permalink / raw)
  To: netdev; +Cc: davem, kuba, jiri, petrm, mlxsw, Ido Schimmel

From: Ido Schimmel <idosch@nvidia.com>

In case a router interface (RIF) is configured for a LAG, make sure its
configuration is applied on the new LAG member.

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
---
 .../net/ethernet/mellanox/mlxsw/spectrum.c    | 17 ++++++++--
 .../net/ethernet/mellanox/mlxsw/spectrum.h    |  4 +++
 .../ethernet/mellanox/mlxsw/spectrum_router.c | 31 ++++++++++++++++---
 3 files changed, 45 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
index 385eb3c3b362..65e8407f4646 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
@@ -3595,7 +3595,8 @@ static int mlxsw_sp_port_lag_index_get(struct mlxsw_sp *mlxsw_sp,
 }
 
 static int mlxsw_sp_port_lag_join(struct mlxsw_sp_port *mlxsw_sp_port,
-				  struct net_device *lag_dev)
+				  struct net_device *lag_dev,
+				  struct netlink_ext_ack *extack)
 {
 	struct mlxsw_sp *mlxsw_sp = mlxsw_sp_port->mlxsw_sp;
 	struct mlxsw_sp_upper *lag;
@@ -3631,8 +3632,20 @@ static int mlxsw_sp_port_lag_join(struct mlxsw_sp_port *mlxsw_sp_port,
 	if (mlxsw_sp_port->default_vlan->fid)
 		mlxsw_sp_port_vlan_router_leave(mlxsw_sp_port->default_vlan);
 
+	/* Join a router interface configured on the LAG, if exists */
+	err = mlxsw_sp_port_vlan_router_join(mlxsw_sp_port->default_vlan,
+					     lag_dev, extack);
+	if (err)
+		goto err_router_join;
+
 	return 0;
 
+err_router_join:
+	lag->ref_count--;
+	mlxsw_sp_port->lagged = 0;
+	mlxsw_core_lag_mapping_clear(mlxsw_sp->core, lag_id,
+				     mlxsw_sp_port->local_port);
+	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);
@@ -3997,7 +4010,7 @@ static int mlxsw_sp_netdevice_port_upper_event(struct net_device *lower_dev,
 		} else if (netif_is_lag_master(upper_dev)) {
 			if (info->linking) {
 				err = mlxsw_sp_port_lag_join(mlxsw_sp_port,
-							     upper_dev);
+							     upper_dev, extack);
 			} else {
 				mlxsw_sp_port_lag_col_dist_disable(mlxsw_sp_port);
 				mlxsw_sp_port_lag_leave(mlxsw_sp_port,
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h b/drivers/net/ethernet/mellanox/mlxsw/spectrum.h
index ce26cc41831f..6092243a69cb 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.h
@@ -656,6 +656,10 @@ mlxsw_sp_netdevice_ipip_ul_event(struct mlxsw_sp *mlxsw_sp,
 				 struct net_device *l3_dev,
 				 unsigned long event,
 				 struct netdev_notifier_info *info);
+int
+mlxsw_sp_port_vlan_router_join(struct mlxsw_sp_port_vlan *mlxsw_sp_port_vlan,
+			       struct net_device *l3_dev,
+			       struct netlink_ext_ack *extack);
 void
 mlxsw_sp_port_vlan_router_leave(struct mlxsw_sp_port_vlan *mlxsw_sp_port_vlan);
 void mlxsw_sp_rif_destroy_by_dev(struct mlxsw_sp *mlxsw_sp,
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
index 85223647fdb6..20b141f02145 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
@@ -7697,9 +7697,9 @@ static void mlxsw_sp_rif_subport_put(struct mlxsw_sp_rif *rif)
 }
 
 static int
-mlxsw_sp_port_vlan_router_join(struct mlxsw_sp_port_vlan *mlxsw_sp_port_vlan,
-			       struct net_device *l3_dev,
-			       struct netlink_ext_ack *extack)
+__mlxsw_sp_port_vlan_router_join(struct mlxsw_sp_port_vlan *mlxsw_sp_port_vlan,
+				 struct net_device *l3_dev,
+				 struct netlink_ext_ack *extack)
 {
 	struct mlxsw_sp_port *mlxsw_sp_port = mlxsw_sp_port_vlan->mlxsw_sp_port;
 	struct mlxsw_sp *mlxsw_sp = mlxsw_sp_port->mlxsw_sp;
@@ -7764,6 +7764,27 @@ __mlxsw_sp_port_vlan_router_leave(struct mlxsw_sp_port_vlan *mlxsw_sp_port_vlan)
 	mlxsw_sp_rif_subport_put(rif);
 }
 
+int
+mlxsw_sp_port_vlan_router_join(struct mlxsw_sp_port_vlan *mlxsw_sp_port_vlan,
+			       struct net_device *l3_dev,
+			       struct netlink_ext_ack *extack)
+{
+	struct mlxsw_sp *mlxsw_sp = mlxsw_sp_port_vlan->mlxsw_sp_port->mlxsw_sp;
+	struct mlxsw_sp_rif *rif;
+	int err = 0;
+
+	mutex_lock(&mlxsw_sp->router->lock);
+	rif = mlxsw_sp_rif_find_by_dev(mlxsw_sp, l3_dev);
+	if (!rif)
+		goto out;
+
+	err = __mlxsw_sp_port_vlan_router_join(mlxsw_sp_port_vlan, l3_dev,
+					       extack);
+out:
+	mutex_unlock(&mlxsw_sp->router->lock);
+	return err;
+}
+
 void
 mlxsw_sp_port_vlan_router_leave(struct mlxsw_sp_port_vlan *mlxsw_sp_port_vlan)
 {
@@ -7788,8 +7809,8 @@ static int mlxsw_sp_inetaddr_port_vlan_event(struct net_device *l3_dev,
 
 	switch (event) {
 	case NETDEV_UP:
-		return mlxsw_sp_port_vlan_router_join(mlxsw_sp_port_vlan,
-						      l3_dev, extack);
+		return __mlxsw_sp_port_vlan_router_join(mlxsw_sp_port_vlan,
+							l3_dev, extack);
 	case NETDEV_DOWN:
 		__mlxsw_sp_port_vlan_router_leave(mlxsw_sp_port_vlan);
 		break;
-- 
2.28.0


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

* [PATCH net-next 2/7] selftests: mlxsw: Test RIF's reference count when joining a LAG
  2020-12-06  8:22 [PATCH net-next 0/7] mlxsw: Misc updates Ido Schimmel
  2020-12-06  8:22 ` [PATCH net-next 1/7] mlxsw: spectrum: Apply RIF configuration when joining a LAG Ido Schimmel
@ 2020-12-06  8:22 ` Ido Schimmel
  2020-12-06  8:22 ` [PATCH net-next 3/7] mlxsw: core: Trace EMAD events Ido Schimmel
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 13+ messages in thread
From: Ido Schimmel @ 2020-12-06  8:22 UTC (permalink / raw)
  To: netdev; +Cc: davem, kuba, jiri, petrm, mlxsw, Ido Schimmel

From: Ido Schimmel <idosch@nvidia.com>

Test that the reference count of a router interface (RIF) configured for
a LAG is incremented / decremented when ports join / leave the LAG. Use
the offload indication on routes configured on the RIF to understand if
it was created / destroyed.

The test fails without the previous patch.

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
 .../selftests/drivers/net/mlxsw/rtnetlink.sh  | 43 +++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/tools/testing/selftests/drivers/net/mlxsw/rtnetlink.sh b/tools/testing/selftests/drivers/net/mlxsw/rtnetlink.sh
index a2eff5f58209..ed346da5d3cb 100755
--- a/tools/testing/selftests/drivers/net/mlxsw/rtnetlink.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/rtnetlink.sh
@@ -22,6 +22,7 @@ ALL_TESTS="
 	duplicate_vlans_test
 	vlan_rif_refcount_test
 	subport_rif_refcount_test
+	subport_rif_lag_join_test
 	vlan_dev_deletion_test
 	lag_unlink_slaves_test
 	lag_dev_deletion_test
@@ -440,6 +441,48 @@ subport_rif_refcount_test()
 	ip link del dev bond1
 }
 
+subport_rif_lag_join_test()
+{
+	# Test that the reference count of a RIF configured for a LAG is
+	# incremented / decremented when ports join / leave the LAG. We use the
+	# offload indication on routes configured on the RIF to understand if
+	# it was created / destroyed
+	RET=0
+
+	ip link add name bond1 type bond mode 802.3ad
+	ip link set dev $swp1 down
+	ip link set dev $swp2 down
+	ip link set dev $swp1 master bond1
+	ip link set dev $swp2 master bond1
+
+	ip link set dev bond1 up
+	ip -6 address add 2001:db8:1::1/64 dev bond1
+
+	busywait "$TIMEOUT" wait_for_offload \
+		ip -6 route get fibmatch 2001:db8:1::2 dev bond1
+	check_err $? "subport rif was not created on lag device"
+
+	ip link set dev $swp1 nomaster
+	busywait "$TIMEOUT" wait_for_offload \
+		ip -6 route get fibmatch 2001:db8:1::2 dev bond1
+	check_err $? "subport rif of lag device was destroyed after removing one port"
+
+	ip link set dev $swp1 master bond1
+	ip link set dev $swp2 nomaster
+	busywait "$TIMEOUT" wait_for_offload \
+		ip -6 route get fibmatch 2001:db8:1::2 dev bond1
+	check_err $? "subport rif of lag device was destroyed after re-adding a port and removing another"
+
+	ip link set dev $swp1 nomaster
+	busywait "$TIMEOUT" not wait_for_offload \
+		ip -6 route get fibmatch 2001:db8:1::2 dev bond1
+	check_err $? "subport rif of lag device was not destroyed when should"
+
+	log_test "subport rif lag join"
+
+	ip link del dev bond1
+}
+
 vlan_dev_deletion_test()
 {
 	# Test that VLAN devices are correctly deleted / unlinked when enslaved
-- 
2.28.0


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

* [PATCH net-next 3/7] mlxsw: core: Trace EMAD events
  2020-12-06  8:22 [PATCH net-next 0/7] mlxsw: Misc updates Ido Schimmel
  2020-12-06  8:22 ` [PATCH net-next 1/7] mlxsw: spectrum: Apply RIF configuration when joining a LAG Ido Schimmel
  2020-12-06  8:22 ` [PATCH net-next 2/7] selftests: mlxsw: Test RIF's reference count " Ido Schimmel
@ 2020-12-06  8:22 ` Ido Schimmel
  2020-12-06  8:22 ` [PATCH net-next 4/7] mlxsw: spectrum_mr: Use flexible-array member instead of zero-length array Ido Schimmel
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 13+ messages in thread
From: Ido Schimmel @ 2020-12-06  8:22 UTC (permalink / raw)
  To: netdev; +Cc: davem, kuba, jiri, petrm, mlxsw, Ido Schimmel

From: Ido Schimmel <idosch@nvidia.com>

Currently, mlxsw triggers the 'devlink:devlink_hwmsg' tracepoint
whenever a request is sent to the device and whenever a response is
received from it. However, the tracepoint is not triggered when an event
(e.g., port up / down) is received from the device.

Also trace EMAD events in order to log a more complete picture of all
the exchanged hardware messages.

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
 drivers/net/ethernet/mellanox/mlxsw/core.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/core.c b/drivers/net/ethernet/mellanox/mlxsw/core.c
index 630109f139a0..c67825a68a26 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/core.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/core.c
@@ -160,6 +160,7 @@ struct mlxsw_rx_listener_item {
 
 struct mlxsw_event_listener_item {
 	struct list_head list;
+	struct mlxsw_core *mlxsw_core;
 	struct mlxsw_event_listener el;
 	void *priv;
 };
@@ -2171,11 +2172,16 @@ static void mlxsw_core_event_listener_func(struct sk_buff *skb, u8 local_port,
 					   void *priv)
 {
 	struct mlxsw_event_listener_item *event_listener_item = priv;
+	struct mlxsw_core *mlxsw_core;
 	struct mlxsw_reg_info reg;
 	char *payload;
 	char *reg_tlv;
 	char *op_tlv;
 
+	mlxsw_core = event_listener_item->mlxsw_core;
+	trace_devlink_hwmsg(priv_to_devlink(mlxsw_core), true, 0,
+			    skb->data, skb->len);
+
 	mlxsw_emad_tlv_parse(skb);
 	op_tlv = mlxsw_emad_op_tlv(skb);
 	reg_tlv = mlxsw_emad_reg_tlv(skb);
@@ -2225,6 +2231,7 @@ int mlxsw_core_event_listener_register(struct mlxsw_core *mlxsw_core,
 	el_item = kmalloc(sizeof(*el_item), GFP_KERNEL);
 	if (!el_item)
 		return -ENOMEM;
+	el_item->mlxsw_core = mlxsw_core;
 	el_item->el = *el;
 	el_item->priv = priv;
 
-- 
2.28.0


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

* [PATCH net-next 4/7] mlxsw: spectrum_mr: Use flexible-array member instead of zero-length array
  2020-12-06  8:22 [PATCH net-next 0/7] mlxsw: Misc updates Ido Schimmel
                   ` (2 preceding siblings ...)
  2020-12-06  8:22 ` [PATCH net-next 3/7] mlxsw: core: Trace EMAD events Ido Schimmel
@ 2020-12-06  8:22 ` Ido Schimmel
  2020-12-06  8:22 ` [PATCH net-next 5/7] mlxsw: core_acl: Use an array instead of a struct with a " Ido Schimmel
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 13+ messages in thread
From: Ido Schimmel @ 2020-12-06  8:22 UTC (permalink / raw)
  To: netdev; +Cc: davem, kuba, jiri, petrm, mlxsw, Ido Schimmel

From: Ido Schimmel <idosch@nvidia.com>

Suppresses the following coccinelle warning:

drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:18:15-19: WARNING use flexible-array member instead

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

diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c
index 47eb751a2570..7846a21555ef 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c
@@ -15,7 +15,7 @@ struct mlxsw_sp_mr {
 	struct list_head table_list;
 	struct mutex table_list_lock; /* Protects table_list */
 #define MLXSW_SP_MR_ROUTES_COUNTER_UPDATE_INTERVAL 5000 /* ms */
-	unsigned long priv[0];
+	unsigned long priv[];
 	/* priv has to be always the last item */
 };
 
-- 
2.28.0


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

* [PATCH net-next 5/7] mlxsw: core_acl: Use an array instead of a struct with a zero-length array
  2020-12-06  8:22 [PATCH net-next 0/7] mlxsw: Misc updates Ido Schimmel
                   ` (3 preceding siblings ...)
  2020-12-06  8:22 ` [PATCH net-next 4/7] mlxsw: spectrum_mr: Use flexible-array member instead of zero-length array Ido Schimmel
@ 2020-12-06  8:22 ` Ido Schimmel
  2020-12-06  8:22 ` [PATCH net-next 6/7] mlxsw: spectrum: Bump minimum FW version to xx.2008.2018 Ido Schimmel
  2020-12-06  8:22 ` [PATCH net-next 7/7] mlxsw: spectrum_router: Reduce mlxsw_sp_ipip_fib_entry_op_gre4() Ido Schimmel
  6 siblings, 0 replies; 13+ messages in thread
From: Ido Schimmel @ 2020-12-06  8:22 UTC (permalink / raw)
  To: netdev; +Cc: davem, kuba, jiri, petrm, mlxsw, Ido Schimmel

From: Ido Schimmel <idosch@nvidia.com>

Suppresses the following coccinelle warning:

drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.c:139:3-7:
WARNING use flexible-array member instead

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
---
 .../mellanox/mlxsw/core_acl_flex_keys.c       | 26 ++++++++-----------
 1 file changed, 11 insertions(+), 15 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.c b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.c
index 9f6905fa6b47..f1b09c2f9eda 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.c
@@ -133,10 +133,8 @@ mlxsw_afk_key_info_find(struct mlxsw_afk *mlxsw_afk,
 }
 
 struct mlxsw_afk_picker {
-	struct {
-		DECLARE_BITMAP(element, MLXSW_AFK_ELEMENT_MAX);
-		unsigned int total;
-	} hits[0];
+	DECLARE_BITMAP(element, MLXSW_AFK_ELEMENT_MAX);
+	unsigned int total;
 };
 
 static void mlxsw_afk_picker_count_hits(struct mlxsw_afk *mlxsw_afk,
@@ -154,8 +152,8 @@ static void mlxsw_afk_picker_count_hits(struct mlxsw_afk *mlxsw_afk,
 
 			elinst = &block->instances[j];
 			if (elinst->element == element) {
-				__set_bit(element, picker->hits[i].element);
-				picker->hits[i].total++;
+				__set_bit(element, picker[i].element);
+				picker[i].total++;
 			}
 		}
 	}
@@ -169,13 +167,13 @@ static void mlxsw_afk_picker_subtract_hits(struct mlxsw_afk *mlxsw_afk,
 	int i;
 	int j;
 
-	memcpy(&hits_element, &picker->hits[block_index].element,
+	memcpy(&hits_element, &picker[block_index].element,
 	       sizeof(hits_element));
 
 	for (i = 0; i < mlxsw_afk->blocks_count; i++) {
 		for_each_set_bit(j, hits_element, MLXSW_AFK_ELEMENT_MAX) {
-			if (__test_and_clear_bit(j, picker->hits[i].element))
-				picker->hits[i].total--;
+			if (__test_and_clear_bit(j, picker[i].element))
+				picker[i].total--;
 		}
 	}
 }
@@ -188,8 +186,8 @@ static int mlxsw_afk_picker_most_hits_get(struct mlxsw_afk *mlxsw_afk,
 	int i;
 
 	for (i = 0; i < mlxsw_afk->blocks_count; i++) {
-		if (picker->hits[i].total > most_hits) {
-			most_hits = picker->hits[i].total;
+		if (picker[i].total > most_hits) {
+			most_hits = picker[i].total;
 			most_index = i;
 		}
 	}
@@ -206,7 +204,7 @@ static int mlxsw_afk_picker_key_info_add(struct mlxsw_afk *mlxsw_afk,
 	if (key_info->blocks_count == mlxsw_afk->max_blocks)
 		return -EINVAL;
 
-	for_each_set_bit(element, picker->hits[block_index].element,
+	for_each_set_bit(element, picker[block_index].element,
 			 MLXSW_AFK_ELEMENT_MAX) {
 		key_info->element_to_block[element] = key_info->blocks_count;
 		mlxsw_afk_element_usage_add(&key_info->elusage, element);
@@ -224,11 +222,9 @@ static int mlxsw_afk_picker(struct mlxsw_afk *mlxsw_afk,
 {
 	struct mlxsw_afk_picker *picker;
 	enum mlxsw_afk_element element;
-	size_t alloc_size;
 	int err;
 
-	alloc_size = sizeof(picker->hits[0]) * mlxsw_afk->blocks_count;
-	picker = kzalloc(alloc_size, GFP_KERNEL);
+	picker = kcalloc(mlxsw_afk->blocks_count, sizeof(*picker), GFP_KERNEL);
 	if (!picker)
 		return -ENOMEM;
 
-- 
2.28.0


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

* [PATCH net-next 6/7] mlxsw: spectrum: Bump minimum FW version to xx.2008.2018
  2020-12-06  8:22 [PATCH net-next 0/7] mlxsw: Misc updates Ido Schimmel
                   ` (4 preceding siblings ...)
  2020-12-06  8:22 ` [PATCH net-next 5/7] mlxsw: core_acl: Use an array instead of a struct with a " Ido Schimmel
@ 2020-12-06  8:22 ` Ido Schimmel
  2020-12-06  8:22 ` [PATCH net-next 7/7] mlxsw: spectrum_router: Reduce mlxsw_sp_ipip_fib_entry_op_gre4() Ido Schimmel
  6 siblings, 0 replies; 13+ messages in thread
From: Ido Schimmel @ 2020-12-06  8:22 UTC (permalink / raw)
  To: netdev; +Cc: davem, kuba, jiri, petrm, mlxsw, Ido Schimmel

From: Petr Machata <petrm@nvidia.com>

The indicated version fixes an issue whereby the MOMTE register would by
default enable mirroring of ECN-marked traffic from all traffic classes,
once the ECN mirroring was configured. This fix is necessary for offload
of RED "ecn_mark" qevent.

Signed-off-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
index 65e8407f4646..963eb0b1d9dd 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c
@@ -45,7 +45,7 @@
 
 #define MLXSW_SP1_FWREV_MAJOR 13
 #define MLXSW_SP1_FWREV_MINOR 2008
-#define MLXSW_SP1_FWREV_SUBMINOR 1310
+#define MLXSW_SP1_FWREV_SUBMINOR 2018
 #define MLXSW_SP1_FWREV_CAN_RESET_MINOR 1702
 
 static const struct mlxsw_fw_rev mlxsw_sp1_fw_rev = {
@@ -62,7 +62,7 @@ static const struct mlxsw_fw_rev mlxsw_sp1_fw_rev = {
 
 #define MLXSW_SP2_FWREV_MAJOR 29
 #define MLXSW_SP2_FWREV_MINOR 2008
-#define MLXSW_SP2_FWREV_SUBMINOR 1310
+#define MLXSW_SP2_FWREV_SUBMINOR 2018
 
 static const struct mlxsw_fw_rev mlxsw_sp2_fw_rev = {
 	.major = MLXSW_SP2_FWREV_MAJOR,
@@ -77,7 +77,7 @@ static const struct mlxsw_fw_rev mlxsw_sp2_fw_rev = {
 
 #define MLXSW_SP3_FWREV_MAJOR 30
 #define MLXSW_SP3_FWREV_MINOR 2008
-#define MLXSW_SP3_FWREV_SUBMINOR 1310
+#define MLXSW_SP3_FWREV_SUBMINOR 2018
 
 static const struct mlxsw_fw_rev mlxsw_sp3_fw_rev = {
 	.major = MLXSW_SP3_FWREV_MAJOR,
-- 
2.28.0


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

* [PATCH net-next 7/7] mlxsw: spectrum_router: Reduce mlxsw_sp_ipip_fib_entry_op_gre4()
  2020-12-06  8:22 [PATCH net-next 0/7] mlxsw: Misc updates Ido Schimmel
                   ` (5 preceding siblings ...)
  2020-12-06  8:22 ` [PATCH net-next 6/7] mlxsw: spectrum: Bump minimum FW version to xx.2008.2018 Ido Schimmel
@ 2020-12-06  8:22 ` Ido Schimmel
  6 siblings, 0 replies; 13+ messages in thread
From: Ido Schimmel @ 2020-12-06  8:22 UTC (permalink / raw)
  To: netdev; +Cc: davem, kuba, jiri, petrm, mlxsw, Ido Schimmel

From: Jiri Pirko <jiri@nvidia.com>

Turned out that mlxsw_sp_ipip_fib_entry_op_gre4() does not need to
figure out the IP address and virtual router id. Those are exactly
the same as in the fib_entry it is called for. So just use that and
reduce mlxsw_sp_ipip_fib_entry_op_gre4() function to only call
mlxsw_sp_ipip_fib_entry_op_gre4_rtdp() make the ipip decap op
code similar to nve.

Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
---
 .../ethernet/mellanox/mlxsw/spectrum_ipip.c   | 45 ++-----------------
 .../ethernet/mellanox/mlxsw/spectrum_ipip.h   |  8 +---
 .../ethernet/mellanox/mlxsw/spectrum_router.c | 18 +++++---
 .../ethernet/mellanox/mlxsw/spectrum_router.h |  4 --
 4 files changed, 19 insertions(+), 56 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.c
index 089d99535f9e..6ccca39bae84 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.c
@@ -142,9 +142,9 @@ mlxsw_sp_ipip_nexthop_update_gre4(struct mlxsw_sp *mlxsw_sp, u32 adj_index,
 }
 
 static int
-mlxsw_sp_ipip_fib_entry_op_gre4_rtdp(struct mlxsw_sp *mlxsw_sp,
-				     u32 tunnel_index,
-				     struct mlxsw_sp_ipip_entry *ipip_entry)
+mlxsw_sp_ipip_decap_config_gre4(struct mlxsw_sp *mlxsw_sp,
+				struct mlxsw_sp_ipip_entry *ipip_entry,
+				u32 tunnel_index)
 {
 	u16 rif_index = mlxsw_sp_ipip_lb_rif_index(ipip_entry->ol_lb);
 	u16 ul_rif_id = mlxsw_sp_ipip_lb_ul_rif_id(ipip_entry->ol_lb);
@@ -180,43 +180,6 @@ mlxsw_sp_ipip_fib_entry_op_gre4_rtdp(struct mlxsw_sp *mlxsw_sp,
 	return mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(rtdp), rtdp_pl);
 }
 
-static int
-mlxsw_sp_ipip_fib_entry_op_gre4_do(struct mlxsw_sp *mlxsw_sp,
-				   const struct mlxsw_sp_router_ll_ops *ll_ops,
-				   struct mlxsw_sp_fib_entry_op_ctx *op_ctx,
-				   u32 dip, u8 prefix_len, u16 ul_vr_id,
-				   enum mlxsw_sp_fib_entry_op op,
-				   u32 tunnel_index,
-				   struct mlxsw_sp_fib_entry_priv *priv)
-{
-	ll_ops->fib_entry_pack(op_ctx, MLXSW_SP_L3_PROTO_IPV4, op, ul_vr_id,
-			       prefix_len, (unsigned char *) &dip, priv);
-	ll_ops->fib_entry_act_ip2me_tun_pack(op_ctx, tunnel_index);
-	return mlxsw_sp_fib_entry_commit(mlxsw_sp, op_ctx, ll_ops);
-}
-
-static int mlxsw_sp_ipip_fib_entry_op_gre4(struct mlxsw_sp *mlxsw_sp,
-					   const struct mlxsw_sp_router_ll_ops *ll_ops,
-					   struct mlxsw_sp_fib_entry_op_ctx *op_ctx,
-					   struct mlxsw_sp_ipip_entry *ipip_entry,
-					   enum mlxsw_sp_fib_entry_op op, u32 tunnel_index,
-					   struct mlxsw_sp_fib_entry_priv *priv)
-{
-	u16 ul_vr_id = mlxsw_sp_ipip_lb_ul_vr_id(ipip_entry->ol_lb);
-	__be32 dip;
-	int err;
-
-	err = mlxsw_sp_ipip_fib_entry_op_gre4_rtdp(mlxsw_sp, tunnel_index,
-						   ipip_entry);
-	if (err)
-		return err;
-
-	dip = mlxsw_sp_ipip_netdev_saddr(MLXSW_SP_L3_PROTO_IPV4,
-					 ipip_entry->ol_dev).addr4;
-	return mlxsw_sp_ipip_fib_entry_op_gre4_do(mlxsw_sp, ll_ops, op_ctx, be32_to_cpu(dip),
-						  32, ul_vr_id, op, tunnel_index, priv);
-}
-
 static bool mlxsw_sp_ipip_tunnel_complete(enum mlxsw_sp_l3proto proto,
 					  const struct net_device *ol_dev)
 {
@@ -332,7 +295,7 @@ static const struct mlxsw_sp_ipip_ops mlxsw_sp_ipip_gre4_ops = {
 	.dev_type = ARPHRD_IPGRE,
 	.ul_proto = MLXSW_SP_L3_PROTO_IPV4,
 	.nexthop_update = mlxsw_sp_ipip_nexthop_update_gre4,
-	.fib_entry_op = mlxsw_sp_ipip_fib_entry_op_gre4,
+	.decap_config = mlxsw_sp_ipip_decap_config_gre4,
 	.can_offload = mlxsw_sp_ipip_can_offload_gre4,
 	.ol_loopback_config = mlxsw_sp_ipip_ol_loopback_config_gre4,
 	.ol_netdev_change = mlxsw_sp_ipip_ol_netdev_change_gre4,
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.h b/drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.h
index d32702cb6ab4..87bef9880e5e 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.h
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_ipip.h
@@ -50,13 +50,9 @@ struct mlxsw_sp_ipip_ops {
 	(*ol_loopback_config)(struct mlxsw_sp *mlxsw_sp,
 			      const struct net_device *ol_dev);
 
-	int (*fib_entry_op)(struct mlxsw_sp *mlxsw_sp,
-			    const struct mlxsw_sp_router_ll_ops *ll_ops,
-			    struct mlxsw_sp_fib_entry_op_ctx *op_ctx,
+	int (*decap_config)(struct mlxsw_sp *mlxsw_sp,
 			    struct mlxsw_sp_ipip_entry *ipip_entry,
-			    enum mlxsw_sp_fib_entry_op op,
-			    u32 tunnel_index,
-			    struct mlxsw_sp_fib_entry_priv *priv);
+			    u32 tunnel_index);
 
 	int (*ol_netdev_change)(struct mlxsw_sp *mlxsw_sp,
 				struct mlxsw_sp_ipip_entry *ipip_entry,
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
index 20b141f02145..d671d961fc33 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
@@ -5142,9 +5142,9 @@ static void mlxsw_sp_fib_entry_pack(struct mlxsw_sp_fib_entry_op_ctx *op_ctx,
 				    fib_entry->priv);
 }
 
-int mlxsw_sp_fib_entry_commit(struct mlxsw_sp *mlxsw_sp,
-			      struct mlxsw_sp_fib_entry_op_ctx *op_ctx,
-			      const struct mlxsw_sp_router_ll_ops *ll_ops)
+static int mlxsw_sp_fib_entry_commit(struct mlxsw_sp *mlxsw_sp,
+				     struct mlxsw_sp_fib_entry_op_ctx *op_ctx,
+				     const struct mlxsw_sp_router_ll_ops *ll_ops)
 {
 	bool postponed_for_bulk = false;
 	int err;
@@ -5307,13 +5307,21 @@ mlxsw_sp_fib_entry_op_ipip_decap(struct mlxsw_sp *mlxsw_sp,
 	const struct mlxsw_sp_router_ll_ops *ll_ops = fib_entry->fib_node->fib->ll_ops;
 	struct mlxsw_sp_ipip_entry *ipip_entry = fib_entry->decap.ipip_entry;
 	const struct mlxsw_sp_ipip_ops *ipip_ops;
+	int err;
 
 	if (WARN_ON(!ipip_entry))
 		return -EINVAL;
 
 	ipip_ops = mlxsw_sp->router->ipip_ops_arr[ipip_entry->ipipt];
-	return ipip_ops->fib_entry_op(mlxsw_sp, ll_ops, op_ctx, ipip_entry, op,
-				      fib_entry->decap.tunnel_index, fib_entry->priv);
+	err = ipip_ops->decap_config(mlxsw_sp, ipip_entry,
+				     fib_entry->decap.tunnel_index);
+	if (err)
+		return err;
+
+	mlxsw_sp_fib_entry_pack(op_ctx, fib_entry, op);
+	ll_ops->fib_entry_act_ip2me_tun_pack(op_ctx,
+					     fib_entry->decap.tunnel_index);
+	return mlxsw_sp_fib_entry_commit(mlxsw_sp, op_ctx, ll_ops);
 }
 
 static int mlxsw_sp_fib_entry_op_nve_decap(struct mlxsw_sp *mlxsw_sp,
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.h b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.h
index 96d8bf7a9a67..d8aed866af21 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.h
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.h
@@ -118,10 +118,6 @@ struct mlxsw_sp_router_ll_ops {
 	bool (*fib_entry_is_committed)(struct mlxsw_sp_fib_entry_priv *priv);
 };
 
-int mlxsw_sp_fib_entry_commit(struct mlxsw_sp *mlxsw_sp,
-			      struct mlxsw_sp_fib_entry_op_ctx *op_ctx,
-			      const struct mlxsw_sp_router_ll_ops *ll_ops);
-
 struct mlxsw_sp_rif_ipip_lb;
 struct mlxsw_sp_rif_ipip_lb_config {
 	enum mlxsw_reg_ritr_loopback_ipip_type lb_ipipt;
-- 
2.28.0


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

* Re: [PATCH net-next 0/7] mlxsw: Misc updates
  2020-08-23  8:06 [PATCH net-next 0/7] mlxsw: Misc updates Ido Schimmel
  2020-08-24 20:55 ` Jakub Kicinski
@ 2020-08-25  0:49 ` David Miller
  1 sibling, 0 replies; 13+ messages in thread
From: David Miller @ 2020-08-25  0:49 UTC (permalink / raw)
  To: idosch; +Cc: netdev, kuba, jiri, mlxsw, idosch

From: Ido Schimmel <idosch@idosch.org>
Date: Sun, 23 Aug 2020 11:06:21 +0300

> From: Ido Schimmel <idosch@nvidia.com>
> 
> This patch set includes various updates for mlxsw.
> 
> Patches #1-#4 adjust the default burst size of packet trap policers to
> conform to Spectrum-{2,3} requirements. The corresponding selftest is
> also adjusted so that it could reliably pass on these platforms.
> 
> Patch #5 adjusts a selftest so that it could pass with both old and new
> versions of mausezahn.
> 
> Patch #6 significantly reduces the runtime of tc-police scale test by
> changing the preference and masks of the used tc filters.
> 
> Patch #7 prevents the driver from trying to set invalid ethtool link
> modes.

Applied, thanks Ido.

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

* Re: [PATCH net-next 0/7] mlxsw: Misc updates
  2020-08-23  8:06 [PATCH net-next 0/7] mlxsw: Misc updates Ido Schimmel
@ 2020-08-24 20:55 ` Jakub Kicinski
  2020-08-25  0:49 ` David Miller
  1 sibling, 0 replies; 13+ messages in thread
From: Jakub Kicinski @ 2020-08-24 20:55 UTC (permalink / raw)
  To: Ido Schimmel; +Cc: netdev, davem, jiri, mlxsw, Ido Schimmel

On Sun, 23 Aug 2020 11:06:21 +0300 Ido Schimmel wrote:
> From: Ido Schimmel <idosch@nvidia.com>
> 
> This patch set includes various updates for mlxsw.
> 
> Patches #1-#4 adjust the default burst size of packet trap policers to
> conform to Spectrum-{2,3} requirements. The corresponding selftest is
> also adjusted so that it could reliably pass on these platforms.
> 
> Patch #5 adjusts a selftest so that it could pass with both old and new
> versions of mausezahn.
> 
> Patch #6 significantly reduces the runtime of tc-police scale test by
> changing the preference and masks of the used tc filters.
> 
> Patch #7 prevents the driver from trying to set invalid ethtool link
> modes.

LGTM, so FWIW:

Reviewed-by: Jakub Kicinski <kuba@kernel.org>

5 and 7 could have gone to net IMHO. Especially 7 - do I misinterpret
that it exposes speeds which are not in fact supported? The commit
message is not very clear on impact, and how the quoted error is
triggered.

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

* [PATCH net-next 0/7] mlxsw: Misc updates
@ 2020-08-23  8:06 Ido Schimmel
  2020-08-24 20:55 ` Jakub Kicinski
  2020-08-25  0:49 ` David Miller
  0 siblings, 2 replies; 13+ messages in thread
From: Ido Schimmel @ 2020-08-23  8:06 UTC (permalink / raw)
  To: netdev; +Cc: davem, kuba, jiri, mlxsw, Ido Schimmel

From: Ido Schimmel <idosch@nvidia.com>

This patch set includes various updates for mlxsw.

Patches #1-#4 adjust the default burst size of packet trap policers to
conform to Spectrum-{2,3} requirements. The corresponding selftest is
also adjusted so that it could reliably pass on these platforms.

Patch #5 adjusts a selftest so that it could pass with both old and new
versions of mausezahn.

Patch #6 significantly reduces the runtime of tc-police scale test by
changing the preference and masks of the used tc filters.

Patch #7 prevents the driver from trying to set invalid ethtool link
modes.

Danielle Ratson (2):
  selftests: forwarding: Fix mausezahn delay parameter in mirror_test()
  mlxsw: spectrum_ethtool: Remove internal speeds from PTYS register

Ido Schimmel (5):
  mlxsw: spectrum_trap: Adjust default policer burst size for
    Spectrum-{2, 3}
  selftests: mlxsw: Decrease required rate accuracy
  selftests: mlxsw: Increase burst size for rate test
  selftests: mlxsw: Increase burst size for burst test
  selftests: mlxsw: Reduce runtime of tc-police scale test

 drivers/net/ethernet/mellanox/mlxsw/reg.h     |  6 ---
 .../mellanox/mlxsw/spectrum_ethtool.c         | 38 -------------------
 .../ethernet/mellanox/mlxsw/spectrum_trap.c   | 22 +++++------
 .../net/ethernet/mellanox/mlxsw/switchx2.c    | 25 +-----------
 .../drivers/net/mlxsw/devlink_trap_policer.sh | 33 +++-------------
 .../drivers/net/mlxsw/tc_police_scale.sh      | 12 +++++-
 .../selftests/net/forwarding/mirror_lib.sh    |  2 +-
 7 files changed, 28 insertions(+), 110 deletions(-)

-- 
2.26.2


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

* Re: [PATCH net-next 0/7] mlxsw: Misc updates
  2019-01-28 12:02 Ido Schimmel
@ 2019-01-28 18:43 ` David Miller
  0 siblings, 0 replies; 13+ messages in thread
From: David Miller @ 2019-01-28 18:43 UTC (permalink / raw)
  To: idosch; +Cc: netdev, jiri, mlxsw

From: Ido Schimmel <idosch@mellanox.com>
Date: Mon, 28 Jan 2019 12:02:06 +0000

> This patchset contains miscellaneous patches we gathered in our queue.
> Some of them are dependencies of larger patchsets that I will submit
> later this cycle.
> 
> Patches #1-#3 perform small non-functional changes in mlxsw.
> 
> Patch #4 adds more extended ack messages in mlxsw.
> 
> Patch #5 adds devlink parameters documentation for mlxsw. To be extended
> with more parameters this cycle.
> 
> Patches #6-#7 perform small changes in forwarding selftests
> infrastructure.

Series applied.

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

* [PATCH net-next 0/7] mlxsw: Misc updates
@ 2019-01-28 12:02 Ido Schimmel
  2019-01-28 18:43 ` David Miller
  0 siblings, 1 reply; 13+ messages in thread
From: Ido Schimmel @ 2019-01-28 12:02 UTC (permalink / raw)
  To: netdev; +Cc: davem, Jiri Pirko, mlxsw, Ido Schimmel

This patchset contains miscellaneous patches we gathered in our queue.
Some of them are dependencies of larger patchsets that I will submit
later this cycle.

Patches #1-#3 perform small non-functional changes in mlxsw.

Patch #4 adds more extended ack messages in mlxsw.

Patch #5 adds devlink parameters documentation for mlxsw. To be extended
with more parameters this cycle.

Patches #6-#7 perform small changes in forwarding selftests
infrastructure.

Ido Schimmel (2):
  mlxsw: spectrum_switchdev: Add more extack messages
  selftests: forwarding: Use OK instead of PASS in test output

Jiri Pirko (5):
  mlxsw: spectrum_acl: Remove unnecessary arg on action_replace call
    path
  mlxsw: spectrum_acl: Move mr_ruleset and mr_rule structs
  mlxsw: spectrum_acl: Fix rul/rule typo
  Documentation: add devlink param file for mlxsw driver
  selftests: net: forwarding: change devlink resource support checking

 .../networking/devlink-params-mlxsw.txt       |  2 ++
 .../net/ethernet/mellanox/mlxsw/spectrum.h    |  3 +-
 .../mellanox/mlxsw/spectrum1_acl_tcam.c       |  3 +-
 .../mellanox/mlxsw/spectrum2_acl_tcam.c       |  5 +---
 .../ethernet/mellanox/mlxsw/spectrum_acl.c    |  7 ++---
 .../mellanox/mlxsw/spectrum_acl_atcam.c       |  2 --
 .../mellanox/mlxsw/spectrum_acl_ctcam.c       |  1 -
 .../mellanox/mlxsw/spectrum_acl_tcam.c        | 29 +++++++++----------
 .../mellanox/mlxsw/spectrum_acl_tcam.h        |  5 +---
 .../mellanox/mlxsw/spectrum_switchdev.c       | 10 +++++--
 .../selftests/net/forwarding/devlink_lib.sh   |  2 +-
 tools/testing/selftests/net/forwarding/lib.sh |  2 +-
 12 files changed, 32 insertions(+), 39 deletions(-)
 create mode 100644 Documentation/networking/devlink-params-mlxsw.txt

-- 
2.20.1


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

end of thread, other threads:[~2020-12-06  8:25 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-06  8:22 [PATCH net-next 0/7] mlxsw: Misc updates Ido Schimmel
2020-12-06  8:22 ` [PATCH net-next 1/7] mlxsw: spectrum: Apply RIF configuration when joining a LAG Ido Schimmel
2020-12-06  8:22 ` [PATCH net-next 2/7] selftests: mlxsw: Test RIF's reference count " Ido Schimmel
2020-12-06  8:22 ` [PATCH net-next 3/7] mlxsw: core: Trace EMAD events Ido Schimmel
2020-12-06  8:22 ` [PATCH net-next 4/7] mlxsw: spectrum_mr: Use flexible-array member instead of zero-length array Ido Schimmel
2020-12-06  8:22 ` [PATCH net-next 5/7] mlxsw: core_acl: Use an array instead of a struct with a " Ido Schimmel
2020-12-06  8:22 ` [PATCH net-next 6/7] mlxsw: spectrum: Bump minimum FW version to xx.2008.2018 Ido Schimmel
2020-12-06  8:22 ` [PATCH net-next 7/7] mlxsw: spectrum_router: Reduce mlxsw_sp_ipip_fib_entry_op_gre4() Ido Schimmel
  -- strict thread matches above, loose matches on Subject: below --
2020-08-23  8:06 [PATCH net-next 0/7] mlxsw: Misc updates Ido Schimmel
2020-08-24 20:55 ` Jakub Kicinski
2020-08-25  0:49 ` David Miller
2019-01-28 12:02 Ido Schimmel
2019-01-28 18:43 ` 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).