![]() |
FD.io VPP
v17.04-9-g99c0734
Vector Packet Processing
|
IPv4 Forwarding. More...
Include dependency graph for ip4_forward.c:Go to the source code of this file.
Data Structures | |
| struct | ip4_forward_next_trace_t |
Macros | |
| #define | foreach_notrace_ip4_arp_error |
Enumerations | |
| enum | ip4_rewrite_next_t { IP4_REWRITE_NEXT_DROP, IP4_REWRITE_NEXT_ICMP_ERROR } |
Variables | |
| vlib_node_registration_t | ip4_lookup_node |
| (constructor) VLIB_REGISTER_NODE (ip4_lookup_node) More... | |
| vlib_node_registration_t | ip4_load_balance_node |
| (constructor) VLIB_REGISTER_NODE (ip4_load_balance_node) More... | |
| ip4_main_t | ip4_main |
| Global ip4 main structure. More... | |
| static vlib_node_registration_t | ip4_drop_node |
| (constructor) VLIB_REGISTER_NODE (ip4_drop_node) More... | |
| static vlib_node_registration_t | ip4_punt_node |
| (constructor) VLIB_REGISTER_NODE (ip4_punt_node) More... | |
| vlib_node_registration_t | ip4_local_node |
| (constructor) VLIB_REGISTER_NODE (ip4_local_node) More... | |
| static vlib_node_registration_t | ip4_local_end_of_arc_node |
| (constructor) VLIB_REGISTER_NODE (ip4_local_end_of_arc_node) More... | |
| static vlib_cli_command_t | show_ip_local |
| (constructor) VLIB_CLI_COMMAND (show_ip_local) More... | |
| static char * | ip4_arp_error_strings [] |
| vlib_node_registration_t | ip4_arp_node |
| (constructor) VLIB_REGISTER_NODE (ip4_arp_node) More... | |
| vlib_node_registration_t | ip4_glean_node |
| (constructor) VLIB_REGISTER_NODE (ip4_glean_node) More... | |
| vlib_node_registration_t | ip4_rewrite_node |
| (constructor) VLIB_REGISTER_NODE (ip4_rewrite_node) More... | |
| vlib_node_registration_t | ip4_rewrite_mcast_node |
| (constructor) VLIB_REGISTER_NODE (ip4_rewrite_mcast_node) More... | |
| vlib_node_registration_t | ip4_midchain_node |
| (constructor) VLIB_REGISTER_NODE (ip4_midchain_node) More... | |
| static vlib_cli_command_t | set_interface_ip_table_command |
| (constructor) VLIB_CLI_COMMAND (set_interface_ip_table_command) More... | |
| static vlib_cli_command_t | lookup_test_command |
| (constructor) VLIB_CLI_COMMAND (lookup_test_command) More... | |
| static vlib_cli_command_t | set_ip_flow_hash_command |
| (constructor) VLIB_CLI_COMMAND (set_ip_flow_hash_command) More... | |
| static vlib_cli_command_t | set_ip_classify_command |
| (constructor) VLIB_CLI_COMMAND (set_ip_classify_command) More... | |
IPv4 Forwarding.
This file contains the source code for IPv4 forwarding.
Definition in file ip4_forward.c.
| #define foreach_notrace_ip4_arp_error |
Definition at line 2220 of file ip4_forward.c.
| enum ip4_rewrite_next_t |
| Enumerator | |
|---|---|
| IP4_REWRITE_NEXT_DROP | |
| IP4_REWRITE_NEXT_ICMP_ERROR | |
Definition at line 2315 of file ip4_forward.c.
|
static |
| clib_error_t* arp_notrace_init | ( | vlib_main_t * | vm | ) |
Definition at line 1196 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:Definition at line 1209 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:| clib_error_t* ip4_add_del_interface_address | ( | vlib_main_t * | vm, |
| u32 | sw_if_index, | ||
| ip4_address_t * | address, | ||
| u32 | address_length, | ||
| u32 | is_del | ||
| ) |
Definition at line 941 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 855 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 734 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
|
inlinestatic |
Definition at line 1984 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 806 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 1351 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 1331 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void ip4_forward_next_trace | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | node, | ||
| vlib_frame_t * | frame, | ||
| vlib_rx_or_tx_t | which_adj_index | ||
| ) |
Definition at line 1244 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
| ip4_address_t* ip4_interface_first_address | ( | ip4_main_t * | im, |
| u32 | sw_if_index, | ||
| ip_interface_address_t ** | result_ia | ||
| ) |
Definition at line 710 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
|
static |
Definition at line 1881 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
|
inlinestatic |
Definition at line 1483 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
IPv4 lookup node.
ip4-lookup This is the main IPv4 lookup dispatch node.
| vm | vlib_main_t corresponding to the current thread |
| node | vlib_node_runtime_t |
| frame | vlib_frame_t whose contents should be dispatched |
Uses:
vnet_buffer(b)->sw_if_index[VLIB_RX]sw_if_index value of the interface that the packet was received on.vnet_buffer(b)->sw_if_index[VLIB_TX]~0 then the node performs a longest prefix match (LPM) for the packet destination address in the FIB attached to the receive interface.[VLIB_TX] is a FIB index value (0, 1, ...) and not a VRF id.Sets:
vnet_buffer(b)->ip.adj_index[VLIB_TX]Next Index:
adj->lookup_next_index (where adj is the lookup result adjacency). Definition at line 501 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:| clib_error_t* ip4_lookup_init | ( | vlib_main_t * | vm | ) |
Definition at line 1120 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
Definition at line 69 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:| int ip4_lookup_validate | ( | ip4_address_t * | a, |
| u32 | fib_index0 | ||
| ) |
Definition at line 2895 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
| clib_error_t* ip4_probe_neighbor | ( | vlib_main_t * | vm, |
| ip4_address_t * | dst, | ||
| u32 | sw_if_index | ||
| ) |
Definition at line 2246 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 1932 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
IPv4 rewrite node.
ip4-rewrite This is the IPv4 transit-rewrite node: decrement TTL, fix the ipv4 header checksum, fetch the ip adjacency, check the outbound mtu, apply the adjacency rewrite, and send pkts to the adjacency rewrite header's rewrite_next_index.
| vm | vlib_main_t corresponding to the current thread |
| node | vlib_node_runtime_t |
| frame | vlib_frame_t whose contents should be dispatched |
Uses:
vnet_buffer(b)->ip.adj_index[VLIB_TX]adj->lookup_next_indexadj->rewrite_headerSets:
b->current_data, b->current_lengthNext Indices:
adj->rewrite_header.next_index or error-drop Definition at line 2734 of file ip4_forward.c.
Here is the call graph for this function:
|
inlinestatic |
Definition at line 2322 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
|
static |
Definition at line 826 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:| u16 ip4_tcp_udp_compute_checksum | ( | vlib_main_t * | vm, |
| vlib_buffer_t * | p0, | ||
| ip4_header_t * | ip0 | ||
| ) |
Definition at line 1394 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:| u32 ip4_tcp_udp_validate_checksum | ( | vlib_main_t * | vm, |
| vlib_buffer_t * | p0 | ||
| ) |
Definition at line 1449 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
|
static |
|
static |
|
static |
| VLIB_NODE_FUNCTION_MULTIARCH | ( | ip4_lookup_node | , |
| ip4_lookup | |||
| ) |
| VLIB_NODE_FUNCTION_MULTIARCH | ( | ip4_load_balance_node | , |
| ip4_load_balance | |||
| ) |
| VLIB_NODE_FUNCTION_MULTIARCH | ( | ip4_drop_node | , |
| ip4_drop | |||
| ) |
| VLIB_NODE_FUNCTION_MULTIARCH | ( | ip4_punt_node | , |
| ip4_punt | |||
| ) |
| VLIB_NODE_FUNCTION_MULTIARCH | ( | ip4_local_node | , |
| ip4_local | |||
| ) |
| VLIB_NODE_FUNCTION_MULTIARCH | ( | ip4_midchain_node | , |
| ip4_midchain | |||
| ) |
| VNET_FEATURE_ARC_INIT | ( | ip4_unicast | , |
| static | |||
| ) |
Here is the caller graph for this function:| VNET_FEATURE_ARC_INIT | ( | ip4_multicast | , |
| static | |||
| ) |
| VNET_FEATURE_ARC_INIT | ( | ip4_output | , |
| static | |||
| ) |
| VNET_FEATURE_ARC_INIT | ( | ip4_local | ) |
| VNET_FEATURE_INIT | ( | ip4_flow_classify | , |
| static | |||
| ) |
Here is the caller graph for this function:| VNET_FEATURE_INIT | ( | ip4_inacl | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | ip4_source_check_1 | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | ip4_source_check_2 | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | ip4_source_and_port_range_check_rx | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | ip4_policer_classify | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | ip4_ipsec | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | ip4_vpath | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | ip4_vxlan_bypass | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | ip4_drop | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | ip4_lookup | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | ip4_vpath_mc | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | ip4_mc_drop | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | ip4_lookup_mc | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | ip4_source_and_port_range_check_tx | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | ip4_ipsec_output | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | ip4_interface_output | , |
| static | |||
| ) |
| VNET_FEATURE_INIT | ( | ip4_local_end_of_arc | , |
| static | |||
| ) |
| int vnet_set_ip4_classify_intfc | ( | vlib_main_t * | vm, |
| u32 | sw_if_index, | ||
| u32 | table_index | ||
| ) |
Definition at line 3149 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:Definition at line 2997 of file ip4_forward.c.
Here is the call graph for this function:
Here is the caller graph for this function:| VNET_SW_INTERFACE_ADD_DEL_FUNCTION | ( | ip4_sw_interface_add_del | ) |
Here is the caller graph for this function:
|
static |
Definition at line 2191 of file ip4_forward.c.
| vlib_node_registration_t ip4_arp_node |
(constructor) VLIB_REGISTER_NODE (ip4_arp_node)
Definition at line 2200 of file ip4_forward.c.
|
static |
(constructor) VLIB_REGISTER_NODE (ip4_drop_node)
Definition at line 1363 of file ip4_forward.c.
| vlib_node_registration_t ip4_glean_node |
(constructor) VLIB_REGISTER_NODE (ip4_glean_node)
Definition at line 2210 of file ip4_forward.c.
| vlib_node_registration_t ip4_load_balance_node |
(constructor) VLIB_REGISTER_NODE (ip4_load_balance_node)
Definition at line 700 of file ip4_forward.c.
|
static |
(constructor) VLIB_REGISTER_NODE (ip4_local_end_of_arc_node)
Definition at line 1913 of file ip4_forward.c.
| vlib_node_registration_t ip4_local_node |
(constructor) VLIB_REGISTER_NODE (ip4_local_node)
Definition at line 1887 of file ip4_forward.c.
| vlib_node_registration_t ip4_lookup_node |
(constructor) VLIB_REGISTER_NODE (ip4_lookup_node)
Definition at line 512 of file ip4_forward.c.
| ip4_main_t ip4_main |
Global ip4 main structure.
Definition at line 1117 of file ip4_forward.c.
| vlib_node_registration_t ip4_midchain_node |
(constructor) VLIB_REGISTER_NODE (ip4_midchain_node)
Definition at line 2789 of file ip4_forward.c.
|
static |
(constructor) VLIB_REGISTER_NODE (ip4_punt_node)
Definition at line 1377 of file ip4_forward.c.
| vlib_node_registration_t ip4_rewrite_mcast_node |
(constructor) VLIB_REGISTER_NODE (ip4_rewrite_mcast_node)
Definition at line 2779 of file ip4_forward.c.
| vlib_node_registration_t ip4_rewrite_node |
(constructor) VLIB_REGISTER_NODE (ip4_rewrite_node)
Definition at line 2764 of file ip4_forward.c.
|
static |
(constructor) VLIB_CLI_COMMAND (lookup_test_command)
Definition at line 2988 of file ip4_forward.c.
|
static |
(constructor) VLIB_CLI_COMMAND (set_interface_ip_table_command)
Definition at line 2886 of file ip4_forward.c.
|
static |
(constructor) VLIB_CLI_COMMAND (set_ip_classify_command)
Definition at line 3262 of file ip4_forward.c.
|
static |
(constructor) VLIB_CLI_COMMAND (set_ip_flow_hash_command)
Definition at line 3139 of file ip4_forward.c.
|
static |
(constructor) VLIB_CLI_COMMAND (show_ip_local)
Definition at line 1975 of file ip4_forward.c.