FD.io VPP  v20.05-21-gb1500e9ff
Vector Packet Processing
input.c File Reference
+ Include dependency graph for input.c:

Go to the source code of this file.

Macros

#define foreach_rdma_input_error   _(BUFFER_ALLOC, "buffer alloc error")
 

Enumerations

enum  rdma_input_error_t { RDMA_INPUT_N_ERROR }
 

Functions

static_always_inline void ibv_set_recv_wr_and_sge (struct ibv_recv_wr *w, struct ibv_sge *s, u64 va, u32 data_size, u32 lkey)
 
static_always_inline void rdma_device_input_refill (vlib_main_t *vm, rdma_device_t *rd, rdma_rxq_t *rxq, int is_mlx5dv)
 
static_always_inline void rdma_device_input_trace (vlib_main_t *vm, vlib_node_runtime_t *node, const rdma_device_t *rd, u32 n_left, const u32 *bi, u32 next_index, u16 *cqe_flags, int is_mlx5dv)
 
static_always_inline void rdma_device_input_ethernet (vlib_main_t *vm, vlib_node_runtime_t *node, const rdma_device_t *rd, u32 next_index, int skip_ip4_cksum)
 
static_always_inline u32 rdma_device_input_bufs (vlib_main_t *vm, const rdma_device_t *rd, vlib_buffer_t **b, struct ibv_wc *wc, u32 n_left_from, vlib_buffer_t *bt)
 
static_always_inline void process_mini_cqes (rdma_rxq_t *rxq, u32 skip, u32 n_left, u32 cq_ci, u32 mask, u32 *byte_cnt)
 
static_always_inline void cqe_set_owner (mlx5dv_cqe_t *cqe, u32 n_left, u8 owner)
 
static_always_inline void compressed_cqe_reset_owner (rdma_rxq_t *rxq, u32 n_mini_cqes, u32 cq_ci, u32 mask, u32 log2_cq_size)
 
static_always_inline uword rdma_device_poll_cq_mlx5dv (rdma_device_t *rd, rdma_rxq_t *rxq, u32 *byte_cnt, u16 *cqe_flags)
 
static_always_inline uword rdma_device_input_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, rdma_device_t *rd, u16 qid, int use_mlx5dv)
 
VLIB_NODE_FN() rdma_input_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 

Variables

static __clib_unused char * rdma_input_error_strings []
 
vlib_node_registration_t rdma_input_node
 (constructor) VLIB_REGISTER_NODE (rdma_input_node) More...
 

Macro Definition Documentation

◆ foreach_rdma_input_error

#define foreach_rdma_input_error   _(BUFFER_ALLOC, "buffer alloc error")

Definition at line 26 of file input.c.

Enumeration Type Documentation

◆ rdma_input_error_t

Enumerator
RDMA_INPUT_N_ERROR 

Definition at line 29 of file input.c.

Function Documentation

◆ compressed_cqe_reset_owner()

static_always_inline void compressed_cqe_reset_owner ( rdma_rxq_t rxq,
u32  n_mini_cqes,
u32  cq_ci,
u32  mask,
u32  log2_cq_size 
)

Definition at line 361 of file input.c.

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

◆ cqe_set_owner()

static_always_inline void cqe_set_owner ( mlx5dv_cqe_t cqe,
u32  n_left,
u8  owner 
)

Definition at line 337 of file input.c.

+ Here is the caller graph for this function:

◆ ibv_set_recv_wr_and_sge()

static_always_inline void ibv_set_recv_wr_and_sge ( struct ibv_recv_wr *  w,
struct ibv_sge *  s,
u64  va,
u32  data_size,
u32  lkey 
)

Definition at line 45 of file input.c.

◆ process_mini_cqes()

static_always_inline void process_mini_cqes ( rdma_rxq_t rxq,
u32  skip,
u32  n_left,
u32  cq_ci,
u32  mask,
u32 byte_cnt 
)

Definition at line 285 of file input.c.

+ Here is the caller graph for this function:

◆ rdma_device_input_bufs()

static_always_inline u32 rdma_device_input_bufs ( vlib_main_t vm,
const rdma_device_t rd,
vlib_buffer_t **  b,
struct ibv_wc *  wc,
u32  n_left_from,
vlib_buffer_t bt 
)

Definition at line 236 of file input.c.

+ Here is the call graph for this function:

◆ rdma_device_input_ethernet()

static_always_inline void rdma_device_input_ethernet ( vlib_main_t vm,
vlib_node_runtime_t node,
const rdma_device_t rd,
u32  next_index,
int  skip_ip4_cksum 
)

Definition at line 211 of file input.c.

+ Here is the call graph for this function:

◆ rdma_device_input_inline()

static_always_inline uword rdma_device_input_inline ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame,
rdma_device_t rd,
u16  qid,
int  use_mlx5dv 
)

Definition at line 480 of file input.c.

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

◆ rdma_device_input_refill()

static_always_inline void rdma_device_input_refill ( vlib_main_t vm,
rdma_device_t rd,
rdma_rxq_t rxq,
int  is_mlx5dv 
)

Definition at line 57 of file input.c.

+ Here is the call graph for this function:

◆ rdma_device_input_trace()

static_always_inline void rdma_device_input_trace ( vlib_main_t vm,
vlib_node_runtime_t node,
const rdma_device_t rd,
u32  n_left,
const u32 bi,
u32  next_index,
u16 cqe_flags,
int  is_mlx5dv 
)

Definition at line 178 of file input.c.

+ Here is the call graph for this function:

◆ rdma_device_poll_cq_mlx5dv()

static_always_inline uword rdma_device_poll_cq_mlx5dv ( rdma_device_t rd,
rdma_rxq_t rxq,
u32 byte_cnt,
u16 cqe_flags 
)

Definition at line 389 of file input.c.

+ Here is the call graph for this function:

◆ rdma_input_node()

VLIB_NODE_FN() rdma_input_node ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)

Definition at line 627 of file input.c.

+ Here is the call graph for this function:

Variable Documentation

◆ rdma_input_error_strings

__clib_unused char* rdma_input_error_strings[]
static
Initial value:
= {
#define _(n,s)
}
#define foreach_rdma_input_error
Definition: input.c:26

Definition at line 37 of file input.c.

◆ rdma_input_node

vlib_node_registration_t rdma_input_node
Initial value:
= {
.name = "rdma-input",
.sibling_of = "device-input",
.format_trace = format_rdma_input_trace,
.state = VLIB_NODE_STATE_DISABLED,
.n_errors = RDMA_INPUT_N_ERROR,
.error_strings = rdma_input_error_strings,
}
#define VLIB_NODE_FLAG_TRACE_SUPPORTED
Definition: node.h:308
format_function_t format_rdma_input_trace
Definition: rdma.h:235
static __clib_unused char * rdma_input_error_strings[]
Definition: input.c:37

(constructor) VLIB_REGISTER_NODE (rdma_input_node)

Definition at line 655 of file input.c.