FD.io VPP  v20.09-64-g4f7b92f0a
Vector Packet Processing
vmxnet3.c File Reference
+ Include dependency graph for vmxnet3.c:

Go to the source code of this file.

Macros

#define PCI_VENDOR_ID_VMWARE   0x15ad
 
#define PCI_DEVICE_ID_VMWARE_VMXNET3   0x07b0
 

Functions

static clib_error_tvmxnet3_interface_admin_up_down (vnet_main_t *vnm, u32 hw_if_index, u32 flags)
 
static clib_error_tvmxnet3_interface_rx_mode_change (vnet_main_t *vnm, u32 hw_if_index, u32 qid, vnet_hw_interface_rx_mode mode)
 
static void vmxnet3_set_interface_next_node (vnet_main_t *vnm, u32 hw_if_index, u32 node_index)
 
static void vmxnet3_clear_hw_interface_counters (u32 instance)
 
 VNET_DEVICE_CLASS (vmxnet3_device_class,)
 
static u32 vmxnet3_flag_change (vnet_main_t *vnm, vnet_hw_interface_t *hw, u32 flags)
 
static void vmxnet3_write_mac (vmxnet3_device_t *vd)
 
static clib_error_tvmxnet3_provision_driver_shared (vlib_main_t *vm, vmxnet3_device_t *vd)
 
static void vmxnet3_enable_interrupt (vmxnet3_device_t *vd)
 
static void vmxnet3_disable_interrupt (vmxnet3_device_t *vd)
 
static clib_error_tvmxnet3_rxq_init (vlib_main_t *vm, vmxnet3_device_t *vd, u16 qid, u16 qsz)
 
static clib_error_tvmxnet3_txq_init (vlib_main_t *vm, vmxnet3_device_t *vd, u16 qid, u16 qsz)
 
static clib_error_tvmxnet3_rss_init (vlib_main_t *vm, vmxnet3_device_t *vd)
 
static clib_error_tvmxnet3_device_init (vlib_main_t *vm, vmxnet3_device_t *vd, vmxnet3_create_if_args_t *args)
 
static void vmxnet3_rxq_irq_handler (vlib_main_t *vm, vlib_pci_dev_handle_t h, u16 line)
 
static void vmxnet3_event_irq_handler (vlib_main_t *vm, vlib_pci_dev_handle_t h, u16 line)
 
static u8 vmxnet3_queue_size_valid (u16 qsz)
 
static u8 vmxnet3_tx_queue_num_valid (u16 num)
 
static u8 vmxnet3_rx_queue_num_valid (u16 num)
 
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 *vd)
 

Variables

vmxnet3_main_t vmxnet3_main
 
static pci_device_id_t vmxnet3_pci_device_ids []
 
static char * vmxnet3_tx_func_error_strings []
 
static const u8 vmxnet3_rss_key [VMXNET3_RSS_MAX_KEY_SZ]
 

Macro Definition Documentation

◆ PCI_DEVICE_ID_VMWARE_VMXNET3

#define PCI_DEVICE_ID_VMWARE_VMXNET3   0x07b0

Definition at line 26 of file vmxnet3.c.

◆ PCI_VENDOR_ID_VMWARE

#define PCI_VENDOR_ID_VMWARE   0x15ad

Definition at line 25 of file vmxnet3.c.

Function Documentation

◆ vmxnet3_clear_hw_interface_counters()

static void vmxnet3_clear_hw_interface_counters ( u32  instance)
static

Definition at line 101 of file vmxnet3.c.

+ Here is the call graph for this function:

◆ vmxnet3_create_if()

void vmxnet3_create_if ( vlib_main_t vm,
vmxnet3_create_if_args_t args 
)

Definition at line 605 of file vmxnet3.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vmxnet3_delete_if()

void vmxnet3_delete_if ( vlib_main_t vm,
vmxnet3_device_t vd 
)

Definition at line 853 of file vmxnet3.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vmxnet3_device_init()

static clib_error_t* vmxnet3_device_init ( vlib_main_t vm,
vmxnet3_device_t vd,
vmxnet3_create_if_args_t args 
)
static

Definition at line 405 of file vmxnet3.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vmxnet3_disable_interrupt()

static void vmxnet3_disable_interrupt ( vmxnet3_device_t vd)
inlinestatic

Definition at line 265 of file vmxnet3.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vmxnet3_enable_interrupt()

static void vmxnet3_enable_interrupt ( vmxnet3_device_t vd)
inlinestatic

Definition at line 254 of file vmxnet3.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vmxnet3_event_irq_handler()

static void vmxnet3_event_irq_handler ( vlib_main_t vm,
vlib_pci_dev_handle_t  h,
u16  line 
)
static

Definition at line 549 of file vmxnet3.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vmxnet3_flag_change()

static u32 vmxnet3_flag_change ( vnet_main_t vnm,
vnet_hw_interface_t hw,
u32  flags 
)
static

Definition at line 151 of file vmxnet3.c.

+ Here is the caller graph for this function:

◆ vmxnet3_interface_admin_up_down()

static clib_error_t* vmxnet3_interface_admin_up_down ( vnet_main_t vnm,
u32  hw_if_index,
u32  flags 
)
static

Definition at line 38 of file vmxnet3.c.

+ Here is the call graph for this function:

◆ vmxnet3_interface_rx_mode_change()

static clib_error_t* vmxnet3_interface_rx_mode_change ( vnet_main_t vnm,
u32  hw_if_index,
u32  qid,
vnet_hw_interface_rx_mode  mode 
)
static

Definition at line 64 of file vmxnet3.c.

+ Here is the call graph for this function:

◆ vmxnet3_provision_driver_shared()

static clib_error_t* vmxnet3_provision_driver_shared ( vlib_main_t vm,
vmxnet3_device_t vd 
)
static

Definition at line 170 of file vmxnet3.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vmxnet3_queue_size_valid()

static u8 vmxnet3_queue_size_valid ( u16  qsz)
static

Definition at line 577 of file vmxnet3.c.

+ Here is the caller graph for this function:

◆ vmxnet3_rss_init()

static clib_error_t* vmxnet3_rss_init ( vlib_main_t vm,
vmxnet3_device_t vd 
)
static

Definition at line 379 of file vmxnet3.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vmxnet3_rx_queue_num_valid()

static u8 vmxnet3_rx_queue_num_valid ( u16  num)
static

Definition at line 597 of file vmxnet3.c.

+ Here is the caller graph for this function:

◆ vmxnet3_rxq_init()

static clib_error_t* vmxnet3_rxq_init ( vlib_main_t vm,
vmxnet3_device_t vd,
u16  qid,
u16  qsz 
)
static

Definition at line 276 of file vmxnet3.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vmxnet3_rxq_irq_handler()

static void vmxnet3_rxq_irq_handler ( vlib_main_t vm,
vlib_pci_dev_handle_t  h,
u16  line 
)
static

Definition at line 536 of file vmxnet3.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vmxnet3_set_interface_next_node()

static void vmxnet3_set_interface_next_node ( vnet_main_t vnm,
u32  hw_if_index,
u32  node_index 
)
static

Definition at line 81 of file vmxnet3.c.

+ Here is the call graph for this function:

◆ vmxnet3_tx_queue_num_valid()

static u8 vmxnet3_tx_queue_num_valid ( u16  num)
static

Definition at line 587 of file vmxnet3.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vmxnet3_txq_init()

static clib_error_t* vmxnet3_txq_init ( vlib_main_t vm,
vmxnet3_device_t vd,
u16  qid,
u16  qsz 
)
static

Definition at line 322 of file vmxnet3.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vmxnet3_write_mac()

static void vmxnet3_write_mac ( vmxnet3_device_t vd)
static

Definition at line 157 of file vmxnet3.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ VNET_DEVICE_CLASS()

VNET_DEVICE_CLASS ( vmxnet3_device_class  )

Variable Documentation

◆ vmxnet3_main

vmxnet3_main_t vmxnet3_main

Definition at line 28 of file vmxnet3.c.

◆ vmxnet3_pci_device_ids

pci_device_id_t vmxnet3_pci_device_ids[]
static
Initial value:
= {
{
.vendor_id = PCI_VENDOR_ID_VMWARE,
{0},
}
#define PCI_VENDOR_ID_VMWARE
Definition: vmxnet3.c:25
#define PCI_DEVICE_ID_VMWARE_VMXNET3
Definition: vmxnet3.c:26

Definition at line 30 of file vmxnet3.c.

◆ vmxnet3_rss_key

const u8 vmxnet3_rss_key[VMXNET3_RSS_MAX_KEY_SZ]
static
Initial value:
= {
0x3b, 0x56, 0xd1, 0x56, 0x13, 0x4a, 0xe7, 0xac,
0xe8, 0x79, 0x09, 0x75, 0xe8, 0x65, 0x79, 0x28,
0x35, 0x12, 0xb9, 0x56, 0x7c, 0x76, 0x4b, 0x70,
0xd8, 0x56, 0xa3, 0x18, 0x9b, 0x0a, 0xee, 0xf3,
0x96, 0xa6, 0x9f, 0x8f, 0x9e, 0x8c, 0x90, 0xc9,
}

Definition at line 370 of file vmxnet3.c.

◆ vmxnet3_tx_func_error_strings

char* vmxnet3_tx_func_error_strings[]
static
Initial value:
= {
#define _(n,s)
}
#define foreach_vmxnet3_tx_func_error
Definition: vmxnet3.h:19

Definition at line 129 of file vmxnet3.c.