#include "rqt.h"
#include <linux/mlx5/transobj.h>
static bool verify_num_vhca_ids(struct mlx5_core_dev *mdev, u32 *vhca_ids,
unsigned int size)
{ … }
static bool rqt_verify_vhca_ids(struct mlx5_core_dev *mdev, u32 *vhca_ids,
unsigned int size)
{ … }
void mlx5e_rss_params_indir_init_uniform(struct mlx5e_rss_params_indir *indir,
unsigned int num_channels)
{ … }
static void fill_rqn_list(void *rqtc, u32 *rqns, u32 *vhca_ids, unsigned int size)
{ … }
static int mlx5e_rqt_init(struct mlx5e_rqt *rqt, struct mlx5_core_dev *mdev,
u16 max_size, u32 *init_rqns, u32 *init_vhca_ids, u16 init_size)
{ … }
int mlx5e_rqt_init_direct(struct mlx5e_rqt *rqt, struct mlx5_core_dev *mdev,
bool indir_enabled, u32 init_rqn, u32 indir_table_size)
{ … }
static int mlx5e_bits_invert(unsigned long a, int size)
{ … }
static int mlx5e_calc_indir_rqns(u32 *rss_rqns, u32 *rqns, u32 *rss_vhca_ids, u32 *vhca_ids,
unsigned int num_rqns,
u8 hfunc, struct mlx5e_rss_params_indir *indir)
{ … }
int mlx5e_rqt_init_indir(struct mlx5e_rqt *rqt, struct mlx5_core_dev *mdev,
u32 *rqns, u32 *vhca_ids, unsigned int num_rqns,
u8 hfunc, struct mlx5e_rss_params_indir *indir)
{ … }
#define MLX5E_UNIFORM_SPREAD_RQT_FACTOR …
u32 mlx5e_rqt_size(struct mlx5_core_dev *mdev, unsigned int num_channels)
{ … }
#define MLX5E_MAX_RQT_SIZE_ALLOWED_WITH_XOR8_HASH …
unsigned int mlx5e_rqt_max_num_channels_allowed_for_xor8(void)
{ … }
void mlx5e_rqt_destroy(struct mlx5e_rqt *rqt)
{ … }
static int mlx5e_rqt_redirect(struct mlx5e_rqt *rqt, u32 *rqns, u32 *vhca_ids,
unsigned int size)
{ … }
int mlx5e_rqt_redirect_direct(struct mlx5e_rqt *rqt, u32 rqn, u32 *vhca_id)
{ … }
int mlx5e_rqt_redirect_indir(struct mlx5e_rqt *rqt, u32 *rqns, u32 *vhca_ids,
unsigned int num_rqns,
u8 hfunc, struct mlx5e_rss_params_indir *indir)
{ … }