+/* Function to handle the parsing of the RTE port id
+ */
+int32_t
+ulp_rte_parser_svif_process(struct ulp_rte_hdr_bitmap *hdr_bitmap,
+ struct ulp_rte_hdr_field *hdr_field)
+{
+ uint16_t port_id = 0;
+ uint32_t dir = 0;
+ uint8_t *buffer;
+ uint16_t svif_mask = 0xFFFF;
+
+ if (ULP_BITMAP_ISSET(hdr_bitmap->bits, BNXT_ULP_HDR_BIT_SVIF))
+ return BNXT_TF_RC_SUCCESS;
+
+ /* SVIF not set. So get the port id and direction */
+ buffer = hdr_field[BNXT_ULP_HDR_FIELD_SVIF_INDEX].spec;
+ memcpy(&port_id, buffer, sizeof(port_id));
+ memcpy(&dir, buffer + sizeof(port_id), sizeof(dir));
+ memset(hdr_field[BNXT_ULP_HDR_FIELD_SVIF_INDEX].spec, 0,
+ RTE_PARSER_FLOW_HDR_FIELD_SIZE);
+
+ return ulp_rte_parser_svif_set(hdr_bitmap, hdr_field,
+ RTE_FLOW_ITEM_TYPE_PORT_ID,
+ dir, port_id, svif_mask);
+}
+