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 RTE_MARKER rxq_fastpath_data_start;
60 uint16_t rx_free_thresh;
64 int32_t available_space;
65 uint64_t mbuf_phys_off;
68 struct nicvf_rbdr *shared_rbdr;
69 struct rte_mempool *pool;
70 union cq_entry_t *desc;
71 union mbuf_initializer mbuf_initializer;
72 RTE_MARKER rxq_fastpath_data_end;
74 uint16_t precharge_cnt;
78 nicvf_iova_addr_t phys;
79 } __rte_cache_aligned;
87 bool loopback_supported;
99 uint16_t subsystem_device_id;
100 uint16_t subsystem_vendor_id;
101 struct nicvf_rbdr *rbdr;
102 struct nicvf_rss_reta_info rss_info;
103 struct rte_intr_handle intr_handle;
108 uint8_t mac_addr[RTE_ETHER_ADDR_LEN];
109 /* secondary queue set support */
112 #define MAX_SQS_PER_VF 11
113 struct nicvf *snicvf[MAX_SQS_PER_VF];
114 } __rte_cache_aligned;
116 #endif /* _THUNDERX_NICVF_STRUCT_H */