1 | /* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */ |
---|---|
2 | /* Copyright (c) 2020, Mellanox Technologies */ |
3 | |
4 | #ifndef __MLX5E_TRAP_H__ |
5 | #define __MLX5E_TRAP_H__ |
6 | |
7 | #include "../en.h" |
8 | #include "../devlink.h" |
9 | |
10 | struct mlx5e_trap { |
11 | /* data path */ |
12 | struct mlx5e_rq rq; |
13 | struct mlx5e_tir tir; |
14 | struct napi_struct napi; |
15 | struct device *pdev; |
16 | struct net_device *netdev; |
17 | __be32 mkey_be; |
18 | |
19 | /* data path - accessed per napi poll */ |
20 | struct mlx5e_ch_stats *stats; |
21 | |
22 | /* control */ |
23 | struct mlx5e_priv *priv; |
24 | struct mlx5_core_dev *mdev; |
25 | struct hwtstamp_config *tstamp; |
26 | DECLARE_BITMAP(state, MLX5E_CHANNEL_NUM_STATES); |
27 | |
28 | struct mlx5e_params params; |
29 | struct mlx5e_rq_param rq_param; |
30 | }; |
31 | |
32 | void mlx5e_close_trap(struct mlx5e_trap *trap); |
33 | void mlx5e_deactivate_trap(struct mlx5e_priv *priv); |
34 | int mlx5e_handle_trap_event(struct mlx5e_priv *priv, struct mlx5_trap_ctx *trap_ctx); |
35 | int mlx5e_apply_traps(struct mlx5e_priv *priv, bool enable); |
36 | |
37 | #endif |
38 |