Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
0002 /* Copyright (c) 2020, Mellanox Technologies */
0003 
0004 #ifndef __MLX5E_TRAP_H__
0005 #define __MLX5E_TRAP_H__
0006 
0007 #include "../en.h"
0008 #include "../devlink.h"
0009 
0010 struct mlx5e_trap {
0011     /* data path */
0012     struct mlx5e_rq            rq;
0013     struct mlx5e_tir           tir;
0014     struct napi_struct         napi;
0015     struct device             *pdev;
0016     struct net_device         *netdev;
0017     __be32                     mkey_be;
0018 
0019     /* data path - accessed per napi poll */
0020     struct mlx5e_ch_stats     *stats;
0021 
0022     /* control */
0023     struct mlx5e_priv         *priv;
0024     struct mlx5_core_dev      *mdev;
0025     struct hwtstamp_config    *tstamp;
0026     DECLARE_BITMAP(state, MLX5E_CHANNEL_NUM_STATES);
0027 
0028     struct mlx5e_params        params;
0029     struct mlx5e_rq_param      rq_param;
0030 };
0031 
0032 void mlx5e_close_trap(struct mlx5e_trap *trap);
0033 void mlx5e_deactivate_trap(struct mlx5e_priv *priv);
0034 int mlx5e_handle_trap_event(struct mlx5e_priv *priv, struct mlx5_trap_ctx *trap_ctx);
0035 int mlx5e_apply_traps(struct mlx5e_priv *priv, bool enable);
0036 
0037 #endif