39 #define VMXNET3_MAX_TX_QUEUES 8 42 #define VMXNET3_MAX_RX_QUEUES 16 45 #define VMXNET3_MAX_INTRS 25 48 #define VMXNET3_MAX_PACKET_LEN 0x4000 51 #define VMXNET3_PT_BAR PCI_BASE_ADDRESS_0 54 #define VMXNET3_PT_LEN 0x1000 57 #define VMXNET3_PT_IMR 0x0 60 #define VMXNET3_PT_TXPROD 0x600 63 #define VMXNET3_PT_RXPROD 0x800 66 #define VMXNET3_PT_RXPROD2 0xa00 69 #define VMXNET3_VD_BAR PCI_BASE_ADDRESS_1 72 #define VMXNET3_VD_LEN 0x1000 75 #define VMXNET3_VD_VRRS 0x0 78 #define VMXNET3_VD_UVRS 0x8 81 #define VMXNET3_VD_DSAL 0x10 84 #define VMXNET3_VD_DSAH 0x18 87 #define VMXNET3_VD_CMD 0x20 90 #define VMXNET3_VD_MACL 0x28 93 #define VMXNET3_VD_MACH 0x30 96 #define VMXNET3_VD_ICR 0x38 99 #define VMXNET3_VD_ECR 0x40 170 #define VMXNET3_VERSION_MAGIC 0x69505845 183 #define VMXNET3_IC_DISABLE_ALL 0x1 240 #define VMXNET3_SHARED_ALIGN 8 243 #define VMXNET3_SHARED_MAGIC 0xbabefee1 254 #define VMXNET3_TXF_GEN 0x00004000UL 257 #define VMXNET3_TXF_EOP 0x000001000UL 260 #define VMXNET3_TXF_CQ 0x000002000UL 273 #define VMXNET3_TXCF_GEN 0x80000000UL 325 #define VMXNET3_RXF_GEN 0x80000000UL 340 #define VMXNET3_RXCF_GEN 0x80000000UL 415 #define VMXNET3_QUEUES_ALIGN 128 418 #define VMXNET3_RING_ALIGN 512 421 #define VMXNET3_NUM_TX_DESC 32 424 #define VMXNET3_NUM_TX_COMP 32 427 #define VMXNET3_NUM_RX_DESC 32 430 #define VMXNET3_NUM_RX_COMP 32 454 #define VMXNET3_DMA_ALIGN 512 488 #define VMXNET3_VERSION_SELECT 1 491 #define VMXNET3_UPT_VERSION_SELECT 1 494 #define VMXNET3_MTU ( ETH_FRAME_LEN + 4 + 4 ) 497 #define VMXNET3_TX_FILL ( VMXNET3_NUM_TX_DESC - 1 ) 500 #define VMXNET3_RX_FILL 8 503 #define NET_IP_ALIGN 2 uint64_t upt_features
UPT features supported.
struct vmxnet3_tx_queue_config cfg
struct vmxnet3_rx_queue_config cfg
uint32_t driver_data_len
Driver-private data length.
Receive queue configuration.
uint32_t driver_data_len
Driver-private data length.
uint16_t max_num_rx_sg
Maximum number of RX scatter-gather.
vmxnet3_rx_filter_mode
Receive filter mode.
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
void * vd
"VD" register base address
struct vmxnet3_rx_queue_control ctrl
uint8_t intr_index
Interrupt index.
uint64_t driver_data_address
Driver-private data address.
#define VMXNET3_MAX_INTRS
Maximum number of interrupts.
uint32_t version_support
Version supported.
Receive filter configuration.
uint64_t desc_address
Descriptor ring address.
Receive queue statistics.
Transmit queue statistics.
uint8_t moderation_level[VMXNET3_MAX_INTRS]
struct vmxnet3_rx_comp rx_comp[VMXNET3_NUM_RX_COMP]
RX completion ring.
uint8_t num_rx_queues
Number of RX queues.
struct vmxnet3_interrupt_config interrupt
Interrupt configuration.
unsigned int rx_fill
Receive fill level.
#define VMXNET3_NUM_TX_DESC
Number of TX descriptors.
unsigned int tx_prod
Transmit producer counter.
unsigned long long uint64_t
struct vmxnet3_dma * dma
DMA area.
uint32_t reserved0
Reserved.
struct vmxnet3_tx_stats state
Producer and consumer counters.
uint64_t reserved0
Reserved.
uint32_t num_desc
Number of descriptors.
uint16_t reserved0
Reserved.
uint8_t vlan_filter[512]
VLAN filter table (one bit per possible VLAN)
uint32_t index
Index of the end-of-packet descriptor.
uint32_t reserved0
Reserved.
Miscellaneous configuration descriptor.
uint32_t upt_version_support
UPT version supported.
uint32_t mtu
Maximum transmission unit.
uint32_t reserved1[5]
Reserved.
#define VMXNET3_NUM_TX_COMP
Number of TX completion descriptors.
uint64_t reserved0
Reserved.
uint32_t rss
RSS hash value.
uint64_t queue_desc_address
Queue descriptors data address.
uint32_t queue_desc_len
Queue descriptors data length.
struct vmxnet3_variable_config rss
RSS configuration.
struct io_buffer * tx_iobuf[VMXNET3_NUM_TX_DESC]
Transmit I/O buffers.
uint32_t guest_info
Guest information.
struct vmxnet3_queues queues
Queue descriptors.
uint32_t num_desc[2]
Number of descriptors.
uint32_t mode
Receive filter mode.
struct vmxnet3_queue_status status
struct vmxnet3_rx_filter_config rx_filter
Receive filter configuration.
uint16_t multicast_len
Multicast filter table length.
Receive queue descriptor.
uint8_t reserved[7]
Reserved.
Transmit queue descriptor.
struct vmxnet3_queue_status status
uint32_t num_comp
Number of completion descriptors.
Transmit queue configuration.
uint64_t comp_address
Completion ring address.
#define VMXNET3_NUM_RX_COMP
Number of RX completion descriptors.
struct vmxnet3_tx_queue_control ctrl
uint64_t immediate_address
Data ring address.
struct vmxnet3_rx_queue rx
Receive queue descriptor(s)
uint64_t desc_address[2]
Descriptor ring addresses.
uint32_t reserved0[4]
Reserved.
uint32_t reserved0[2]
Reserved.
unsigned int rx_cons
Receive consumer counter.
void * pt
"PT" register base address
struct vmxnet3_rx_stats stats
struct vmxnet3_variable_config plugin
Plugin configuration.
struct io_buffer * rx_iobuf[VMXNET3_NUM_RX_DESC]
Receive I/O buffers.
unsigned int rx_prod
Receive producer counter.
uint64_t driver_data_address
Driver-private data address.
struct vmxnet3_tx_queue tx
Transmit queue descriptor(s)
uint8_t intr_index
Interrupt index.
struct vmxnet3_misc_config misc
Miscellaneous configuration.
uint32_t index
Descriptor index.
uint64_t reserved[10]
Reserved.
uint64_t reserved[10]
Reserved.
Variable-length configuration descriptor.
uint8_t num_tx_queues
Number of TX queues.
unsigned int tx_cons
Transmit completion consumer counter.
struct vmxnet3_tx_comp tx_comp[VMXNET3_NUM_TX_COMP]
TX completion ring.
uint32_t magic
Magic signature.
uint8_t reserved[7]
Reserved.
Transmit completion descriptor.
uint64_t driver_data_address
Driver-private data address.
uint64_t multicast_address
Multicast filter table address.
struct vmxnet3_counters count
Producer and consumer counters.
#define VMXNET3_NUM_RX_DESC
Number of RX descriptors.
uint32_t driver_data_len
Driver-private data length.
struct vmxnet3_shared shared
Shared area.
uint32_t num_immediate
Number of data descriptors.
Multicast passing the filters.
uint32_t ecr
Event notifications.
Receive completion descriptor.
uint32_t num_comp
Number of completion descriptors.
struct vmxnet3_variable_config pattern
Pattern-matching configuration.
uint32_t version
Driver version.
uint64_t comp_address
Completion ring address.