FD.io VPP  v18.10-34-gcce845e
Vector Packet Processing
vmxnet3.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  vmxnet3_rx_ring
 
struct  vmxnet3_rx_comp_ring
 
struct  vmxnet3_rxq_t
 
struct  vmxnet3_tx_ring
 
struct  vmxnet3_tx_comp_ring
 
struct  vmxnet3_txq_t
 
struct  vmxnet3_device_t
 
struct  vmxnet3_main_t
 
struct  vmxnet3_create_if_args_t
 
struct  vmxnet3_input_trace_t
 

Macros

#define foreach_vmxnet3_tx_func_error
 
#define foreach_vmxnet3_rxmode_flags
 
#define foreach_vmxnet3_show_entry
 
#define VMXNET3_REG_IMR   0x0000 /* Interrupt Mask Register */
 
#define VMXNET3_REG_TXPROD   0x0600 /* Tx Producer Index */
 
#define VMXNET3_REG_RXPROD   0x0800 /* Rx Producer Index for ring 1 */
 
#define VMXNET3_REG_RXPROD2   0x0A00 /* Rx Producer Index for ring 2 */
 
#define VMXNET3_REG_VRRS   0x0000 /* VMXNET3 Revision Report Selection */
 
#define VMXNET3_REG_UVRS   0x0008 /* UPT Version Report Selection */
 
#define VMXNET3_REG_DSAL   0x0010 /* Driver Shared Address Low */
 
#define VMXNET3_REG_DSAH   0x0018 /* Driver Shared Address High */
 
#define VMXNET3_REG_CMD   0x0020 /* Command */
 
#define VMXNET3_REG_MACL   0x0028 /* MAC Address Low */
 
#define VMXNET3_REG_MACH   0x0030 /* MAC Address High */
 
#define VMXNET3_REG_ICR   0x0038 /* Interrupt Cause Register */
 
#define VMXNET3_REG_ECR   0x0040 /* Event Cause Register */
 
#define VMXNET3_VLAN_LEN   4
 
#define VMXNET3_FCS_LEN   4
 
#define VMXNET3_MTU   (1514 + VMXNET3_VLAN_LEN + VMXNET3_FCS_LEN)
 
#define VMXNET3_RXF_BTYPE   (1 << 14) /* rx body buffer type */
 
#define VMXNET3_RXF_GEN   (1 << 31) /* rx generation */
 
#define VMXNET3_RXCF_IP6   (1 << 20) /* rx ip6 packet */
 
#define VMXNET3_RXCF_IP4   (1 << 21) /* rx ip4 packet */
 
#define VMXNET3_RXCF_GEN   (1 << 31) /* rx completion generation */
 
#define VMXNET3_RXC_INDEX   (0xFFF) /* rx completion index mask */
 
#define VMXNET3_TXF_GEN   (1 << 14) /* tx generation */
 
#define VMXNET3_TXF_EOP   (1 << 12) /* tx end of packet */
 
#define VMXNET3_TXF_CQ   (1 << 13) /* tx completion request */
 
#define VMXNET3_TXCF_GEN   (1 << 31) /* tx completion generation */
 
#define VMXNET3_TXC_INDEX   (0xFFF) /* tx completion index mask */
 
#define VMXNET3_RX_RING_SIZE   2
 
#define VMXNET3_INPUT_REFILL_THRESHOLD   32
 
#define VMXNET3_NUM_TX_DESC   1024
 
#define VMXNET3_NUM_TX_COMP   VMXNET3_NUM_TX_DESC
 
#define VMXNET3_NUM_RX_DESC   1024
 
#define VMXNET3_NUM_RX_COMP   VMXNET3_NUM_RX_DESC
 
#define VMXNET3_VERSION_MAGIC   0x69505845
 
#define VMXNET3_SHARED_MAGIC   0xbabefee1
 
#define VMXNET3_VERSION_SELECT   1
 
#define VMXNET3_UPT_VERSION_SELECT   1
 
#define VMXNET3_MAX_INTRS   25
 
#define VMXNET3_IC_DISABLE_ALL   0x1
 
#define VMXNET3_GOS_BITS_32   (1 << 0)
 
#define VMXNET3_GOS_BITS_64   (2 << 0)
 
#define VMXNET3_GOS_TYPE_LINUX   (1 << 2)
 
#define VMXNET3_RXCL_LEN_MASK   (0x3FFF)
 
#define VMXNET3_RXCL_ERROR   (1 << 14)
 
#define VMXNET3_RXCI_EOP   (1 << 14)
 
#define VMXNET3_RXCI_SOP   (1 << 15)
 
#define foreach_vmxnet3_device_flags
 
#define foreach_vmxnet3_set_cmds
 
#define foreach_vmxnet3_get_cmds
 
#define vmxnet3_log_debug(dev, f, ...)
 
#define vmxnet3_log_error(dev, f, ...)
 

Enumerations

enum  vmxnet3_tx_func_error_t { VMXNET3_TX_N_ERROR }
 
enum  { foreach_vmxnet3_rxmode_flags }
 
enum  { foreach_vmxnet3_show_entry }
 
enum  { foreach_vmxnet3_device_flags }
 
enum  { foreach_vmxnet3_set_cmds }
 
enum  { foreach_vmxnet3_get_cmds }
 

Functions

typedef CLIB_PACKED (struct{u32 version;u32 guest_info;u32 version_support;u32 upt_version_support;u64 upt_features;u64 driver_data_address;u64 queue_desc_address;u32 driver_data_len;u32 queue_desc_len;u32 mtu;u16 max_num_rx_sg;u8 num_tx_queues;u8 num_rx_queues;u32 pad[4];}) vmxnet3_misc_config
 
typedef CLIB_PACKED (struct{u8 mask_mode;u8 num_intrs;u8 event_intr_index;u8 moderation_level[VMXNET3_MAX_INTRS];u32 control;u32 pad[2];}) vmxnet3_interrupt_config
 
typedef CLIB_PACKED (struct{u32 mode;u16 multicast_len;u16 pad;u64 multicast_address;u8 vlan_filter[512];}) vmxnet3_rx_filter_config
 
typedef CLIB_PACKED (struct{u32 version;u32 length;u64 address;}) vmxnet3_variable_config
 
typedef CLIB_PACKED (struct{u32 magic;u32 pad;vmxnet3_misc_config misc;vmxnet3_interrupt_config interrupt;vmxnet3_rx_filter_config rx_filter;vmxnet3_variable_config rss;vmxnet3_variable_config pattern;vmxnet3_variable_config plugin;u32 ecr;u32 pad1[5];}) vmxnet3_shared
 
typedef CLIB_PACKED (struct{u8 stopped;u8 pad[3];u32 error;}) vmxnet3_queue_status
 
typedef CLIB_PACKED (struct{u32 num_deferred;u32 threshold;u64 pad;}) vmxnet3_tx_queue_control
 
typedef CLIB_PACKED (struct{u64 desc_address;u64 data_address;u64 comp_address;u64 driver_data_address;u64 pad;u32 num_desc;u32 num_data;u32 num_comp;u32 driver_data_len;u8 intr_index;u8 pad1[7];}) vmxnet3_tx_queue_config
 
typedef CLIB_PACKED (struct{u64 tso_pkts;u64 tso_bytes;u64 ucast_pkts;u64 ucast_bytes;u64 mcast_pkts;u64 mcast_bytes;u64 bcast_pkts;u64 bcast_bytes;u64 error_pkts;u64 discard_pkts;}) vmxnet3_tx_stats
 
typedef CLIB_PACKED (struct{vmxnet3_tx_queue_control ctrl;vmxnet3_tx_queue_config cfg;vmxnet3_queue_status status;vmxnet3_tx_stats stats;u8 pad[88];}) vmxnet3_tx_queue
 
typedef CLIB_PACKED (struct{u8 update_prod;u8 pad[7];u64 pad1;}) vmxnet3_rx_queue_control
 
typedef CLIB_PACKED (struct{u64 desc_address[2];u64 comp_address;u64 driver_data_address;u64 pad;u32 num_desc[2];u32 num_comp;u32 driver_data_len;u8 intr_index;u8 pad1[7];}) vmxnet3_rx_queue_config
 
typedef CLIB_PACKED (struct{u64 lro_pkts;u64 lro_bytes;u64 ucast_pkts;u64 ucast_bytes;u64 mcast_pkts;u64 mcast_bytes;u64 bcast_pkts;u64 bcast_bytes;u64 nobuf_pkts;u64 error_pkts;}) vmxnet3_rx_stats
 
typedef CLIB_PACKED (struct{vmxnet3_rx_queue_control ctrl;vmxnet3_rx_queue_config cfg;vmxnet3_queue_status status;vmxnet3_rx_stats stats;u8 pad[88];}) vmxnet3_rx_queue
 
typedef CLIB_PACKED (struct{vmxnet3_tx_queue tx;vmxnet3_rx_queue rx;}) vmxnet3_queues
 
typedef CLIB_PACKED (struct{u64 address;u32 flags;u32 pad;}) vmxnet3_rx_desc
 
typedef CLIB_PACKED (struct{u32 index;u32 rss;u32 len;u32 flags;}) vmxnet3_rx_comp
 
typedef CLIB_PACKED (struct{u32 index;u32 pad[2];u32 flags;}) vmxnet3_tx_comp
 
typedef CLIB_PACKED (struct{u64 address;u32 flags[2];}) vmxnet3_tx_desc
 
typedef CLIB_PACKED (struct{vmxnet3_queues queues;vmxnet3_shared shared;}) vmxnet3_dma
 
void vmxnet3_create_if (vlib_main_t *vm, vmxnet3_create_if_args_t *args)
 
void vmxnet3_delete_if (vlib_main_t *vm, vmxnet3_device_t *ad)
 
clib_error_tvmxnet3_plugin_api_hookup (vlib_main_t *vm)
 
static_always_inline void vmxnet3_reg_write_inline (vmxnet3_device_t *vd, u8 bar, u32 addr, u32 val)
 
static_always_inline void vmxnet3_reg_write (vmxnet3_device_t *vd, u8 bar, u32 addr, u32 val)
 
static_always_inline u32 vmxnet3_reg_read (vmxnet3_device_t *vd, u8 bar, u32 addr)
 
static_always_inline uword vmxnet3_dma_addr (vlib_main_t *vm, vmxnet3_device_t *vd, void *p)
 
static_always_inline void vmxnet3_rx_ring_advance_produce (vmxnet3_rxq_t *rxq, vmxnet3_rx_ring *ring)
 
static_always_inline clib_error_tvmxnet3_rxq_refill_ring0 (vlib_main_t *vm, vmxnet3_device_t *vd, vmxnet3_rxq_t *rxq)
 
static_always_inline clib_error_tvmxnet3_rxq_refill_ring1 (vlib_main_t *vm, vmxnet3_device_t *vd, vmxnet3_rxq_t *rxq)
 

Variables

vmxnet3_main_t vmxnet3_main
 
vlib_node_registration_t vmxnet3_input_node
 (constructor) VLIB_REGISTER_NODE (vmxnet3_input_node) More...
 
vnet_device_class_t vmxnet3_device_class
 
format_function_t format_vmxnet3_device
 
format_function_t format_vmxnet3_device_name
 
format_function_t format_vmxnet3_input_trace
 

Macro Definition Documentation

#define foreach_vmxnet3_device_flags
Value:
_(0, INITIALIZED, "initialized") \
_(1, ERROR, "error") \
_(2, ADMIN_UP, "admin-up") \
_(3, IOVA, "iova") \
_(4, LINK_UP, "link-up") \
_(5, SHARED_TXQ_LOCK, "shared-txq-lock") \
_(6, ELOG, "elog")
#define ELOG(em, f, data)
Definition: elog.h:471

Definition at line 117 of file vmxnet3.h.

#define foreach_vmxnet3_get_cmds
Value:
_(0, GET_QUEUE_STATUS, "get queue status") \
_(1, GET_STATS, "get stats") \
_(2, GET_LINK, "get link") \
_(3, GET_PERM_MAC_LO, "get perm mac lo") \
_(4, GET_PERM_MAC_HI, "get perm mac hi") \
_(5, GET_DID_LO, "get did lo") \
_(6, GET_DID_HI, "get did hi") \
_(7, GET_DEV_EXTRA_INFO, "get dev extra info") \
_(8, GET_CONF_INTR, "get conf intr") \
_(9, GET_ADAPTIVE_RING_INFO, "get adaptive ring info") \
_(10, GET_TXDATA_DESC_SIZE, "get txdata desc size") \
_(11, RESERVED5, "reserved5")

Definition at line 158 of file vmxnet3.h.

#define foreach_vmxnet3_rxmode_flags
Value:
_(0, UCAST, "unicast") \
_(1, MCAST, "multicast") \
_(2, BCAST, "broadcast") \
_(3, ALL_MULTI, "all multicast") \
_(4, PROMISC, "promiscuous")

Definition at line 32 of file vmxnet3.h.

#define foreach_vmxnet3_set_cmds
Value:
_(0, ACTIVATE_DEV, "activate device") \
_(1, QUIESCE_DEV, "quiesce device") \
_(2, RESET_DEV, "reset device") \
_(3, UPDATE_RX_MODE, "update rx mode") \
_(4, UPDATE_MAC_FILTERS, "update mac filters") \
_(5, UPDATE_VLAN_FILTERS, "update vlan filters") \
_(6, UPDATE_RSSIDT, "update rss idt") \
_(7, UPDATE_IML, "update iml") \
_(8, UPDATE_PMCFG, "update pm cfg") \
_(9, UPDATE_FEATURE, "update feature") \
_(10, STOP_EMULATION, "stop emulation") \
_(11, LOAD_PLUGIN, "load plugin") \
_(12, ACTIVATE_VF, "activate vf") \
_(13, RESERVED3, "reserved 3") \
_(14, RESERVED4, "reservced 4") \
_(15, REGISTER_MEMREGS, "register mem regs")

Definition at line 133 of file vmxnet3.h.

#define foreach_vmxnet3_show_entry
Value:
_(RX_COMP, "rx comp") \
_(RX_DESC0, "rx desc 0") \
_(RX_DESC1, "rx desc 1") \
_(TX_COMP, "tx comp") \
_(TX_DESC, "tx desc")

Definition at line 46 of file vmxnet3.h.

#define foreach_vmxnet3_tx_func_error
Value:
_(ERROR_PACKETS, "error packets") \
_(LINK_DOWN, "link down") \
_(NO_FREE_SLOTS, "no free tx slots")

Definition at line 19 of file vmxnet3.h.

#define VMXNET3_FCS_LEN   4

Definition at line 79 of file vmxnet3.h.

#define VMXNET3_GOS_BITS_32   (1 << 0)

Definition at line 109 of file vmxnet3.h.

#define VMXNET3_GOS_BITS_64   (2 << 0)

Definition at line 110 of file vmxnet3.h.

#define VMXNET3_GOS_TYPE_LINUX   (1 << 2)

Definition at line 111 of file vmxnet3.h.

#define VMXNET3_IC_DISABLE_ALL   0x1

Definition at line 107 of file vmxnet3.h.

#define VMXNET3_INPUT_REFILL_THRESHOLD   32

Definition at line 96 of file vmxnet3.h.

#define vmxnet3_log_debug (   dev,
  f,
  ... 
)
Value:
vlib_log (VLIB_LOG_LEVEL_DEBUG, vmxnet3_main.log_default, "%U: " f, \
format_vlib_pci_addr, vlib_pci_get_addr(dev->pci_dev_handle), \
## __VA_ARGS__)
format_function_t format_vlib_pci_addr
Definition: pci.h:288
vmxnet3_main_t vmxnet3_main
Definition: vmxnet3.c:28
vlib_pci_addr_t * vlib_pci_get_addr(vlib_pci_dev_handle_t h)
Definition: pci.c:148
vlib_log_class_t log_default
Definition: vmxnet3.h:499
void vlib_log(vlib_log_level_t level, vlib_log_class_t class, char *fmt,...)
Definition: log.c:138

Definition at line 535 of file vmxnet3.h.

#define vmxnet3_log_error (   dev,
  f,
  ... 
)
Value:
vlib_log (VLIB_LOG_LEVEL_ERR, vmxnet3_main.log_default, "%U: " f, \
format_vlib_pci_addr, vlib_pci_get_addr(dev->pci_dev_handle), \
## __VA_ARGS__)
format_function_t format_vlib_pci_addr
Definition: pci.h:288
vmxnet3_main_t vmxnet3_main
Definition: vmxnet3.c:28
vlib_pci_addr_t * vlib_pci_get_addr(vlib_pci_dev_handle_t h)
Definition: pci.c:148
vlib_log_class_t log_default
Definition: vmxnet3.h:499
void vlib_log(vlib_log_level_t level, vlib_log_class_t class, char *fmt,...)
Definition: log.c:138

Definition at line 540 of file vmxnet3.h.

#define VMXNET3_MAX_INTRS   25

Definition at line 106 of file vmxnet3.h.

#define VMXNET3_MTU   (1514 + VMXNET3_VLAN_LEN + VMXNET3_FCS_LEN)

Definition at line 80 of file vmxnet3.h.

#define VMXNET3_NUM_RX_COMP   VMXNET3_NUM_RX_DESC

Definition at line 100 of file vmxnet3.h.

#define VMXNET3_NUM_RX_DESC   1024

Definition at line 99 of file vmxnet3.h.

#define VMXNET3_NUM_TX_COMP   VMXNET3_NUM_TX_DESC

Definition at line 98 of file vmxnet3.h.

#define VMXNET3_NUM_TX_DESC   1024

Definition at line 97 of file vmxnet3.h.

#define VMXNET3_REG_CMD   0x0020 /* Command */

Definition at line 72 of file vmxnet3.h.

#define VMXNET3_REG_DSAH   0x0018 /* Driver Shared Address High */

Definition at line 71 of file vmxnet3.h.

#define VMXNET3_REG_DSAL   0x0010 /* Driver Shared Address Low */

Definition at line 70 of file vmxnet3.h.

#define VMXNET3_REG_ECR   0x0040 /* Event Cause Register */

Definition at line 76 of file vmxnet3.h.

#define VMXNET3_REG_ICR   0x0038 /* Interrupt Cause Register */

Definition at line 75 of file vmxnet3.h.

#define VMXNET3_REG_IMR   0x0000 /* Interrupt Mask Register */

Definition at line 61 of file vmxnet3.h.

#define VMXNET3_REG_MACH   0x0030 /* MAC Address High */

Definition at line 74 of file vmxnet3.h.

#define VMXNET3_REG_MACL   0x0028 /* MAC Address Low */

Definition at line 73 of file vmxnet3.h.

#define VMXNET3_REG_RXPROD   0x0800 /* Rx Producer Index for ring 1 */

Definition at line 63 of file vmxnet3.h.

#define VMXNET3_REG_RXPROD2   0x0A00 /* Rx Producer Index for ring 2 */

Definition at line 64 of file vmxnet3.h.

#define VMXNET3_REG_TXPROD   0x0600 /* Tx Producer Index */

Definition at line 62 of file vmxnet3.h.

#define VMXNET3_REG_UVRS   0x0008 /* UPT Version Report Selection */

Definition at line 69 of file vmxnet3.h.

#define VMXNET3_REG_VRRS   0x0000 /* VMXNET3 Revision Report Selection */

Definition at line 68 of file vmxnet3.h.

#define VMXNET3_RX_RING_SIZE   2

Definition at line 95 of file vmxnet3.h.

#define VMXNET3_RXC_INDEX   (0xFFF) /* rx completion index mask */

Definition at line 87 of file vmxnet3.h.

#define VMXNET3_RXCF_GEN   (1 << 31) /* rx completion generation */

Definition at line 86 of file vmxnet3.h.

#define VMXNET3_RXCF_IP4   (1 << 21) /* rx ip4 packet */

Definition at line 85 of file vmxnet3.h.

#define VMXNET3_RXCF_IP6   (1 << 20) /* rx ip6 packet */

Definition at line 84 of file vmxnet3.h.

#define VMXNET3_RXCI_EOP   (1 << 14)

Definition at line 114 of file vmxnet3.h.

#define VMXNET3_RXCI_SOP   (1 << 15)

Definition at line 115 of file vmxnet3.h.

#define VMXNET3_RXCL_ERROR   (1 << 14)

Definition at line 113 of file vmxnet3.h.

#define VMXNET3_RXCL_LEN_MASK   (0x3FFF)

Definition at line 112 of file vmxnet3.h.

#define VMXNET3_RXF_BTYPE   (1 << 14) /* rx body buffer type */

Definition at line 82 of file vmxnet3.h.

#define VMXNET3_RXF_GEN   (1 << 31) /* rx generation */

Definition at line 83 of file vmxnet3.h.

#define VMXNET3_SHARED_MAGIC   0xbabefee1

Definition at line 103 of file vmxnet3.h.

#define VMXNET3_TXC_INDEX   (0xFFF) /* tx completion index mask */

Definition at line 93 of file vmxnet3.h.

#define VMXNET3_TXCF_GEN   (1 << 31) /* tx completion generation */

Definition at line 92 of file vmxnet3.h.

#define VMXNET3_TXF_CQ   (1 << 13) /* tx completion request */

Definition at line 91 of file vmxnet3.h.

#define VMXNET3_TXF_EOP   (1 << 12) /* tx end of packet */

Definition at line 90 of file vmxnet3.h.

#define VMXNET3_TXF_GEN   (1 << 14) /* tx generation */

Definition at line 89 of file vmxnet3.h.

#define VMXNET3_UPT_VERSION_SELECT   1

Definition at line 105 of file vmxnet3.h.

#define VMXNET3_VERSION_MAGIC   0x69505845

Definition at line 102 of file vmxnet3.h.

#define VMXNET3_VERSION_SELECT   1

Definition at line 104 of file vmxnet3.h.

#define VMXNET3_VLAN_LEN   4

Definition at line 78 of file vmxnet3.h.

Enumeration Type Documentation

anonymous enum
Enumerator
foreach_vmxnet3_rxmode_flags 

Definition at line 39 of file vmxnet3.h.

anonymous enum
Enumerator
foreach_vmxnet3_show_entry 

Definition at line 53 of file vmxnet3.h.

anonymous enum
Enumerator
foreach_vmxnet3_device_flags 

Definition at line 126 of file vmxnet3.h.

anonymous enum
Enumerator
foreach_vmxnet3_set_cmds 

Definition at line 151 of file vmxnet3.h.

anonymous enum
Enumerator
foreach_vmxnet3_get_cmds 

Definition at line 172 of file vmxnet3.h.

Enumerator
VMXNET3_TX_N_ERROR 

Definition at line 24 of file vmxnet3.h.

Function Documentation

typedef CLIB_PACKED ( struct{u32 version;u32 guest_info;u32 version_support;u32 upt_version_support;u64 upt_features;u64 driver_data_address;u64 queue_desc_address;u32 driver_data_len;u32 queue_desc_len;u32 mtu;u16 max_num_rx_sg;u8 num_tx_queues;u8 num_rx_queues;u32 pad[4];}  )
typedef CLIB_PACKED ( struct{u8 mask_mode;u8 num_intrs;u8 event_intr_index;u8 moderation_level[VMXNET3_MAX_INTRS];u32 control;u32 pad[2];}  )
typedef CLIB_PACKED ( struct{u32 mode;u16 multicast_len;u16 pad;u64 multicast_address;u8 vlan_filter[512];}  )
typedef CLIB_PACKED ( struct{u32 version;u32 length;u64 address;}  )
typedef CLIB_PACKED ( struct{u32 magic;u32 pad;vmxnet3_misc_config misc;vmxnet3_interrupt_config interrupt;vmxnet3_rx_filter_config rx_filter;vmxnet3_variable_config rss;vmxnet3_variable_config pattern;vmxnet3_variable_config plugin;u32 ecr;u32 pad1[5];}  )
typedef CLIB_PACKED ( struct{u8 stopped;u8 pad[3];u32 error;}  )
typedef CLIB_PACKED ( struct{u32 num_deferred;u32 threshold;u64 pad;}  )
typedef CLIB_PACKED ( struct{u64 desc_address;u64 data_address;u64 comp_address;u64 driver_data_address;u64 pad;u32 num_desc;u32 num_data;u32 num_comp;u32 driver_data_len;u8 intr_index;u8 pad1[7];}  )
typedef CLIB_PACKED ( struct{u64 tso_pkts;u64 tso_bytes;u64 ucast_pkts;u64 ucast_bytes;u64 mcast_pkts;u64 mcast_bytes;u64 bcast_pkts;u64 bcast_bytes;u64 error_pkts;u64 discard_pkts;}  )
typedef CLIB_PACKED ( struct{vmxnet3_tx_queue_control ctrl;vmxnet3_tx_queue_config cfg;vmxnet3_queue_status status;vmxnet3_tx_stats stats;u8 pad[88];}  )
typedef CLIB_PACKED ( struct{u8 update_prod;u8 pad[7];u64 pad1;}  )
typedef CLIB_PACKED ( struct{u64 desc_address[2];u64 comp_address;u64 driver_data_address;u64 pad;u32 num_desc[2];u32 num_comp;u32 driver_data_len;u8 intr_index;u8 pad1[7];}  )
typedef CLIB_PACKED ( struct{u64 lro_pkts;u64 lro_bytes;u64 ucast_pkts;u64 ucast_bytes;u64 mcast_pkts;u64 mcast_bytes;u64 bcast_pkts;u64 bcast_bytes;u64 nobuf_pkts;u64 error_pkts;}  )
typedef CLIB_PACKED ( struct{vmxnet3_rx_queue_control ctrl;vmxnet3_rx_queue_config cfg;vmxnet3_queue_status status;vmxnet3_rx_stats stats;u8 pad[88];}  )
typedef CLIB_PACKED ( struct{vmxnet3_tx_queue tx;vmxnet3_rx_queue rx;}  )
typedef CLIB_PACKED ( struct{u64 address;u32 flags;u32 pad;}  )
typedef CLIB_PACKED ( struct{u32 index;u32 rss;u32 len;u32 flags;}  )
typedef CLIB_PACKED ( struct{u32 index;u32 pad[2];u32 flags;}  )
typedef CLIB_PACKED ( struct{u64 address;u32 flags[2];}  )
typedef CLIB_PACKED ( struct{vmxnet3_queues queues;vmxnet3_shared shared;}  )
void vmxnet3_create_if ( vlib_main_t vm,
vmxnet3_create_if_args_t args 
)

Definition at line 479 of file vmxnet3.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vmxnet3_delete_if ( vlib_main_t vm,
vmxnet3_device_t ad 
)

Definition at line 636 of file vmxnet3.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static_always_inline uword vmxnet3_dma_addr ( vlib_main_t vm,
vmxnet3_device_t vd,
void *  p 
)

Definition at line 571 of file vmxnet3.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* vmxnet3_plugin_api_hookup ( vlib_main_t vm)

Definition at line 215 of file vmxnet3_api.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static_always_inline u32 vmxnet3_reg_read ( vmxnet3_device_t vd,
u8  bar,
u32  addr 
)

Definition at line 560 of file vmxnet3.h.

+ Here is the caller graph for this function:

static_always_inline void vmxnet3_reg_write ( vmxnet3_device_t vd,
u8  bar,
u32  addr,
u32  val 
)

Definition at line 553 of file vmxnet3.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static_always_inline void vmxnet3_reg_write_inline ( vmxnet3_device_t vd,
u8  bar,
u32  addr,
u32  val 
)

Definition at line 547 of file vmxnet3.h.

+ Here is the caller graph for this function:

static_always_inline void vmxnet3_rx_ring_advance_produce ( vmxnet3_rxq_t rxq,
vmxnet3_rx_ring ring 
)

Definition at line 580 of file vmxnet3.h.

+ Here is the caller graph for this function:

static_always_inline clib_error_t* vmxnet3_rxq_refill_ring0 ( vlib_main_t vm,
vmxnet3_device_t vd,
vmxnet3_rxq_t rxq 
)

Definition at line 591 of file vmxnet3.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static_always_inline clib_error_t* vmxnet3_rxq_refill_ring1 ( vlib_main_t vm,
vmxnet3_device_t vd,
vmxnet3_rxq_t rxq 
)

Definition at line 633 of file vmxnet3.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

format_function_t format_vmxnet3_device

Definition at line 531 of file vmxnet3.h.

format_function_t format_vmxnet3_device_name

Definition at line 532 of file vmxnet3.h.

format_function_t format_vmxnet3_input_trace

Definition at line 533 of file vmxnet3.h.

vnet_device_class_t vmxnet3_device_class
vlib_node_registration_t vmxnet3_input_node

(constructor) VLIB_REGISTER_NODE (vmxnet3_input_node)

Definition at line 369 of file input.c.

vmxnet3_main_t vmxnet3_main

Definition at line 28 of file vmxnet3.c.