|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
53 u32 adj_index0, adj_index1, adj_index2, adj_index3;
55 const dpo_id_t *dpo0, *dpo1, *dpo2, *dpo3;
96 adj0->rewrite_header.sw_if_index,
102 adj1->rewrite_header.sw_if_index,
108 adj2->rewrite_header.sw_if_index,
114 adj3->rewrite_header.sw_if_index,
169 adj0->rewrite_header.sw_if_index,
188 return frame->n_vectors;
198 s =
format(s,
"adj-midchain:[%d]:%U", tr->
ai,
215 .name =
"adj-midchain-tx",
216 .vector_size =
sizeof (
u32),
236 .name =
"adj-midchain-tx-no-count",
237 .vector_size =
sizeof (
u32),
240 .sibling_of =
"adj-midchain-tx",
static uword adj_midchain_tx_inline(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, int interface_count)
vlib_node_registration_t adj_midchain_tx_node
(constructor) VLIB_REGISTER_NODE (adj_midchain_tx_node)
u16 dpoi_next_node
The next VLIB node to follow.
vnet_interface_main_t * im
index_t dpoi_index
the index of objects of that type
vlib_buffer_t * bufs[VLIB_FRAME_SIZE]
#define vlib_prefetch_buffer_header(b, type)
Prefetch buffer metadata.
vlib_main_t vlib_node_runtime_t vlib_frame_t * frame
@ VNET_INTERFACE_COUNTER_TX
vlib_get_buffers(vm, from, b, n_left_from)
vlib_main_t vlib_node_runtime_t * node
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
vlib_buffer_enqueue_to_next(vm, node, from,(u16 *) nexts, frame->n_vectors)
static uword vlib_buffer_length_in_chain(vlib_main_t *vm, vlib_buffer_t *b)
Get length in bytes of the buffer chain.
vnet_main_t * vnet_get_main(void)
#define VLIB_NODE_FLAG_TRACE
static void * vlib_frame_vector_args(vlib_frame_t *f)
Get pointer to frame vector data.
vlib_node_registration_t adj_midchain_tx_no_count_node
(constructor) VLIB_REGISTER_NODE (adj_midchain_tx_no_count_node)
adj_index_t ai
the midchain adj we are traversing
struct _vlib_node_registration vlib_node_registration_t
vlib_combined_counter_main_t * combined_sw_if_counters
union ip_adjacency_t_::@144 sub_type
Trace data for packets traversing the midchain tx node.
description fragment has unexpected format
struct adj_midchain_tx_trace_t_ adj_midchain_tx_trace_t
Trace data for packets traversing the midchain tx node.
u32 adj_index_t
An index for adjacencies.
void * vlib_add_trace(vlib_main_t *vm, vlib_node_runtime_t *r, vlib_buffer_t *b, u32 n_data_bytes)
The identity of a DPO is a combination of its type and its instance number/index of objects of that t...
u16 nexts[VLIB_FRAME_SIZE]
static uword adj_midchain_tx(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
static u8 * format_adj_midchain_tx_trace(u8 *s, va_list *args)
static ip_adjacency_t * adj_get(adj_index_t adj_index)
Get a pointer to an adjacency object from its index.
vnet_interface_main_t interface_main
vlib_increment_combined_counter(ccm, ti, sw_if_index, n_buffers, n_bytes)
static uword adj_midchain_tx_no_count(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
VLIB buffer representation.
#define VLIB_REGISTER_NODE(x,...)
struct ip_adjacency_t_::@144::@146 midchain
IP_LOOKUP_NEXT_MIDCHAIN.
vl_api_wireguard_peer_flags_t flags