| @@ -3,7 +3,7 @@ · 2 unmodified lines |
| 3 | | 3 | |
| 4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
| 5 | #include "mlx5_ifc_dr_ste_v1.h" | 5 | #include "mlx5_ifc_dr_ste_v1.h" |
| 6 | #include "dr_ste.h" | 6 | #include "dr_ste_v1.h" |
| 7 | | 7 | |
| 8 | #define DR_STE_CALC_DFNR_TYPE(lookup_type, inner) \ | 8 | #define DR_STE_CALC_DFNR_TYPE(lookup_type, inner) \ |
| 9 | ((inner) ? DR_STE_V1_LU_TYPE_##lookup_type##_I : \ | 9 | ((inner) ? DR_STE_V1_LU_TYPE_##lookup_type##_I : \ |
| @@ -262,7 +262,7 @@ static void dr_ste_v1_set_entry_type(u8 *hw_ste_p, u8 entry_type) · 252 unmodified lines |
| 262 | MLX5_SET(ste_match_bwc_v1, hw_ste_p, entry_format, entry_type); | 262 | MLX5_SET(ste_match_bwc_v1, hw_ste_p, entry_format, entry_type); |
| 263 | } | 263 | } |
| 264 | | 264 | |
| 265 | static void dr_ste_v1_set_miss_addr(u8 *hw_ste_p, u64 miss_addr) | 265 | void dr_ste_v1_set_miss_addr(u8 *hw_ste_p, u64 miss_addr) |
| 266 | { | 266 | { |
| 267 | u64 index = miss_addr >> 6; | 267 | u64 index = miss_addr >> 6; |
| 268 | | 268 | |
| @@ -270,7 +270,7 @@ static void dr_ste_v1_set_miss_addr(u8 *hw_ste_p, u64 miss_addr) · 1 unmodified line |
| 270 | MLX5_SET(ste_match_bwc_v1, hw_ste_p, miss_address_31_6, index); | 270 | MLX5_SET(ste_match_bwc_v1, hw_ste_p, miss_address_31_6, index); |
| 271 | } | 271 | } |
| 272 | | 272 | |
| 273 | static u64 dr_ste_v1_get_miss_addr(u8 *hw_ste_p) | 273 | u64 dr_ste_v1_get_miss_addr(u8 *hw_ste_p) |
| 274 | { | 274 | { |
| 275 | u64 index = | 275 | u64 index = |
| 276 | ((u64)MLX5_GET(ste_match_bwc_v1, hw_ste_p, miss_address_31_6) | | 276 | ((u64)MLX5_GET(ste_match_bwc_v1, hw_ste_p, miss_address_31_6) | |
| @@ -279,12 +279,12 @@ static u64 dr_ste_v1_get_miss_addr(u8 *hw_ste_p) · 2 unmodified lines |
| 279 | return index << 6; | 279 | return index << 6; |
| 280 | } | 280 | } |
| 281 | | 281 | |
| 282 | static void dr_ste_v1_set_byte_mask(u8 *hw_ste_p, u16 byte_mask) | 282 | void dr_ste_v1_set_byte_mask(u8 *hw_ste_p, u16 byte_mask) |
| 283 | { | 283 | { |
| 284 | MLX5_SET(ste_match_bwc_v1, hw_ste_p, byte_mask, byte_mask); | 284 | MLX5_SET(ste_match_bwc_v1, hw_ste_p, byte_mask, byte_mask); |
| 285 | } | 285 | } |
| 286 | | 286 | |
| 287 | static u16 dr_ste_v1_get_byte_mask(u8 *hw_ste_p) | 287 | u16 dr_ste_v1_get_byte_mask(u8 *hw_ste_p) |
| 288 | { | 288 | { |
| 289 | return MLX5_GET(ste_match_bwc_v1, hw_ste_p, byte_mask); | 289 | return MLX5_GET(ste_match_bwc_v1, hw_ste_p, byte_mask); |
| 290 | } | 290 | } |
| @@ -295,13 +295,13 @@ static void dr_ste_v1_set_lu_type(u8 *hw_ste_p, u16 lu_type) · 4 unmodified lines |
| 295 | MLX5_SET(ste_match_bwc_v1, hw_ste_p, match_definer_ctx_idx, lu_type & 0xFF); | 295 | MLX5_SET(ste_match_bwc_v1, hw_ste_p, match_definer_ctx_idx, lu_type & 0xFF); |
| 296 | } | 296 | } |
| 297 | | 297 | |
| 298 | static void dr_ste_v1_set_next_lu_type(u8 *hw_ste_p, u16 lu_type) | 298 | void dr_ste_v1_set_next_lu_type(u8 *hw_ste_p, u16 lu_type) |
| 299 | { | 299 | { |
| 300 | MLX5_SET(ste_match_bwc_v1, hw_ste_p, next_entry_format, lu_type >> 8); | 300 | MLX5_SET(ste_match_bwc_v1, hw_ste_p, next_entry_format, lu_type >> 8); |
| 301 | MLX5_SET(ste_match_bwc_v1, hw_ste_p, hash_definer_ctx_idx, lu_type & 0xFF); | 301 | MLX5_SET(ste_match_bwc_v1, hw_ste_p, hash_definer_ctx_idx, lu_type & 0xFF); |
| 302 | } | 302 | } |
| 303 | | 303 | |
| 304 | static u16 dr_ste_v1_get_next_lu_type(u8 *hw_ste_p) | 304 | u16 dr_ste_v1_get_next_lu_type(u8 *hw_ste_p) |
| 305 | { | 305 | { |
| 306 | u8 mode = MLX5_GET(ste_match_bwc_v1, hw_ste_p, next_entry_format); | 306 | u8 mode = MLX5_GET(ste_match_bwc_v1, hw_ste_p, next_entry_format); |
| 307 | u8 index = MLX5_GET(ste_match_bwc_v1, hw_ste_p, hash_definer_ctx_idx); | 307 | u8 index = MLX5_GET(ste_match_bwc_v1, hw_ste_p, hash_definer_ctx_idx); |
| @@ -314,7 +314,7 @@ static void dr_ste_v1_set_hit_gvmi(u8 *hw_ste_p, u16 gvmi) · 6 unmodified lines |
| 314 | MLX5_SET(ste_match_bwc_v1, hw_ste_p, next_table_base_63_48, gvmi); | 314 | MLX5_SET(ste_match_bwc_v1, hw_ste_p, next_table_base_63_48, gvmi); |
| 315 | } | 315 | } |
| 316 | | 316 | |
| 317 | static void dr_ste_v1_set_hit_addr(u8 *hw_ste_p, u64 icm_addr, u32 ht_size) | 317 | void dr_ste_v1_set_hit_addr(u8 *hw_ste_p, u64 icm_addr, u32 ht_size) |
| 318 | { | 318 | { |
| 319 | u64 index = (icm_addr >> 5) | ht_size; | 319 | u64 index = (icm_addr >> 5) | ht_size; |
| 320 | | 320 | |
| @@ -322,8 +322,7 @@ static void dr_ste_v1_set_hit_addr(u8 *hw_ste_p, u64 icm_addr, u32 ht_size) · 1 unmodified line |
| 322 | MLX5_SET(ste_match_bwc_v1, hw_ste_p, next_table_base_31_5_size, index); | 322 | MLX5_SET(ste_match_bwc_v1, hw_ste_p, next_table_base_31_5_size, index); |
| 323 | } | 323 | } |
| 324 | | 324 | |
| 325 | static void dr_ste_v1_init(u8 *hw_ste_p, u16 lu_type, | 325 | void dr_ste_v1_init(u8 *hw_ste_p, u16 lu_type, bool is_rx, u16 gvmi) |
| 326 | bool is_rx, u16 gvmi) | | |
| 327 | { | 326 | { |
| 328 | dr_ste_v1_set_lu_type(hw_ste_p, lu_type); | 327 | dr_ste_v1_set_lu_type(hw_ste_p, lu_type); |
| 329 | dr_ste_v1_set_next_lu_type(hw_ste_p, MLX5DR_STE_LU_TYPE_DONT_CARE); | 328 | dr_ste_v1_set_next_lu_type(hw_ste_p, MLX5DR_STE_LU_TYPE_DONT_CARE); |
| @@ -333,8 +332,7 @@ static void dr_ste_v1_init(u8 *hw_ste_p, u16 lu_type, · 3 unmodified lines |
| 333 | MLX5_SET(ste_match_bwc_v1, hw_ste_p, miss_address_63_48, gvmi); | 332 | MLX5_SET(ste_match_bwc_v1, hw_ste_p, miss_address_63_48, gvmi); |
| 334 | } | 333 | } |
| 335 | | 334 | |
| 336 | static void dr_ste_v1_prepare_for_postsend(u8 *hw_ste_p, | 335 | void dr_ste_v1_prepare_for_postsend(u8 *hw_ste_p, u32 ste_size) |
| 337 | u32 ste_size) | | |
| 338 | { | 336 | { |
| 339 | u8 *tag = hw_ste_p + DR_STE_SIZE_CTRL; | 337 | u8 *tag = hw_ste_p + DR_STE_SIZE_CTRL; |
| 340 | u8 *mask = tag + DR_STE_SIZE_TAG; | 338 | u8 *mask = tag + DR_STE_SIZE_TAG; |
| @@ -511,12 +509,12 @@ static void dr_ste_v1_arr_init_next_match(u8 **last_ste, · 170 unmodified lines |
| 511 | memset(action, 0, MLX5_FLD_SZ_BYTES(ste_mask_and_match_v1, action)); | 509 | memset(action, 0, MLX5_FLD_SZ_BYTES(ste_mask_and_match_v1, action)); |
| 512 | } | 510 | } |
| 513 | | 511 | |
| 514 | static void dr_ste_v1_set_actions_tx(struct mlx5dr_domain *dmn, | 512 | void dr_ste_v1_set_actions_tx(struct mlx5dr_domain *dmn, |
| 515 | u8 *action_type_set, | 513 | u8 *action_type_set, |
| 516 | u32 actions_caps, | 514 | u32 actions_caps, |
| 517 | u8 *last_ste, | 515 | u8 *last_ste, |
| 518 | struct mlx5dr_ste_actions_attr *attr, | 516 | struct mlx5dr_ste_actions_attr *attr, |
| 519 | u32 *added_stes) | 517 | u32 *added_stes) |
| 520 | { | 518 | { |
| 521 | u8 *action = MLX5_ADDR_OF(ste_match_bwc_v1, last_ste, action); | 519 | u8 *action = MLX5_ADDR_OF(ste_match_bwc_v1, last_ste, action); |
| 522 | u8 action_sz = DR_STE_ACTION_DOUBLE_SZ; | 520 | u8 action_sz = DR_STE_ACTION_DOUBLE_SZ; |
| @@ -635,12 +633,12 @@ static void dr_ste_v1_set_actions_tx(struct mlx5dr_domain *dmn, · 112 unmodified lines |
| 635 | dr_ste_v1_set_hit_addr(last_ste, attr->final_icm_addr, 1); | 633 | dr_ste_v1_set_hit_addr(last_ste, attr->final_icm_addr, 1); |
| 636 | } | 634 | } |
| 637 | | 635 | |
| 638 | static void dr_ste_v1_set_actions_rx(struct mlx5dr_domain *dmn, | 636 | void dr_ste_v1_set_actions_rx(struct mlx5dr_domain *dmn, |
| 639 | u8 *action_type_set, | 637 | u8 *action_type_set, |
| 640 | u32 actions_caps, | 638 | u32 actions_caps, |
| 641 | u8 *last_ste, | 639 | u8 *last_ste, |
| 642 | struct mlx5dr_ste_actions_attr *attr, | 640 | struct mlx5dr_ste_actions_attr *attr, |
| 643 | u32 *added_stes) | 641 | u32 *added_stes) |
| 644 | { | 642 | { |
| 645 | u8 *action = MLX5_ADDR_OF(ste_match_bwc_v1, last_ste, action); | 643 | u8 *action = MLX5_ADDR_OF(ste_match_bwc_v1, last_ste, action); |
| 646 | u8 action_sz = DR_STE_ACTION_DOUBLE_SZ; | 644 | u8 action_sz = DR_STE_ACTION_DOUBLE_SZ; |
| @@ -808,11 +806,11 @@ static void dr_ste_v1_set_actions_rx(struct mlx5dr_domain *dmn, · 161 unmodified lines |
| 808 | dr_ste_v1_set_hit_addr(last_ste, attr->final_icm_addr, 1); | 806 | dr_ste_v1_set_hit_addr(last_ste, attr->final_icm_addr, 1); |
| 809 | } | 807 | } |
| 810 | | 808 | |
| 811 | static void dr_ste_v1_set_action_set(u8 *d_action, | 809 | void dr_ste_v1_set_action_set(u8 *d_action, |
| 812 | u8 hw_field, | 810 | u8 hw_field, |
| 813 | u8 shifter, | 811 | u8 shifter, |
| 814 | u8 length, | 812 | u8 length, |
| 815 | u32 data) | 813 | u32 data) |
| 816 | { | 814 | { |
| 817 | shifter += MLX5_MODIFY_HEADER_V1_QW_OFFSET; | 815 | shifter += MLX5_MODIFY_HEADER_V1_QW_OFFSET; |
| 818 | MLX5_SET(ste_double_action_set_v1, d_action, action_id, DR_STE_V1_ACTION_ID_SET); | 816 | MLX5_SET(ste_double_action_set_v1, d_action, action_id, DR_STE_V1_ACTION_ID_SET); |
| @@ -822,11 +820,11 @@ static void dr_ste_v1_set_action_set(u8 *d_action, · 3 unmodified lines |
| 822 | MLX5_SET(ste_double_action_set_v1, d_action, inline_data, data); | 820 | MLX5_SET(ste_double_action_set_v1, d_action, inline_data, data); |
| 823 | } | 821 | } |
| 824 | | 822 | |
| 825 | static void dr_ste_v1_set_action_add(u8 *d_action, | 823 | void dr_ste_v1_set_action_add(u8 *d_action, |
| 826 | u8 hw_field, | 824 | u8 hw_field, |
| 827 | u8 shifter, | 825 | u8 shifter, |
| 828 | u8 length, | 826 | u8 length, |
| 829 | u32 data) | 827 | u32 data) |
| 830 | { | 828 | { |
| 831 | shifter += MLX5_MODIFY_HEADER_V1_QW_OFFSET; | 829 | shifter += MLX5_MODIFY_HEADER_V1_QW_OFFSET; |
| 832 | MLX5_SET(ste_double_action_add_v1, d_action, action_id, DR_STE_V1_ACTION_ID_ADD); | 830 | MLX5_SET(ste_double_action_add_v1, d_action, action_id, DR_STE_V1_ACTION_ID_ADD); |
| @@ -836,12 +834,12 @@ static void dr_ste_v1_set_action_add(u8 *d_action, · 3 unmodified lines |
| 836 | MLX5_SET(ste_double_action_add_v1, d_action, add_value, data); | 834 | MLX5_SET(ste_double_action_add_v1, d_action, add_value, data); |
| 837 | } | 835 | } |
| 838 | | 836 | |
| 839 | static void dr_ste_v1_set_action_copy(u8 *d_action, | 837 | void dr_ste_v1_set_action_copy(u8 *d_action, |
| 840 | u8 dst_hw_field, | 838 | u8 dst_hw_field, |
| 841 | u8 dst_shifter, | 839 | u8 dst_shifter, |
| 842 | u8 dst_len, | 840 | u8 dst_len, |
| 843 | u8 src_hw_field, | 841 | u8 src_hw_field, |
| 844 | u8 src_shifter) | 842 | u8 src_shifter) |
| 845 | { | 843 | { |
| 846 | dst_shifter += MLX5_MODIFY_HEADER_V1_QW_OFFSET; | 844 | dst_shifter += MLX5_MODIFY_HEADER_V1_QW_OFFSET; |
| 847 | src_shifter += MLX5_MODIFY_HEADER_V1_QW_OFFSET; | 845 | src_shifter += MLX5_MODIFY_HEADER_V1_QW_OFFSET; |
| @@ -856,11 +854,11 @@ static void dr_ste_v1_set_action_copy(u8 *d_action, · 8 unmodified lines |
| 856 | #define DR_STE_DECAP_L3_ACTION_NUM 8 | 854 | #define DR_STE_DECAP_L3_ACTION_NUM 8 |
| 857 | #define DR_STE_L2_HDR_MAX_SZ 20 | 855 | #define DR_STE_L2_HDR_MAX_SZ 20 |
| 858 | | 856 | |
| 859 | static int dr_ste_v1_set_action_decap_l3_list(void *data, | 857 | int dr_ste_v1_set_action_decap_l3_list(void *data, |
| 860 | u32 data_sz, | 858 | u32 data_sz, |
| 861 | u8 *hw_action, | 859 | u8 *hw_action, |
| 862 | u32 hw_action_sz, | 860 | u32 hw_action_sz, |
| 863 | u16 *used_hw_action_num) | 861 | u16 *used_hw_action_num) |
| 864 | { | 862 | { |
| 865 | u8 padded_data[DR_STE_L2_HDR_MAX_SZ] = {}; | 863 | u8 padded_data[DR_STE_L2_HDR_MAX_SZ] = {}; |
| 866 | void *data_ptr = padded_data; | 864 | void *data_ptr = padded_data; |
| @@ -985,8 +983,8 @@ static int dr_ste_v1_build_eth_l2_src_dst_tag(struct mlx5dr_match_param *value, · 118 unmodified lines |
| 985 | return 0; | 983 | return 0; |
| 986 | } | 984 | } |
| 987 | | 985 | |
| 988 | static void dr_ste_v1_build_eth_l2_src_dst_init(struct mlx5dr_ste_build *sb, | 986 | void dr_ste_v1_build_eth_l2_src_dst_init(struct mlx5dr_ste_build *sb, |
| 989 | struct mlx5dr_match_param *mask) | 987 | struct mlx5dr_match_param *mask) |
| 990 | { | 988 | { |
| 991 | dr_ste_v1_build_eth_l2_src_dst_bit_mask(mask, sb->inner, sb->bit_mask); | 989 | dr_ste_v1_build_eth_l2_src_dst_bit_mask(mask, sb->inner, sb->bit_mask); |
| 992 | | 990 | |
| @@ -1009,8 +1007,8 @@ static int dr_ste_v1_build_eth_l3_ipv6_dst_tag(struct mlx5dr_match_param *value, · 16 unmodified lines |
| 1009 | return 0; | 1007 | return 0; |
| 1010 | } | 1008 | } |
| 1011 | | 1009 | |
| 1012 | static void dr_ste_v1_build_eth_l3_ipv6_dst_init(struct mlx5dr_ste_build *sb, | 1010 | void dr_ste_v1_build_eth_l3_ipv6_dst_init(struct mlx5dr_ste_build *sb, |
| 1013 | struct mlx5dr_match_param *mask) | 1011 | struct mlx5dr_match_param *mask) |
| 1014 | { | 1012 | { |
| 1015 | dr_ste_v1_build_eth_l3_ipv6_dst_tag(mask, sb, sb->bit_mask); | 1013 | dr_ste_v1_build_eth_l3_ipv6_dst_tag(mask, sb, sb->bit_mask); |
| 1016 | | 1014 | |
| @@ -1033,8 +1031,8 @@ static int dr_ste_v1_build_eth_l3_ipv6_src_tag(struct mlx5dr_match_param *value, · 16 unmodified lines |
| 1033 | return 0; | 1031 | return 0; |
| 1034 | } | 1032 | } |
| 1035 | | 1033 | |
| 1036 | static void dr_ste_v1_build_eth_l3_ipv6_src_init(struct mlx5dr_ste_build *sb, | 1034 | void dr_ste_v1_build_eth_l3_ipv6_src_init(struct mlx5dr_ste_build *sb, |
| 1037 | struct mlx5dr_match_param *mask) | 1035 | struct mlx5dr_match_param *mask) |
| 1038 | { | 1036 | { |
| 1039 | dr_ste_v1_build_eth_l3_ipv6_src_tag(mask, sb, sb->bit_mask); | 1037 | dr_ste_v1_build_eth_l3_ipv6_src_tag(mask, sb, sb->bit_mask); |
| 1040 | | 1038 | |
| @@ -1068,8 +1066,8 @@ static int dr_ste_v1_build_eth_l3_ipv4_5_tuple_tag(struct mlx5dr_match_param *va · 27 unmodified lines |
| 1068 | return 0; | 1066 | return 0; |
| 1069 | } | 1067 | } |
| 1070 | | 1068 | |
| 1071 | static void dr_ste_v1_build_eth_l3_ipv4_5_tuple_init(struct mlx5dr_ste_build *sb, | 1069 | void dr_ste_v1_build_eth_l3_ipv4_5_tuple_init(struct mlx5dr_ste_build *sb, |
| 1072 | struct mlx5dr_match_param *mask) | 1070 | struct mlx5dr_match_param *mask) |
| 1073 | { | 1071 | { |
| 1074 | dr_ste_v1_build_eth_l3_ipv4_5_tuple_tag(mask, sb, sb->bit_mask); | 1072 | dr_ste_v1_build_eth_l3_ipv4_5_tuple_tag(mask, sb, sb->bit_mask); |
| 1075 | | 1073 | |
| @@ -1209,8 +1207,8 @@ static int dr_ste_v1_build_eth_l2_src_tag(struct mlx5dr_match_param *value, · 133 unmodified lines |
| 1209 | return dr_ste_v1_build_eth_l2_src_or_dst_tag(value, sb->inner, tag); | 1207 | return dr_ste_v1_build_eth_l2_src_or_dst_tag(value, sb->inner, tag); |
| 1210 | } | 1208 | } |
| 1211 | | 1209 | |
| 1212 | static void dr_ste_v1_build_eth_l2_src_init(struct mlx5dr_ste_build *sb, | 1210 | void dr_ste_v1_build_eth_l2_src_init(struct mlx5dr_ste_build *sb, |
| 1213 | struct mlx5dr_match_param *mask) | 1211 | struct mlx5dr_match_param *mask) |
| 1214 | { | 1212 | { |
| 1215 | dr_ste_v1_build_eth_l2_src_bit_mask(mask, sb->inner, sb->bit_mask); | 1213 | dr_ste_v1_build_eth_l2_src_bit_mask(mask, sb->inner, sb->bit_mask); |
| 1216 | | 1214 | |
| @@ -1242,8 +1240,8 @@ static int dr_ste_v1_build_eth_l2_dst_tag(struct mlx5dr_match_param *value, · 25 unmodified lines |
| 1242 | return dr_ste_v1_build_eth_l2_src_or_dst_tag(value, sb->inner, tag); | 1240 | return dr_ste_v1_build_eth_l2_src_or_dst_tag(value, sb->inner, tag); |
| 1243 | } | 1241 | } |
| 1244 | | 1242 | |
| 1245 | static void dr_ste_v1_build_eth_l2_dst_init(struct mlx5dr_ste_build *sb, | 1243 | void dr_ste_v1_build_eth_l2_dst_init(struct mlx5dr_ste_build *sb, |
| 1246 | struct mlx5dr_match_param *mask) | 1244 | struct mlx5dr_match_param *mask) |
| 1247 | { | 1245 | { |
| 1248 | dr_ste_v1_build_eth_l2_dst_bit_mask(mask, sb->inner, sb->bit_mask); | 1246 | dr_ste_v1_build_eth_l2_dst_bit_mask(mask, sb->inner, sb->bit_mask); |
| 1249 | | 1247 | |
| @@ -1322,8 +1320,8 @@ static int dr_ste_v1_build_eth_l2_tnl_tag(struct mlx5dr_match_param *value, · 72 unmodified lines |
| 1322 | return 0; | 1320 | return 0; |
| 1323 | } | 1321 | } |
| 1324 | | 1322 | |
| 1325 | static void dr_ste_v1_build_eth_l2_tnl_init(struct mlx5dr_ste_build *sb, | 1323 | void dr_ste_v1_build_eth_l2_tnl_init(struct mlx5dr_ste_build *sb, |
| 1326 | struct mlx5dr_match_param *mask) | 1324 | struct mlx5dr_match_param *mask) |
| 1327 | { | 1325 | { |
| 1328 | dr_ste_v1_build_eth_l2_tnl_bit_mask(mask, sb->inner, sb->bit_mask); | 1326 | dr_ste_v1_build_eth_l2_tnl_bit_mask(mask, sb->inner, sb->bit_mask); |
| 1329 | | 1327 | |
| @@ -1344,8 +1342,8 @@ static int dr_ste_v1_build_eth_l3_ipv4_misc_tag(struct mlx5dr_match_param *value · 14 unmodified lines |
| 1344 | return 0; | 1342 | return 0; |
| 1345 | } | 1343 | } |
| 1346 | | 1344 | |
| 1347 | static void dr_ste_v1_build_eth_l3_ipv4_misc_init(struct mlx5dr_ste_build *sb, | 1345 | void dr_ste_v1_build_eth_l3_ipv4_misc_init(struct mlx5dr_ste_build *sb, |
| 1348 | struct mlx5dr_match_param *mask) | 1346 | struct mlx5dr_match_param *mask) |
| 1349 | { | 1347 | { |
| 1350 | dr_ste_v1_build_eth_l3_ipv4_misc_tag(mask, sb, sb->bit_mask); | 1348 | dr_ste_v1_build_eth_l3_ipv4_misc_tag(mask, sb, sb->bit_mask); |
| 1351 | | 1349 | |
| @@ -1384,8 +1382,8 @@ static int dr_ste_v1_build_eth_ipv6_l3_l4_tag(struct mlx5dr_match_param *value, · 32 unmodified lines |
| 1384 | return 0; | 1382 | return 0; |
| 1385 | } | 1383 | } |
| 1386 | | 1384 | |
| 1387 | static void dr_ste_v1_build_eth_ipv6_l3_l4_init(struct mlx5dr_ste_build *sb, | 1385 | void dr_ste_v1_build_eth_ipv6_l3_l4_init(struct mlx5dr_ste_build *sb, |
| 1388 | struct mlx5dr_match_param *mask) | 1386 | struct mlx5dr_match_param *mask) |
| 1389 | { | 1387 | { |
| 1390 | dr_ste_v1_build_eth_ipv6_l3_l4_tag(mask, sb, sb->bit_mask); | 1388 | dr_ste_v1_build_eth_ipv6_l3_l4_tag(mask, sb, sb->bit_mask); |
| 1391 | | 1389 | |
| @@ -1408,8 +1406,8 @@ static int dr_ste_v1_build_mpls_tag(struct mlx5dr_match_param *value, · 16 unmodified lines |
| 1408 | return 0; | 1406 | return 0; |
| 1409 | } | 1407 | } |
| 1410 | | 1408 | |
| 1411 | static void dr_ste_v1_build_mpls_init(struct mlx5dr_ste_build *sb, | 1409 | void dr_ste_v1_build_mpls_init(struct mlx5dr_ste_build *sb, |
| 1412 | struct mlx5dr_match_param *mask) | 1410 | struct mlx5dr_match_param *mask) |
| 1413 | { | 1411 | { |
| 1414 | dr_ste_v1_build_mpls_tag(mask, sb, sb->bit_mask); | 1412 | dr_ste_v1_build_mpls_tag(mask, sb, sb->bit_mask); |
| 1415 | | 1413 | |
| @@ -1435,8 +1433,8 @@ static int dr_ste_v1_build_tnl_gre_tag(struct mlx5dr_match_param *value, · 19 unmodified lines |
| 1435 | return 0; | 1433 | return 0; |
| 1436 | } | 1434 | } |
| 1437 | | 1435 | |
| 1438 | static void dr_ste_v1_build_tnl_gre_init(struct mlx5dr_ste_build *sb, | 1436 | void dr_ste_v1_build_tnl_gre_init(struct mlx5dr_ste_build *sb, |
| 1439 | struct mlx5dr_match_param *mask) | 1437 | struct mlx5dr_match_param *mask) |
| 1440 | { | 1438 | { |
| 1441 | dr_ste_v1_build_tnl_gre_tag(mask, sb, sb->bit_mask); | 1439 | dr_ste_v1_build_tnl_gre_tag(mask, sb, sb->bit_mask); |
| 1442 | | 1440 | |
| @@ -1480,8 +1478,8 @@ static int dr_ste_v1_build_tnl_mpls_tag(struct mlx5dr_match_param *value, · 37 unmodified lines |
| 1480 | return 0; | 1478 | return 0; |
| 1481 | } | 1479 | } |
| 1482 | | 1480 | |
| 1483 | static void dr_ste_v1_build_tnl_mpls_init(struct mlx5dr_ste_build *sb, | 1481 | void dr_ste_v1_build_tnl_mpls_init(struct mlx5dr_ste_build *sb, |
| 1484 | struct mlx5dr_match_param *mask) | 1482 | struct mlx5dr_match_param *mask) |
| 1485 | { | 1483 | { |
| 1486 | dr_ste_v1_build_tnl_mpls_tag(mask, sb, sb->bit_mask); | 1484 | dr_ste_v1_build_tnl_mpls_tag(mask, sb, sb->bit_mask); |
| 1487 | | 1485 | |
| @@ -1515,8 +1513,8 @@ static int dr_ste_v1_build_tnl_mpls_over_udp_tag(struct mlx5dr_match_param *valu · 27 unmodified lines |
| 1515 | return 0; | 1513 | return 0; |
| 1516 | } | 1514 | } |
| 1517 | | 1515 | |
| 1518 | static void dr_ste_v1_build_tnl_mpls_over_udp_init(struct mlx5dr_ste_build *sb, | 1516 | void dr_ste_v1_build_tnl_mpls_over_udp_init(struct mlx5dr_ste_build *sb, |
| 1519 | struct mlx5dr_match_param *mask) | 1517 | struct mlx5dr_match_param *mask) |
| 1520 | { | 1518 | { |
| 1521 | dr_ste_v1_build_tnl_mpls_over_udp_tag(mask, sb, sb->bit_mask); | 1519 | dr_ste_v1_build_tnl_mpls_over_udp_tag(mask, sb, sb->bit_mask); |
| 1522 | | 1520 | |
| @@ -1556,8 +1554,8 @@ static int dr_ste_v1_build_tnl_mpls_over_gre_tag(struct mlx5dr_match_param *valu · 33 unmodified lines |
| 1556 | return 0; | 1554 | return 0; |
| 1557 | } | 1555 | } |
| 1558 | | 1556 | |
| 1559 | static void dr_ste_v1_build_tnl_mpls_over_gre_init(struct mlx5dr_ste_build *sb, | 1557 | void dr_ste_v1_build_tnl_mpls_over_gre_init(struct mlx5dr_ste_build *sb, |
| 1560 | struct mlx5dr_match_param *mask) | 1558 | struct mlx5dr_match_param *mask) |
| 1561 | { | 1559 | { |
| 1562 | dr_ste_v1_build_tnl_mpls_over_gre_tag(mask, sb, sb->bit_mask); | 1560 | dr_ste_v1_build_tnl_mpls_over_gre_tag(mask, sb, sb->bit_mask); |
| 1563 | | 1561 | |
| @@ -1603,8 +1601,8 @@ static int dr_ste_v1_build_icmp_tag(struct mlx5dr_match_param *value, · 39 unmodified lines |
| 1603 | return 0; | 1601 | return 0; |
| 1604 | } | 1602 | } |
| 1605 | | 1603 | |
| 1606 | static void dr_ste_v1_build_icmp_init(struct mlx5dr_ste_build *sb, | 1604 | void dr_ste_v1_build_icmp_init(struct mlx5dr_ste_build *sb, |
| 1607 | struct mlx5dr_match_param *mask) | 1605 | struct mlx5dr_match_param *mask) |
| 1608 | { | 1606 | { |
| 1609 | dr_ste_v1_build_icmp_tag(mask, sb, sb->bit_mask); | 1607 | dr_ste_v1_build_icmp_tag(mask, sb, sb->bit_mask); |
| 1610 | | 1608 | |
| @@ -1625,8 +1623,8 @@ static int dr_ste_v1_build_general_purpose_tag(struct mlx5dr_match_param *value, · 14 unmodified lines |
| 1625 | return 0; | 1623 | return 0; |
| 1626 | } | 1624 | } |
| 1627 | | 1625 | |
| 1628 | static void dr_ste_v1_build_general_purpose_init(struct mlx5dr_ste_build *sb, | 1626 | void dr_ste_v1_build_general_purpose_init(struct mlx5dr_ste_build *sb, |
| 1629 | struct mlx5dr_match_param *mask) | 1627 | struct mlx5dr_match_param *mask) |
| 1630 | { | 1628 | { |
| 1631 | dr_ste_v1_build_general_purpose_tag(mask, sb, sb->bit_mask); | 1629 | dr_ste_v1_build_general_purpose_tag(mask, sb, sb->bit_mask); |
| 1632 | | 1630 | |
| @@ -1652,8 +1650,8 @@ static int dr_ste_v1_build_eth_l4_misc_tag(struct mlx5dr_match_param *value, · 19 unmodified lines |
| 1652 | return 0; | 1650 | return 0; |
| 1653 | } | 1651 | } |
| 1654 | | 1652 | |
| 1655 | static void dr_ste_v1_build_eth_l4_misc_init(struct mlx5dr_ste_build *sb, | 1653 | void dr_ste_v1_build_eth_l4_misc_init(struct mlx5dr_ste_build *sb, |
| 1656 | struct mlx5dr_match_param *mask) | 1654 | struct mlx5dr_match_param *mask) |
| 1657 | { | 1655 | { |
| 1658 | dr_ste_v1_build_eth_l4_misc_tag(mask, sb, sb->bit_mask); | 1656 | dr_ste_v1_build_eth_l4_misc_tag(mask, sb, sb->bit_mask); |
| 1659 | | 1657 | |
| @@ -1682,9 +1680,8 @@ dr_ste_v1_build_flex_parser_tnl_vxlan_gpe_tag(struct mlx5dr_match_param *value, · 22 unmodified lines |
| 1682 | return 0; | 1680 | return 0; |
| 1683 | } | 1681 | } |
| 1684 | | 1682 | |
| 1685 | static void | 1683 | void dr_ste_v1_build_flex_parser_tnl_vxlan_gpe_init(struct mlx5dr_ste_build *sb, |
| 1686 | dr_ste_v1_build_flex_parser_tnl_vxlan_gpe_init(struct mlx5dr_ste_build *sb, | 1684 | struct mlx5dr_match_param *mask) |
| 1687 | struct mlx5dr_match_param *mask) | | |
| 1688 | { | 1685 | { |
| 1689 | dr_ste_v1_build_flex_parser_tnl_vxlan_gpe_tag(mask, sb, sb->bit_mask); | 1686 | dr_ste_v1_build_flex_parser_tnl_vxlan_gpe_tag(mask, sb, sb->bit_mask); |
| 1690 | | 1687 | |
| @@ -1712,9 +1709,8 @@ dr_ste_v1_build_flex_parser_tnl_geneve_tag(struct mlx5dr_match_param *value, · 21 unmodified lines |
| 1712 | return 0; | 1709 | return 0; |
| 1713 | } | 1710 | } |
| 1714 | | 1711 | |
| 1715 | static void | 1712 | void dr_ste_v1_build_flex_parser_tnl_geneve_init(struct mlx5dr_ste_build *sb, |
| 1716 | dr_ste_v1_build_flex_parser_tnl_geneve_init(struct mlx5dr_ste_build *sb, | 1713 | struct mlx5dr_match_param *mask) |
| 1717 | struct mlx5dr_match_param *mask) | | |
| 1718 | { | 1714 | { |
| 1719 | dr_ste_v1_build_flex_parser_tnl_geneve_tag(mask, sb, sb->bit_mask); | 1715 | dr_ste_v1_build_flex_parser_tnl_geneve_tag(mask, sb, sb->bit_mask); |
| 1720 | | 1716 | |
| @@ -1735,8 +1731,8 @@ static int dr_ste_v1_build_tnl_header_0_1_tag(struct mlx5dr_match_param *value, · 14 unmodified lines |
| 1735 | return 0; | 1731 | return 0; |
| 1736 | } | 1732 | } |
| 1737 | | 1733 | |
| 1738 | static void dr_ste_v1_build_tnl_header_0_1_init(struct mlx5dr_ste_build *sb, | 1734 | void dr_ste_v1_build_tnl_header_0_1_init(struct mlx5dr_ste_build *sb, |
| 1739 | struct mlx5dr_match_param *mask) | 1735 | struct mlx5dr_match_param *mask) |
| 1740 | { | 1736 | { |
| 1741 | sb->lu_type = DR_STE_V1_LU_TYPE_FLEX_PARSER_TNL_HEADER; | 1737 | sb->lu_type = DR_STE_V1_LU_TYPE_FLEX_PARSER_TNL_HEADER; |
| 1742 | dr_ste_v1_build_tnl_header_0_1_tag(mask, sb, sb->bit_mask); | 1738 | dr_ste_v1_build_tnl_header_0_1_tag(mask, sb, sb->bit_mask); |
| @@ -1758,8 +1754,8 @@ static int dr_ste_v1_build_register_0_tag(struct mlx5dr_match_param *value, · 15 unmodified lines |
| 1758 | return 0; | 1754 | return 0; |
| 1759 | } | 1755 | } |
| 1760 | | 1756 | |
| 1761 | static void dr_ste_v1_build_register_0_init(struct mlx5dr_ste_build *sb, | 1757 | void dr_ste_v1_build_register_0_init(struct mlx5dr_ste_build *sb, |
| 1762 | struct mlx5dr_match_param *mask) | 1758 | struct mlx5dr_match_param *mask) |
| 1763 | { | 1759 | { |
| 1764 | dr_ste_v1_build_register_0_tag(mask, sb, sb->bit_mask); | 1760 | dr_ste_v1_build_register_0_tag(mask, sb, sb->bit_mask); |
| 1765 | | 1761 | |
| @@ -1782,8 +1778,8 @@ static int dr_ste_v1_build_register_1_tag(struct mlx5dr_match_param *value, · 16 unmodified lines |
| 1782 | return 0; | 1778 | return 0; |
| 1783 | } | 1779 | } |
| 1784 | | 1780 | |
| 1785 | static void dr_ste_v1_build_register_1_init(struct mlx5dr_ste_build *sb, | 1781 | void dr_ste_v1_build_register_1_init(struct mlx5dr_ste_build *sb, |
| 1786 | struct mlx5dr_match_param *mask) | 1782 | struct mlx5dr_match_param *mask) |
| 1787 | { | 1783 | { |
| 1788 | dr_ste_v1_build_register_1_tag(mask, sb, sb->bit_mask); | 1784 | dr_ste_v1_build_register_1_tag(mask, sb, sb->bit_mask); |
| 1789 | | 1785 | |
| @@ -1846,8 +1842,8 @@ static int dr_ste_v1_build_src_gvmi_qpn_tag(struct mlx5dr_match_param *value, · 56 unmodified lines |
| 1846 | return 0; | 1842 | return 0; |
| 1847 | } | 1843 | } |
| 1848 | | 1844 | |
| 1849 | static void dr_ste_v1_build_src_gvmi_qpn_init(struct mlx5dr_ste_build *sb, | 1845 | void dr_ste_v1_build_src_gvmi_qpn_init(struct mlx5dr_ste_build *sb, |
| 1850 | struct mlx5dr_match_param *mask) | 1846 | struct mlx5dr_match_param *mask) |
| 1851 | { | 1847 | { |
| 1852 | dr_ste_v1_build_src_gvmi_qpn_bit_mask(mask, sb->bit_mask); | 1848 | dr_ste_v1_build_src_gvmi_qpn_bit_mask(mask, sb->bit_mask); |
| 1853 | | 1849 | |
| @@ -1901,8 +1897,8 @@ static int dr_ste_v1_build_felx_parser_tag(struct mlx5dr_match_param *value, · 47 unmodified lines |
| 1901 | return 0; | 1897 | return 0; |
| 1902 | } | 1898 | } |
| 1903 | | 1899 | |
| 1904 | static void dr_ste_v1_build_flex_parser_0_init(struct mlx5dr_ste_build *sb, | 1900 | void dr_ste_v1_build_flex_parser_0_init(struct mlx5dr_ste_build *sb, |
| 1905 | struct mlx5dr_match_param *mask) | 1901 | struct mlx5dr_match_param *mask) |
| 1906 | { | 1902 | { |
| 1907 | sb->lu_type = DR_STE_V1_LU_TYPE_FLEX_PARSER_0; | 1903 | sb->lu_type = DR_STE_V1_LU_TYPE_FLEX_PARSER_0; |
| 1908 | dr_ste_v1_build_felx_parser_tag(mask, sb, sb->bit_mask); | 1904 | dr_ste_v1_build_felx_parser_tag(mask, sb, sb->bit_mask); |
| @@ -1910,8 +1906,8 @@ static void dr_ste_v1_build_flex_parser_0_init(struct mlx5dr_ste_build *sb, · 1 unmodified line |
| 1910 | sb->ste_build_tag_func = &dr_ste_v1_build_felx_parser_tag; | 1906 | sb->ste_build_tag_func = &dr_ste_v1_build_felx_parser_tag; |
| 1911 | } | 1907 | } |
| 1912 | | 1908 | |
| 1913 | static void dr_ste_v1_build_flex_parser_1_init(struct mlx5dr_ste_build *sb, | 1909 | void dr_ste_v1_build_flex_parser_1_init(struct mlx5dr_ste_build *sb, |
| 1914 | struct mlx5dr_match_param *mask) | 1910 | struct mlx5dr_match_param *mask) |
| 1915 | { | 1911 | { |
| 1916 | sb->lu_type = DR_STE_V1_LU_TYPE_FLEX_PARSER_1; | 1912 | sb->lu_type = DR_STE_V1_LU_TYPE_FLEX_PARSER_1; |
| 1917 | dr_ste_v1_build_felx_parser_tag(mask, sb, sb->bit_mask); | 1913 | dr_ste_v1_build_felx_parser_tag(mask, sb, sb->bit_mask); |
| @@ -1935,7 +1931,7 @@ dr_ste_v1_build_flex_parser_tnl_geneve_tlv_opt_tag(struct mlx5dr_match_param *va · 17 unmodified lines |
| 1935 | return 0; | 1931 | return 0; |
| 1936 | } | 1932 | } |
| 1937 | | 1933 | |
| 1938 | static void | 1934 | void |
| 1939 | dr_ste_v1_build_flex_parser_tnl_geneve_tlv_opt_init(struct mlx5dr_ste_build *sb, | 1935 | dr_ste_v1_build_flex_parser_tnl_geneve_tlv_opt_init(struct mlx5dr_ste_build *sb, |
| 1940 | struct mlx5dr_match_param *mask) | 1936 | struct mlx5dr_match_param *mask) |
| 1941 | { | 1937 | { |
| @@ -1968,7 +1964,7 @@ dr_ste_v1_build_flex_parser_tnl_geneve_tlv_opt_exist_tag(struct mlx5dr_match_par · 26 unmodified lines |
| 1968 | return 0; | 1964 | return 0; |
| 1969 | } | 1965 | } |
| 1970 | | 1966 | |
| 1971 | static void | 1967 | void |
| 1972 | dr_ste_v1_build_flex_parser_tnl_geneve_tlv_opt_exist_init(struct mlx5dr_ste_build *sb, | 1968 | dr_ste_v1_build_flex_parser_tnl_geneve_tlv_opt_exist_init(struct mlx5dr_ste_build *sb, |
| 1973 | struct mlx5dr_match_param *mask) | 1969 | struct mlx5dr_match_param *mask) |
| 1974 | { | 1970 | { |
| @@ -1991,8 +1987,8 @@ static int dr_ste_v1_build_flex_parser_tnl_gtpu_tag(struct mlx5dr_match_param *v · 16 unmodified lines |
| 1991 | return 0; | 1987 | return 0; |
| 1992 | } | 1988 | } |
| 1993 | | 1989 | |
| 1994 | static void dr_ste_v1_build_flex_parser_tnl_gtpu_init(struct mlx5dr_ste_build *sb, | 1990 | void dr_ste_v1_build_flex_parser_tnl_gtpu_init(struct mlx5dr_ste_build *sb, |
| 1995 | struct mlx5dr_match_param *mask) | 1991 | struct mlx5dr_match_param *mask) |
| 1996 | { | 1992 | { |
| 1997 | dr_ste_v1_build_flex_parser_tnl_gtpu_tag(mask, sb, sb->bit_mask); | 1993 | dr_ste_v1_build_flex_parser_tnl_gtpu_tag(mask, sb, sb->bit_mask); |
| 1998 | | 1994 | |
| @@ -2017,7 +2013,7 @@ dr_ste_v1_build_tnl_gtpu_flex_parser_0_tag(struct mlx5dr_match_param *value, · 18 unmodified lines |
| 2017 | return 0; | 2013 | return 0; |
| 2018 | } | 2014 | } |
| 2019 | | 2015 | |
| 2020 | static void | 2016 | void |
| 2021 | dr_ste_v1_build_tnl_gtpu_flex_parser_0_init(struct mlx5dr_ste_build *sb, | 2017 | dr_ste_v1_build_tnl_gtpu_flex_parser_0_init(struct mlx5dr_ste_build *sb, |
| 2022 | struct mlx5dr_match_param *mask) | 2018 | struct mlx5dr_match_param *mask) |
| 2023 | { | 2019 | { |
| @@ -2044,7 +2040,7 @@ dr_ste_v1_build_tnl_gtpu_flex_parser_1_tag(struct mlx5dr_match_param *value, · 20 unmodified lines |
| 2044 | return 0; | 2040 | return 0; |
| 2045 | } | 2041 | } |
| 2046 | | 2042 | |
| 2047 | static void | 2043 | void |
| 2048 | dr_ste_v1_build_tnl_gtpu_flex_parser_1_init(struct mlx5dr_ste_build *sb, | 2044 | dr_ste_v1_build_tnl_gtpu_flex_parser_1_init(struct mlx5dr_ste_build *sb, |
| 2049 | struct mlx5dr_match_param *mask) | 2045 | struct mlx5dr_match_param *mask) |
| 2050 | { | 2046 | { |