X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fbnxt%2Ftf_ulp%2Fulp_mark_mgr.h;h=d9d82d4644eb0a63bbc5e5384e4c9132254d79da;hb=92ef4b8f1688ded571fb2085727e5e82f2afe5d6;hp=b175abd5cbebb02fdc5d91dc8ffc84eb5415d323;hpb=313ac35ac70112fc86703d76a65e0e252dca6590;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 b175abd5cb..d9d82d4644 100644 --- a/drivers/net/bnxt/tf_ulp/ulp_mark_mgr.h +++ b/drivers/net/bnxt/tf_ulp/ulp_mark_mgr.h @@ -1,5 +1,5 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2014-2019 Broadcom + * Copyright(c) 2014-2021 Broadcom * All rights reserved. */ @@ -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; }; /* @@ -46,4 +51,66 @@ struct bnxt_ulp_mark_tbl { int32_t ulp_mark_db_init(struct bnxt_ulp_context *ctxt); +/* + * Release all resources in the Mark Manager for this ulp context + * + * ctxt [in] The ulp context for the mark manager + */ +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_ */