net/bnxt: support WC TCAM management
[dpdk.git] / drivers / net / bnxt / tf_core / tf_identifier.h
index 6e36c52..55c0938 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2019-2020 Broadcom
+ * Copyright(c) 2019-2021 Broadcom
  * All rights reserved.
  */
 
@@ -66,6 +66,47 @@ struct tf_ident_free_parms {
         * [in] ID to free
         */
        uint16_t id;
+       /**
+        * (experimental)
+        * [out] Current refcnt after free
+        */
+       uint32_t *ref_cnt;
+};
+
+/**
+ * Identifier search parameter definition
+ */
+struct tf_ident_search_parms {
+       /**
+        * [in]  receive or transmit direction
+        */
+       enum tf_dir dir;
+       /**
+        * [in] Identifier type
+        */
+       enum tf_identifier_type type;
+       /**
+        * [in] Identifier data to search for
+        */
+       uint16_t search_id;
+       /**
+        * [out] Set if matching identifier found
+        */
+       bool *hit;
+       /**
+        * [out] Current ref count after allocation
+        */
+       uint32_t *ref_cnt;
+};
+
+/**
+ * Identifier database
+ *
+ * Identifier rm database
+ *
+ */
+struct ident_rm_db {
+       struct rm_db *ident_db[TF_DIR_MAX];
 };
 
 /**
@@ -144,4 +185,36 @@ int tf_ident_alloc(struct tf *tfp,
 int tf_ident_free(struct tf *tfp,
                  struct tf_ident_free_parms *parms);
 
+/**
+ * Search a single identifier type.
+ *
+ * [in] tfp
+ *   Pointer to TF handle, used for HCAPI communication
+ *
+ * [in] parms
+ *   Pointer to parameters
+ *
+ * Returns
+ *   - (0) if successful.
+ *   - (-EINVAL) on failure.
+ */
+int tf_ident_search(struct tf *tfp,
+                   struct tf_ident_search_parms *parms);
+
+/**
+ * Retrieves the allocated resource info
+ *
+ * [in] tfp
+ *   Pointer to TF handle, used for HCAPI communication
+ *
+ * [in] parms
+ *   Pointer to parameters
+ *
+ * Returns
+ *   - (0) if successful.
+ *   - (-EINVAL) on failure.
+ */
+int tf_ident_get_resc_info(struct tf *tfp,
+                          struct tf_identifier_resource_info *parms);
+
 #endif /* _TF_IDENTIFIER_H_ */