Go to the source code of this file.
|
static u8 * | format_ip4_input_trace (u8 *s, va_list *va) |
|
static uword | ip4_input_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, int verify_checksum) |
|
static uword | ip4_input (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
| IPv4 input node. More...
|
|
static uword | ip4_input_no_checksum (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
|
| VLIB_NODE_FUNCTION_MULTIARCH (ip4_input_node, ip4_input) |
|
| VLIB_NODE_FUNCTION_MULTIARCH (ip4_input_no_checksum_node, ip4_input_no_checksum) |
|
static clib_error_t * | ip4_init (vlib_main_t *vm) |
|
static u8* format_ip4_input_trace |
( |
u8 * |
s, |
|
|
va_list * |
va |
|
) |
| |
|
static |
IPv4 input node.
- Node Identifier:
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.
- Parameters
-
- Graph mechanics: buffer metadata, next index usage
Uses:
- vnet_feature_config_main_t cm corresponding to each pkt's dst address unicast / multicast status.
b->current_config_index
corresponding to each pkt's rx sw_if_index.
- This sets the per-packet graph trajectory, ensuring that each packet visits the per-interface features in order.
vnet_buffer(b)->sw_if_index[VLIB_RX]
- Indicates the
sw_if_index
value of the interface that the packet was received on.
Sets:
vnet_buffer(b)->ip.adj_index[VLIB_TX]
- The lookup result adjacency index.
Next Indices:
- Dispatches pkts to the (first) feature node:
vnet_get_config_data (... &next0 ...);
or error-drop
Definition at line 258 of file ip4_input.c.
char* ip4_error_strings[] |
Initial value:= {
#define _(sym,string)
}
#define foreach_ip4_error
Definition at line 270 of file ip4_input.c.
Initial value:= {
.name = "ip4-input-no-checksum",
.vector_size =
sizeof (
u32),
.next_nodes = {
},
}
(constructor) VLIB_REGISTER_NODE (ip4_input_no_checksum_node)
Definition at line 302 of file ip4_input.c.
Initial value:= {
.name = "ip4-input",
.vector_size =
sizeof (
u32),
.next_nodes = {
},
}
(constructor) VLIB_REGISTER_NODE (ip4_input_node)
Global ip4 input node.
Definition at line 277 of file ip4_input.c.