|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
38 s =
format (s,
"P2P ethernet: %U -> %U",
45 #define foreach_p2p_ethernet_error \
46 _(HITS, "P2P ethernet incoming packets processed")
50 #define _(sym,str) P2PE_ERROR_##sym,
57 #define _(sym,string) string,
70 u32 n_p2p_ethernet_packets = 0;
88 u32 next0 = 0, next1 = 0;
89 u32 sw_if_index0, sw_if_index1;
120 n_p2p_ethernet_packets += 1;
142 n_p2p_ethernet_packets += 1;
163 to_next, n_left_to_next,
166 to_next, n_left_to_next,
198 n_p2p_ethernet_packets += 1;
226 to_next, n_left_to_next,
233 P2PE_ERROR_HITS, n_p2p_ethernet_packets);
235 return frame->n_vectors;
240 .name =
"p2p-ethernet-input",
241 .vector_size =
sizeof (
u32),
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_NODE_TYPE_INTERNAL
vlib_main_t vlib_node_runtime_t * node
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
static u32 vlib_get_trace_count(vlib_main_t *vm, vlib_node_runtime_t *rt)
static uword vlib_buffer_length_in_chain(vlib_main_t *vm, vlib_buffer_t *b)
Get length in bytes of the buffer chain.
#define VLIB_NODE_FN(node)
vnet_main_t * vnet_get_main(void)
#define VLIB_NODE_FLAG_TRACE
static_always_inline void vnet_feature_next(u32 *next0, vlib_buffer_t *b0)
static void * vlib_frame_vector_args(vlib_frame_t *f)
Get pointer to frame vector data.
static void vlib_node_increment_counter(vlib_main_t *vm, u32 node_index, u32 counter_index, u64 increment)
#define VLIB_NODE_FLAG_TRACE_SUPPORTED
vnet_feature_config_main_t * cm
static void vlib_set_trace_count(vlib_main_t *vm, vlib_node_runtime_t *rt, u32 count)
struct _vlib_node_registration vlib_node_registration_t
vlib_combined_counter_main_t * combined_sw_if_counters
#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.
format_function_t format_vnet_sw_if_index_name
description fragment has unexpected format
A collection of combined counters.
u32 p2p_ethernet_lookup(u32 parent_if_index, u8 *client_mac)
vlib_put_next_frame(vm, node, next_index, 0)
void * vlib_add_trace(vlib_main_t *vm, vlib_node_runtime_t *r, vlib_buffer_t *b, u32 n_data_bytes)
static void * vlib_buffer_get_current(vlib_buffer_t *b)
Get pointer to current data to process.
static __clib_warn_unused_result int vlib_trace_buffer(vlib_main_t *vm, vlib_node_runtime_t *r, u32 next_index, vlib_buffer_t *b, int follow_chain)
#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).
vl_api_fib_path_type_t type
vnet_interface_main_t interface_main
vlib_increment_combined_counter(ccm, ti, sw_if_index, n_buffers, n_bytes)
VLIB buffer representation.
#define VLIB_REGISTER_NODE(x,...)
vl_api_wireguard_peer_flags_t flags