FD.io VPP  v21.06-3-gbb25fbf28
Vector Packet Processing
ixge.c File Reference
+ Include dependency graph for ixge.c:

Go to the source code of this file.

Data Structures

struct  ixge_rx_dma_trace_t
 
struct  ixge_tx_dma_trace_t
 
struct  ixge_tx_state_t
 

Macros

#define IXGE_ALWAYS_POLL   0
 
#define EVENT_SET_FLAGS   0
 
#define IXGE_HWBP_RACE_ELOG   0
 
#define PCI_VENDOR_ID_INTEL   0x8086
 
#define XGE_PHY_DEV_TYPE_PMA_PMD   1
 
#define XGE_PHY_DEV_TYPE_PHY_XS   4
 
#define XGE_PHY_ID1   0x2
 
#define XGE_PHY_ID2   0x3
 
#define XGE_PHY_CONTROL   0x0
 
#define XGE_PHY_CONTROL_RESET   (1 << 15)
 
#define foreach_ixge_error
 
#define IXGE_COUNTER_IS_64_BIT   (1 << 0)
 
#define IXGE_COUNTER_NOT_CLEAR_ON_READ   (1 << 1)
 
#define IXGE_N_BYTES_IN_RX_BUFFER   (2048)
 

Typedefs

typedef unsigned long long u32x4
 

Enumerations

enum  ixge_error_t { IXGE_N_ERROR }
 

Functions

static void ixge_semaphore_get (ixge_device_t *xd)
 
static void ixge_semaphore_release (ixge_device_t *xd)
 
static void ixge_software_firmware_sync (ixge_device_t *xd, u32 sw_mask)
 
static void ixge_software_firmware_sync_release (ixge_device_t *xd, u32 sw_mask)
 
u32 ixge_read_write_phy_reg (ixge_device_t *xd, u32 dev_type, u32 reg_index, u32 v, u32 is_read)
 
static u32 ixge_read_phy_reg (ixge_device_t *xd, u32 dev_type, u32 reg_index)
 
static void ixge_write_phy_reg (ixge_device_t *xd, u32 dev_type, u32 reg_index, u32 v)
 
static void ixge_i2c_put_bits (i2c_bus_t *b, int scl, int sda)
 
static void ixge_i2c_get_bits (i2c_bus_t *b, int *scl, int *sda)
 
static u16 ixge_read_eeprom (ixge_device_t *xd, u32 address)
 
static void ixge_sfp_enable_disable_laser (ixge_device_t *xd, uword enable)
 
static void ixge_sfp_enable_disable_10g (ixge_device_t *xd, uword enable)
 
static clib_error_tixge_sfp_phy_init_from_eeprom (ixge_device_t *xd, u16 sfp_type)
 
static void ixge_sfp_device_up_down (ixge_device_t *xd, uword is_up)
 
static ixge_dma_regs_tget_dma_regs (ixge_device_t *xd, vlib_rx_or_tx_t rt, u32 qi)
 
static clib_error_tixge_interface_admin_up_down (vnet_main_t *vnm, u32 hw_if_index, u32 flags)
 
static void ixge_sfp_phy_init (ixge_device_t *xd)
 
static void ixge_phy_init (ixge_device_t *xd)
 
static u8format_ixge_rx_from_hw_descriptor (u8 *s, va_list *va)
 
static u8format_ixge_tx_descriptor (u8 *s, va_list *va)
 
static u8format_ixge_rx_dma_trace (u8 *s, va_list *va)
 
static void ixge_rx_next_and_error_from_status_x1 (ixge_device_t *xd, u32 s00, u32 s02, u8 *next0, u8 *error0, u32 *flags0)
 
static void ixge_rx_next_and_error_from_status_x2 (ixge_device_t *xd, u32 s00, u32 s02, u32 s10, u32 s12, u8 *next0, u8 *error0, u32 *flags0, u8 *next1, u8 *error1, u32 *flags1)
 
static void ixge_rx_trace (ixge_main_t *xm, ixge_device_t *xd, ixge_dma_queue_t *dq, ixge_descriptor_t *before_descriptors, u32 *before_buffers, ixge_descriptor_t *after_descriptors, uword n_descriptors)
 
static u8format_ixge_tx_dma_trace (u8 *s, va_list *va)
 
static void ixge_tx_trace (ixge_main_t *xm, ixge_device_t *xd, ixge_dma_queue_t *dq, ixge_tx_state_t *tx_state, ixge_tx_descriptor_t *descriptors, u32 *buffers, uword n_descriptors)
 
static uword ixge_ring_sub (ixge_dma_queue_t *q, u32 i0, u32 i1)
 
static uword ixge_ring_add (ixge_dma_queue_t *q, u32 i0, u32 i1)
 
static uword ixge_tx_descriptor_matches_template (ixge_main_t *xm, ixge_tx_descriptor_t *d)
 
static uword ixge_tx_no_wrap (ixge_main_t *xm, ixge_device_t *xd, ixge_dma_queue_t *dq, u32 *buffers, u32 start_descriptor_index, u32 n_descriptors, ixge_tx_state_t *tx_state)
 
static uword ixge_interface_tx (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *f)
 
static uword ixge_rx_queue_no_wrap (ixge_main_t *xm, ixge_device_t *xd, ixge_dma_queue_t *dq, u32 start_descriptor_index, u32 n_descriptors)
 
static uword ixge_rx_queue (ixge_main_t *xm, ixge_device_t *xd, vlib_node_runtime_t *node, u32 queue_index)
 
static void ixge_interrupt (ixge_main_t *xm, ixge_device_t *xd, u32 i)
 
static u32 clean_block (u32 *b, u32 *t, u32 n_left)
 
static void ixge_tx_queue (ixge_main_t *xm, ixge_device_t *xd, u32 queue_index)
 
static uword ixge_interrupt_is_rx_queue (uword i)
 
static uword ixge_interrupt_is_tx_queue (uword i)
 
static uword ixge_tx_queue_to_interrupt (uword i)
 
static uword ixge_rx_queue_to_interrupt (uword i)
 
static uword ixge_interrupt_rx_queue (uword i)
 
static uword ixge_interrupt_tx_queue (uword i)
 
static uword ixge_device_input (ixge_main_t *xm, ixge_device_t *xd, vlib_node_runtime_t *node)
 
static uword ixge_input (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *f)
 
static u8format_ixge_device_name (u8 *s, va_list *args)
 
static void ixge_update_counters (ixge_device_t *xd)
 
static u8format_ixge_device_id (u8 *s, va_list *args)
 
static u8format_ixge_link_status (u8 *s, va_list *args)
 
static u8format_ixge_device (u8 *s, va_list *args)
 
static void ixge_clear_hw_interface_counters (u32 instance)
 
static void ixge_set_interface_next_node (vnet_main_t *vnm, u32 hw_if_index, u32 node_index)
 
 VNET_DEVICE_CLASS (ixge_device_class)
 
static clib_error_tixge_dma_init (ixge_device_t *xd, vlib_rx_or_tx_t rt, u32 queue_index)
 
static u32 ixge_flag_change (vnet_main_t *vnm, vnet_hw_interface_t *hw, u32 flags)
 
static void ixge_device_init (ixge_main_t *xm)
 
static uword ixge_process (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
clib_error_tixge_init (vlib_main_t *vm)
 
static void ixge_pci_intr_handler (vlib_main_t *vm, vlib_pci_dev_handle_t h)
 
static clib_error_tixge_pci_init (vlib_main_t *vm, vlib_pci_dev_handle_t h)
 
 PCI_REGISTER_DEVICE (ixge_pci_device_registration, static)
 
void ixge_set_next_node (ixge_rx_next_t next, char *name)
 
 VLIB_PLUGIN_REGISTER ()
 

Variables

ixge_main_t ixge_main
 
static vlib_node_registration_t ixge_input_node
 (constructor) VLIB_REGISTER_NODE (ixge_input_node) More...
 
static vlib_node_registration_t ixge_process_node
 
static char * ixge_error_strings []
 
static u8 ixge_counter_flags []
 

Macro Definition Documentation

◆ EVENT_SET_FLAGS

#define EVENT_SET_FLAGS   0

Definition at line 42 of file ixge.c.

◆ foreach_ixge_error

#define foreach_ixge_error
Value:
_ (none, "no error") \
_ (tx_full_drops, "tx ring full drops") \
_ (ip4_checksum_error, "ip4 checksum errors") \
_ (rx_alloc_fail, "rx buf alloc from free list failed") \
_ (rx_alloc_no_physmem, "rx buf alloc failed no physmem")

Definition at line 616 of file ixge.c.

◆ IXGE_ALWAYS_POLL

#define IXGE_ALWAYS_POLL   0

Definition at line 40 of file ixge.c.

◆ IXGE_COUNTER_IS_64_BIT

#define IXGE_COUNTER_IS_64_BIT   (1 << 0)

Definition at line 2241 of file ixge.c.

◆ IXGE_COUNTER_NOT_CLEAR_ON_READ

#define IXGE_COUNTER_NOT_CLEAR_ON_READ   (1 << 1)

Definition at line 2242 of file ixge.c.

◆ IXGE_HWBP_RACE_ELOG

#define IXGE_HWBP_RACE_ELOG   0

Definition at line 43 of file ixge.c.

◆ IXGE_N_BYTES_IN_RX_BUFFER

#define IXGE_N_BYTES_IN_RX_BUFFER   (2048)

Definition at line 2446 of file ixge.c.

◆ PCI_VENDOR_ID_INTEL

#define PCI_VENDOR_ID_INTEL   0x8086

Definition at line 45 of file ixge.c.

◆ XGE_PHY_CONTROL

#define XGE_PHY_CONTROL   0x0

Definition at line 52 of file ixge.c.

◆ XGE_PHY_CONTROL_RESET

#define XGE_PHY_CONTROL_RESET   (1 << 15)

Definition at line 53 of file ixge.c.

◆ XGE_PHY_DEV_TYPE_PHY_XS

#define XGE_PHY_DEV_TYPE_PHY_XS   4

Definition at line 49 of file ixge.c.

◆ XGE_PHY_DEV_TYPE_PMA_PMD

#define XGE_PHY_DEV_TYPE_PMA_PMD   1

Definition at line 48 of file ixge.c.

◆ XGE_PHY_ID1

#define XGE_PHY_ID1   0x2

Definition at line 50 of file ixge.c.

◆ XGE_PHY_ID2

#define XGE_PHY_ID2   0x3

Definition at line 51 of file ixge.c.

Typedef Documentation

◆ u32x4

epu8_epi32 u32x4

Definition at line 28 of file ixge.c.

Enumeration Type Documentation

◆ ixge_error_t

Enumerator
IXGE_N_ERROR 

Definition at line 623 of file ixge.c.

Function Documentation

◆ clean_block()

static u32 clean_block ( u32 b,
u32 t,
u32  n_left 
)
inlinestatic

Definition at line 1938 of file ixge.c.

+ Here is the caller graph for this function:

◆ format_ixge_device()

static u8* format_ixge_device ( u8 s,
va_list *  args 
)
static

Definition at line 2321 of file ixge.c.

+ Here is the call graph for this function:

◆ format_ixge_device_id()

static u8* format_ixge_device_id ( u8 s,
va_list *  args 
)
static

Definition at line 2278 of file ixge.c.

+ Here is the caller graph for this function:

◆ format_ixge_device_name()

static u8* format_ixge_device_name ( u8 s,
va_list *  args 
)
static

Definition at line 2230 of file ixge.c.

+ Here is the call graph for this function:

◆ format_ixge_link_status()

static u8* format_ixge_link_status ( u8 s,
va_list *  args 
)
static

Definition at line 2299 of file ixge.c.

+ Here is the caller graph for this function:

◆ format_ixge_rx_dma_trace()

static u8* format_ixge_rx_dma_trace ( u8 s,
va_list *  va 
)
static

Definition at line 576 of file ixge.c.

+ Here is the call graph for this function:

◆ format_ixge_rx_from_hw_descriptor()

static u8* format_ixge_rx_from_hw_descriptor ( u8 s,
va_list *  va 
)
static

Definition at line 445 of file ixge.c.

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

◆ format_ixge_tx_descriptor()

static u8* format_ixge_tx_descriptor ( u8 s,
va_list *  va 
)
static

Definition at line 516 of file ixge.c.

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

◆ format_ixge_tx_dma_trace()

static u8* format_ixge_tx_dma_trace ( u8 s,
va_list *  va 
)
static

Definition at line 863 of file ixge.c.

+ Here is the call graph for this function:

◆ get_dma_regs()

static ixge_dma_regs_t* get_dma_regs ( ixge_device_t xd,
vlib_rx_or_tx_t  rt,
u32  qi 
)
inlinestatic

Definition at line 310 of file ixge.c.

+ Here is the caller graph for this function:

◆ ixge_clear_hw_interface_counters()

static void ixge_clear_hw_interface_counters ( u32  instance)
static

Definition at line 2401 of file ixge.c.

+ Here is the call graph for this function:

◆ ixge_device_init()

static void ixge_device_init ( ixge_main_t xm)
static

Definition at line 2604 of file ixge.c.

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

◆ ixge_device_input()

static uword ixge_device_input ( ixge_main_t xm,
ixge_device_t xd,
vlib_node_runtime_t node 
)
static

Definition at line 2126 of file ixge.c.

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

◆ ixge_dma_init()

static clib_error_t* ixge_dma_init ( ixge_device_t xd,
vlib_rx_or_tx_t  rt,
u32  queue_index 
)
static

Definition at line 2449 of file ixge.c.

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

◆ ixge_flag_change()

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

Definition at line 2581 of file ixge.c.

+ Here is the caller graph for this function:

◆ ixge_i2c_get_bits()

static void ixge_i2c_get_bits ( i2c_bus_t b,
int *  scl,
int *  sda 
)
static

Definition at line 184 of file ixge.c.

+ Here is the caller graph for this function:

◆ ixge_i2c_put_bits()

static void ixge_i2c_put_bits ( i2c_bus_t b,
int  scl,
int  sda 
)
static

Definition at line 171 of file ixge.c.

+ Here is the caller graph for this function:

◆ ixge_init()

clib_error_t* ixge_init ( vlib_main_t vm)

Definition at line 2776 of file ixge.c.

+ Here is the call graph for this function:

◆ ixge_input()

static uword ixge_input ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t f 
)
static

Definition at line 2154 of file ixge.c.

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

◆ ixge_interface_admin_up_down()

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

Definition at line 321 of file ixge.c.

+ Here is the call graph for this function:

◆ ixge_interface_tx()

static uword ixge_interface_tx ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t f 
)
static

Definition at line 1199 of file ixge.c.

+ Here is the call graph for this function:

◆ ixge_interrupt()

static void ixge_interrupt ( ixge_main_t xm,
ixge_device_t xd,
u32  i 
)
static

Definition at line 1878 of file ixge.c.

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

◆ ixge_interrupt_is_rx_queue()

static uword ixge_interrupt_is_rx_queue ( uword  i)
inlinestatic

Definition at line 2088 of file ixge.c.

+ Here is the caller graph for this function:

◆ ixge_interrupt_is_tx_queue()

static uword ixge_interrupt_is_tx_queue ( uword  i)
inlinestatic

Definition at line 2094 of file ixge.c.

+ Here is the caller graph for this function:

◆ ixge_interrupt_rx_queue()

static uword ixge_interrupt_rx_queue ( uword  i)
inlinestatic

Definition at line 2112 of file ixge.c.

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

◆ ixge_interrupt_tx_queue()

static uword ixge_interrupt_tx_queue ( uword  i)
inlinestatic

Definition at line 2119 of file ixge.c.

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

◆ ixge_pci_init()

static clib_error_t* ixge_pci_init ( vlib_main_t vm,
vlib_pci_dev_handle_t  h 
)
static

Definition at line 2824 of file ixge.c.

+ Here is the call graph for this function:

◆ ixge_pci_intr_handler()

static void ixge_pci_intr_handler ( vlib_main_t vm,
vlib_pci_dev_handle_t  h 
)
static

Definition at line 2809 of file ixge.c.

+ Here is the call graph for this function:

◆ ixge_phy_init()

static void ixge_phy_init ( ixge_device_t xd)
static

Definition at line 376 of file ixge.c.

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

◆ ixge_process()

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

Definition at line 2693 of file ixge.c.

+ Here is the call graph for this function:

◆ ixge_read_eeprom()

static u16 ixge_read_eeprom ( ixge_device_t xd,
u32  address 
)
static

Definition at line 196 of file ixge.c.

+ Here is the caller graph for this function:

◆ ixge_read_phy_reg()

static u32 ixge_read_phy_reg ( ixge_device_t xd,
u32  dev_type,
u32  reg_index 
)
static

Definition at line 157 of file ixge.c.

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

◆ ixge_read_write_phy_reg()

u32 ixge_read_write_phy_reg ( ixge_device_t xd,
u32  dev_type,
u32  reg_index,
u32  v,
u32  is_read 
)

Definition at line 120 of file ixge.c.

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

◆ ixge_ring_add()

static uword ixge_ring_add ( ixge_dma_queue_t q,
u32  i0,
u32  i1 
)
inlinestatic

Definition at line 1007 of file ixge.c.

+ Here is the caller graph for this function:

◆ ixge_ring_sub()

static uword ixge_ring_sub ( ixge_dma_queue_t q,
u32  i0,
u32  i1 
)
inlinestatic

Definition at line 998 of file ixge.c.

+ Here is the caller graph for this function:

◆ ixge_rx_next_and_error_from_status_x1()

static void ixge_rx_next_and_error_from_status_x1 ( ixge_device_t xd,
u32  s00,
u32  s02,
u8 next0,
u8 error0,
u32 flags0 
)
inlinestatic

Definition at line 632 of file ixge.c.

+ Here is the caller graph for this function:

◆ ixge_rx_next_and_error_from_status_x2()

static void ixge_rx_next_and_error_from_status_x2 ( ixge_device_t xd,
u32  s00,
u32  s02,
u32  s10,
u32  s12,
u8 next0,
u8 error0,
u32 flags0,
u8 next1,
u8 error1,
u32 flags1 
)
inlinestatic

Definition at line 671 of file ixge.c.

+ Here is the caller graph for this function:

◆ ixge_rx_queue()

static uword ixge_rx_queue ( ixge_main_t xm,
ixge_device_t xd,
vlib_node_runtime_t node,
u32  queue_index 
)
static

Definition at line 1805 of file ixge.c.

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

◆ ixge_rx_queue_no_wrap()

static uword ixge_rx_queue_no_wrap ( ixge_main_t xm,
ixge_device_t xd,
ixge_dma_queue_t dq,
u32  start_descriptor_index,
u32  n_descriptors 
)
static

Definition at line 1341 of file ixge.c.

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

◆ ixge_rx_queue_to_interrupt()

static uword ixge_rx_queue_to_interrupt ( uword  i)
inlinestatic

Definition at line 2106 of file ixge.c.

+ Here is the caller graph for this function:

◆ ixge_rx_trace()

static void ixge_rx_trace ( ixge_main_t xm,
ixge_device_t xd,
ixge_dma_queue_t dq,
ixge_descriptor_t before_descriptors,
u32 before_buffers,
ixge_descriptor_t after_descriptors,
uword  n_descriptors 
)
static

Definition at line 735 of file ixge.c.

+ Here is the call graph for this function:

◆ ixge_semaphore_get()

static void ixge_semaphore_get ( ixge_device_t xd)
static

Definition at line 60 of file ixge.c.

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

◆ ixge_semaphore_release()

static void ixge_semaphore_release ( ixge_device_t xd)
static

Definition at line 82 of file ixge.c.

+ Here is the caller graph for this function:

◆ ixge_set_interface_next_node()

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

Definition at line 2414 of file ixge.c.

+ Here is the call graph for this function:

◆ ixge_set_next_node()

void ixge_set_next_node ( ixge_rx_next_t  next,
char *  name 
)

Definition at line 2891 of file ixge.c.

◆ ixge_sfp_device_up_down()

static void ixge_sfp_device_up_down ( ixge_device_t xd,
uword  is_up 
)
static

Definition at line 267 of file ixge.c.

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

◆ ixge_sfp_enable_disable_10g()

static void ixge_sfp_enable_disable_10g ( ixge_device_t xd,
uword  enable 
)
static

Definition at line 218 of file ixge.c.

+ Here is the caller graph for this function:

◆ ixge_sfp_enable_disable_laser()

static void ixge_sfp_enable_disable_laser ( ixge_device_t xd,
uword  enable 
)
static

Definition at line 208 of file ixge.c.

+ Here is the caller graph for this function:

◆ ixge_sfp_phy_init()

static void ixge_sfp_phy_init ( ixge_device_t xd)
static

Definition at line 349 of file ixge.c.

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

◆ ixge_sfp_phy_init_from_eeprom()

static clib_error_t* ixge_sfp_phy_init_from_eeprom ( ixge_device_t xd,
u16  sfp_type 
)
static

Definition at line 228 of file ixge.c.

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

◆ ixge_software_firmware_sync()

static void ixge_software_firmware_sync ( ixge_device_t xd,
u32  sw_mask 
)
static

Definition at line 89 of file ixge.c.

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

◆ ixge_software_firmware_sync_release()

static void ixge_software_firmware_sync_release ( ixge_device_t xd,
u32  sw_mask 
)
static

Definition at line 111 of file ixge.c.

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

◆ ixge_tx_descriptor_matches_template()

static uword ixge_tx_descriptor_matches_template ( ixge_main_t xm,
ixge_tx_descriptor_t d 
)
inlinestatic

Definition at line 1017 of file ixge.c.

+ Here is the caller graph for this function:

◆ ixge_tx_no_wrap()

static uword ixge_tx_no_wrap ( ixge_main_t xm,
ixge_device_t xd,
ixge_dma_queue_t dq,
u32 buffers,
u32  start_descriptor_index,
u32  n_descriptors,
ixge_tx_state_t tx_state 
)
static

Definition at line 1035 of file ixge.c.

+ Here is the call graph for this function:

◆ ixge_tx_queue()

static void ixge_tx_queue ( ixge_main_t xm,
ixge_device_t xd,
u32  queue_index 
)
static

Definition at line 1981 of file ixge.c.

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

◆ ixge_tx_queue_to_interrupt()

static uword ixge_tx_queue_to_interrupt ( uword  i)
inlinestatic

Definition at line 2100 of file ixge.c.

+ Here is the caller graph for this function:

◆ ixge_tx_trace()

static void ixge_tx_trace ( ixge_main_t xm,
ixge_device_t xd,
ixge_dma_queue_t dq,
ixge_tx_state_t tx_state,
ixge_tx_descriptor_t descriptors,
u32 buffers,
uword  n_descriptors 
)
static

Definition at line 912 of file ixge.c.

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

◆ ixge_update_counters()

static void ixge_update_counters ( ixge_device_t xd)
static

Definition at line 2253 of file ixge.c.

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

◆ ixge_write_phy_reg()

static void ixge_write_phy_reg ( ixge_device_t xd,
u32  dev_type,
u32  reg_index,
u32  v 
)
static

Definition at line 164 of file ixge.c.

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

◆ PCI_REGISTER_DEVICE()

PCI_REGISTER_DEVICE ( ixge_pci_device_registration  ,
static   
)

◆ VLIB_PLUGIN_REGISTER()

VLIB_PLUGIN_REGISTER ( )

◆ VNET_DEVICE_CLASS()

VNET_DEVICE_CLASS ( ixge_device_class  )

Variable Documentation

◆ ixge_counter_flags

u8 ixge_counter_flags[]
static
Initial value:
= {
#define _(a,f)
#define _64(a,f)
}

Definition at line 2244 of file ixge.c.

◆ ixge_error_strings

char* ixge_error_strings[]
static
Initial value:
= {
#define _(n,s)
}

Definition at line 2196 of file ixge.c.

◆ ixge_input_node

static vlib_node_registration_t ixge_input_node
static
Initial value:
= {
.function = ixge_input,
.name = "ixge-input",
.state = VLIB_NODE_STATE_DISABLED,
.format_trace = format_ixge_rx_dma_trace,
.n_errors = IXGE_N_ERROR,
.error_strings = ixge_error_strings,
.n_next_nodes = IXGE_RX_N_NEXT,
.next_nodes = {
[IXGE_RX_NEXT_DROP] = "error-drop",
[IXGE_RX_NEXT_ETHERNET_INPUT] = "ethernet-input",
[IXGE_RX_NEXT_IP4_INPUT] = "ip4-input",
[IXGE_RX_NEXT_IP6_INPUT] = "ip6-input",
},
}

(constructor) VLIB_REGISTER_NODE (ixge_input_node)

Definition at line 56 of file ixge.c.

◆ ixge_main

ixge_main_t ixge_main

Definition at line 55 of file ixge.c.

◆ ixge_process_node

static vlib_node_registration_t ixge_process_node
static
Initial value:
= {
.function = ixge_process,
.name = "ixge-process",
}

Definition at line 57 of file ixge.c.

IXGE_RX_N_NEXT
@ IXGE_RX_N_NEXT
Definition: ixge.h:1279
ixge_input
static uword ixge_input(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *f)
Definition: ixge.c:2154
foreach_ixge_counter
#define foreach_ixge_counter
Definition: ixge.h:1016
VLIB_NODE_TYPE_INPUT
@ VLIB_NODE_TYPE_INPUT
Definition: node.h:76
IXGE_RX_NEXT_IP6_INPUT
@ IXGE_RX_NEXT_IP6_INPUT
Definition: ixge.h:1276
format_ixge_rx_dma_trace
static u8 * format_ixge_rx_dma_trace(u8 *s, va_list *va)
Definition: ixge.c:576
foreach_ixge_error
#define foreach_ixge_error
Definition: ixge.c:616
IXGE_RX_NEXT_IP4_INPUT
@ IXGE_RX_NEXT_IP4_INPUT
Definition: ixge.h:1275
VLIB_NODE_FLAG_TRACE_SUPPORTED
#define VLIB_NODE_FLAG_TRACE_SUPPORTED
Definition: node.h:295
ixge_process
static uword ixge_process(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: ixge.c:2693
IXGE_N_ERROR
@ IXGE_N_ERROR
Definition: ixge.c:628
IXGE_RX_NEXT_DROP
@ IXGE_RX_NEXT_DROP
Definition: ixge.h:1278
IXGE_RX_NEXT_ETHERNET_INPUT
@ IXGE_RX_NEXT_ETHERNET_INPUT
Definition: ixge.h:1277
format_ethernet_header_with_length
u8 * format_ethernet_header_with_length(u8 *s, va_list *args)
Definition: format.c:97
VLIB_NODE_TYPE_PROCESS
@ VLIB_NODE_TYPE_PROCESS
Definition: node.h:84
ixge_error_strings
static char * ixge_error_strings[]
Definition: ixge.c:2196