1dc8ee812SKishore Padmanabha /* SPDX-License-Identifier: BSD-3-Clause 2d9e70b1dSRandy Schacher * Copyright(c) 2014-2023 Broadcom 3dc8ee812SKishore Padmanabha * All rights reserved. 4dc8ee812SKishore Padmanabha */ 5dc8ee812SKishore Padmanabha 6dc8ee812SKishore Padmanabha #ifndef _ULP_PORT_DB_H_ 7dc8ee812SKishore Padmanabha #define _ULP_PORT_DB_H_ 8dc8ee812SKishore Padmanabha 9dc8ee812SKishore Padmanabha #include "bnxt_ulp.h" 10dc8ee812SKishore Padmanabha 11dc8ee812SKishore Padmanabha #define BNXT_PORT_DB_MAX_INTF_LIST 256 1245e8e1d4SVenkat Duvvuru #define BNXT_PORT_DB_MAX_FUNC 2048 134182be0dSKishore Padmanabha #define BNXT_ULP_FREE_PARIF_BASE 11 14d9e70b1dSRandy Schacher #define BNXT_ULP_META_VF_FLAG 0x1000 1545e8e1d4SVenkat Duvvuru 1645e8e1d4SVenkat Duvvuru enum bnxt_ulp_svif_type { 1745e8e1d4SVenkat Duvvuru BNXT_ULP_DRV_FUNC_SVIF = 0, 1845e8e1d4SVenkat Duvvuru BNXT_ULP_VF_FUNC_SVIF, 1945e8e1d4SVenkat Duvvuru BNXT_ULP_PHY_PORT_SVIF 2045e8e1d4SVenkat Duvvuru }; 2145e8e1d4SVenkat Duvvuru 2245e8e1d4SVenkat Duvvuru enum bnxt_ulp_spif_type { 2345e8e1d4SVenkat Duvvuru BNXT_ULP_DRV_FUNC_SPIF = 0, 2445e8e1d4SVenkat Duvvuru BNXT_ULP_VF_FUNC_SPIF, 2545e8e1d4SVenkat Duvvuru BNXT_ULP_PHY_PORT_SPIF 2645e8e1d4SVenkat Duvvuru }; 2745e8e1d4SVenkat Duvvuru 2845e8e1d4SVenkat Duvvuru enum bnxt_ulp_parif_type { 2945e8e1d4SVenkat Duvvuru BNXT_ULP_DRV_FUNC_PARIF = 0, 3045e8e1d4SVenkat Duvvuru BNXT_ULP_VF_FUNC_PARIF, 3145e8e1d4SVenkat Duvvuru BNXT_ULP_PHY_PORT_PARIF 3245e8e1d4SVenkat Duvvuru }; 3345e8e1d4SVenkat Duvvuru 3445e8e1d4SVenkat Duvvuru enum bnxt_ulp_vnic_type { 3545e8e1d4SVenkat Duvvuru BNXT_ULP_DRV_FUNC_VNIC = 0, 3645e8e1d4SVenkat Duvvuru BNXT_ULP_VF_FUNC_VNIC 3745e8e1d4SVenkat Duvvuru }; 3845e8e1d4SVenkat Duvvuru 3945e8e1d4SVenkat Duvvuru enum bnxt_ulp_fid_type { 4045e8e1d4SVenkat Duvvuru BNXT_ULP_DRV_FUNC_FID, 4145e8e1d4SVenkat Duvvuru BNXT_ULP_VF_FUNC_FID 4245e8e1d4SVenkat Duvvuru }; 4345e8e1d4SVenkat Duvvuru 4445e8e1d4SVenkat Duvvuru struct ulp_func_if_info { 4545e8e1d4SVenkat Duvvuru uint16_t func_valid; 4645e8e1d4SVenkat Duvvuru uint16_t func_svif; 4745e8e1d4SVenkat Duvvuru uint16_t func_spif; 4845e8e1d4SVenkat Duvvuru uint16_t func_parif; 4945e8e1d4SVenkat Duvvuru uint16_t func_vnic; 50ddaf0afaSKishore Padmanabha uint8_t func_mac[RTE_ETHER_ADDR_LEN]; 51ddaf0afaSKishore Padmanabha uint16_t func_parent_vnic; 52ddaf0afaSKishore Padmanabha uint8_t func_parent_mac[RTE_ETHER_ADDR_LEN]; 5345e8e1d4SVenkat Duvvuru uint16_t phy_port_id; 5414f260c0SKishore Padmanabha uint16_t ifindex; 55d9e70b1dSRandy Schacher uint16_t vf_meta_data; 56dd0191d5SShuanglin Wang uint8_t table_scope; 5745e8e1d4SVenkat Duvvuru }; 58dc8ee812SKishore Padmanabha 59dc8ee812SKishore Padmanabha /* Structure for the Port database resource information. */ 60dc8ee812SKishore Padmanabha struct ulp_interface_info { 61dc8ee812SKishore Padmanabha enum bnxt_ulp_intf_type type; 6245e8e1d4SVenkat Duvvuru uint16_t drv_func_id; 6345e8e1d4SVenkat Duvvuru uint16_t vf_func_id; 64d9e70b1dSRandy Schacher uint8_t type_is_pf; 6535a7fe80SVenkat Duvvuru }; 6635a7fe80SVenkat Duvvuru 6735a7fe80SVenkat Duvvuru struct ulp_phy_port_info { 6845e8e1d4SVenkat Duvvuru uint16_t port_valid; 6935a7fe80SVenkat Duvvuru uint16_t port_svif; 7035a7fe80SVenkat Duvvuru uint16_t port_spif; 7135a7fe80SVenkat Duvvuru uint16_t port_parif; 7235a7fe80SVenkat Duvvuru uint16_t port_vport; 73*d4b36fc5SKishore Padmanabha uint32_t port_mirror_id; 74dc8ee812SKishore Padmanabha }; 75dc8ee812SKishore Padmanabha 76dc8ee812SKishore Padmanabha /* Structure for the Port database */ 77dc8ee812SKishore Padmanabha struct bnxt_ulp_port_db { 78dc8ee812SKishore Padmanabha struct ulp_interface_info *ulp_intf_list; 79dc8ee812SKishore Padmanabha uint32_t ulp_intf_list_size; 80dc8ee812SKishore Padmanabha 81dc8ee812SKishore Padmanabha /* dpdk device external port list */ 82dc8ee812SKishore Padmanabha uint16_t dev_port_list[RTE_MAX_ETHPORTS]; 8345e8e1d4SVenkat Duvvuru struct ulp_phy_port_info *phy_port_list; 843c334fcdSKishore Padmanabha uint16_t phy_port_cnt; 8545e8e1d4SVenkat Duvvuru struct ulp_func_if_info ulp_func_id_tbl[BNXT_PORT_DB_MAX_FUNC]; 86dc8ee812SKishore Padmanabha }; 87dc8ee812SKishore Padmanabha 88dc8ee812SKishore Padmanabha /* 89dc8ee812SKishore Padmanabha * Initialize the port database. Memory is allocated in this 90dc8ee812SKishore Padmanabha * call and assigned to the port database. 91dc8ee812SKishore Padmanabha * 92dc8ee812SKishore Padmanabha * ulp_ctxt [in] Ptr to ulp context 93dc8ee812SKishore Padmanabha * 94dc8ee812SKishore Padmanabha * Returns 0 on success or negative number on failure. 95dc8ee812SKishore Padmanabha */ 9645e8e1d4SVenkat Duvvuru int32_t ulp_port_db_init(struct bnxt_ulp_context *ulp_ctxt, uint8_t port_cnt); 97dc8ee812SKishore Padmanabha 98dc8ee812SKishore Padmanabha /* 99dc8ee812SKishore Padmanabha * Deinitialize the port database. Memory is deallocated in 100dc8ee812SKishore Padmanabha * this call. 101dc8ee812SKishore Padmanabha * 102dc8ee812SKishore Padmanabha * ulp_ctxt [in] Ptr to ulp context 103dc8ee812SKishore Padmanabha * 104dc8ee812SKishore Padmanabha * Returns 0 on success. 105dc8ee812SKishore Padmanabha */ 106dc8ee812SKishore Padmanabha int32_t ulp_port_db_deinit(struct bnxt_ulp_context *ulp_ctxt); 107dc8ee812SKishore Padmanabha 108dc8ee812SKishore Padmanabha /* 109dc8ee812SKishore Padmanabha * Update the port database.This api is called when the port 110dc8ee812SKishore Padmanabha * details are available during the startup. 111dc8ee812SKishore Padmanabha * 112dc8ee812SKishore Padmanabha * ulp_ctxt [in] Ptr to ulp context 113dc8ee812SKishore Padmanabha * bp [in]. ptr to the device function. 114dc8ee812SKishore Padmanabha * 115dc8ee812SKishore Padmanabha * Returns 0 on success or negative number on failure. 116dc8ee812SKishore Padmanabha */ 117d9e70b1dSRandy Schacher int32_t ulp_port_db_port_update(struct bnxt_ulp_context *ulp_ctxt, 118410e5b8bSVenkat Duvvuru struct rte_eth_dev *eth_dev); 119dc8ee812SKishore Padmanabha 120dc8ee812SKishore Padmanabha /* 121dc8ee812SKishore Padmanabha * Api to get the ulp ifindex for a given device port. 122dc8ee812SKishore Padmanabha * 123dc8ee812SKishore Padmanabha * ulp_ctxt [in] Ptr to ulp context 124dc8ee812SKishore Padmanabha * port_id [in].device port id 125dc8ee812SKishore Padmanabha * ifindex [out] ulp ifindex 126dc8ee812SKishore Padmanabha * 127dc8ee812SKishore Padmanabha * Returns 0 on success or negative number on failure. 128dc8ee812SKishore Padmanabha */ 129dc8ee812SKishore Padmanabha int32_t 130dc8ee812SKishore Padmanabha ulp_port_db_dev_port_to_ulp_index(struct bnxt_ulp_context *ulp_ctxt, 13135a7fe80SVenkat Duvvuru uint32_t port_id, uint32_t *ifindex); 132dc8ee812SKishore Padmanabha 133dc8ee812SKishore Padmanabha /* 134dc8ee812SKishore Padmanabha * Api to get the function id for a given ulp ifindex. 135dc8ee812SKishore Padmanabha * 136dc8ee812SKishore Padmanabha * ulp_ctxt [in] Ptr to ulp context 137dc8ee812SKishore Padmanabha * ifindex [in] ulp ifindex 138dc8ee812SKishore Padmanabha * func_id [out] the function id of the given ifindex. 139dc8ee812SKishore Padmanabha * 140dc8ee812SKishore Padmanabha * Returns 0 on success or negative number on failure. 141dc8ee812SKishore Padmanabha */ 142dc8ee812SKishore Padmanabha int32_t 143dc8ee812SKishore Padmanabha ulp_port_db_function_id_get(struct bnxt_ulp_context *ulp_ctxt, 14445e8e1d4SVenkat Duvvuru uint32_t ifindex, uint32_t fid_type, 14545e8e1d4SVenkat Duvvuru uint16_t *func_id); 146dc8ee812SKishore Padmanabha 147dc8ee812SKishore Padmanabha /* 14835a7fe80SVenkat Duvvuru * Api to get the svif for a given ulp ifindex. 149dc8ee812SKishore Padmanabha * 150dc8ee812SKishore Padmanabha * ulp_ctxt [in] Ptr to ulp context 151dc8ee812SKishore Padmanabha * ifindex [in] ulp ifindex 152dc8ee812SKishore Padmanabha * dir [in] the direction for the flow. 153dc8ee812SKishore Padmanabha * svif [out] the svif of the given ifindex. 154dc8ee812SKishore Padmanabha * 155dc8ee812SKishore Padmanabha * Returns 0 on success or negative number on failure. 156dc8ee812SKishore Padmanabha */ 157dc8ee812SKishore Padmanabha int32_t 158dc8ee812SKishore Padmanabha ulp_port_db_svif_get(struct bnxt_ulp_context *ulp_ctxt, 15935a7fe80SVenkat Duvvuru uint32_t ifindex, uint32_t dir, uint16_t *svif); 16035a7fe80SVenkat Duvvuru 16135a7fe80SVenkat Duvvuru /* 16235a7fe80SVenkat Duvvuru * Api to get the spif for a given ulp ifindex. 16335a7fe80SVenkat Duvvuru * 16435a7fe80SVenkat Duvvuru * ulp_ctxt [in] Ptr to ulp context 16535a7fe80SVenkat Duvvuru * ifindex [in] ulp ifindex 16635a7fe80SVenkat Duvvuru * dir [in] the direction for the flow. 16735a7fe80SVenkat Duvvuru * spif [out] the spif of the given ifindex. 16835a7fe80SVenkat Duvvuru * 16935a7fe80SVenkat Duvvuru * Returns 0 on success or negative number on failure. 17035a7fe80SVenkat Duvvuru */ 17135a7fe80SVenkat Duvvuru int32_t 17235a7fe80SVenkat Duvvuru ulp_port_db_spif_get(struct bnxt_ulp_context *ulp_ctxt, 17335a7fe80SVenkat Duvvuru uint32_t ifindex, uint32_t dir, uint16_t *spif); 17435a7fe80SVenkat Duvvuru 17535a7fe80SVenkat Duvvuru /* 17635a7fe80SVenkat Duvvuru * Api to get the parif for a given ulp ifindex. 17735a7fe80SVenkat Duvvuru * 17835a7fe80SVenkat Duvvuru * ulp_ctxt [in] Ptr to ulp context 17935a7fe80SVenkat Duvvuru * ifindex [in] ulp ifindex 18035a7fe80SVenkat Duvvuru * dir [in] the direction for the flow. 18135a7fe80SVenkat Duvvuru * parif [out] the parif of the given ifindex. 18235a7fe80SVenkat Duvvuru * 18335a7fe80SVenkat Duvvuru * Returns 0 on success or negative number on failure. 18435a7fe80SVenkat Duvvuru */ 18535a7fe80SVenkat Duvvuru int32_t 18635a7fe80SVenkat Duvvuru ulp_port_db_parif_get(struct bnxt_ulp_context *ulp_ctxt, 18735a7fe80SVenkat Duvvuru uint32_t ifindex, uint32_t dir, uint16_t *parif); 188dc8ee812SKishore Padmanabha 189dc8ee812SKishore Padmanabha /* 190dc8ee812SKishore Padmanabha * Api to get the vnic id for a given ulp ifindex. 191dc8ee812SKishore Padmanabha * 192dc8ee812SKishore Padmanabha * ulp_ctxt [in] Ptr to ulp context 193dc8ee812SKishore Padmanabha * ifindex [in] ulp ifindex 194dc8ee812SKishore Padmanabha * vnic [out] the vnic of the given ifindex. 195dc8ee812SKishore Padmanabha * 196dc8ee812SKishore Padmanabha * Returns 0 on success or negative number on failure. 197dc8ee812SKishore Padmanabha */ 198dc8ee812SKishore Padmanabha int32_t 199dc8ee812SKishore Padmanabha ulp_port_db_default_vnic_get(struct bnxt_ulp_context *ulp_ctxt, 20045e8e1d4SVenkat Duvvuru uint32_t ifindex, uint32_t vnic_type, 20145e8e1d4SVenkat Duvvuru uint16_t *vnic); 20235a7fe80SVenkat Duvvuru 20335a7fe80SVenkat Duvvuru /* 20435a7fe80SVenkat Duvvuru * Api to get the vport id for a given ulp ifindex. 20535a7fe80SVenkat Duvvuru * 20635a7fe80SVenkat Duvvuru * ulp_ctxt [in] Ptr to ulp context 20735a7fe80SVenkat Duvvuru * ifindex [in] ulp ifindex 20835a7fe80SVenkat Duvvuru * vport [out] the port of the given ifindex. 20935a7fe80SVenkat Duvvuru * 21035a7fe80SVenkat Duvvuru * Returns 0 on success or negative number on failure. 21135a7fe80SVenkat Duvvuru */ 21235a7fe80SVenkat Duvvuru int32_t 21335a7fe80SVenkat Duvvuru ulp_port_db_vport_get(struct bnxt_ulp_context *ulp_ctxt, 21435a7fe80SVenkat Duvvuru uint32_t ifindex, uint16_t *vport); 215dc8ee812SKishore Padmanabha 2163c334fcdSKishore Padmanabha /* 2173c334fcdSKishore Padmanabha * Api to get the vport for a given physical port. 2183c334fcdSKishore Padmanabha * 2193c334fcdSKishore Padmanabha * ulp_ctxt [in] Ptr to ulp context 2203c334fcdSKishore Padmanabha * phy_port [in] physical port index 2213c334fcdSKishore Padmanabha * out_port [out] the port of the given physical index 2223c334fcdSKishore Padmanabha * 2233c334fcdSKishore Padmanabha * Returns 0 on success or negative number on failure. 2243c334fcdSKishore Padmanabha */ 2253c334fcdSKishore Padmanabha int32_t 2263c334fcdSKishore Padmanabha ulp_port_db_phy_port_vport_get(struct bnxt_ulp_context *ulp_ctxt, 2273c334fcdSKishore Padmanabha uint32_t phy_port, 2283c334fcdSKishore Padmanabha uint16_t *out_port); 2293c334fcdSKishore Padmanabha 23014f260c0SKishore Padmanabha /* 23177b359eeSKishore Padmanabha * Api to get the svif for a given physical port. 23277b359eeSKishore Padmanabha * 23377b359eeSKishore Padmanabha * ulp_ctxt [in] Ptr to ulp context 23477b359eeSKishore Padmanabha * phy_port [in] physical port index 23577b359eeSKishore Padmanabha * svif [out] the svif of the given physical index 23677b359eeSKishore Padmanabha * 23777b359eeSKishore Padmanabha * Returns 0 on success or negative number on failure. 23877b359eeSKishore Padmanabha */ 23977b359eeSKishore Padmanabha int32_t 24077b359eeSKishore Padmanabha ulp_port_db_phy_port_svif_get(struct bnxt_ulp_context *ulp_ctxt, 24177b359eeSKishore Padmanabha uint32_t phy_port, 24277b359eeSKishore Padmanabha uint16_t *svif); 24377b359eeSKishore Padmanabha 24477b359eeSKishore Padmanabha /* 245*d4b36fc5SKishore Padmanabha * Api to get the socket direct svif for a given device port. 246*d4b36fc5SKishore Padmanabha * 247*d4b36fc5SKishore Padmanabha * ulp_ctxt [in] Ptr to ulp context 248*d4b36fc5SKishore Padmanabha * port_id [in] device port id 249*d4b36fc5SKishore Padmanabha * svif [out] the socket direct svif of the given device index 250*d4b36fc5SKishore Padmanabha * 251*d4b36fc5SKishore Padmanabha * Returns 0 on success or negative number on failure. 252*d4b36fc5SKishore Padmanabha */ 253*d4b36fc5SKishore Padmanabha int32_t 254*d4b36fc5SKishore Padmanabha ulp_port_db_dev_port_socket_direct_svif_get(struct bnxt_ulp_context *ulp_ctxt, 255*d4b36fc5SKishore Padmanabha uint32_t port_id, 256*d4b36fc5SKishore Padmanabha uint16_t *svif); 257*d4b36fc5SKishore Padmanabha 258*d4b36fc5SKishore Padmanabha /* 25914f260c0SKishore Padmanabha * Api to get the port type for a given ulp ifindex. 26014f260c0SKishore Padmanabha * 26114f260c0SKishore Padmanabha * ulp_ctxt [in] Ptr to ulp context 26214f260c0SKishore Padmanabha * ifindex [in] ulp ifindex 26314f260c0SKishore Padmanabha * 26414f260c0SKishore Padmanabha * Returns port type. 26514f260c0SKishore Padmanabha */ 26614f260c0SKishore Padmanabha enum bnxt_ulp_intf_type 26714f260c0SKishore Padmanabha ulp_port_db_port_type_get(struct bnxt_ulp_context *ulp_ctxt, 26814f260c0SKishore Padmanabha uint32_t ifindex); 26914f260c0SKishore Padmanabha 27014f260c0SKishore Padmanabha /* 27114f260c0SKishore Padmanabha * Api to get the ulp ifindex for a given function id. 27214f260c0SKishore Padmanabha * 27314f260c0SKishore Padmanabha * ulp_ctxt [in] Ptr to ulp context 27414f260c0SKishore Padmanabha * func_id [in].device func id 27514f260c0SKishore Padmanabha * ifindex [out] ulp ifindex 27614f260c0SKishore Padmanabha * 27714f260c0SKishore Padmanabha * Returns 0 on success or negative number on failure. 27814f260c0SKishore Padmanabha */ 27914f260c0SKishore Padmanabha int32_t 28014f260c0SKishore Padmanabha ulp_port_db_dev_func_id_to_ulp_index(struct bnxt_ulp_context *ulp_ctxt, 28114f260c0SKishore Padmanabha uint32_t func_id, uint32_t *ifindex); 28214f260c0SKishore Padmanabha 283c53c2f43SKishore Padmanabha /* 284c53c2f43SKishore Padmanabha * Api to get the function id for a given port id. 285c53c2f43SKishore Padmanabha * 286c53c2f43SKishore Padmanabha * ulp_ctxt [in] Ptr to ulp context 287c53c2f43SKishore Padmanabha * port_id [in] dpdk port id 288c53c2f43SKishore Padmanabha * func_id [out] the function id of the given ifindex. 289c53c2f43SKishore Padmanabha * 290c53c2f43SKishore Padmanabha * Returns 0 on success or negative number on failure. 291c53c2f43SKishore Padmanabha */ 292c53c2f43SKishore Padmanabha int32_t 293c53c2f43SKishore Padmanabha ulp_port_db_port_func_id_get(struct bnxt_ulp_context *ulp_ctxt, 294c53c2f43SKishore Padmanabha uint16_t port_id, uint16_t *func_id); 295c53c2f43SKishore Padmanabha 296ddaf0afaSKishore Padmanabha /* 297ddaf0afaSKishore Padmanabha * Api to get the parent mac address for a given port id. 298ddaf0afaSKishore Padmanabha * 299ddaf0afaSKishore Padmanabha * ulp_ctxt [in] Ptr to ulp context 3003fe124d2SKishore Padmanabha * port_id [in] device port id 301ddaf0afaSKishore Padmanabha * mac_addr [out] mac address 302ddaf0afaSKishore Padmanabha * 303ddaf0afaSKishore Padmanabha * Returns 0 on success or negative number on failure. 304ddaf0afaSKishore Padmanabha */ 305ddaf0afaSKishore Padmanabha int32_t 306ddaf0afaSKishore Padmanabha ulp_port_db_parent_mac_addr_get(struct bnxt_ulp_context *ulp_ctxt, 307ddaf0afaSKishore Padmanabha uint32_t port_id, uint8_t **mac_addr); 3083fe124d2SKishore Padmanabha 3093fe124d2SKishore Padmanabha /* 3103fe124d2SKishore Padmanabha * Api to get the mac address for a given port id. 3113fe124d2SKishore Padmanabha * 3123fe124d2SKishore Padmanabha * ulp_ctxt [in] Ptr to ulp context 3133fe124d2SKishore Padmanabha * port_id [in] device port id 3143fe124d2SKishore Padmanabha * mac_addr [out] mac address 3153fe124d2SKishore Padmanabha * 3163fe124d2SKishore Padmanabha * Returns 0 on success or negative number on failure. 3173fe124d2SKishore Padmanabha */ 3183fe124d2SKishore Padmanabha int32_t 3193fe124d2SKishore Padmanabha ulp_port_db_drv_mac_addr_get(struct bnxt_ulp_context *ulp_ctxt, 3203fe124d2SKishore Padmanabha uint32_t port_id, uint8_t **mac_addr); 3213fe124d2SKishore Padmanabha 3223fe124d2SKishore Padmanabha /* 3233fe124d2SKishore Padmanabha * Api to get the parent vnic for a given port id. 3243fe124d2SKishore Padmanabha * 3253fe124d2SKishore Padmanabha * ulp_ctxt [in] Ptr to ulp context 3263fe124d2SKishore Padmanabha * port_id [in] device port id 3273fe124d2SKishore Padmanabha * vnic [out] parent vnic 3283fe124d2SKishore Padmanabha * 3293fe124d2SKishore Padmanabha * Returns 0 on success or negative number on failure. 3303fe124d2SKishore Padmanabha */ 3313fe124d2SKishore Padmanabha int32_t 3323fe124d2SKishore Padmanabha ulp_port_db_parent_vnic_get(struct bnxt_ulp_context *ulp_ctxt, 3333fe124d2SKishore Padmanabha uint32_t port_id, uint8_t **vnic); 3343fe124d2SKishore Padmanabha 33562d8961fSKishore Padmanabha /* 33662d8961fSKishore Padmanabha * Api to get the phy port for a given port id. 33762d8961fSKishore Padmanabha * 33862d8961fSKishore Padmanabha * ulp_ctxt [in] Ptr to ulp context 33962d8961fSKishore Padmanabha * port_id [in] device port id 34062d8961fSKishore Padmanabha * phy_port [out] phy_port of the dpdk port_id 34162d8961fSKishore Padmanabha * 34262d8961fSKishore Padmanabha * Returns 0 on success or negative number on failure. 34362d8961fSKishore Padmanabha */ 34462d8961fSKishore Padmanabha int32_t 34562d8961fSKishore Padmanabha ulp_port_db_phy_port_get(struct bnxt_ulp_context *ulp_ctxt, 34662d8961fSKishore Padmanabha uint32_t port_id, uint16_t *phy_port); 3476d160d77SRandy Schacher 3486d160d77SRandy Schacher /* 3496d160d77SRandy Schacher * Api to get the port type for a given port id. 3506d160d77SRandy Schacher * 3516d160d77SRandy Schacher * ulp_ctxt [in] Ptr to ulp context 3526d160d77SRandy Schacher * port_id [in] device port id 3536d160d77SRandy Schacher * type [out] type if pf or not 3546d160d77SRandy Schacher * 3556d160d77SRandy Schacher * Returns 0 on success or negative number on failure. 3566d160d77SRandy Schacher */ 3576d160d77SRandy Schacher int32_t 3586d160d77SRandy Schacher ulp_port_db_port_is_pf_get(struct bnxt_ulp_context *ulp_ctxt, 3596d160d77SRandy Schacher uint32_t port_id, uint8_t **type); 3606d160d77SRandy Schacher 3616d160d77SRandy Schacher /* 3626d160d77SRandy Schacher * Api to get the meta data for a given port id. 3636d160d77SRandy Schacher * 3646d160d77SRandy Schacher * ulp_ctxt [in] Ptr to ulp context 3656d160d77SRandy Schacher * port_id [in] dpdk port id 3666d160d77SRandy Schacher * meta data [out] the meta data of the given port 3676d160d77SRandy Schacher * 3686d160d77SRandy Schacher * Returns 0 on success or negative number on failure. 3696d160d77SRandy Schacher */ 3706d160d77SRandy Schacher int32_t 3716d160d77SRandy Schacher ulp_port_db_port_meta_data_get(struct bnxt_ulp_context *ulp_ctxt, 3726d160d77SRandy Schacher uint16_t port_id, uint8_t **meta_data); 373032d49efSKishore Padmanabha 374032d49efSKishore Padmanabha /* Api to get the function id for a given port id 375032d49efSKishore Padmanabha * 376032d49efSKishore Padmanabha * ulp_ctxt [in] Ptr to ulp context 377032d49efSKishore Padmanabha * port_id [in] dpdk port id 378032d49efSKishore Padmanabha * fid_data [out] the function id of the given port 379032d49efSKishore Padmanabha */ 380032d49efSKishore Padmanabha int32_t 381032d49efSKishore Padmanabha ulp_port_db_port_vf_fid_get(struct bnxt_ulp_context *ulp_ctxt, 382032d49efSKishore Padmanabha uint16_t port_id, uint8_t **fid_data); 383032d49efSKishore Padmanabha 384dd0191d5SShuanglin Wang /* 385dd0191d5SShuanglin Wang * Api to get the table scope for a given port id. 386dd0191d5SShuanglin Wang * 387dd0191d5SShuanglin Wang * ulp_ctxt [in] Ptr to ulp context 388dd0191d5SShuanglin Wang * port_id [in] dpdk port id 389dd0191d5SShuanglin Wang * table_scope data [out] the table scope 390dd0191d5SShuanglin Wang * 391dd0191d5SShuanglin Wang * Returns 0 on success or negative number on failure. 392dd0191d5SShuanglin Wang */ 393dd0191d5SShuanglin Wang 394dd0191d5SShuanglin Wang int32_t 395dd0191d5SShuanglin Wang ulp_port_db_port_table_scope_get(struct bnxt_ulp_context *ulp_ctxt, 396dd0191d5SShuanglin Wang uint16_t port_id, uint8_t **tsid); 397*d4b36fc5SKishore Padmanabha 398*d4b36fc5SKishore Padmanabha /* Api to get the PF Mirror Id for a given port id 399*d4b36fc5SKishore Padmanabha * 400*d4b36fc5SKishore Padmanabha * ulp_ctxt [in] Ptr to ulp context 401*d4b36fc5SKishore Padmanabha * port_id [in] dpdk port id 402*d4b36fc5SKishore Padmanabha * mirror id [in] mirror id 403*d4b36fc5SKishore Padmanabha * 404*d4b36fc5SKishore Padmanabha * Returns 0 on success or negative number on failure. 405*d4b36fc5SKishore Padmanabha */ 406*d4b36fc5SKishore Padmanabha int32_t 407*d4b36fc5SKishore Padmanabha ulp_port_db_port_table_mirror_set(struct bnxt_ulp_context *ulp_ctxt, 408*d4b36fc5SKishore Padmanabha uint16_t port_id, uint32_t mirror_id); 409*d4b36fc5SKishore Padmanabha 410dc8ee812SKishore Padmanabha #endif /* _ULP_PORT_DB_H_ */ 411