|
FD.io VPP
v21.10.1-2-g0a485f517
Vector Packet Processing
|
Go to the documentation of this file.
58 u32 next0, bi0, bdei0;
112 n_left_to_next, bi0, next0);
140 .name =
"bier-disp-dispatch",
141 .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
vlib_node_registration_t bier_disp_dispatch_node
(constructor) VLIB_REGISTER_NODE (bier_disp_dispatch_node)
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
#define BIER_RX_ITF
The BIER inline functions acting on the bier header.
bier_hdr_proto_id_t pproto
BIER payload protocol used to dispatch.
static bier_hdr_proto_id_t bier_hdr_get_proto_id(const bier_hdr_t *bier_hdr)
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
u8 * format_bier_hdr_proto(u8 *s, va_list *ap)
Format the header length field.
vlib_main_t vlib_node_runtime_t vlib_frame_t * from_frame
struct bier_disp_entry_t_::@152 bde_fwd[BIER_HDR_N_PROTO]
The DPO contributed from the per-payload protocol parents on cacheline 1.
static void bier_hdr_ntoh(bier_hdr_t *bier_hdr)
static void vlib_buffer_advance(vlib_buffer_t *b, word l)
Advance current data pointer by the supplied (signed!) amount.
bier_disposition : The BIER disposition object
u32 rpf_id
RPF-ID packet is tagged with.
#define VLIB_NODE_FN(node)
static void * vlib_frame_vector_args(vlib_frame_t *f)
Get pointer to frame vector data.
A struct to hold tracing information for the MPLS label imposition node.
struct _vlib_node_registration vlib_node_registration_t
enum bier_hdr_proto_id_t_ bier_hdr_proto_id_t
BIER header protocol payload types.
#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.
struct bier_disp_dispatch_trace_t_ bier_disp_dispatch_trace_t
A struct to hold tracing information for the MPLS label imposition node.
description fragment has unexpected format
vlib_put_next_frame(vm, node, next_index, 0)
static u8 * format_bier_disp_dispatch_trace(u8 *s, va_list *args)
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.
A BIER header of variable length The encoding follows: https://tools.ietf.org/html/draft-ietf-bier-mp...
The identity of a DPO is a combination of its type and its instance number/index of objects of that t...
static bier_disp_entry_t * bier_disp_entry_get(index_t bdi)
#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 bier_disp_dispatch_inline(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
static bier_hdr_entropy_t bier_hdr_get_entropy(const bier_hdr_t *bier_hdr)
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,...)