net/bnxt: fix NAT template
[dpdk.git] / drivers / net / bnxt / tf_ulp / ulp_mark_mgr.h
index 5948683..9696730 100644 (file)
@@ -8,23 +8,28 @@
 
 #include "bnxt_ulp.h"
 
-#define ULP_MARK_INVALID (0)
+#define BNXT_ULP_MARK_VALID   0x1
+#define BNXT_ULP_MARK_VFR_ID  0x2
+#define BNXT_ULP_MARK_GLOBAL_HW_FID 0x4
+#define BNXT_ULP_MARK_LOCAL_HW_FID 0x8
+
 struct bnxt_lfid_mark_info {
        uint16_t        mark_id;
-       bool            valid;
+       uint16_t        flags;
 };
 
 struct bnxt_gfid_mark_info {
        uint32_t        mark_id;
-       bool            valid;
+       uint16_t        flags;
 };
 
 struct bnxt_ulp_mark_tbl {
        struct bnxt_lfid_mark_info      *lfid_tbl;
        struct bnxt_gfid_mark_info      *gfid_tbl;
+       uint32_t                        lfid_num_entries;
+       uint32_t                        gfid_num_entries;
        uint32_t                        gfid_mask;
        uint32_t                        gfid_type_bit;
-       uint32_t                        gfid_max;
 };
 
 /*
@@ -54,4 +59,58 @@ ulp_mark_db_init(struct bnxt_ulp_context *ctxt);
 int32_t
 ulp_mark_db_deinit(struct bnxt_ulp_context *ctxt);
 
+/*
+ * Get a Mark from the Mark Manager
+ *
+ * ctxt [in] The ulp context for the mark manager
+ *
+ * is_gfid [in] The type of fid (GFID or LFID)
+ *
+ * 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
+ *
+ */
+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);
+
+/*
+ * Adds a Mark to the Mark Manager
+ *
+ * ctxt [in] The ulp context for the mark manager
+ *
+ * mark_flag [in] mark flags.
+ *
+ * fid [in] The flow id that is returned by HW in BD
+ *
+ * mark [in] The mark to be associated with the FID
+ *
+ */
+int32_t
+ulp_mark_db_mark_add(struct bnxt_ulp_context *ctxt,
+                    uint32_t mark_flag,
+                    uint32_t gfid,
+                    uint32_t mark);
+
+/*
+ * Removes a Mark from the Mark Manager
+ *
+ * ctxt [in] The ulp context for the mark manager
+ *
+ * mark_flag [in] mark flags
+ *
+ * fid [in] The flow id that is returned by HW in BD
+ *
+ */
+int32_t
+ulp_mark_db_mark_del(struct bnxt_ulp_context *ctxt,
+                    uint32_t mark_flag,
+                    uint32_t gfid);
+
 #endif /* _ULP_MARK_MGR_H_ */