1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2016 Cavium, Inc
5 #ifndef _THUNDERX_NICVF_STRUCT_H
6 #define _THUNDERX_NICVF_STRUCT_H
10 #include <rte_spinlock.h>
11 #include <rte_mempool.h>
13 #include <rte_interrupts.h>
14 #include <rte_ethdev_driver.h>
15 #include <rte_memory.h>
18 uintptr_t rbdr_status;
20 struct rbdr_entry_t *desc;
21 nicvf_iova_addr_t phys;
27 } __rte_cache_aligned;
30 union sq_entry_t *desc;
31 nicvf_iova_addr_t phys;
32 struct rte_mbuf **txbuffs;
35 struct rte_mempool *pool;
37 void (*pool_free)(struct nicvf_txq *sq);
44 uint16_t tx_free_thresh;
45 } __rte_cache_aligned;
47 union mbuf_initializer {
58 uint64_t mbuf_phys_off;
61 union mbuf_initializer mbuf_initializer;
62 nicvf_iova_addr_t phys;
63 union cq_entry_t *desc;
64 struct nicvf_rbdr *shared_rbdr;
66 struct rte_mempool *pool;
69 int32_t available_space;
71 uint16_t rx_free_thresh;
73 uint16_t precharge_cnt;
77 } __rte_cache_aligned;
85 bool loopback_supported;
95 uint16_t subsystem_device_id;
96 uint16_t subsystem_vendor_id;
97 struct nicvf_rbdr *rbdr;
98 struct nicvf_rss_reta_info rss_info;
99 struct rte_intr_handle intr_handle;
103 uint8_t mac_addr[ETHER_ADDR_LEN];
104 /* secondary queue set support */
107 #define MAX_SQS_PER_VF 11
108 struct nicvf *snicvf[MAX_SQS_PER_VF];
109 } __rte_cache_aligned;
111 #endif /* _THUNDERX_NICVF_STRUCT_H */