net/bnxt: update RM with residual checker
[dpdk.git] / drivers / net / bnxt / tf_ulp / ulp_mark_mgr.c
index 04d441d..89c08ab 100644 (file)
@@ -18,6 +18,8 @@
                                                BNXT_ULP_MARK_VALID)
 #define ULP_MARK_DB_ENTRY_IS_INVALID(mark_info) (!((mark_info)->flags &\
                                                   BNXT_ULP_MARK_VALID))
+#define ULP_MARK_DB_ENTRY_IS_VFR_ID(mark_info) ((mark_info)->flags &\
+                                               BNXT_ULP_MARK_VFR_ID)
 #define ULP_MARK_DB_ENTRY_IS_GLOBAL_HW_FID(mark_info) ((mark_info)->flags &\
                                                BNXT_ULP_MARK_GLOBAL_HW_FID)
 
@@ -75,7 +77,7 @@ ulp_mark_db_init(struct bnxt_ulp_context *ctxt)
                goto mem_error;
 
        /* Need to allocate 2 * Num flows to account for hash type bit.*/
-       mark_tbl->lfid_num_entries = dparms->lfid_entries;
+       mark_tbl->lfid_num_entries = dparms->mark_db_lfid_entries;
        mark_tbl->lfid_tbl = rte_zmalloc("ulp_rx_em_flow_mark_table",
                                         mark_tbl->lfid_num_entries *
                                         sizeof(struct bnxt_lfid_mark_info),
@@ -84,7 +86,7 @@ ulp_mark_db_init(struct bnxt_ulp_context *ctxt)
                goto mem_error;
 
        /* Need to allocate 2 * Num flows to account for hash type bit */
-       mark_tbl->gfid_num_entries = dparms->gfid_entries;
+       mark_tbl->gfid_num_entries = dparms->mark_db_gfid_entries;
        mark_tbl->gfid_tbl = rte_zmalloc("ulp_rx_eem_flow_mark_table",
                                         mark_tbl->gfid_num_entries *
                                         sizeof(struct bnxt_gfid_mark_info),
@@ -153,6 +155,8 @@ ulp_mark_db_deinit(struct bnxt_ulp_context *ctxt)
  *
  * fid [in] The flow id that is returned by HW in BD
  *
+ * vfr_flag [out].it indicatesif mark is vfr_id or mark id
+ *
  * mark [out] The mark that is associated with the FID
  *
  */
@@ -160,6 +164,7 @@ int32_t
 ulp_mark_db_mark_get(struct bnxt_ulp_context *ctxt,
                     bool is_gfid,
                     uint32_t fid,
+                    uint32_t *vfr_flag,
                     uint32_t *mark)
 {
        struct bnxt_ulp_mark_tbl *mtbl;
@@ -184,6 +189,7 @@ ulp_mark_db_mark_get(struct bnxt_ulp_context *ctxt,
                BNXT_TF_DBG(DEBUG, "Get GFID[0x%0x] = 0x%0x\n",
                            idx, mtbl->gfid_tbl[idx].mark_id);
 
+               *vfr_flag = ULP_MARK_DB_ENTRY_IS_VFR_ID(&mtbl->gfid_tbl[idx]);
                *mark = mtbl->gfid_tbl[idx].mark_id;
        } else {
                if (idx >= mtbl->lfid_num_entries ||
@@ -193,6 +199,7 @@ ulp_mark_db_mark_get(struct bnxt_ulp_context *ctxt,
                BNXT_TF_DBG(DEBUG, "Get LFID[0x%0x] = 0x%0x\n",
                            idx, mtbl->lfid_tbl[idx].mark_id);
 
+               *vfr_flag = ULP_MARK_DB_ENTRY_IS_VFR_ID(&mtbl->lfid_tbl[idx]);
                *mark = mtbl->lfid_tbl[idx].mark_id;
        }