[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20191103083554.6317-1-idosch@idosch.org>
Date: Sun, 3 Nov 2019 10:35:48 +0200
From: Ido Schimmel <idosch@...sch.org>
To: netdev@...r.kernel.org
Cc: davem@...emloft.net, jiri@...lanox.com, shalomt@...lanox.com,
mlxsw@...lanox.com, Ido Schimmel <idosch@...lanox.com>
Subject: [PATCH net-next 0/6] mlxsw: Add extended ACK for EMADs
From: Ido Schimmel <idosch@...lanox.com>
Ethernet Management Datagrams (EMADs) are Ethernet packets sent between
the driver and device's firmware. They are used to pass various
configurations to the device, but also to get events (e.g., port up)
from it. After the Ethernet header, these packets are built in a TLV
format.
Up until now, whenever the driver issued an erroneous register access it
only got an error code indicating a bad parameter was used. This patch
set from Shalom adds a new TLV (string TLV) that can be used by the
firmware to encode a 128 character string describing the error. The new
TLV is allocated by the driver and set to zeros. In case of error, the
driver will check the length of the string in the response and print it
to the kernel log.
Example output:
mlxsw_spectrum 0000:03:00.0: EMAD reg access failed (tid=a9719f9700001306,reg_id=8018(rauhtd),type=query,status=7(bad parameter))
mlxsw_spectrum 0000:03:00.0: Firmware error (tid=a9719f9700001306,emad_err_string=inside er_rauhtd_write_query(), num_rec=32 is over the maximum number of records supported)
Patch #1 parses the offsets of the different TLVs in incoming EMADs and
stores them in the skb's control block. This makes it easier to later
add new TLVs.
Patches #2-#3 remove deprecated TLVs and add string TLV definition.
Patches #4-#6 gradually add support for the new string TLV.
Shalom Toledo (6):
mlxsw: core: Parse TLVs' offsets of incoming EMADs
mlxsw: emad: Remove deprecated EMAD TLVs
mlxsw: core: Add EMAD string TLV
mlxsw: core: Add support for EMAD string TLV parsing
mlxsw: core: Add support for using EMAD string TLV
mlxsw: spectrum: Enable EMAD string TLV
drivers/net/ethernet/mellanox/mlxsw/core.c | 154 ++++++++++++++++--
drivers/net/ethernet/mellanox/mlxsw/core.h | 2 +
drivers/net/ethernet/mellanox/mlxsw/emad.h | 7 +-
.../net/ethernet/mellanox/mlxsw/spectrum.c | 2 +
4 files changed, 147 insertions(+), 18 deletions(-)
--
2.21.0
Powered by blists - more mailing lists