forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-10 9999e48639b3cecb08ffb37358bcba3b48161b29
kernel/drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.h
....@@ -36,66 +36,84 @@
3636 #include "fs_core.h"
3737
3838 struct mlx5_flow_cmds {
39
- int (*create_flow_table)(struct mlx5_core_dev *dev,
40
- u16 vport,
41
- enum fs_flow_table_op_mod op_mod,
42
- enum fs_flow_table_type type,
43
- unsigned int level, unsigned int log_size,
44
- struct mlx5_flow_table *next_ft,
45
- unsigned int *table_id, u32 flags);
46
- int (*destroy_flow_table)(struct mlx5_core_dev *dev,
39
+ int (*create_flow_table)(struct mlx5_flow_root_namespace *ns,
40
+ struct mlx5_flow_table *ft,
41
+ unsigned int log_size,
42
+ struct mlx5_flow_table *next_ft);
43
+ int (*destroy_flow_table)(struct mlx5_flow_root_namespace *ns,
4744 struct mlx5_flow_table *ft);
4845
49
- int (*modify_flow_table)(struct mlx5_core_dev *dev,
46
+ int (*modify_flow_table)(struct mlx5_flow_root_namespace *ns,
5047 struct mlx5_flow_table *ft,
5148 struct mlx5_flow_table *next_ft);
5249
53
- int (*create_flow_group)(struct mlx5_core_dev *dev,
50
+ int (*create_flow_group)(struct mlx5_flow_root_namespace *ns,
5451 struct mlx5_flow_table *ft,
5552 u32 *in,
56
- unsigned int *group_id);
53
+ struct mlx5_flow_group *fg);
5754
58
- int (*destroy_flow_group)(struct mlx5_core_dev *dev,
55
+ int (*destroy_flow_group)(struct mlx5_flow_root_namespace *ns,
5956 struct mlx5_flow_table *ft,
60
- unsigned int group_id);
57
+ struct mlx5_flow_group *fg);
6158
62
- int (*create_fte)(struct mlx5_core_dev *dev,
59
+ int (*create_fte)(struct mlx5_flow_root_namespace *ns,
6360 struct mlx5_flow_table *ft,
6461 struct mlx5_flow_group *fg,
6562 struct fs_fte *fte);
6663
67
- int (*update_fte)(struct mlx5_core_dev *dev,
64
+ int (*update_fte)(struct mlx5_flow_root_namespace *ns,
6865 struct mlx5_flow_table *ft,
69
- unsigned int group_id,
66
+ struct mlx5_flow_group *fg,
7067 int modify_mask,
7168 struct fs_fte *fte);
7269
73
- int (*delete_fte)(struct mlx5_core_dev *dev,
70
+ int (*delete_fte)(struct mlx5_flow_root_namespace *ns,
7471 struct mlx5_flow_table *ft,
7572 struct fs_fte *fte);
7673
77
- int (*update_root_ft)(struct mlx5_core_dev *dev,
74
+ int (*update_root_ft)(struct mlx5_flow_root_namespace *ns,
7875 struct mlx5_flow_table *ft,
7976 u32 underlay_qpn,
8077 bool disconnect);
78
+
79
+ int (*packet_reformat_alloc)(struct mlx5_flow_root_namespace *ns,
80
+ int reformat_type,
81
+ size_t size,
82
+ void *reformat_data,
83
+ enum mlx5_flow_namespace_type namespace,
84
+ struct mlx5_pkt_reformat *pkt_reformat);
85
+
86
+ void (*packet_reformat_dealloc)(struct mlx5_flow_root_namespace *ns,
87
+ struct mlx5_pkt_reformat *pkt_reformat);
88
+
89
+ int (*modify_header_alloc)(struct mlx5_flow_root_namespace *ns,
90
+ u8 namespace, u8 num_actions,
91
+ void *modify_actions,
92
+ struct mlx5_modify_hdr *modify_hdr);
93
+
94
+ void (*modify_header_dealloc)(struct mlx5_flow_root_namespace *ns,
95
+ struct mlx5_modify_hdr *modify_hdr);
96
+
97
+ int (*set_peer)(struct mlx5_flow_root_namespace *ns,
98
+ struct mlx5_flow_root_namespace *peer_ns);
99
+
100
+ int (*create_ns)(struct mlx5_flow_root_namespace *ns);
101
+ int (*destroy_ns)(struct mlx5_flow_root_namespace *ns);
81102 };
82103
83104 int mlx5_cmd_fc_alloc(struct mlx5_core_dev *dev, u32 *id);
105
+int mlx5_cmd_fc_bulk_alloc(struct mlx5_core_dev *dev,
106
+ enum mlx5_fc_bulk_alloc_bitmask alloc_bitmask,
107
+ u32 *id);
84108 int mlx5_cmd_fc_free(struct mlx5_core_dev *dev, u32 id);
85109 int mlx5_cmd_fc_query(struct mlx5_core_dev *dev, u32 id,
86110 u64 *packets, u64 *bytes);
87111
88
-struct mlx5_cmd_fc_bulk;
89
-
90
-struct mlx5_cmd_fc_bulk *
91
-mlx5_cmd_fc_bulk_alloc(struct mlx5_core_dev *dev, u32 id, int num);
92
-void mlx5_cmd_fc_bulk_free(struct mlx5_cmd_fc_bulk *b);
93
-int
94
-mlx5_cmd_fc_bulk_query(struct mlx5_core_dev *dev, struct mlx5_cmd_fc_bulk *b);
95
-void mlx5_cmd_fc_bulk_get(struct mlx5_core_dev *dev,
96
- struct mlx5_cmd_fc_bulk *b, u32 id,
97
- u64 *packets, u64 *bytes);
112
+int mlx5_cmd_fc_get_bulk_query_out_len(int bulk_len);
113
+int mlx5_cmd_fc_bulk_query(struct mlx5_core_dev *dev, u32 base_id, int bulk_len,
114
+ u32 *out);
98115
99116 const struct mlx5_flow_cmds *mlx5_fs_cmd_get_default(enum fs_flow_table_type type);
117
+const struct mlx5_flow_cmds *mlx5_fs_cmd_get_fw_cmds(void);
100118
101119 #endif