#include "tf_identifier.h"
#include "tf_tbl.h"
#include "tf_tcam.h"
+#ifdef TF_TCAM_SHARED
+#include "tf_tcam_shared.h"
+#endif
#include "tf_if_tbl.h"
#include "tf_global_cfg.h"
uint16_t resource_id,
const char **resource_str);
-
/**
* Retrieves the WC TCAM slice information that the device
* supports.
*/
int (*tf_dev_search_ident)(struct tf *tfp,
struct tf_ident_search_parms *parms);
+
+ /**
+ * Retrieves the identifier resource info.
+ *
+ * This API retrieves the identifier resource info from the rm db.
+ *
+ * [in] tfp
+ * Pointer to TF handle
+ *
+ * [in] parms
+ * Pointer to identifier info
+ *
+ * Returns
+ * - (0) if successful.
+ * - (-EINVAL) on failure.
+ */
+ int (*tf_dev_get_ident_resc_info)(struct tf *tfp,
+ struct tf_identifier_resource_info *parms);
+
/**
* Get SRAM table information.
*
int (*tf_dev_free_ext_tbl)(struct tf *tfp,
struct tf_tbl_free_parms *parms);
- /**
- * Searches for the specified table type element in a shadow DB.
- *
- * This API searches for the specified table type element in a
- * device specific shadow DB. If the element is found the
- * reference count for the element is updated. If the element
- * is not found a new element is allocated from the table type
- * DB and then inserted into the shadow DB.
- *
- * [in] tfp
- * Pointer to TF handle
- *
- * [in] parms
- * Pointer to table allocation and search parameters
- *
- * Returns
- * - (0) if successful.
- * - (-EINVAL) on failure.
- */
- int (*tf_dev_alloc_search_tbl)(struct tf *tfp,
- struct tf_tbl_alloc_search_parms *parms);
-
/**
* Sets the specified table type element.
*
int (*tf_dev_get_bulk_tbl)(struct tf *tfp,
struct tf_tbl_get_bulk_parms *parms);
+ /**
+ * Gets the increment value to add to the shared session resource
+ * start offset by for each count in the "stride"
+ *
+ * [in] tfp
+ * Pointer to TF handle
+ *
+ * [in] parms
+ * Pointer to get shared tbl increment parameters
+ *
+ * Returns
+ * - (0) if successful.
+ * - (-EINVAL) on failure.
+ */
+ int (*tf_dev_get_shared_tbl_increment)(struct tf *tfp,
+ struct tf_get_shared_tbl_increment_parms *parms);
+
+ /**
+ * Retrieves the table resource info.
+ *
+ * This API retrieves the table resource info from the rm db.
+ *
+ * [in] tfp
+ * Pointer to TF handle
+ *
+ * [in] parms
+ * Pointer to tbl info
+ *
+ * Returns
+ * - (0) if successful.
+ * - (-EINVAL) on failure.
+ */
+ int (*tf_dev_get_tbl_resc_info)(struct tf *tfp,
+ struct tf_tbl_resource_info *parms);
+
/**
* Allocation of a tcam element.
*
int (*tf_dev_get_tcam)(struct tf *tfp,
struct tf_tcam_get_parms *parms);
+#ifdef TF_TCAM_SHARED
+ /**
+ * Move TCAM shared entries
+ *
+ * [in] tfp
+ * Pointer to TF handle
+ *
+ * [in] parms
+ * Pointer to parameters
+ *
+ * returns:
+ * 0 - Success
+ * -EINVAL - Error
+ */
+ int (*tf_dev_move_tcam)(struct tf *tfp,
+ struct tf_move_tcam_shared_entries_parms *parms);
+
+ /**
+ * Move TCAM shared entries
+ *
+ * [in] tfp
+ * Pointer to TF handle
+ *
+ * [in] parms
+ * Pointer to parameters
+ *
+ * returns:
+ * 0 - Success
+ * -EINVAL - Error
+ */
+ int (*tf_dev_clear_tcam)(struct tf *tfp,
+ struct tf_clear_tcam_shared_entries_parms *parms);
+
+#endif /* TF_TCAM_SHARED */
+
+ /**
+ * Retrieves the tcam resource info.
+ *
+ * This API retrieves the tcam resource info from the rm db.
+ *
+ * [in] tfp
+ * Pointer to TF handle
+ *
+ * [in] parms
+ * Pointer to tcam info
+ *
+ * Returns
+ * - (0) if successful.
+ * - (-EINVAL) on failure.
+ */
+ int (*tf_dev_get_tcam_resc_info)(struct tf *tfp,
+ struct tf_tcam_resource_info *parms);
+
/**
* Insert EM hash entry API
*
int (*tf_dev_delete_int_em_entry)(struct tf *tfp,
struct tf_delete_em_entry_parms *parms);
+ /**
+ * Move EM hash entry API
+ *
+ * [in] tfp
+ * Pointer to TF handle
+ *
+ * [in] parms
+ * Pointer to E/EM move parameters
+ *
+ * returns:
+ * 0 - Success
+ * -EINVAL - Error
+ */
+ int (*tf_dev_move_int_em_entry)(struct tf *tfp,
+ struct tf_move_em_entry_parms *parms);
+
/**
* Insert EEM hash entry API
*
int (*tf_dev_delete_ext_em_entry)(struct tf *tfp,
struct tf_delete_em_entry_parms *parms);
+ /**
+ * Retrieves the em resource info.
+ *
+ * This API retrieves the em resource info from the rm db.
+ *
+ * [in] tfp
+ * Pointer to TF handle
+ *
+ * [in] parms
+ * Pointer to em info
+ *
+ * Returns
+ * - (0) if successful.
+ * - (-EINVAL) on failure.
+ */
+ int (*tf_dev_get_em_resc_info)(struct tf *tfp,
+ struct tf_em_resource_info *parms);
+
+ /**
+ * Move EEM hash entry API
+ *
+ * Pointer to E/EM move parameters
+ *
+ * [in] tfp
+ * Pointer to TF handle
+ *
+ * [in] parms
+ * Pointer to em info
+ *
+ * returns:
+ * 0 - Success
+ * -EINVAL - Error
+ */
+ int (*tf_dev_move_ext_em_entry)(struct tf *tfp,
+ struct tf_move_em_entry_parms *parms);
+
/**
* Allocate EEM table scope
*
* Size in byte
*/
int (*tf_dev_word_align)(uint16_t size);
+
+ /**
+ * Hash key using crc32 and lookup3
+ *
+ * [in] key_data
+ * Pointer to key
+ *
+ * [in] bitlen
+ * Number of key bits
+ *
+ * Returns
+ * Hashes
+ */
+ uint64_t (*tf_dev_cfa_key_hash)(uint64_t *key_data,
+ uint16_t bitlen);
};
/**