xref: /dpdk/drivers/common/idpf/idpf_common_virtchnl.h (revision ff0e6d8ef48617af882f5c7b3b0e33117f706c4e)
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