FD.io VPP  v18.04-17-g3a0d853
Vector Packet Processing
device.c File Reference
+ Include dependency graph for device.c:

Go to the source code of this file.

Data Structures

struct  virtchnl_promisc_info_t
 

Macros

#define AVF_MBOX_LEN   64
 
#define AVF_MBOX_BUF_SZ   512
 
#define AVF_RXQ_SZ   512
 
#define AVF_TXQ_SZ   512
 
#define AVF_ITR_INT   8160
 
#define PCI_VENDOR_ID_INTEL   0x8086
 
#define PCI_DEVICE_ID_INTEL_AVF   0x1889
 
#define PCI_DEVICE_ID_INTEL_X710_VF   0x154c
 
#define PCI_DEVICE_ID_INTEL_X722_VF   0x37cd
 
#define avf_log_debug(fmt, ...)
 

Functions

static void avf_irq_0_disable (avf_device_t *ad)
 
static void avf_irq_0_enable (avf_device_t *ad)
 
static void avf_irq_n_disable (avf_device_t *ad, u8 line)
 
static void avf_irq_n_enable (avf_device_t *ad, u8 line)
 
clib_error_tavf_aq_desc_enq (vlib_main_t *vm, avf_device_t *ad, avf_aq_desc_t *dt, void *data, int len)
 
clib_error_tavf_cmd_rx_ctl_reg_write (vlib_main_t *vm, avf_device_t *ad, u32 reg, u32 val)
 
clib_error_tavf_rxq_init (vlib_main_t *vm, avf_device_t *ad, u16 qid)
 
clib_error_tavf_txq_init (vlib_main_t *vm, avf_device_t *ad, u16 qid)
 
void avf_arq_slot_init (avf_device_t *ad, u16 slot)
 
static uword avf_dma_addr (vlib_main_t *vm, avf_device_t *ad, void *p)
 
static void avf_adminq_init (vlib_main_t *vm, avf_device_t *ad)
 
clib_error_tavf_send_to_pf (vlib_main_t *vm, avf_device_t *ad, virtchnl_ops_t op, void *in, int in_len, void *out, int out_len)
 
clib_error_tavf_op_version (vlib_main_t *vm, avf_device_t *ad, virtchnl_version_info_t *ver)
 
clib_error_tavf_op_get_vf_resources (vlib_main_t *vm, avf_device_t *ad, virtchnl_vf_resource_t *res)
 
clib_error_tavf_op_disable_vlan_stripping (vlib_main_t *vm, avf_device_t *ad)
 
clib_error_tavf_config_promisc_mode (vlib_main_t *vm, avf_device_t *ad)
 
clib_error_tavf_op_config_vsi_queues (vlib_main_t *vm, avf_device_t *ad)
 
clib_error_tavf_op_config_irq_map (vlib_main_t *vm, avf_device_t *ad)
 
clib_error_tavf_op_add_eth_addr (vlib_main_t *vm, avf_device_t *ad, u8 count, u8 *macs)
 
clib_error_tavf_op_enable_queues (vlib_main_t *vm, avf_device_t *ad, u32 rx, u32 tx)
 
clib_error_tavf_op_get_stats (vlib_main_t *vm, avf_device_t *ad, virtchnl_eth_stats_t *es)
 
clib_error_tavf_device_reset (vlib_main_t *vm, avf_device_t *ad)
 
clib_error_tavf_device_init (vlib_main_t *vm, avf_device_t *ad)
 
void avf_process_one_device (vlib_main_t *vm, avf_device_t *ad, int is_irq)
 
static u32 avf_flag_change (vnet_main_t *vnm, vnet_hw_interface_t *hw, u32 flags)
 
static uword avf_process (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
static void avf_irq_0_handler (vlib_pci_dev_handle_t h, u16 line)
 
static void avf_irq_n_handler (vlib_pci_dev_handle_t h, u16 line)
 
void avf_delete_if (vlib_main_t *vm, avf_device_t *ad)
 
void avf_create_if (vlib_main_t *vm, avf_create_if_args_t *args)
 
static clib_error_tavf_interface_admin_up_down (vnet_main_t *vnm, u32 hw_if_index, u32 flags)
 
 VNET_DEVICE_CLASS (avf_device_class,)
 
clib_error_tavf_init (vlib_main_t *vm)
 

Variables

avf_main_t avf_main
 
static pci_device_id_t avf_pci_device_ids []
 
static vlib_node_registration_t avf_process_node
 (constructor) VLIB_REGISTER_NODE (avf_process_node) More...
 

Macro Definition Documentation

#define AVF_ITR_INT   8160

Definition at line 29 of file device.c.

#define avf_log_debug (   fmt,
  ... 
)

Definition at line 45 of file device.c.

#define AVF_MBOX_BUF_SZ   512

Definition at line 26 of file device.c.

#define AVF_MBOX_LEN   64

Definition at line 25 of file device.c.

#define AVF_RXQ_SZ   512

Definition at line 27 of file device.c.

#define AVF_TXQ_SZ   512

Definition at line 28 of file device.c.

#define PCI_DEVICE_ID_INTEL_AVF   0x1889

Definition at line 32 of file device.c.

#define PCI_DEVICE_ID_INTEL_X710_VF   0x154c

Definition at line 33 of file device.c.

#define PCI_DEVICE_ID_INTEL_X722_VF   0x37cd

Definition at line 34 of file device.c.

#define PCI_VENDOR_ID_INTEL   0x8086

Definition at line 31 of file device.c.

Function Documentation

static void avf_adminq_init ( vlib_main_t vm,
avf_device_t ad 
)
static

Definition at line 315 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* avf_aq_desc_enq ( vlib_main_t vm,
avf_device_t ad,
avf_aq_desc_t dt,
void *  data,
int  len 
)

Definition at line 102 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void avf_arq_slot_init ( avf_device_t ad,
u16  slot 
)

Definition at line 293 of file device.c.

+ Here is the caller graph for this function:

clib_error_t* avf_cmd_rx_ctl_reg_write ( vlib_main_t vm,
avf_device_t ad,
u32  reg,
u32  val 
)

Definition at line 186 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* avf_config_promisc_mode ( vlib_main_t vm,
avf_device_t ad 
)

Definition at line 504 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void avf_create_if ( vlib_main_t vm,
avf_create_if_args_t args 
)

Definition at line 1052 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void avf_delete_if ( vlib_main_t vm,
avf_device_t ad 
)

Definition at line 997 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* avf_device_init ( vlib_main_t vm,
avf_device_t ad 
)

Definition at line 652 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* avf_device_reset ( vlib_main_t vm,
avf_device_t ad 
)

Definition at line 626 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword avf_dma_addr ( vlib_main_t vm,
avf_device_t ad,
void *  p 
)
inlinestatic

Definition at line 306 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 862 of file device.c.

+ Here is the caller graph for this function:

clib_error_t* avf_init ( vlib_main_t vm)

Definition at line 1195 of file device.c.

+ Here is the call graph for this function:

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

Definition at line 1158 of file device.c.

+ Here is the call graph for this function:

static void avf_irq_0_disable ( avf_device_t ad)
inlinestatic

Definition at line 48 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void avf_irq_0_enable ( avf_device_t ad)
inlinestatic

Definition at line 60 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void avf_irq_0_handler ( vlib_pci_dev_handle_t  h,
u16  line 
)
static

Definition at line 927 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void avf_irq_n_disable ( avf_device_t ad,
u8  line 
)
inlinestatic

Definition at line 78 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void avf_irq_n_enable ( avf_device_t ad,
u8  line 
)
inlinestatic

Definition at line 87 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void avf_irq_n_handler ( vlib_pci_dev_handle_t  h,
u16  line 
)
static

Definition at line 966 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* avf_op_add_eth_addr ( vlib_main_t vm,
avf_device_t ad,
u8  count,
u8 macs 
)

Definition at line 582 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* avf_op_config_irq_map ( vlib_main_t vm,
avf_device_t ad 
)

Definition at line 562 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* avf_op_config_vsi_queues ( vlib_main_t vm,
avf_device_t ad 
)

Definition at line 516 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* avf_op_disable_vlan_stripping ( vlib_main_t vm,
avf_device_t ad 
)

Definition at line 497 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* avf_op_enable_queues ( vlib_main_t vm,
avf_device_t ad,
u32  rx,
u32  tx 
)

Definition at line 602 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* avf_op_get_stats ( vlib_main_t vm,
avf_device_t ad,
virtchnl_eth_stats_t es 
)

Definition at line 615 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* avf_op_get_vf_resources ( vlib_main_t vm,
avf_device_t ad,
virtchnl_vf_resource_t res 
)

Definition at line 479 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* avf_op_version ( vlib_main_t vm,
avf_device_t ad,
virtchnl_version_info_t ver 
)

Definition at line 459 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword avf_process ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_frame_t f 
)
static

Definition at line 869 of file device.c.

+ Here is the call graph for this function:

void avf_process_one_device ( vlib_main_t vm,
avf_device_t ad,
int  is_irq 
)

Definition at line 745 of file device.c.

+ Here is the call graph for this function:

clib_error_t* avf_rxq_init ( vlib_main_t vm,
avf_device_t ad,
u16  qid 
)

Definition at line 217 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* avf_send_to_pf ( vlib_main_t vm,
avf_device_t ad,
virtchnl_ops_t  op,
void *  in,
int  in_len,
void *  out,
int  out_len 
)

Definition at line 352 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* avf_txq_init ( vlib_main_t vm,
avf_device_t ad,
u16  qid 
)

Definition at line 258 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

VNET_DEVICE_CLASS ( avf_device_class  )

Variable Documentation

avf_main_t avf_main

Definition at line 36 of file device.c.

pci_device_id_t avf_pci_device_ids[]
static
Initial value:
= {
{.vendor_id = PCI_VENDOR_ID_INTEL,.device_id = PCI_DEVICE_ID_INTEL_AVF},
{.vendor_id = PCI_VENDOR_ID_INTEL,.device_id = PCI_DEVICE_ID_INTEL_X710_VF},
{0},
}
#define PCI_DEVICE_ID_INTEL_AVF
Definition: device.c:32
#define PCI_DEVICE_ID_INTEL_X710_VF
Definition: device.c:33
#define PCI_VENDOR_ID_INTEL
Definition: device.c:31

Definition at line 38 of file device.c.

vlib_node_registration_t avf_process_node
static
Initial value:
= {
.function = avf_process,
.name = "avf-process",
}
static uword avf_process(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: device.c:869

(constructor) VLIB_REGISTER_NODE (avf_process_node)

Definition at line 919 of file device.c.