#include <linux/jhash.h>
#include "mod_hdr.h"
#define MLX5_MH_ACT_SZ …
struct mod_hdr_key { … };
struct mlx5e_mod_hdr_handle { … };
static u32 hash_mod_hdr_info(struct mod_hdr_key *key)
{ … }
static int cmp_mod_hdr_info(struct mod_hdr_key *a, struct mod_hdr_key *b)
{ … }
void mlx5e_mod_hdr_tbl_init(struct mod_hdr_tbl *tbl)
{ … }
void mlx5e_mod_hdr_tbl_destroy(struct mod_hdr_tbl *tbl)
{ … }
static struct mlx5e_mod_hdr_handle *mod_hdr_get(struct mod_hdr_tbl *tbl,
struct mod_hdr_key *key,
u32 hash_key)
{ … }
struct mlx5e_mod_hdr_handle *
mlx5e_mod_hdr_attach(struct mlx5_core_dev *mdev,
struct mod_hdr_tbl *tbl,
enum mlx5_flow_namespace_type namespace,
struct mlx5e_tc_mod_hdr_acts *mod_hdr_acts)
{ … }
void mlx5e_mod_hdr_detach(struct mlx5_core_dev *mdev,
struct mod_hdr_tbl *tbl,
struct mlx5e_mod_hdr_handle *mh)
{ … }
struct mlx5_modify_hdr *mlx5e_mod_hdr_get(struct mlx5e_mod_hdr_handle *mh)
{ … }
char *
mlx5e_mod_hdr_alloc(struct mlx5_core_dev *mdev, int namespace,
struct mlx5e_tc_mod_hdr_acts *mod_hdr_acts)
{ … }
void
mlx5e_mod_hdr_dealloc(struct mlx5e_tc_mod_hdr_acts *mod_hdr_acts)
{ … }
char *
mlx5e_mod_hdr_get_item(struct mlx5e_tc_mod_hdr_acts *mod_hdr_acts, int pos)
{ … }