|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
20 #define foreach_wg_handoff_error \
21 _(CONGESTION_DROP, "congestion drop")
25 #define _(sym,str) WG_HANDOFF_ERROR_##sym,
32 #define _(sym,string) string,
97 ti[0] =
peer->input_thread_index;
105 ti[0] =
peer->output_thread_index;
122 thread_indices,
frame->n_vectors, 1);
126 WG_HANDOFF_ERROR_CONGESTION_DROP,
127 frame->n_vectors - n_enq);
165 .name =
"wg-handshake-handoff",
166 .vector_size =
sizeof (
u32),
179 .name =
"wg-input-data-handoff",
180 .vector_size =
sizeof (
u32),
193 .name =
"wg-output-tun-handoff",
194 .vector_size =
sizeof (
u32),
struct wg_handoff_trace_t_ wg_handoff_trace_t
vlib_node_registration_t wg_handshake_handoff
(constructor) VLIB_REGISTER_NODE (wg_handshake_handoff)
vlib_buffer_t * bufs[VLIB_FRAME_SIZE]
vlib_node_registration_t wg_input_data_handoff
(constructor) VLIB_REGISTER_NODE (wg_input_data_handoff)
static_always_inline u32 vlib_buffer_enqueue_to_thread(vlib_main_t *vm, vlib_node_runtime_t *node, u32 frame_queue_index, u32 *buffer_indices, u16 *thread_indices, u32 n_packets, int drop_on_congestion)
vlib_main_t vlib_node_runtime_t vlib_frame_t * frame
static_always_inline uword wg_handoff(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, u32 fq_index, wg_handoff_mode_t mode)
vlib_get_buffers(vm, from, b, n_left_from)
@ VLIB_NODE_TYPE_INTERNAL
vlib_main_t vlib_node_runtime_t * node
wg_index_table_t index_table
static index_t wg_peer_get_by_adj_index(index_t ai)
vl_api_tunnel_mode_t mode
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
#define foreach_wg_handoff_error
vlib_main_t vlib_node_runtime_t vlib_frame_t * from_frame
u32 * wg_index_table_lookup(const wg_index_table_t *table, u32 key)
#define VLIB_NODE_FN(node)
static void * vlib_frame_vector_args(vlib_frame_t *f)
Get pointer to frame vector data.
u32 index_t
A Data-Path Object is an object that represents actions that are applied to packets are they are swit...
#define static_always_inline
vlib_node_registration_t wg_output_tun_handoff
(constructor) VLIB_REGISTER_NODE (wg_output_tun_handoff)
static void vlib_node_increment_counter(vlib_main_t *vm, u32 node_index, u32 counter_index, u64 increment)
struct _vlib_node_registration vlib_node_registration_t
description fragment has unexpected format
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 wg_peer_t * wg_peer_get(index_t peeri)
#define INDEX_INVALID
Invalid index - used when no index is known blazoned capitals INVALID speak volumes where ~0 does not...
vl_api_fib_path_type_t type
static char * wg_handoff_error_strings[]
VLIB buffer representation.
#define VLIB_REGISTER_NODE(x,...)
static u8 * format_wg_handoff_trace(u8 *s, va_list *args)
vl_api_wireguard_peer_flags_t flags