FD.io VPP  v16.06
Vector Packet Processing
device.c File Reference
+ Include dependency graph for device.c:

Go to the source code of this file.

Macros

#define foreach_dpdk_tx_func_error
 
#define UP_DOWN_FLAG_EVENT   1
 

Enumerations

enum  dpdk_tx_func_error_t { DPDK_TX_FUNC_N_ERROR }
 

Functions

clib_error_tdpdk_set_mac_address (vnet_hw_interface_t *hi, char *address)
 
clib_error_tdpdk_set_mc_filter (vnet_hw_interface_t *hi, struct ether_addr mc_addr_vec[], int naddr)
 
struct rte_mbuf * dpdk_replicate_packet_mb (vlib_buffer_t *b)
 
struct rte_mbuf * dpdk_zerocopy_replicate_packet_mb (vlib_buffer_t *b)
 
static void dpdk_tx_trace_buffer (dpdk_main_t *dm, vlib_node_runtime_t *node, dpdk_device_t *xd, u16 queue_id, u32 buffer_index, vlib_buffer_t *buffer)
 
static_always_inline u32 tx_burst_vector_internal (vlib_main_t *vm, dpdk_device_t *xd, struct rte_mbuf **tx_vector)
 
u32 dpdk_interface_tx_vector (vlib_main_t *vm, u32 dev_instance)
 
static uword dpdk_interface_tx (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *f)
 
static int dpdk_device_renumber (vnet_hw_interface_t *hi, u32 new_dev_instance)
 
static void dpdk_clear_hw_interface_counters (u32 instance)
 
static clib_error_tdpdk_interface_admin_up_down (vnet_main_t *vnm, u32 hw_if_index, u32 flags)
 
static void dpdk_set_interface_next_node (vnet_main_t *vnm, u32 hw_if_index, u32 node_index)
 
static clib_error_tdpdk_subif_add_del_function (vnet_main_t *vnm, u32 hw_if_index, struct vnet_sw_interface_t *st, int is_add)
 
 VNET_DEVICE_CLASS (dpdk_device_class)
 
void dpdk_set_flowcontrol_callback (vlib_main_t *vm, dpdk_flowcontrol_callback_t callback)
 
u32 dpdk_get_admin_up_down_in_progress (void)
 
static uword admin_up_down_process (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
void post_sw_interface_set_flags (vlib_main_t *vm, u32 sw_if_index, u32 flags)
 
int rte_delay_us_override (unsigned us)
 
clib_error_tdpdk_get_hw_interface_stats (u32 hw_if_index, struct rte_eth_stats *dest)
 
u32 dpdk_num_mbufs (void)
 
int dpdk_io_thread_release (void)
 
dpdk_pmd_t dpdk_get_pmd_type (vnet_hw_interface_t *hi)
 
i8 dpdk_get_cpu_socket (vnet_hw_interface_t *hi)
 

Variables

static char * dpdk_tx_func_error_strings []
 
vlib_node_registration_t admin_up_down_process_node
 (constructor) VLIB_REGISTER_NODE (admin_up_down_process_node) More...
 

Macro Definition Documentation

#define foreach_dpdk_tx_func_error
Value:
_(BAD_RETVAL, "DPDK tx function returned an error") \
_(RING_FULL, "Tx packet drops (ring full)") \
_(PKT_DROP, "Tx packet drops (dpdk tx failure)") \
_(REPL_FAIL, "Tx packet drops (replication failure)")

Definition at line 27 of file device.c.

#define UP_DOWN_FLAG_EVENT   1

Definition at line 1201 of file device.c.

Enumeration Type Documentation

Enumerator
DPDK_TX_FUNC_N_ERROR 

Definition at line 33 of file device.c.

Function Documentation

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

Definition at line 1210 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void dpdk_clear_hw_interface_counters ( u32  instance)
static

Definition at line 893 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int dpdk_device_renumber ( vnet_hw_interface_t hi,
u32  new_dev_instance 
)
static

Definition at line 877 of file device.c.

+ Here is the caller graph for this function:

u32 dpdk_get_admin_up_down_in_progress ( void  )

Definition at line 1204 of file device.c.

+ Here is the caller graph for this function:

i8 dpdk_get_cpu_socket ( vnet_hw_interface_t hi)

Definition at line 1379 of file device.c.

clib_error_t* dpdk_get_hw_interface_stats ( u32  hw_if_index,
struct rte_eth_stats *  dest 
)

Definition at line 1319 of file device.c.

+ Here is the call graph for this function:

dpdk_pmd_t dpdk_get_pmd_type ( vnet_hw_interface_t hi)

Definition at line 1362 of file device.c.

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

Definition at line 985 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 571 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 dpdk_interface_tx_vector ( vlib_main_t vm,
u32  dev_instance 
)

Definition at line 527 of file device.c.

+ Here is the call graph for this function:

int dpdk_io_thread_release ( void  )

Definition at line 1352 of file device.c.

u32 dpdk_num_mbufs ( void  )

Definition at line 1342 of file device.c.

struct rte_mbuf* dpdk_replicate_packet_mb ( vlib_buffer_t b)

Definition at line 80 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void dpdk_set_flowcontrol_callback ( vlib_main_t vm,
dpdk_flowcontrol_callback_t  callback 
)

Definition at line 1195 of file device.c.

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

Definition at line 1109 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* dpdk_set_mac_address ( vnet_hw_interface_t hi,
char *  address 
)

Definition at line 47 of file device.c.

clib_error_t* dpdk_set_mc_filter ( vnet_hw_interface_t hi,
struct ether_addr  mc_addr_vec[],
int  naddr 
)

Definition at line 64 of file device.c.

static clib_error_t* dpdk_subif_add_del_function ( vnet_main_t vnm,
u32  hw_if_index,
struct vnet_sw_interface_t st,
int  is_add 
)
static

Definition at line 1129 of file device.c.

+ Here is the call graph for this function:

static void dpdk_tx_trace_buffer ( dpdk_main_t dm,
vlib_node_runtime_t node,
dpdk_device_t xd,
u16  queue_id,
u32  buffer_index,
vlib_buffer_t buffer 
)
static

Definition at line 219 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

struct rte_mbuf* dpdk_zerocopy_replicate_packet_mb ( vlib_buffer_t b)

Definition at line 150 of file device.c.

+ Here is the call graph for this function:

void post_sw_interface_set_flags ( vlib_main_t vm,
u32  sw_if_index,
u32  flags 
)

Definition at line 1266 of file device.c.

+ Here is the call graph for this function:

int rte_delay_us_override ( unsigned  us)

Definition at line 1280 of file device.c.

+ Here is the call graph for this function:

static_always_inline u32 tx_burst_vector_internal ( vlib_main_t vm,
dpdk_device_t xd,
struct rte_mbuf **  tx_vector 
)

Definition at line 259 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

VNET_DEVICE_CLASS ( dpdk_device_class  )

Variable Documentation

vlib_node_registration_t admin_up_down_process_node
Initial value:
= {
.function = admin_up_down_process,
.name = "admin-up-down-process",
.process_log2_n_stack_bytes = 17,
}
static uword admin_up_down_process(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: device.c:1210

(constructor) VLIB_REGISTER_NODE (admin_up_down_process_node)

Definition at line 1250 of file device.c.

char* dpdk_tx_func_error_strings[]
static
Initial value:
= {
#define _(n,s)
}
#define foreach_dpdk_tx_func_error
Definition: device.c:27

Definition at line 40 of file device.c.