Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / drivers / net / ethernet / mellanox / mlx5 / core / en / xsk / setup.h
1 /* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
2 /* Copyright (c) 2019 Mellanox Technologies. */
3
4 #ifndef __MLX5_EN_XSK_SETUP_H__
5 #define __MLX5_EN_XSK_SETUP_H__
6
7 #include "en.h"
8
9 struct mlx5e_xsk_param;
10
11 bool mlx5e_validate_xsk_param(struct mlx5e_params *params,
12                               struct mlx5e_xsk_param *xsk,
13                               struct mlx5_core_dev *mdev);
14 int mlx5e_open_xsk(struct mlx5e_priv *priv, struct mlx5e_params *params,
15                    struct mlx5e_xsk_param *xsk, struct xdp_umem *umem,
16                    struct mlx5e_channel *c);
17 void mlx5e_close_xsk(struct mlx5e_channel *c);
18 void mlx5e_activate_xsk(struct mlx5e_channel *c);
19 void mlx5e_deactivate_xsk(struct mlx5e_channel *c);
20 int mlx5e_xsk_redirect_rqt_to_channel(struct mlx5e_priv *priv, struct mlx5e_channel *c);
21 int mlx5e_xsk_redirect_rqt_to_drop(struct mlx5e_priv *priv, u16 ix);
22 int mlx5e_xsk_redirect_rqts_to_channels(struct mlx5e_priv *priv, struct mlx5e_channels *chs);
23 void mlx5e_xsk_redirect_rqts_to_drop(struct mlx5e_priv *priv, struct mlx5e_channels *chs);
24
25 #endif /* __MLX5_EN_XSK_SETUP_H__ */