1 /* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */ 2 /* Copyright (c) 2024 NVIDIA Corporation & Affiliates */ 3 4 #ifndef MLX5HWS_BWC_COMPLEX_H_ 5 #define MLX5HWS_BWC_COMPLEX_H_ 6 7 bool mlx5hws_bwc_match_params_is_complex(struct mlx5hws_context *ctx, 8 u8 match_criteria_enable, 9 struct mlx5hws_match_parameters *mask); 10 11 int mlx5hws_bwc_matcher_create_complex(struct mlx5hws_bwc_matcher *bwc_matcher, 12 struct mlx5hws_table *table, 13 u32 priority, 14 u8 match_criteria_enable, 15 struct mlx5hws_match_parameters *mask); 16 17 void mlx5hws_bwc_matcher_destroy_complex(struct mlx5hws_bwc_matcher *bwc_matcher); 18 19 int mlx5hws_bwc_matcher_move_all_complex(struct mlx5hws_bwc_matcher *bwc_matcher); 20 21 int mlx5hws_bwc_rule_create_complex(struct mlx5hws_bwc_rule *bwc_rule, 22 struct mlx5hws_match_parameters *params, 23 u32 flow_source, 24 struct mlx5hws_rule_action rule_actions[], 25 u16 bwc_queue_idx); 26 27 int mlx5hws_bwc_rule_destroy_complex(struct mlx5hws_bwc_rule *bwc_rule); 28 29 #endif /* MLX5HWS_BWC_COMPLEX_H_ */ 30