X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fbnxt%2Ftf_core%2Ftf_msg.h;h=b26b15bfa33144bb73978d0fd3abe4509e81e599;hb=f1f6ebc0eaf68a825c6175f5e6a436f7d91660c3;hp=0a2566010cbe6fdec23a24446b02a24cc2a745bb;hpb=2addc463eed9e2d7cbda25b7bf9d2ed1412b7236;p=dpdk.git diff --git a/drivers/net/bnxt/tf_core/tf_msg.h b/drivers/net/bnxt/tf_core/tf_msg.h index 0a2566010c..b26b15bfa3 100644 --- a/drivers/net/bnxt/tf_core/tf_msg.h +++ b/drivers/net/bnxt/tf_core/tf_msg.h @@ -9,10 +9,12 @@ #include #include +#include "tf_em_common.h" #include "tf_tbl.h" #include "tf_rm.h" #include "tf_tcam.h" #include "tf_global_cfg.h" +#include "bnxt.h" struct tf; @@ -21,8 +23,8 @@ struct tf; /** * Sends session open request to Firmware * - * [in] session - * Pointer to session handle + * [in] bp + * Pointer to bnxt handle * * [in] ctrl_chan_name * PCI name of the control channel @@ -30,13 +32,24 @@ struct tf; * [in/out] fw_session_id * Pointer to the fw_session_id that is allocated on firmware side * + * [in/out] fw_session_client_id + * Pointer to the fw_session_client_id that is allocated on firmware side + * + * [in/out] dev + * Pointer to the associated device + * + * [out] shared_session_creator + * Pointer to the shared_session_creator + * * Returns: * 0 on Success else internal Truflow error */ -int tf_msg_session_open(struct tf *tfp, +int tf_msg_session_open(struct bnxt *bp, char *ctrl_chan_name, uint8_t *fw_session_id, - uint8_t *fw_session_client_id); + uint8_t *fw_session_client_id, + struct tf_dev_info *dev, + bool *shared_session_creator); /** * Sends session close request to Firmware @@ -75,6 +88,7 @@ int tf_msg_session_attach(struct tf *tfp, * 0 on Success else internal Truflow error */ int tf_msg_session_client_register(struct tf *tfp, + struct tf_session *tfs, char *ctrl_channel_name, uint8_t *fw_session_client_id); @@ -92,6 +106,7 @@ int tf_msg_session_client_register(struct tf *tfp, * 0 on Success else internal Truflow error */ int tf_msg_session_client_unregister(struct tf *tfp, + struct tf_session *tfs, uint8_t fw_session_client_id); /** @@ -100,10 +115,18 @@ int tf_msg_session_client_unregister(struct tf *tfp, * [in] session * Pointer to session handle * + * [in] fw_session_id + * fw session id + * + * [in] mailbox + * mailbox + * * Returns: * 0 on Success else internal Truflow error */ -int tf_msg_session_close(struct tf *tfp); +int tf_msg_session_close(struct tf *tfp, + uint8_t fw_session_id, + int mailbox); /** * Sends session query config request to TF Firmware @@ -139,6 +162,7 @@ int tf_msg_session_qcfg(struct tf *tfp); * 0 on Success else internal Truflow error */ int tf_msg_session_resc_qcaps(struct tf *tfp, + struct tf_dev_info *dev, enum tf_dir dir, uint16_t size, struct tf_rm_resc_req_entry *query, @@ -166,6 +190,35 @@ int tf_msg_session_resc_qcaps(struct tf *tfp, * 0 on Success else internal Truflow error */ int tf_msg_session_resc_alloc(struct tf *tfp, + struct tf_dev_info *dev, + enum tf_dir dir, + uint16_t size, + struct tf_rm_resc_req_entry *request, + struct tf_rm_resc_entry *resv); + +/** + * Sends session HW resource allocation request to TF Firmware + * + * [in] tfp + * Pointer to TF handle + * + * [in] dir + * Receive or Transmit direction + * + * [in] size + * Number of elements in the req and resv arrays + * + * [in] req + * Pointer to an array of request elements + * + * [in] resv + * Pointer to an array of reserved elements + * + * Returns: + * 0 on Success else internal Truflow error + */ +int tf_msg_session_resc_info(struct tf *tfp, + struct tf_dev_info *dev, enum tf_dir dir, uint16_t size, struct tf_rm_resc_req_entry *request, @@ -219,6 +272,41 @@ int tf_msg_insert_em_internal_entry(struct tf *tfp, uint16_t *rptr_index, uint8_t *rptr_entry, uint8_t *num_of_entries); +/** + * Sends EM hash internal insert request to Firmware + * + * [in] tfp + * Pointer to TF handle + * + * [in] params + * Pointer to em insert parameter list + * + * [in] key0_hash + * CRC32 hash of key + * + * [in] key1_hash + * Lookup3 hash of key + * + * [in] rptr_index + * Record ptr index + * + * [in] rptr_entry + * Record ptr entry + * + * [in] num_of_entries + * Number of entries to insert + * + * Returns: + * 0 on Success else internal Truflow error + */ +int +tf_msg_hash_insert_em_internal_entry(struct tf *tfp, + struct tf_insert_em_entry_parms *em_parms, + uint32_t key0_hash, + uint32_t key1_hash, + uint16_t *rptr_index, + uint8_t *rptr_entry, + uint8_t *num_of_entries); /** * Sends EM internal delete request to Firmware * @@ -234,6 +322,75 @@ int tf_msg_insert_em_internal_entry(struct tf *tfp, int tf_msg_delete_em_entry(struct tf *tfp, struct tf_delete_em_entry_parms *em_parms); +/** + * Sends EM internal move request to Firmware + * + * [in] tfp + * Pointer to TF handle + * + * [in] em_parms + * Pointer to em move parameters + * + * Returns: + * 0 on Success else internal Truflow error + */ +int tf_msg_move_em_entry(struct tf *tfp, + struct tf_move_em_entry_parms *em_parms); + +/** + * Sends Ext EM mem allocation request to Firmware + * + * [in] tfp + * Pointer to TF handle + * + * [in] tbl + * memory allocation details + * + * [out] dma_addr + * memory address + * + * [out] page_lvl + * page level + * + * [out] page_size + * page size + * + * Returns: + * 0 on Success else internal Truflow error + */ +int tf_msg_ext_em_ctxt_mem_alloc(struct tf *tfp, + struct hcapi_cfa_em_table *tbl, + uint64_t *dma_addr, + uint32_t *page_lvl, + uint32_t *page_size); + +/** + * Sends Ext EM mem allocation request to Firmware + * + * [in] tfp + * Pointer to TF handle + * + * [in] mem_size_k + * memory size in KB + * + * [in] page_dir + * Pointer to the PBL or PDL depending on number of levels + * + * [in] page_level + * PBL indirect levels + * + * [in] page_size + * page size + * + * Returns: + * 0 on Success else internal Truflow error + */ +int tf_msg_ext_em_ctxt_mem_free(struct tf *tfp, + uint32_t mem_size_k, + uint64_t dma_addr, + uint8_t page_level, + uint8_t page_size); + /** * Sends EM mem register request to Firmware * @@ -336,6 +493,38 @@ int tf_msg_em_cfg(struct tf *tfp, uint8_t flush_interval, int dir); +/** + * Sends Ext EM config request to Firmware + * + * [in] tfp + * Pointer to TF handle + * + * [in] fw_se_id + * FW session id + * + * [in] tbl_scope_cb + * Table scope parameters + * + * [in] st_buckets + * static bucket size + * + * [in] flush_interval + * Flush pending HW cached flows every 1/10th of value set in + * seconds, both idle and active flows are flushed from the HW + * cache. If set to 0, this feature will be disabled. + * + * [in] dir + * Receive or Transmit direction + * + * Returns: + * 0 on Success else internal Truflow error + */ +int tf_msg_ext_em_cfg(struct tf *tfp, + struct tf_tbl_scope_cb *tbl_scope_cb, + uint32_t st_buckets, + uint8_t flush_interval, + enum tf_dir dir); + /** * Sends EM operation request to Firmware * @@ -368,8 +557,25 @@ int tf_msg_em_op(struct tf *tfp, * 0 on Success else internal Truflow error */ int tf_msg_tcam_entry_set(struct tf *tfp, + struct tf_dev_info *dev, struct tf_tcam_set_parms *parms); +/** + * Sends tcam entry 'get' to the Firmware. + * + * [in] tfp + * Pointer to session handle + * + * [in] parms + * Pointer to get parameters + * + * Returns: + * 0 on Success else internal Truflow error + */ +int tf_msg_tcam_entry_get(struct tf *tfp, + struct tf_dev_info *dev, + struct tf_tcam_get_parms *parms); + /** * Sends tcam entry 'free' to the Firmware. * @@ -383,6 +589,7 @@ int tf_msg_tcam_entry_set(struct tf *tfp, * 0 on Success else internal Truflow error */ int tf_msg_tcam_entry_free(struct tf *tfp, + struct tf_dev_info *dev, struct tf_tcam_free_parms *parms); /**