Lines Matching refs:params
57 ulp_rte_parser_field_bitmap_update(struct ulp_rte_parser_params *params, in ulp_rte_parser_field_bitmap_update() argument
63 field = ¶ms->hdr_field[idx]; in ulp_rte_parser_field_bitmap_update()
65 ULP_INDEX_BITMAP_SET(params->fld_bitmap.bits, idx); in ulp_rte_parser_field_bitmap_update()
67 ULP_INDEX_BITMAP_SET(params->fld_s_bitmap.bits, idx); in ulp_rte_parser_field_bitmap_update()
70 ULP_COMP_FLD_IDX_WR(params, in ulp_rte_parser_field_bitmap_update()
73 ULP_INDEX_BITMAP_RESET(params->fld_bitmap.bits, idx); in ulp_rte_parser_field_bitmap_update()
80 ulp_rte_prsr_fld_mask(struct ulp_rte_parser_params *params, in ulp_rte_prsr_fld_mask() argument
87 struct ulp_rte_hdr_field *field = ¶ms->hdr_field[*idx]; in ulp_rte_prsr_fld_mask()
95 ulp_rte_parser_field_bitmap_update(params, *idx, prsr_act); in ulp_rte_prsr_fld_mask()
108 ulp_rte_prsr_fld_size_validate(struct ulp_rte_parser_params *params, in ulp_rte_prsr_fld_size_validate() argument
112 if (params->field_idx + size >= BNXT_ULP_PROTO_HDR_MAX) { in ulp_rte_prsr_fld_size_validate()
116 *idx = params->field_idx; in ulp_rte_prsr_fld_size_validate()
117 params->field_idx += size; in ulp_rte_prsr_fld_size_validate()
127 struct ulp_rte_parser_params *params) in bnxt_ulp_rte_parser_hdr_parse() argument
132 params->field_idx = BNXT_ULP_PROTO_HDR_SVIF_NUM; in bnxt_ulp_rte_parser_hdr_parse()
135 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_O_NO_VTAG, 1); in bnxt_ulp_rte_parser_hdr_parse()
136 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_NO_VTAG, 1); in bnxt_ulp_rte_parser_hdr_parse()
158 if (hdr_info->proto_hdr_func(item, params) != in bnxt_ulp_rte_parser_hdr_parse()
167 return ulp_rte_parser_implicit_match_port_process(params); in bnxt_ulp_rte_parser_hdr_parse()
181 struct ulp_rte_parser_params *params) in bnxt_ulp_rte_parser_act_parse() argument
208 params) != in bnxt_ulp_rte_parser_act_parse()
217 ulp_rte_parser_implicit_act_port_process(params); in bnxt_ulp_rte_parser_act_parse()
231 bnxt_ulp_comp_fld_intf_update(struct ulp_rte_parser_params *params) in bnxt_ulp_comp_fld_intf_update() argument
239 dir = ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_DIRECTION); in bnxt_ulp_comp_fld_intf_update()
242 port_id = ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_INCOMING_IF); in bnxt_ulp_comp_fld_intf_update()
243 if (ulp_port_db_dev_port_to_ulp_index(params->ulp_ctx, in bnxt_ulp_comp_fld_intf_update()
252 if (ulp_port_db_parif_get(params->ulp_ctx, ifindex, in bnxt_ulp_comp_fld_intf_update()
257 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_PHY_PORT_PARIF, in bnxt_ulp_comp_fld_intf_update()
261 mtype = ULP_COMP_FLD_IDX_RD(params, in bnxt_ulp_comp_fld_intf_update()
264 ULP_COMP_FLD_IDX_WR(params, in bnxt_ulp_comp_fld_intf_update()
268 if (ulp_port_db_parif_get(params->ulp_ctx, ifindex, in bnxt_ulp_comp_fld_intf_update()
275 ULP_COMP_FLD_IDX_WR(params, in bnxt_ulp_comp_fld_intf_update()
281 if (ulp_port_db_parif_get(params->ulp_ctx, ifindex, in bnxt_ulp_comp_fld_intf_update()
288 ULP_COMP_FLD_IDX_WR(params, in bnxt_ulp_comp_fld_intf_update()
293 ULP_COMP_FLD_IDX_WR(params, in bnxt_ulp_comp_fld_intf_update()
301 ulp_post_process_normal_flow(struct ulp_rte_parser_params *params) in ulp_post_process_normal_flow() argument
308 dir = ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_DIRECTION); in ulp_post_process_normal_flow()
309 match_port_type = ULP_COMP_FLD_IDX_RD(params, in ulp_post_process_normal_flow()
311 act_port_type = ULP_COMP_FLD_IDX_RD(params, in ulp_post_process_normal_flow()
313 act_port_set = ULP_COMP_FLD_IDX_RD(params, in ulp_post_process_normal_flow()
318 ULP_BITMAP_SET(params->hdr_bitmap.bits, in ulp_post_process_normal_flow()
320 ULP_BITMAP_SET(params->act_bitmap.bits, in ulp_post_process_normal_flow()
327 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_VF_TO_VF, 1); in ulp_post_process_normal_flow()
330 if (ULP_BITMAP_ISSET(params->act_bitmap.bits, in ulp_post_process_normal_flow()
337 if ((ULP_BITMAP_ISSET(params->hdr_bitmap.bits, in ulp_post_process_normal_flow()
339 !ULP_BITMAP_ISSET(params->act_bitmap.bits, in ulp_post_process_normal_flow()
341 ULP_COMP_FLD_IDX_WR(params, in ulp_post_process_normal_flow()
344 ULP_COMP_FLD_IDX_WR(params, in ulp_post_process_normal_flow()
350 params->hdr_bitmap.bits |= params->hdr_fp_bit.bits; in ulp_post_process_normal_flow()
353 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_FID, params->fid); in ulp_post_process_normal_flow()
356 bnxt_ulp_comp_fld_intf_update(params); in ulp_post_process_normal_flow()
366 bnxt_ulp_rte_parser_post_process(struct ulp_rte_parser_params *params) in bnxt_ulp_rte_parser_post_process() argument
368 ulp_post_process_normal_flow(params); in bnxt_ulp_rte_parser_post_process()
375 bnxt_ulp_rte_parser_direction_compute(struct ulp_rte_parser_params *params) in bnxt_ulp_rte_parser_direction_compute() argument
380 match_port_type = ULP_COMP_FLD_IDX_RD(params, in bnxt_ulp_rte_parser_direction_compute()
384 if ((params->dir_attr & BNXT_ULP_FLOW_ATTR_INGRESS) && in bnxt_ulp_rte_parser_direction_compute()
386 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_DIRECTION, in bnxt_ulp_rte_parser_direction_compute()
390 if (params->dir_attr & BNXT_ULP_FLOW_ATTR_INGRESS) in bnxt_ulp_rte_parser_direction_compute()
391 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_DIRECTION, in bnxt_ulp_rte_parser_direction_compute()
394 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_DIRECTION, in bnxt_ulp_rte_parser_direction_compute()
401 ulp_rte_parser_svif_set(struct ulp_rte_parser_params *params, in ulp_rte_parser_svif_set() argument
412 if (ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_SVIF_FLAG) != in ulp_rte_parser_svif_set()
420 port_type = ulp_port_db_port_type_get(params->ulp_ctx, ifindex); in ulp_rte_parser_svif_set()
427 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_MATCH_PORT_TYPE, port_type); in ulp_rte_parser_svif_set()
430 bnxt_ulp_rte_parser_direction_compute(params); in ulp_rte_parser_svif_set()
434 ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_DIRECTION); in ulp_rte_parser_svif_set()
445 ulp_port_db_svif_get(params->ulp_ctx, ifindex, svif_type, in ulp_rte_parser_svif_set()
448 hdr_field = ¶ms->hdr_field[BNXT_ULP_PROTO_HDR_FIELD_SVIF_IDX]; in ulp_rte_parser_svif_set()
452 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_SVIF_FLAG, in ulp_rte_parser_svif_set()
459 ulp_rte_parser_implicit_match_port_process(struct ulp_rte_parser_params *params) in ulp_rte_parser_implicit_match_port_process() argument
466 if (ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_SVIF_FLAG) != in ulp_rte_parser_implicit_match_port_process()
471 port_id = ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_INCOMING_IF); in ulp_rte_parser_implicit_match_port_process()
473 if (ulp_port_db_dev_port_to_ulp_index(params->ulp_ctx, in ulp_rte_parser_implicit_match_port_process()
481 rc = ulp_rte_parser_svif_set(params, ifindex, svif_mask, in ulp_rte_parser_implicit_match_port_process()
488 ulp_rte_parser_implicit_act_port_process(struct ulp_rte_parser_params *params) in ulp_rte_parser_implicit_act_port_process() argument
494 if (ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_ACT_PORT_IS_SET)) { in ulp_rte_parser_implicit_act_port_process()
498 port_id.id = ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_INCOMING_IF); in ulp_rte_parser_implicit_act_port_process()
503 ulp_rte_port_act_handler(&action_item, params); in ulp_rte_parser_implicit_act_port_process()
506 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_ACT_PORT_IS_SET, 0); in ulp_rte_parser_implicit_act_port_process()
513 struct ulp_rte_parser_params *params) in ulp_rte_pf_hdr_handler() argument
520 port_id = ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_INCOMING_IF); in ulp_rte_pf_hdr_handler()
523 if (ulp_port_db_dev_port_to_ulp_index(params->ulp_ctx, in ulp_rte_pf_hdr_handler()
531 return ulp_rte_parser_svif_set(params, ifindex, svif_mask, in ulp_rte_pf_hdr_handler()
538 struct ulp_rte_parser_params *params) in ulp_rte_vf_hdr_handler() argument
558 if (ulp_port_db_dev_func_id_to_ulp_index(params->ulp_ctx, in ulp_rte_vf_hdr_handler()
565 return ulp_rte_parser_svif_set(params, ifindex, mask, in ulp_rte_vf_hdr_handler()
572 struct ulp_rte_parser_params *params) in ulp_rte_port_hdr_handler() argument
623 if (ulp_port_db_dev_port_to_ulp_index(params->ulp_ctx, in ulp_rte_port_hdr_handler()
630 return ulp_rte_parser_svif_set(params, ifindex, mask, item_dir); in ulp_rte_port_hdr_handler()
636 struct ulp_rte_parser_params *params) in ulp_rte_phy_port_hdr_handler() argument
658 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_MATCH_PORT_TYPE, in ulp_rte_phy_port_hdr_handler()
662 bnxt_ulp_rte_parser_direction_compute(params); in ulp_rte_phy_port_hdr_handler()
665 dir = ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_DIRECTION); in ulp_rte_phy_port_hdr_handler()
673 rc = ulp_port_db_phy_port_svif_get(params->ulp_ctx, port_spec->index, in ulp_rte_phy_port_hdr_handler()
682 hdr_field = ¶ms->hdr_field[BNXT_ULP_PROTO_HDR_FIELD_SVIF_IDX]; in ulp_rte_phy_port_hdr_handler()
686 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_SVIF_FLAG, in ulp_rte_phy_port_hdr_handler()
693 port_id = ULP_COMP_FLD_IDX_RD(params, in ulp_rte_phy_port_hdr_handler()
695 if (ulp_port_db_phy_port_get(params->ulp_ctx, in ulp_rte_phy_port_hdr_handler()
701 ULP_BITMAP_SET(params->hdr_bitmap.bits, in ulp_rte_phy_port_hdr_handler()
752 struct ulp_rte_parser_params *params) in ulp_rte_eth_hdr_handler() argument
773 if (ulp_rte_prsr_fld_size_validate(params, &idx, in ulp_rte_eth_hdr_handler()
784 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_eth_hdr_handler()
790 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_eth_hdr_handler()
796 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_eth_hdr_handler()
802 if (ULP_BITMAP_ISSET(params->hdr_bitmap.bits, in ulp_rte_eth_hdr_handler()
804 ULP_BITMAP_ISSET(params->hdr_bitmap.bits, in ulp_rte_eth_hdr_handler()
806 ULP_BITMAP_ISSET(params->hdr_bitmap.bits, in ulp_rte_eth_hdr_handler()
808 ULP_BITMAP_ISSET(params->hdr_bitmap.bits, in ulp_rte_eth_hdr_handler()
810 ULP_BITMAP_ISSET(params->hdr_bitmap.bits, in ulp_rte_eth_hdr_handler()
812 ULP_BITMAP_SET(params->hdr_bitmap.bits, BNXT_ULP_HDR_BIT_I_ETH); in ulp_rte_eth_hdr_handler()
815 ULP_BITMAP_SET(params->hdr_bitmap.bits, BNXT_ULP_HDR_BIT_O_ETH); in ulp_rte_eth_hdr_handler()
816 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_TUN_OFF_DMAC_ID, in ulp_rte_eth_hdr_handler()
820 ulp_rte_l2_proto_type_update(params, eth_type, inner_flag); in ulp_rte_eth_hdr_handler()
828 struct ulp_rte_parser_params *params) in ulp_rte_vlan_hdr_handler() argument
868 if (ulp_rte_prsr_fld_size_validate(params, &idx, in ulp_rte_vlan_hdr_handler()
884 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_vlan_hdr_handler()
889 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_vlan_hdr_handler()
895 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_vlan_hdr_handler()
901 outer_vtag_num = ULP_COMP_FLD_IDX_RD(params, in ulp_rte_vlan_hdr_handler()
903 inner_vtag_num = ULP_COMP_FLD_IDX_RD(params, in ulp_rte_vlan_hdr_handler()
907 hdr_bit = ¶ms->hdr_bitmap; in ulp_rte_vlan_hdr_handler()
913 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_O_VTAG_NUM, in ulp_rte_vlan_hdr_handler()
915 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_O_NO_VTAG, 0); in ulp_rte_vlan_hdr_handler()
916 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_O_ONE_VTAG, 1); in ulp_rte_vlan_hdr_handler()
917 ULP_BITMAP_SET(params->hdr_bitmap.bits, in ulp_rte_vlan_hdr_handler()
920 ULP_COMP_FLD_IDX_WR(params, in ulp_rte_vlan_hdr_handler()
928 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_O_VTAG_NUM, in ulp_rte_vlan_hdr_handler()
930 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_O_TWO_VTAGS, 1); in ulp_rte_vlan_hdr_handler()
931 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_O_ONE_VTAG, 0); in ulp_rte_vlan_hdr_handler()
932 ULP_BITMAP_SET(params->hdr_bitmap.bits, in ulp_rte_vlan_hdr_handler()
935 ULP_COMP_FLD_IDX_WR(params, in ulp_rte_vlan_hdr_handler()
943 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_VTAG_NUM, in ulp_rte_vlan_hdr_handler()
945 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_NO_VTAG, 0); in ulp_rte_vlan_hdr_handler()
946 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_ONE_VTAG, 1); in ulp_rte_vlan_hdr_handler()
947 ULP_BITMAP_SET(params->hdr_bitmap.bits, in ulp_rte_vlan_hdr_handler()
950 ULP_COMP_FLD_IDX_WR(params, in ulp_rte_vlan_hdr_handler()
958 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_VTAG_NUM, in ulp_rte_vlan_hdr_handler()
960 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_TWO_VTAGS, 1); in ulp_rte_vlan_hdr_handler()
961 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_ONE_VTAG, 0); in ulp_rte_vlan_hdr_handler()
962 ULP_BITMAP_SET(params->hdr_bitmap.bits, in ulp_rte_vlan_hdr_handler()
965 ULP_COMP_FLD_IDX_WR(params, in ulp_rte_vlan_hdr_handler()
973 ulp_rte_l2_proto_type_update(params, eth_type, inner_flag); in ulp_rte_vlan_hdr_handler()
1034 struct ulp_rte_parser_params *params) in ulp_rte_ipv4_hdr_handler() argument
1038 struct ulp_rte_hdr_bitmap *hdr_bitmap = ¶ms->hdr_bitmap; in ulp_rte_ipv4_hdr_handler()
1046 cnt = ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_L3_HDR_CNT); in ulp_rte_ipv4_hdr_handler()
1052 if (ulp_rte_prsr_fld_size_validate(params, &idx, in ulp_rte_ipv4_hdr_handler()
1063 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_ipv4_hdr_handler()
1074 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_ipv4_hdr_handler()
1082 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_ipv4_hdr_handler()
1088 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_ipv4_hdr_handler()
1094 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_ipv4_hdr_handler()
1102 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_ipv4_hdr_handler()
1109 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_ipv4_hdr_handler()
1119 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_ipv4_hdr_handler()
1125 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_ipv4_hdr_handler()
1132 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_ipv4_hdr_handler()
1140 ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_L3_TUN)) { in ulp_rte_ipv4_hdr_handler()
1142 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_L3, 1); in ulp_rte_ipv4_hdr_handler()
1146 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_O_L3, 1); in ulp_rte_ipv4_hdr_handler()
1148 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_TUN_OFF_DIP_ID, in ulp_rte_ipv4_hdr_handler()
1160 ulp_rte_l3_proto_type_update(params, proto, inner_flag); in ulp_rte_ipv4_hdr_handler()
1161 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_L3_HDR_CNT, ++cnt); in ulp_rte_ipv4_hdr_handler()
1168 struct ulp_rte_parser_params *params) in ulp_rte_ipv6_hdr_handler() argument
1172 struct ulp_rte_hdr_bitmap *hdr_bitmap = ¶ms->hdr_bitmap; in ulp_rte_ipv6_hdr_handler()
1183 cnt = ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_L3_HDR_CNT); in ulp_rte_ipv6_hdr_handler()
1189 if (ulp_rte_prsr_fld_size_validate(params, &idx, in ulp_rte_ipv6_hdr_handler()
1219 ulp_rte_prsr_fld_mask(params, &idx, size, &ver_spec, &ver_mask, in ulp_rte_ipv6_hdr_handler()
1227 ulp_rte_prsr_fld_mask(params, &idx, size, &tc_spec, &tc_mask, in ulp_rte_ipv6_hdr_handler()
1229 ulp_rte_prsr_fld_mask(params, &idx, size, &lab_spec, &lab_mask, in ulp_rte_ipv6_hdr_handler()
1233 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_ipv6_hdr_handler()
1240 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_ipv6_hdr_handler()
1246 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_ipv6_hdr_handler()
1252 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_ipv6_hdr_handler()
1259 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_ipv6_hdr_handler()
1267 ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_L3_TUN)) { in ulp_rte_ipv6_hdr_handler()
1269 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_L3, 1); in ulp_rte_ipv6_hdr_handler()
1273 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_O_L3, 1); in ulp_rte_ipv6_hdr_handler()
1275 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_TUN_OFF_DIP_ID, in ulp_rte_ipv6_hdr_handler()
1280 ulp_rte_l3_proto_type_update(params, proto, inner_flag); in ulp_rte_ipv6_hdr_handler()
1281 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_L3_HDR_CNT, ++cnt); in ulp_rte_ipv6_hdr_handler()
1288 ulp_rte_l4_proto_type_update(struct ulp_rte_parser_params *params, in ulp_rte_l4_proto_type_update() argument
1296 ULP_BITMAP_SET(params->hdr_bitmap.bits, hdr_bit); in ulp_rte_l4_proto_type_update()
1297 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_L4, 1); in ulp_rte_l4_proto_type_update()
1298 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_L4_SRC_PORT, in ulp_rte_l4_proto_type_update()
1300 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_L4_DST_PORT, in ulp_rte_l4_proto_type_update()
1302 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_L4_SRC_PORT_MASK, in ulp_rte_l4_proto_type_update()
1304 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_L4_DST_PORT_MASK, in ulp_rte_l4_proto_type_update()
1306 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_L3_FB_PROTO_ID, in ulp_rte_l4_proto_type_update()
1308 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_L4_FB_SRC_PORT, in ulp_rte_l4_proto_type_update()
1310 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_L4_FB_DST_PORT, in ulp_rte_l4_proto_type_update()
1312 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_I_L3_PROTO_ID, in ulp_rte_l4_proto_type_update()
1318 ULP_BITMAP_SET(params->hdr_bitmap.bits, hdr_bit); in ulp_rte_l4_proto_type_update()
1319 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_O_L4, 1); in ulp_rte_l4_proto_type_update()
1320 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_O_L4_SRC_PORT, in ulp_rte_l4_proto_type_update()
1322 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_O_L4_DST_PORT, in ulp_rte_l4_proto_type_update()
1324 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_O_L4_SRC_PORT_MASK, in ulp_rte_l4_proto_type_update()
1326 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_O_L4_DST_PORT_MASK, in ulp_rte_l4_proto_type_update()
1328 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_O_L3_FB_PROTO_ID, in ulp_rte_l4_proto_type_update()
1330 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_O_L4_FB_SRC_PORT, in ulp_rte_l4_proto_type_update()
1332 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_O_L4_FB_DST_PORT, in ulp_rte_l4_proto_type_update()
1334 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_O_L3_PROTO_ID, in ulp_rte_l4_proto_type_update()
1344 ULP_BITMAP_SET(params->hdr_fp_bit.bits, in ulp_rte_l4_proto_type_update()
1346 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_L3_TUN, 1); in ulp_rte_l4_proto_type_update()
1353 struct ulp_rte_parser_params *params) in ulp_rte_udp_hdr_handler() argument
1357 struct ulp_rte_hdr_bitmap *hdr_bitmap = ¶ms->hdr_bitmap; in ulp_rte_udp_hdr_handler()
1365 cnt = ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_L4_HDR_CNT); in ulp_rte_udp_hdr_handler()
1380 if (ulp_rte_prsr_fld_size_validate(params, &idx, in ulp_rte_udp_hdr_handler()
1391 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_udp_hdr_handler()
1397 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_udp_hdr_handler()
1403 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_udp_hdr_handler()
1409 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_udp_hdr_handler()
1419 ulp_rte_l4_proto_type_update(params, sport, sport_mask, dport, in ulp_rte_udp_hdr_handler()
1421 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_L4_HDR_CNT, ++cnt); in ulp_rte_udp_hdr_handler()
1428 struct ulp_rte_parser_params *params) in ulp_rte_tcp_hdr_handler() argument
1432 struct ulp_rte_hdr_bitmap *hdr_bitmap = ¶ms->hdr_bitmap; in ulp_rte_tcp_hdr_handler()
1440 cnt = ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_L4_HDR_CNT); in ulp_rte_tcp_hdr_handler()
1455 if (ulp_rte_prsr_fld_size_validate(params, &idx, in ulp_rte_tcp_hdr_handler()
1466 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_tcp_hdr_handler()
1472 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_tcp_hdr_handler()
1478 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_tcp_hdr_handler()
1484 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_tcp_hdr_handler()
1490 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_tcp_hdr_handler()
1496 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_tcp_hdr_handler()
1502 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_tcp_hdr_handler()
1508 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_tcp_hdr_handler()
1514 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_tcp_hdr_handler()
1524 ulp_rte_l4_proto_type_update(params, sport, sport_mask, dport, in ulp_rte_tcp_hdr_handler()
1526 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_L4_HDR_CNT, ++cnt); in ulp_rte_tcp_hdr_handler()
1533 struct ulp_rte_parser_params *params) in ulp_rte_vxlan_hdr_handler() argument
1537 struct ulp_rte_hdr_bitmap *hdr_bitmap = ¶ms->hdr_bitmap; in ulp_rte_vxlan_hdr_handler()
1541 if (ulp_rte_prsr_fld_size_validate(params, &idx, in ulp_rte_vxlan_hdr_handler()
1552 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_vxlan_hdr_handler()
1558 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_vxlan_hdr_handler()
1564 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_vxlan_hdr_handler()
1570 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_vxlan_hdr_handler()
1577 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_L3_TUN, 1); in ulp_rte_vxlan_hdr_handler()
1584 struct ulp_rte_parser_params *params) in ulp_rte_gre_hdr_handler() argument
1588 struct ulp_rte_hdr_bitmap *hdr_bitmap = ¶ms->hdr_bitmap; in ulp_rte_gre_hdr_handler()
1592 if (ulp_rte_prsr_fld_size_validate(params, &idx, in ulp_rte_gre_hdr_handler()
1599 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_gre_hdr_handler()
1605 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_gre_hdr_handler()
1612 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_L3_TUN, 1); in ulp_rte_gre_hdr_handler()
1619 struct ulp_rte_parser_params *params __rte_unused) in ulp_rte_item_any_handler()
1627 struct ulp_rte_parser_params *params) in ulp_rte_icmp_hdr_handler() argument
1631 struct ulp_rte_hdr_bitmap *hdr_bitmap = ¶ms->hdr_bitmap; in ulp_rte_icmp_hdr_handler()
1635 if (ulp_rte_prsr_fld_size_validate(params, &idx, in ulp_rte_icmp_hdr_handler()
1642 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_icmp_hdr_handler()
1648 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_icmp_hdr_handler()
1654 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_icmp_hdr_handler()
1660 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_icmp_hdr_handler()
1666 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_icmp_hdr_handler()
1672 if (ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_L3_TUN)) in ulp_rte_icmp_hdr_handler()
1682 struct ulp_rte_parser_params *params) in ulp_rte_icmp6_hdr_handler() argument
1686 struct ulp_rte_hdr_bitmap *hdr_bitmap = ¶ms->hdr_bitmap; in ulp_rte_icmp6_hdr_handler()
1690 if (ulp_rte_prsr_fld_size_validate(params, &idx, in ulp_rte_icmp6_hdr_handler()
1697 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_icmp6_hdr_handler()
1703 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_icmp6_hdr_handler()
1709 ulp_rte_prsr_fld_mask(params, &idx, size, in ulp_rte_icmp6_hdr_handler()
1720 if (ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_L3_TUN)) in ulp_rte_icmp6_hdr_handler()
1730 struct ulp_rte_parser_params *params __rte_unused) in ulp_rte_void_hdr_handler()
1738 struct ulp_rte_parser_params *params __rte_unused) in ulp_rte_void_act_handler()
1803 ulp_rte_enc_eth_hdr_handler(struct ulp_rte_parser_params *params, in ulp_rte_enc_eth_hdr_handler() argument
1809 field = ¶ms->enc_field[BNXT_ULP_ENC_FIELD_ETH_DMAC]; in ulp_rte_enc_eth_hdr_handler()
1819 ULP_BITMAP_SET(params->enc_hdr_bitmap.bits, BNXT_ULP_HDR_BIT_O_ETH); in ulp_rte_enc_eth_hdr_handler()
1824 ulp_rte_enc_vlan_hdr_handler(struct ulp_rte_parser_params *params, in ulp_rte_enc_vlan_hdr_handler() argument
1832 field = ¶ms->enc_field[BNXT_ULP_ENC_FIELD_O_VLAN_TCI]; in ulp_rte_enc_vlan_hdr_handler()
1833 ULP_BITMAP_SET(params->enc_hdr_bitmap.bits, in ulp_rte_enc_vlan_hdr_handler()
1836 field = ¶ms->enc_field[BNXT_ULP_ENC_FIELD_I_VLAN_TCI]; in ulp_rte_enc_vlan_hdr_handler()
1837 ULP_BITMAP_SET(params->enc_hdr_bitmap.bits, in ulp_rte_enc_vlan_hdr_handler()
1850 ulp_rte_enc_ipv4_hdr_handler(struct ulp_rte_parser_params *params, in ulp_rte_enc_ipv4_hdr_handler() argument
1857 field = ¶ms->enc_field[BNXT_ULP_ENC_FIELD_IPV4_IHL]; in ulp_rte_enc_ipv4_hdr_handler()
1890 ULP_BITMAP_SET(params->enc_hdr_bitmap.bits, BNXT_ULP_HDR_BIT_O_IPV4); in ulp_rte_enc_ipv4_hdr_handler()
1895 ulp_rte_enc_ipv6_hdr_handler(struct ulp_rte_parser_params *params, in ulp_rte_enc_ipv6_hdr_handler() argument
1903 field = ¶ms->enc_field[BNXT_ULP_ENC_FIELD_IPV6_VTC_FLOW]; in ulp_rte_enc_ipv6_hdr_handler()
1927 ULP_BITMAP_SET(params->enc_hdr_bitmap.bits, BNXT_ULP_HDR_BIT_O_IPV6); in ulp_rte_enc_ipv6_hdr_handler()
1932 ulp_rte_enc_udp_hdr_handler(struct ulp_rte_parser_params *params, in ulp_rte_enc_udp_hdr_handler() argument
1939 field = ¶ms->enc_field[BNXT_ULP_ENC_FIELD_UDP_SPORT]; in ulp_rte_enc_udp_hdr_handler()
1946 ULP_BITMAP_SET(params->enc_hdr_bitmap.bits, BNXT_ULP_HDR_BIT_O_UDP); in ulp_rte_enc_udp_hdr_handler()
1949 field = ¶ms->enc_field[BNXT_ULP_ENC_FIELD_IPV4_PROTO]; in ulp_rte_enc_udp_hdr_handler()
1951 field = ¶ms->enc_field[BNXT_ULP_ENC_FIELD_IPV6_PROTO]; in ulp_rte_enc_udp_hdr_handler()
1957 ulp_rte_enc_vxlan_hdr_handler(struct ulp_rte_parser_params *params, in ulp_rte_enc_vxlan_hdr_handler() argument
1963 field = ¶ms->enc_field[BNXT_ULP_ENC_FIELD_VXLAN_FLAGS]; in ulp_rte_enc_vxlan_hdr_handler()
1976 ULP_BITMAP_SET(params->enc_hdr_bitmap.bits, BNXT_ULP_HDR_BIT_T_VXLAN); in ulp_rte_enc_vxlan_hdr_handler()
1982 struct ulp_rte_parser_params *params) in ulp_rte_vxlan_encap_act_handler() argument
1992 struct ulp_rte_act_bitmap *act = ¶ms->act_bitmap; in ulp_rte_vxlan_encap_act_handler()
1993 struct ulp_rte_act_prop *ap = ¶ms->act_prop; in ulp_rte_vxlan_encap_act_handler()
2018 ulp_rte_enc_eth_hdr_handler(params, item->spec); in ulp_rte_vxlan_encap_act_handler()
2028 ulp_rte_enc_vlan_hdr_handler(params, item->spec, 0); in ulp_rte_vxlan_encap_act_handler()
2038 ulp_rte_enc_vlan_hdr_handler(params, item->spec, 1); in ulp_rte_vxlan_encap_act_handler()
2073 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_ACT_ENCAP_IPV4_FLAG, in ulp_rte_vxlan_encap_act_handler()
2076 ulp_rte_enc_ipv4_hdr_handler(params, ipv4_spec); in ulp_rte_vxlan_encap_act_handler()
2095 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_ACT_ENCAP_IPV6_FLAG, in ulp_rte_vxlan_encap_act_handler()
2098 ulp_rte_enc_ipv6_hdr_handler(params, ipv6_spec); in ulp_rte_vxlan_encap_act_handler()
2113 ulp_rte_enc_udp_hdr_handler(params, item->spec); in ulp_rte_vxlan_encap_act_handler()
2131 ulp_rte_enc_vxlan_hdr_handler(params, &vxlan_spec); in ulp_rte_vxlan_encap_act_handler()
2142 struct ulp_rte_parser_params *params) in ulp_rte_vxlan_decap_act_handler() argument
2145 ULP_BITMAP_SET(params->act_bitmap.bits, in ulp_rte_vxlan_decap_act_handler()
2148 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_L3_TUN_DECAP, 1); in ulp_rte_vxlan_decap_act_handler()
2155 struct ulp_rte_parser_params *params) in ulp_rte_drop_act_handler() argument
2158 ULP_BITMAP_SET(params->act_bitmap.bits, BNXT_ULP_ACT_BIT_DROP); in ulp_rte_drop_act_handler()
2165 struct ulp_rte_parser_params *params) in ulp_rte_count_act_handler() argument
2168 struct ulp_rte_act_prop *act_prop = ¶ms->act_prop; in ulp_rte_count_act_handler()
2178 ULP_BITMAP_SET(params->act_bitmap.bits, BNXT_ULP_ACT_BIT_COUNT); in ulp_rte_count_act_handler()
2246 struct ulp_rte_parser_params *params) in ulp_rte_pf_act_handler() argument
2253 port_id = ULP_COMP_FLD_IDX_RD(params, BNXT_ULP_CF_IDX_INCOMING_IF); in ulp_rte_pf_act_handler()
2256 if (ulp_port_db_dev_port_to_ulp_index(params->ulp_ctx, port_id, in ulp_rte_pf_act_handler()
2263 intf_type = ulp_port_db_port_type_get(params->ulp_ctx, ifindex); in ulp_rte_pf_act_handler()
2269 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_ACT_PORT_TYPE, intf_type); in ulp_rte_pf_act_handler()
2270 return ulp_rte_parser_act_port_set(params, ifindex, in ulp_rte_pf_act_handler()
2277 struct ulp_rte_parser_params *params) in ulp_rte_vf_act_handler() argument
2295 bp = bnxt_pmd_get_bp(params->port_id); in ulp_rte_vf_act_handler()
2305 if (ulp_port_db_dev_func_id_to_ulp_index(params->ulp_ctx, in ulp_rte_vf_act_handler()
2313 intf_type = ulp_port_db_port_type_get(params->ulp_ctx, ifindex); in ulp_rte_vf_act_handler()
2321 ULP_COMP_FLD_IDX_WR(params, BNXT_ULP_CF_IDX_ACT_PORT_TYPE, intf_type); in ulp_rte_vf_act_handler()
2322 return ulp_rte_parser_act_port_set(params, ifindex, in ulp_rte_vf_act_handler()
2444 struct ulp_rte_parser_params *params) in ulp_rte_of_pop_vlan_act_handler() argument
2447 ULP_BITMAP_SET(params->act_bitmap.bits, BNXT_ULP_ACT_BIT_POP_VLAN); in ulp_rte_of_pop_vlan_act_handler()
2454 struct ulp_rte_parser_params *params) in ulp_rte_of_push_vlan_act_handler() argument
2458 struct ulp_rte_act_prop *act = ¶ms->act_prop; in ulp_rte_of_push_vlan_act_handler()
2471 ULP_BITMAP_SET(params->act_bitmap.bits, in ulp_rte_of_push_vlan_act_handler()
2482 struct ulp_rte_parser_params *params) in ulp_rte_of_set_vlan_vid_act_handler() argument
2486 struct ulp_rte_act_prop *act = ¶ms->act_prop; in ulp_rte_of_set_vlan_vid_act_handler()
2494 ULP_BITMAP_SET(params->act_bitmap.bits, in ulp_rte_of_set_vlan_vid_act_handler()
2505 struct ulp_rte_parser_params *params) in ulp_rte_of_set_vlan_pcp_act_handler() argument
2509 struct ulp_rte_act_prop *act = ¶ms->act_prop; in ulp_rte_of_set_vlan_pcp_act_handler()
2517 ULP_BITMAP_SET(params->act_bitmap.bits, in ulp_rte_of_set_vlan_pcp_act_handler()
2528 struct ulp_rte_parser_params *params) in ulp_rte_set_ipv4_src_act_handler() argument
2531 struct ulp_rte_act_prop *act = ¶ms->act_prop; in ulp_rte_set_ipv4_src_act_handler()
2538 ULP_BITMAP_SET(params->act_bitmap.bits, in ulp_rte_set_ipv4_src_act_handler()
2549 struct ulp_rte_parser_params *params) in ulp_rte_set_ipv4_dst_act_handler() argument
2552 struct ulp_rte_act_prop *act = ¶ms->act_prop; in ulp_rte_set_ipv4_dst_act_handler()
2559 ULP_BITMAP_SET(params->act_bitmap.bits, in ulp_rte_set_ipv4_dst_act_handler()
2570 struct ulp_rte_parser_params *params) in ulp_rte_set_tp_src_act_handler() argument
2573 struct ulp_rte_act_prop *act = ¶ms->act_prop; in ulp_rte_set_tp_src_act_handler()
2580 ULP_BITMAP_SET(params->act_bitmap.bits, in ulp_rte_set_tp_src_act_handler()
2592 struct ulp_rte_parser_params *params) in ulp_rte_set_tp_dst_act_handler() argument
2595 struct ulp_rte_act_prop *act = ¶ms->act_prop; in ulp_rte_set_tp_dst_act_handler()
2602 ULP_BITMAP_SET(params->act_bitmap.bits, in ulp_rte_set_tp_dst_act_handler()
2614 struct ulp_rte_parser_params *params) in ulp_rte_dec_ttl_act_handler() argument
2617 ULP_BITMAP_SET(params->act_bitmap.bits, BNXT_ULP_ACT_BIT_DEC_TTL); in ulp_rte_dec_ttl_act_handler()
2624 struct ulp_rte_parser_params *params) in ulp_rte_jump_act_handler() argument
2627 ULP_BITMAP_SET(params->act_bitmap.bits, BNXT_ULP_ACT_BIT_JUMP); in ulp_rte_jump_act_handler()
2633 struct ulp_rte_parser_params *params) in ulp_rte_sample_act_handler() argument
2643 if (ULP_BITMAP_ISSET(params->act_bitmap.bits, in ulp_rte_sample_act_handler()
2648 if (!ULP_BITMAP_ISSET(params->act_bitmap.bits, in ulp_rte_sample_act_handler()
2660 ret = bnxt_ulp_rte_parser_act_parse(sample->actions, params); in ulp_rte_sample_act_handler()
2663 ULP_BITMAP_SET(params->act_bitmap.bits, in ulp_rte_sample_act_handler()
2672 struct ulp_rte_parser_params *params) in ulp_vendor_vxlan_decap_act_handler() argument
2675 ULP_BITMAP_SET(params->hdr_bitmap.bits, BNXT_ULP_HDR_BIT_F1); in ulp_vendor_vxlan_decap_act_handler()
2676 return ulp_rte_vxlan_decap_act_handler(action_item, params); in ulp_vendor_vxlan_decap_act_handler()
2682 struct ulp_rte_parser_params *params) in ulp_rte_vendor_vxlan_decap_hdr_handler() argument
2686 ULP_BITMAP_SET(params->hdr_bitmap.bits, BNXT_ULP_HDR_BIT_F2); in ulp_rte_vendor_vxlan_decap_hdr_handler()
2687 return ulp_rte_vxlan_decap_act_handler(NULL, params); in ulp_rte_vendor_vxlan_decap_hdr_handler()