|
FD.io VPP
v21.10.1-2-g0a485f517
Vector Packet Processing
|
Go to the documentation of this file.
98 bi0 = to_next[0] =
from[0];
99 bi1 = to_next[1] =
from[1];
176 to_next, n_left_to_next,
177 bi0, bi1, next0, next1);
182 u32 bi0, next0, uei0;
186 bi0 = to_next[0] =
from[0];
241 to_next, n_left_to_next,
248 return frame->n_vectors;
267 .name =
"udp4-encap",
268 .vector_size =
sizeof (
u32),
276 .name =
"udp6-encap",
277 .vector_size =
sizeof (
u32),
u16 dpoi_next_node
The next VLIB node to follow.
index_t dpoi_index
the index of objects of that type
#define vlib_prefetch_buffer_header(b, type)
Prefetch buffer metadata.
vlib_main_t vlib_node_runtime_t vlib_frame_t * frame
nat44_ei_hairpin_src_next_t next_index
static vlib_buffer_t * vlib_get_buffer(vlib_main_t *vm, u32 buffer_index)
Translate buffer index into buffer pointer.
vlib_main_t vlib_node_runtime_t * node
struct udp_encap_t_::@565::@566 ip4
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
struct udp_encap_t_::@565::@567 ip6
The UDP encap representation.
static uword vlib_buffer_length_in_chain(vlib_main_t *vm, vlib_buffer_t *b)
Get length in bytes of the buffer chain.
static void ip_udp_encap_one(vlib_main_t *vm, vlib_buffer_t *b0, u8 *ec0, word ec_len, u8 is_ip4)
vlib_node_registration_t udp4_encap_node
(constructor) VLIB_REGISTER_NODE (udp4_encap_node)
#define VLIB_NODE_FN(node)
struct udp6_encap_trace_t_ udp6_encap_trace_t
static void * vlib_frame_vector_args(vlib_frame_t *f)
Get pointer to frame vector data.
struct udp4_encap_trace_t_ udp4_encap_trace_t
static void ip_udp_encap_two(vlib_main_t *vm, vlib_buffer_t *b0, vlib_buffer_t *b1, u8 *ec0, u8 *ec1, word ec_len, u8 is_v4)
vlib_combined_counter_main_t udp_encap_counters
Stats for each UDP encap object.
static udp_encap_t * udp_encap_get(index_t uei)
vnet_feature_config_main_t * cm
static u8 * format_udp6_encap_trace(u8 *s, va_list *args)
struct _vlib_node_registration vlib_node_registration_t
#define vlib_validate_buffer_enqueue_x1(vm, node, next_index, to_next, n_left_to_next, bi0, next0)
Finish enqueueing one buffer forward in the graph.
description fragment has unexpected format
A collection of combined counters.
vlib_node_registration_t udp6_encap_node
(constructor) VLIB_REGISTER_NODE (udp6_encap_node)
vlib_put_next_frame(vm, node, next_index, 0)
static u8 * format_udp4_encap_trace(u8 *s, va_list *args)
dpo_id_t ue_dpo
The DPO used to forward to the next node in the VLIB graph.
union udp_encap_t_::@565 ue_hdrs
The headers to paint, in packet painting order.
void * vlib_add_trace(vlib_main_t *vm, vlib_node_runtime_t *r, vlib_buffer_t *b, u32 n_data_bytes)
#define vlib_validate_buffer_enqueue_x2(vm, node, next_index, to_next, n_left_to_next, bi0, bi1, next0, next1)
Finish enqueueing two buffers forward in the graph.
#define vlib_get_next_frame(vm, node, next_index, vectors, n_vectors_left)
Get pointer to next frame vector data by (vlib_node_runtime_t, next_index).
static uword udp_encap_inline(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, int is_encap_v6)
vlib_increment_combined_counter(ccm, ti, sw_if_index, n_buffers, n_bytes)
u32 flags
buffer flags: VLIB_BUFFER_FREE_LIST_INDEX_MASK: bits used to store free list index,...
VLIB buffer representation.
#define VLIB_REGISTER_NODE(x,...)