File Index
Files and directories
Sign in
FILE

table.h

File preview with syntax highlighting.

linux-6.19.14/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/table.h C
 1/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
 2/* Copyright (c) 2024 NVIDIA Corporation & Affiliates */
 3
 4#ifndef MLX5HWS_TABLE_H_
 5#define MLX5HWS_TABLE_H_
 6
 7struct mlx5hws_default_miss {
 8	/* My miss table */
 9	struct mlx5hws_table *miss_tbl;
10	struct list_head next;
11	/* Tables missing to my table */
12	struct list_head head;
13};
14
15struct mlx5hws_table {
16	struct mlx5hws_context *ctx;
17	u32 ft_id;
18	enum mlx5hws_table_type type;
19	u32 fw_ft_type;
20	u32 level;
21	u16 uid;
22	struct list_head matchers_list;
23	struct list_head tbl_list_node;
24	struct mlx5hws_default_miss default_miss;
25};
26
27static inline
28u32 mlx5hws_table_get_fw_ft_type(enum mlx5hws_table_type type,
29				 u8 *ret_type)
30{
31	if (type != MLX5HWS_TABLE_TYPE_FDB)
32		return -EOPNOTSUPP;
33
34	*ret_type = FS_FT_FDB;
35
36	return 0;
37}
38
39static inline
40u32 mlx5hws_table_get_res_fw_ft_type(enum mlx5hws_table_type tbl_type,
41				     bool is_mirror)
42{
43	if (tbl_type == MLX5HWS_TABLE_TYPE_FDB)
44		return is_mirror ? FS_FT_FDB_TX : FS_FT_FDB_RX;
45
46	return 0;
47}
48
49int mlx5hws_table_create_default_ft(struct mlx5_core_dev *mdev,
50				    struct mlx5hws_table *tbl,
51				    u16 uid, u32 *ft_id);
52
53void mlx5hws_table_destroy_default_ft(struct mlx5hws_table *tbl,
54				      u32 ft_id);
55
56int mlx5hws_table_connect_to_miss_table(struct mlx5hws_table *src_tbl,
57					struct mlx5hws_table *dst_tbl);
58
59int mlx5hws_table_update_connected_miss_tables(struct mlx5hws_table *dst_tbl);
60
61int mlx5hws_table_ft_set_default_next_ft(struct mlx5hws_table *tbl, u32 ft_id);
62
63int mlx5hws_table_ft_set_next_rtc(struct mlx5hws_context *ctx,
64				  u32 ft_id,
65				  u32 fw_ft_type,
66				  u32 rtc_0_id,
67				  u32 rtc_1_id);
68
69int mlx5hws_table_ft_set_next_ft(struct mlx5hws_context *ctx,
70				 u32 ft_id,
71				 u32 fw_ft_type,
72				 u32 next_ft_id);
73
74#endif /* MLX5HWS_TABLE_H_ */
~/ Read-only file preview.