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,
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)
vl_api_wireguard_peer_flags_t flags
struct adj_midchain_tx_trace_t_ adj_midchain_tx_trace_t
Trace data for packets traversing the midchain tx node.
vnet_interface_main_t interface_main
u16 nexts[VLIB_FRAME_SIZE]
vlib_increment_combined_counter(ccm, ti, sw_if_index, n_buffers, n_bytes)
vlib_main_t vlib_node_runtime_t vlib_frame_t * frame
static uword vlib_buffer_length_in_chain(vlib_main_t *vm, vlib_buffer_t *b)
Get length in bytes of the buffer chain.
static ip_adjacency_t * adj_get(adj_index_t adj_index)
Get a pointer to an adjacency object from its index.
vlib_get_buffers(vm, from, b, n_left_from)
vlib_combined_counter_main_t * combined_sw_if_counters
description fragment has unexpected format
#define vlib_prefetch_buffer_header(b, type)
Prefetch buffer metadata.
vnet_main_t * vnet_get_main(void)
vlib_buffer_enqueue_to_next(vm, node, from,(u16 *) nexts, frame->n_vectors)
union ip_adjacency_t_::@144 sub_type
vlib_node_registration_t adj_midchain_tx_no_count_node
(constructor) VLIB_REGISTER_NODE (adj_midchain_tx_no_count_node)
The identity of a DPO is a combination of its type and its instance number/index of objects of that t...
Trace data for packets traversing the midchain tx node.
adj_index_t ai
the midchain adj we are traversing
struct ip_adjacency_t_::@144::@146 midchain
IP_LOOKUP_NEXT_MIDCHAIN.
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
#define VLIB_REGISTER_NODE(x,...)
vnet_interface_main_t * im
u32 adj_index_t
An index for adjacencies.
index_t dpoi_index
the index of objects of that type
vlib_main_t vlib_node_runtime_t * node
VLIB buffer representation.
static uword adj_midchain_tx(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
static void * vlib_frame_vector_args(vlib_frame_t *f)
Get pointer to frame vector data.
static u8 * format_adj_midchain_tx_trace(u8 *s, va_list *args)
u16 flags
Copy of main node flags.
void * vlib_add_trace(vlib_main_t *vm, vlib_node_runtime_t *r, vlib_buffer_t *b, u32 n_data_bytes)
u16 dpoi_next_node
The next VLIB node to follow.
#define VLIB_NODE_FLAG_TRACE
static uword adj_midchain_tx_no_count(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
vlib_buffer_t * bufs[VLIB_FRAME_SIZE]