FD.io VPP  v21.06-3-gbb25fbf28
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 u32 rdma_device_legacy_input_refill_additional (vlib_main_t *vm, rdma_device_t *rd, rdma_rxq_t *rxq, rdma_per_thread_data_t *ptd, vlib_buffer_t *bt, u32 first_slot, u32 n_alloc)
 
static_always_inline void rdma_device_input_refill (vlib_main_t *vm, rdma_device_t *rd, rdma_rxq_t *rxq, vlib_buffer_t *bt, const int is_mlx5dv, const int is_striding)
 
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 int rdma_device_mlx5dv_striding_rq_parse_bc (int n_rx_packets, int *n_rx_segs, u32 *bc)
 
static_always_inline int rdma_device_mlx5dv_legacy_rq_slow_path_needed (u32 buf_sz, int n_rx_packets, u32 *bc)
 
static_always_inline int rdma_device_mlx5dv_l3_validate_and_swap_bc (rdma_per_thread_data_t *ptd, int n_rx_packets, u32 *bc)
 
static_always_inline u32 rdma_device_mlx5dv_fast_input (vlib_main_t *vm, rdma_rxq_t *rxq, vlib_buffer_t **bufs, u32 qs_mask, vlib_buffer_t *bt, u32 *to_next, u32 n_rx_segs, u32 *bc, u32 bc_mask)
 
static_always_inline void rdma_device_mlx5dv_legacy_rq_fix_chains (vlib_main_t *vm, rdma_rxq_t *rxq, vlib_buffer_t **bufs, u32 qs_mask, u32 n)
 
static_always_inline u32 rdma_device_mlx5dv_striding_rq_input (vlib_main_t *vm, rdma_per_thread_data_t *ptd, rdma_rxq_t *rxq, vlib_buffer_t *bt, u32 *to_next, int n_rx_segs, int *n_rx_packets, u32 *bc, int slow_path_needed)
 
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, const 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 27 of file input.c.

Enumeration Type Documentation

◆ rdma_input_error_t

Enumerator
RDMA_INPUT_N_ERROR 

Definition at line 30 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 507 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 483 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 46 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 431 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 382 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 357 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,
const int  use_mlx5dv 
)

Definition at line 914 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,
vlib_buffer_t bt,
const int  is_mlx5dv,
const int  is_striding 
)

Definition at line 124 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 326 of file input.c.

+ Here is the call graph for this function:

◆ rdma_device_legacy_input_refill_additional()

static_always_inline u32 rdma_device_legacy_input_refill_additional ( vlib_main_t vm,
rdma_device_t rd,
rdma_rxq_t rxq,
rdma_per_thread_data_t ptd,
vlib_buffer_t bt,
u32  first_slot,
u32  n_alloc 
)

Definition at line 58 of file input.c.

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

◆ rdma_device_mlx5dv_fast_input()

static_always_inline u32 rdma_device_mlx5dv_fast_input ( vlib_main_t vm,
rdma_rxq_t rxq,
vlib_buffer_t **  bufs,
u32  qs_mask,
vlib_buffer_t bt,
u32 to_next,
u32  n_rx_segs,
u32 bc,
u32  bc_mask 
)

Definition at line 717 of file input.c.

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

◆ rdma_device_mlx5dv_l3_validate_and_swap_bc()

static_always_inline int rdma_device_mlx5dv_l3_validate_and_swap_bc ( rdma_per_thread_data_t ptd,
int  n_rx_packets,
u32 bc 
)

Definition at line 669 of file input.c.

+ Here is the call graph for this function:

◆ rdma_device_mlx5dv_legacy_rq_fix_chains()

static_always_inline void rdma_device_mlx5dv_legacy_rq_fix_chains ( vlib_main_t vm,
rdma_rxq_t rxq,
vlib_buffer_t **  bufs,
u32  qs_mask,
u32  n 
)

Definition at line 763 of file input.c.

+ Here is the call graph for this function:

◆ rdma_device_mlx5dv_legacy_rq_slow_path_needed()

static_always_inline int rdma_device_mlx5dv_legacy_rq_slow_path_needed ( u32  buf_sz,
int  n_rx_packets,
u32 bc 
)

Definition at line 642 of file input.c.

◆ rdma_device_mlx5dv_striding_rq_input()

static_always_inline u32 rdma_device_mlx5dv_striding_rq_input ( vlib_main_t vm,
rdma_per_thread_data_t ptd,
rdma_rxq_t rxq,
vlib_buffer_t bt,
u32 to_next,
int  n_rx_segs,
int *  n_rx_packets,
u32 bc,
int  slow_path_needed 
)

Definition at line 816 of file input.c.

+ Here is the call graph for this function:

◆ rdma_device_mlx5dv_striding_rq_parse_bc()

static_always_inline int rdma_device_mlx5dv_striding_rq_parse_bc ( int  n_rx_packets,
int *  n_rx_segs,
u32 bc 
)

Definition at line 626 of file input.c.

◆ 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 535 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 1016 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)
}

Definition at line 38 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,
}

(constructor) VLIB_REGISTER_NODE (rdma_input_node)

Definition at line 1045 of file input.c.

VLIB_NODE_TYPE_INPUT
@ VLIB_NODE_TYPE_INPUT
Definition: node.h:76
format_rdma_input_trace
format_function_t format_rdma_input_trace
Definition: rdma.h:303
VLIB_NODE_FLAG_TRACE_SUPPORTED
#define VLIB_NODE_FLAG_TRACE_SUPPORTED
Definition: node.h:295
RDMA_INPUT_N_ERROR
@ RDMA_INPUT_N_ERROR
Definition: input.c:35
foreach_rdma_input_error
#define foreach_rdma_input_error
Definition: input.c:27
rdma_input_error_strings
static __clib_unused char * rdma_input_error_strings[]
Definition: input.c:38