FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the source code of this file.
Data Structures | |
struct | ip4_input_trace_t |
Functions | |
static u8 * | format_ip4_input_trace (u8 *s, va_list *va) |
static_always_inline u32 | ip4_input_set_next (u32 sw_if_index, vlib_buffer_t *b, int arc_enabled) |
static_always_inline void | ip4_input_check_sw_if_index (vlib_main_t *vm, vlib_simple_counter_main_t *cm, u32 sw_if_index, u32 *last_sw_if_index, u32 *cnt, int *arc_enabled) |
static uword | ip4_input_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, int verify_checksum) |
VLIB_NODE_FN() | ip4_input_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
IPv4 input node. More... | |
VLIB_NODE_FN() | ip4_input_no_checksum_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
static clib_error_t * | ip4_init (vlib_main_t *vm) |
Variables | |
char * | ip4_error_strings [] |
vlib_node_registration_t | ip4_input_node |
(constructor) VLIB_REGISTER_NODE (ip4_input_node) More... | |
vlib_node_registration_t | ip4_input_no_checksum_node |
(constructor) VLIB_REGISTER_NODE (ip4_input_no_checksum_node) More... | |
Definition at line 52 of file ip4_input.c.
|
static |
static_always_inline void ip4_input_check_sw_if_index | ( | vlib_main_t * | vm, |
vlib_simple_counter_main_t * | cm, | ||
u32 | sw_if_index, | ||
u32 * | last_sw_if_index, | ||
u32 * | cnt, | ||
int * | arc_enabled | ||
) |
Definition at line 92 of file ip4_input.c.
|
inlinestatic |
Definition at line 122 of file ip4_input.c.
VLIB_NODE_FN() ip4_input_no_checksum_node | ( | vlib_main_t * | vm, |
vlib_node_runtime_t * | node, | ||
vlib_frame_t * | frame | ||
) |
VLIB_NODE_FN() ip4_input_node | ( | vlib_main_t * | vm, |
vlib_node_runtime_t * | node, | ||
vlib_frame_t * | frame | ||
) |
IPv4 input node.
ip4-input
This is the IPv4 input node: validates ip4 header checksums, verifies ip header lengths, discards pkts with expired TTLs, and sends pkts to the set of ip feature nodes configured on the rx interface.
vm | vlib_main_t corresponding to the current thread |
node | vlib_node_runtime_t |
frame | vlib_frame_t whose contents should be dispatched |
Uses:
b->current_config_index
corresponding to each pkt's rx sw_if_index.vnet_buffer(b)->sw_if_index[VLIB_RX]
sw_if_index
value of the interface that the packet was received on.Sets:
vnet_buffer(b)->ip.adj_index[VLIB_TX]
Next Indices:
vnet_get_config_data (... &next0 ...);
or error-drop
Definition at line 363 of file ip4_input.c.
static_always_inline u32 ip4_input_set_next | ( | u32 | sw_if_index, |
vlib_buffer_t * | b, | ||
int | arc_enabled | ||
) |
Definition at line 65 of file ip4_input.c.
char* ip4_error_strings[] |
Definition at line 377 of file ip4_input.c.
vlib_node_registration_t ip4_input_no_checksum_node |
(constructor) VLIB_REGISTER_NODE (ip4_input_no_checksum_node)
Definition at line 408 of file ip4_input.c.
vlib_node_registration_t ip4_input_node |
(constructor) VLIB_REGISTER_NODE (ip4_input_node)
Global ip4 input node.
Definition at line 385 of file ip4_input.c.