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 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 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
[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 */