X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fbnxt%2Ftf_ulp%2Fulp_mark_mgr.h;h=9696730cc215c60413997dd405417dc40d8c8c61;hb=0d23f95d70910cca2204bbf78ecc3c50f1aa5a7a;hp=5948683561f26ee52d03759854dc150e9697f652;hpb=70e64b27af5b42d9e27763976fb967999e6f3b90;p=dpdk.git diff --git a/drivers/net/bnxt/tf_ulp/ulp_mark_mgr.h b/drivers/net/bnxt/tf_ulp/ulp_mark_mgr.h index 5948683561..9696730cc2 100644 --- a/drivers/net/bnxt/tf_ulp/ulp_mark_mgr.h +++ b/drivers/net/bnxt/tf_ulp/ulp_mark_mgr.h @@ -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_ */