173c9b8c3SBeilei Xing /* SPDX-License-Identifier: BSD-3-Clause 273c9b8c3SBeilei Xing * Copyright(c) 2023 Intel Corporation 373c9b8c3SBeilei Xing */ 473c9b8c3SBeilei Xing 573c9b8c3SBeilei Xing #ifndef _IDPF_COMMON_VIRTCHNL_H_ 673c9b8c3SBeilei Xing #define _IDPF_COMMON_VIRTCHNL_H_ 773c9b8c3SBeilei Xing 8ec4b04a7SQi Zhang #include "idpf_common_device.h" 9ec4b04a7SQi Zhang #include "idpf_common_rxtx.h" 1073c9b8c3SBeilei Xing 1173c9b8c3SBeilei Xing __rte_internal 12ba6b8cd4SBeilei Xing int idpf_vc_api_version_check(struct idpf_adapter *adapter); 1373c9b8c3SBeilei Xing __rte_internal 14ba6b8cd4SBeilei Xing int idpf_vc_caps_get(struct idpf_adapter *adapter); 1573c9b8c3SBeilei Xing __rte_internal 16ba6b8cd4SBeilei Xing int idpf_vc_vport_create(struct idpf_vport *vport, 1773c9b8c3SBeilei Xing struct virtchnl2_create_vport *vport_info); 1873c9b8c3SBeilei Xing __rte_internal 19ba6b8cd4SBeilei Xing int idpf_vc_vport_destroy(struct idpf_vport *vport); 2073c9b8c3SBeilei Xing __rte_internal 21ba6b8cd4SBeilei Xing int idpf_vc_rss_key_set(struct idpf_vport *vport); 2273c9b8c3SBeilei Xing __rte_internal 23ba6b8cd4SBeilei Xing int idpf_vc_rss_lut_set(struct idpf_vport *vport); 2473c9b8c3SBeilei Xing __rte_internal 25ba6b8cd4SBeilei Xing int idpf_vc_rss_hash_set(struct idpf_vport *vport); 2673c9b8c3SBeilei Xing __rte_internal 27ba6b8cd4SBeilei Xing int idpf_vc_irq_map_unmap_config(struct idpf_vport *vport, 28ddb59a7dSBeilei Xing uint16_t nb_rxq, bool map); 29ddb59a7dSBeilei Xing __rte_internal 30ba6b8cd4SBeilei Xing int idpf_vc_cmd_execute(struct idpf_adapter *adapter, 318b95ced4SBeilei Xing struct idpf_cmd_info *args); 328b95ced4SBeilei Xing __rte_internal 33ba6b8cd4SBeilei Xing int idpf_vc_queue_switch(struct idpf_vport *vport, uint16_t qid, 34*ff0e6d8eSSoumyadeep Hore bool rx, bool on, uint32_t type); 3573c9b8c3SBeilei Xing __rte_internal 36ba6b8cd4SBeilei Xing int idpf_vc_queues_ena_dis(struct idpf_vport *vport, bool enable); 3773c9b8c3SBeilei Xing __rte_internal 38ba6b8cd4SBeilei Xing int idpf_vc_vport_ena_dis(struct idpf_vport *vport, bool enable); 3973c9b8c3SBeilei Xing __rte_internal 40ba6b8cd4SBeilei Xing int idpf_vc_vectors_alloc(struct idpf_vport *vport, uint16_t num_vectors); 4173c9b8c3SBeilei Xing __rte_internal 42ba6b8cd4SBeilei Xing int idpf_vc_vectors_dealloc(struct idpf_vport *vport); 4373c9b8c3SBeilei Xing __rte_internal 44811bbeabSBeilei Xing int idpf_vc_ptype_info_query(struct idpf_adapter *adapter, 45811bbeabSBeilei Xing struct virtchnl2_get_ptype_info *req_ptype_info, 46811bbeabSBeilei Xing struct virtchnl2_get_ptype_info *recv_ptype_info); 4773c9b8c3SBeilei Xing __rte_internal 48ba6b8cd4SBeilei Xing int idpf_vc_one_msg_read(struct idpf_adapter *adapter, uint32_t ops, 4973c9b8c3SBeilei Xing uint16_t buf_len, uint8_t *buf); 5073c9b8c3SBeilei Xing __rte_internal 51ba6b8cd4SBeilei Xing int idpf_vc_rxq_config(struct idpf_vport *vport, struct idpf_rx_queue *rxq); 528b95ced4SBeilei Xing __rte_internal 53ba6b8cd4SBeilei Xing int idpf_vc_txq_config(struct idpf_vport *vport, struct idpf_tx_queue *txq); 547514d76dSMingxia Liu __rte_internal 557514d76dSMingxia Liu int idpf_vc_stats_query(struct idpf_vport *vport, 567514d76dSMingxia Liu struct virtchnl2_vport_stats **pstats); 57e4f3de91SMingxia Liu __rte_internal 58e4f3de91SMingxia Liu int idpf_vc_rss_key_get(struct idpf_vport *vport); 59e4f3de91SMingxia Liu __rte_internal 60e4f3de91SMingxia Liu int idpf_vc_rss_lut_get(struct idpf_vport *vport); 61e4f3de91SMingxia Liu __rte_internal 62e4f3de91SMingxia Liu int idpf_vc_rss_hash_get(struct idpf_vport *vport); 63d633a485SMingxia Liu __rte_internal 64d633a485SMingxia Liu int idpf_vc_ctlq_recv(struct idpf_ctlq_info *cq, u16 *num_q_msg, 65d633a485SMingxia Liu struct idpf_ctlq_msg *q_msg); 66d633a485SMingxia Liu __rte_internal 67d633a485SMingxia Liu int idpf_vc_ctlq_post_rx_buffs(struct idpf_hw *hw, struct idpf_ctlq_info *cq, 68d633a485SMingxia Liu u16 *buff_count, struct idpf_dma_mem **buffs); 6978423e76SBeilei Xing __rte_internal 7094364eccSBeilei Xing int idpf_vc_rxq_config_by_info(struct idpf_vport *vport, struct virtchnl2_rxq_info *rxq_info, 7194364eccSBeilei Xing uint16_t num_qs); 7294364eccSBeilei Xing __rte_internal 7394364eccSBeilei Xing int idpf_vc_txq_config_by_info(struct idpf_vport *vport, struct virtchnl2_txq_info *txq_info, 7494364eccSBeilei Xing uint16_t num_qs); 7594364eccSBeilei Xing __rte_internal 761dae095fSBeilei Xing int idpf_vc_ena_dis_one_queue(struct idpf_vport *vport, uint16_t qid, 771dae095fSBeilei Xing uint32_t type, bool on); 781dae095fSBeilei Xing __rte_internal 7978423e76SBeilei Xing int idpf_vc_queue_grps_del(struct idpf_vport *vport, 8078423e76SBeilei Xing uint16_t num_q_grps, 8178423e76SBeilei Xing struct virtchnl2_queue_group_id *qg_ids); 8278423e76SBeilei Xing __rte_internal 8378423e76SBeilei Xing int 8478423e76SBeilei Xing idpf_vc_queue_grps_add(struct idpf_vport *vport, 8578423e76SBeilei Xing struct virtchnl2_add_queue_groups *ptp_queue_grps_info, 8678423e76SBeilei Xing uint8_t *ptp_queue_grps_out); 8773c9b8c3SBeilei Xing #endif /* _IDPF_COMMON_VIRTCHNL_H_ */ 88