11993b267SShahaji Bhosle /* SPDX-License-Identifier: BSD-3-Clause 26d160d77SRandy Schacher * Copyright(c) 2021-2023 Broadcom 31993b267SShahaji Bhosle * All rights reserved. 41993b267SShahaji Bhosle */ 51993b267SShahaji Bhosle 61993b267SShahaji Bhosle #ifndef _BNXT_TF_PMD_ABSTRACT_H_ 71993b267SShahaji Bhosle #define _BNXT_TF_PMD_ABSTRACT_H_ 81993b267SShahaji Bhosle 91993b267SShahaji Bhosle #include "bnxt_tf_common.h" 101993b267SShahaji Bhosle #include "ulp_mapper.h" 111993b267SShahaji Bhosle 126d160d77SRandy Schacher /* Simple structure to manage the custom global tunnel */ 136d160d77SRandy Schacher struct bnxt_global_tunnel_info { 146d160d77SRandy Schacher uint16_t dport; 156d160d77SRandy Schacher uint16_t ref_cnt; 166d160d77SRandy Schacher }; 176d160d77SRandy Schacher 181993b267SShahaji Bhosle int32_t bnxt_rss_config_action_apply(struct bnxt_ulp_mapper_parms *parms); 191993b267SShahaji Bhosle int32_t bnxt_pmd_get_parent_mac_addr(struct bnxt_ulp_mapper_parms *parms, 201993b267SShahaji Bhosle uint8_t *mac); 211993b267SShahaji Bhosle void bnxt_pmd_get_iface_mac(uint16_t port, enum bnxt_ulp_intf_type type, 221993b267SShahaji Bhosle uint8_t *mac, uint8_t *parent_mac); 231993b267SShahaji Bhosle uint16_t bnxt_pmd_get_vnic_id(uint16_t port, enum bnxt_ulp_intf_type type); 241993b267SShahaji Bhosle uint16_t bnxt_pmd_get_parent_vnic_id(uint16_t port, enum bnxt_ulp_intf_type type); 251993b267SShahaji Bhosle struct bnxt *bnxt_pmd_get_bp(uint16_t port); 261993b267SShahaji Bhosle uint16_t bnxt_pmd_get_svif(uint16_t port_id, bool func_svif, 271993b267SShahaji Bhosle enum bnxt_ulp_intf_type type); 281993b267SShahaji Bhosle uint16_t bnxt_pmd_get_fw_func_id(uint16_t port, enum bnxt_ulp_intf_type type); 291993b267SShahaji Bhosle uint16_t bnxt_pmd_get_parif(uint16_t port, enum bnxt_ulp_intf_type type); 301993b267SShahaji Bhosle uint16_t bnxt_pmd_get_phy_port_id(uint16_t port); 311993b267SShahaji Bhosle uint16_t bnxt_pmd_get_vport(uint16_t port); 321993b267SShahaji Bhosle enum bnxt_ulp_intf_type bnxt_pmd_get_interface_type(uint16_t port); 331993b267SShahaji Bhosle int32_t bnxt_pmd_set_unicast_rxmask(struct rte_eth_dev *eth_dev); 346d160d77SRandy Schacher int32_t bnxt_pmd_queue_action_create(struct bnxt_ulp_mapper_parms *parms, 356d160d77SRandy Schacher uint16_t *vnic_idx, uint16_t *vnic_id); 36dd0191d5SShuanglin Wang int32_t bnxt_pmd_queue_action_delete(struct bnxt *bp, uint16_t vnic_idx); 376d160d77SRandy Schacher int32_t bnxt_pmd_rss_action_create(struct bnxt_ulp_mapper_parms *parms, 386d160d77SRandy Schacher uint16_t *vnic_idx, uint16_t *vnic_id); 39dd0191d5SShuanglin Wang int32_t bnxt_pmd_rss_action_delete(struct bnxt *bp, uint16_t vnic_idx); 406d160d77SRandy Schacher int32_t bnxt_tunnel_dst_port_free(struct bnxt *bp, 416d160d77SRandy Schacher uint16_t port, 426d160d77SRandy Schacher uint8_t type); 436d160d77SRandy Schacher int32_t bnxt_tunnel_dst_port_alloc(struct bnxt *bp, 446d160d77SRandy Schacher uint16_t port, 456d160d77SRandy Schacher uint8_t type); 466d160d77SRandy Schacher int32_t 47*94dbd6cfSKishore Padmanabha bnxt_pmd_global_tunnel_set(struct bnxt_ulp_context *ulp_ctx, 48*94dbd6cfSKishore Padmanabha uint16_t port_id, uint8_t type, 49*94dbd6cfSKishore Padmanabha uint16_t udp_port, uint64_t *handle); 506d160d77SRandy Schacher int32_t 516d160d77SRandy Schacher bnxt_tunnel_upar_id_get(struct bnxt *bp, 526d160d77SRandy Schacher uint8_t type, 536d160d77SRandy Schacher uint8_t *upar_id); 542921498cSMike Baucom void bnxt_pmd_configure_hot_upgrade(bool enable); 552921498cSMike Baucom bool bnxt_pmd_get_hot_up_config(void); 56dd0191d5SShuanglin Wang int32_t ulp_ctx_mh_get_session_name(struct bnxt *bp, 57dd0191d5SShuanglin Wang struct tf_open_session_parms *parms); 58dd0191d5SShuanglin Wang 59dd0191d5SShuanglin Wang int32_t bnxt_pmd_bd_act_set(uint16_t port_id, uint32_t act); 601993b267SShahaji Bhosle #endif /* _BNXT_TF_PMD_ABSTRACT_H_ */ 61