#include "health.h"
#include "params.h"
#include "txrx.h"
#include "devlink.h"
#include "ptp.h"
#include "lib/tout.h"
static const char * const rq_sw_state_type_name[] = …;
static int mlx5e_query_rq_state(struct mlx5_core_dev *dev, u32 rqn, u8 *state)
{ … }
static int mlx5e_wait_for_icosq_flush(struct mlx5e_icosq *icosq)
{ … }
static void mlx5e_reset_icosq_cc_pc(struct mlx5e_icosq *icosq)
{ … }
static int mlx5e_rx_reporter_err_icosq_cqe_recover(void *ctx)
{ … }
static int mlx5e_rx_reporter_err_rq_cqe_recover(void *ctx)
{ … }
static int mlx5e_rx_reporter_timeout_recover(void *ctx)
{ … }
static int mlx5e_rx_reporter_recover_from_ctx(struct mlx5e_err_ctx *err_ctx)
{ … }
static int mlx5e_rx_reporter_recover(struct devlink_health_reporter *reporter,
void *context,
struct netlink_ext_ack *extack)
{ … }
static void mlx5e_reporter_icosq_diagnose(struct mlx5e_icosq *icosq, u8 hw_state,
struct devlink_fmsg *fmsg)
{ … }
static void mlx5e_health_rq_put_sw_state(struct devlink_fmsg *fmsg, struct mlx5e_rq *rq)
{ … }
static int
mlx5e_rx_reporter_build_diagnose_output_rq_common(struct mlx5e_rq *rq,
struct devlink_fmsg *fmsg)
{ … }
static void mlx5e_rx_reporter_build_diagnose_output(struct mlx5e_rq *rq,
struct devlink_fmsg *fmsg)
{ … }
static void mlx5e_rx_reporter_diagnose_generic_rq(struct mlx5e_rq *rq,
struct devlink_fmsg *fmsg)
{ … }
static void
mlx5e_rx_reporter_diagnose_common_ptp_config(struct mlx5e_priv *priv, struct mlx5e_ptp *ptp_ch,
struct devlink_fmsg *fmsg)
{ … }
static void
mlx5e_rx_reporter_diagnose_common_config(struct devlink_health_reporter *reporter,
struct devlink_fmsg *fmsg)
{ … }
static void mlx5e_rx_reporter_build_diagnose_output_ptp_rq(struct mlx5e_rq *rq,
struct devlink_fmsg *fmsg)
{ … }
static int mlx5e_rx_reporter_diagnose(struct devlink_health_reporter *reporter,
struct devlink_fmsg *fmsg,
struct netlink_ext_ack *extack)
{ … }
static int mlx5e_rx_reporter_dump_icosq(struct mlx5e_priv *priv, struct devlink_fmsg *fmsg,
void *ctx)
{ … }
static int mlx5e_rx_reporter_dump_rq(struct mlx5e_priv *priv, struct devlink_fmsg *fmsg,
void *ctx)
{ … }
static int mlx5e_rx_reporter_dump_all_rqs(struct mlx5e_priv *priv,
struct devlink_fmsg *fmsg)
{ … }
static int mlx5e_rx_reporter_dump_from_ctx(struct mlx5e_priv *priv,
struct mlx5e_err_ctx *err_ctx,
struct devlink_fmsg *fmsg)
{ … }
static int mlx5e_rx_reporter_dump(struct devlink_health_reporter *reporter,
struct devlink_fmsg *fmsg, void *context,
struct netlink_ext_ack *extack)
{ … }
void mlx5e_reporter_rx_timeout(struct mlx5e_rq *rq)
{ … }
void mlx5e_reporter_rq_cqe_err(struct mlx5e_rq *rq)
{ … }
void mlx5e_reporter_icosq_cqe_err(struct mlx5e_icosq *icosq)
{ … }
void mlx5e_reporter_icosq_suspend_recovery(struct mlx5e_channel *c)
{ … }
void mlx5e_reporter_icosq_resume_recovery(struct mlx5e_channel *c)
{ … }
static const struct devlink_health_reporter_ops mlx5_rx_reporter_ops = …;
#define MLX5E_REPORTER_RX_GRACEFUL_PERIOD …
void mlx5e_reporter_rx_create(struct mlx5e_priv *priv)
{ … }
void mlx5e_reporter_rx_destroy(struct mlx5e_priv *priv)
{ … }