41 #error files which #include <vnet/pipeline.h> must define NSTAGES 45 #define STAGE_INLINE inline 52 #define AUX_DATA_PTR(pi) 54 #define AUX_DATA_ARG ,##AUX_DATA_TYPE *ap 55 #define AUX_DATA_DECL AUX_DATA_TYPE aux_data[VLIB_FRAME_SIZE] 56 #define AUX_DATA_PTR(pi) ,aux_data +(pi) 98 for (pi = 0; pi <
NSTAGES - 1; pi++)
100 if (pi == n_left_from)
105 for (; pi < n_left_from; pi++)
107 stage0 (vm, node, bufs[pi]);
112 for (; pi < (n_left_from + (NSTAGES - 1)); pi++)
114 if (((pi - 1) >= 0) && ((pi - 1) < n_left_from))
140 for (pi = 0; pi <
NSTAGES - 1; pi++)
142 if (pi == n_left_from)
146 stage1 (vm, node, bufs[pi - 1]);
149 for (; pi < n_left_from; pi++)
157 for (; pi < (n_left_from + (NSTAGES - 1)); pi++)
159 if (((pi - 1) >= 0) && ((pi - 1) < n_left_from))
161 if (((pi - 2) >= 0) && ((pi - 2) < n_left_from))
187 for (pi = 0; pi <
NSTAGES - 1; pi++)
189 if (pi == n_left_from)
198 for (; pi < n_left_from; pi++)
207 for (; pi < (n_left_from + (NSTAGES - 1)); pi++)
209 if (((pi - 1) >= 0) && ((pi - 1) < n_left_from))
211 if (((pi - 2) >= 0) && ((pi - 2) < n_left_from))
213 if (((pi - 3) >= 0) && ((pi - 3) < n_left_from))
239 for (pi = 0; pi <
NSTAGES - 1; pi++)
241 if (pi == n_left_from)
252 for (; pi < n_left_from; pi++)
262 for (; pi < (n_left_from + (NSTAGES - 1)); pi++)
264 if (((pi - 1) >= 0) && ((pi - 1) < n_left_from))
266 if (((pi - 2) >= 0) && ((pi - 2) < n_left_from))
268 if (((pi - 3) >= 0) && ((pi - 3) < n_left_from))
270 if (((pi - 4) >= 0) && ((pi - 4) < n_left_from))
296 for (pi = 0; pi <
NSTAGES - 1; pi++)
298 if (pi == n_left_from)
311 for (; pi < n_left_from; pi++)
322 for (; pi < (n_left_from + (NSTAGES - 1)); pi++)
324 if (((pi - 1) >= 0) && ((pi - 1) < n_left_from))
326 if (((pi - 2) >= 0) && ((pi - 2) < n_left_from))
328 if (((pi - 3) >= 0) && ((pi - 3) < n_left_from))
330 if (((pi - 4) >= 0) && ((pi - 4) < n_left_from))
332 if (((pi - 5) >= 0) && ((pi - 5) < n_left_from))
#define vlib_prefetch_buffer_header(b, type)
Prefetch buffer metadata.
static void stage1(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_buffer_t *b)
#define CLIB_PREFETCH(addr, size, type)
static_always_inline void vlib_buffer_enqueue_to_next(vlib_main_t *vm, vlib_node_runtime_t *node, u32 *buffers, u16 *nexts, uword count)
static STAGE_INLINE void generic_stage0(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_buffer_t *b AUX_DATA_ARG)
static u32 last_stage(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_buffer_t *b)
VLIB buffer representation.
static void * vlib_frame_vector_args(vlib_frame_t *f)
Get pointer to frame vector data.
static_always_inline void vlib_get_buffers(vlib_main_t *vm, u32 *bi, vlib_buffer_t **b, int count)
Translate array of buffer indices into buffer pointers.
#define CLIB_CACHE_LINE_BYTES
static void stage0(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_buffer_t *b)