#include "health.h"
#include "en/ptp.h"
#include "en/devlink.h"
#include "lib/tout.h"
static const char * const sq_sw_state_type_name[] = …;
static int mlx5e_wait_for_sq_flush(struct mlx5e_txqsq *sq)
{ … }
static void mlx5e_reset_txqsq_cc_pc(struct mlx5e_txqsq *sq)
{ … }
static void mlx5e_health_sq_put_sw_state(struct devlink_fmsg *fmsg, struct mlx5e_txqsq *sq)
{ … }
static int mlx5e_tx_reporter_err_cqe_recover(void *ctx)
{ … }
struct mlx5e_tx_timeout_ctx { … };
static int mlx5e_tx_reporter_timeout_recover(void *ctx)
{ … }
static int mlx5e_tx_reporter_ptpsq_unhealthy_recover(void *ctx)
{ … }
static int mlx5e_tx_reporter_recover_from_ctx(struct mlx5e_err_ctx *err_ctx)
{ … }
static int mlx5e_tx_reporter_recover(struct devlink_health_reporter *reporter,
void *context,
struct netlink_ext_ack *extack)
{ … }
static void
mlx5e_tx_reporter_build_diagnose_output_sq_common(struct devlink_fmsg *fmsg,
struct mlx5e_txqsq *sq, int tc)
{ … }
static void
mlx5e_tx_reporter_build_diagnose_output(struct devlink_fmsg *fmsg,
struct mlx5e_txqsq *sq, int tc)
{ … }
static void
mlx5e_tx_reporter_build_diagnose_output_ptpsq(struct devlink_fmsg *fmsg,
struct mlx5e_ptpsq *ptpsq, int tc)
{ … }
static void
mlx5e_tx_reporter_diagnose_generic_txqsq(struct devlink_fmsg *fmsg,
struct mlx5e_txqsq *txqsq)
{ … }
static void
mlx5e_tx_reporter_diagnose_generic_tx_port_ts(struct devlink_fmsg *fmsg,
struct mlx5e_ptpsq *ptpsq)
{ … }
static void
mlx5e_tx_reporter_diagnose_common_config(struct devlink_health_reporter *reporter,
struct devlink_fmsg *fmsg)
{ … }
static int mlx5e_tx_reporter_diagnose(struct devlink_health_reporter *reporter,
struct devlink_fmsg *fmsg,
struct netlink_ext_ack *extack)
{ … }
static int mlx5e_tx_reporter_dump_sq(struct mlx5e_priv *priv, struct devlink_fmsg *fmsg,
void *ctx)
{ … }
static int mlx5e_tx_reporter_timeout_dump(struct mlx5e_priv *priv, struct devlink_fmsg *fmsg,
void *ctx)
{ … }
static int mlx5e_tx_reporter_ptpsq_unhealthy_dump(struct mlx5e_priv *priv,
struct devlink_fmsg *fmsg,
void *ctx)
{ … }
static int mlx5e_tx_reporter_dump_all_sqs(struct mlx5e_priv *priv,
struct devlink_fmsg *fmsg)
{ … }
static int mlx5e_tx_reporter_dump_from_ctx(struct mlx5e_priv *priv,
struct mlx5e_err_ctx *err_ctx,
struct devlink_fmsg *fmsg)
{ … }
static int mlx5e_tx_reporter_dump(struct devlink_health_reporter *reporter,
struct devlink_fmsg *fmsg, void *context,
struct netlink_ext_ack *extack)
{ … }
void mlx5e_reporter_tx_err_cqe(struct mlx5e_txqsq *sq)
{ … }
int mlx5e_reporter_tx_timeout(struct mlx5e_txqsq *sq)
{ … }
void mlx5e_reporter_tx_ptpsq_unhealthy(struct mlx5e_ptpsq *ptpsq)
{ … }
static const struct devlink_health_reporter_ops mlx5_tx_reporter_ops = …;
#define MLX5_REPORTER_TX_GRACEFUL_PERIOD …
void mlx5e_reporter_tx_create(struct mlx5e_priv *priv)
{ … }
void mlx5e_reporter_tx_destroy(struct mlx5e_priv *priv)
{ … }