![]() |
FD.io VPP
v19.04.4-rc0-5-ge88582fac
Vector Packet Processing
|
Local TCP/IP stack punt infrastructure. More...
Include dependency graph for punt.c:Go to the source code of this file.
Data Structures | |
| struct | udp_punt_trace_t |
| struct | punt_trace_t |
Macros | |
| #define | foreach_punt_next |
| #define | punt_next_punt(is_ip4) (is_ip4 ? PUNT_NEXT_PUNT4 : PUNT_NEXT_PUNT6) |
| #define | punt_error(n, s) s, |
Enumerations | |
| enum | punt_next_t { PUNT_N_NEXT } |
| enum | punt_socket_rx_next_e { PUNT_SOCKET_RX_NEXT_INTERFACE_OUTPUT, PUNT_SOCKET_RX_NEXT_IP4_LOOKUP, PUNT_SOCKET_RX_NEXT_IP6_LOOKUP, PUNT_SOCKET_RX_N_NEXT } |
Variables | |
| vlib_node_registration_t | udp4_punt_node |
| (constructor) VLIB_REGISTER_NODE (udp4_punt_node) More... | |
| vlib_node_registration_t | udp6_punt_node |
| (constructor) VLIB_REGISTER_NODE (udp6_punt_node) More... | |
| vlib_node_registration_t | udp4_punt_socket_node |
| (constructor) VLIB_REGISTER_NODE (udp4_punt_socket_node) More... | |
| vlib_node_registration_t | udp6_punt_socket_node |
| (constructor) VLIB_REGISTER_NODE (udp6_punt_socket_node) More... | |
| static vlib_node_registration_t | punt_socket_rx_node |
| (constructor) VLIB_REGISTER_NODE (punt_socket_rx_node) More... | |
| punt_main_t | punt_main |
| static char * | punt_error_strings [] |
| static vlib_cli_command_t | punt_command |
| (constructor) VLIB_CLI_COMMAND (punt_command) More... | |
| static vlib_cli_command_t | punt_socket_register_command |
| (constructor) VLIB_CLI_COMMAND (punt_socket_register_command) More... | |
| static vlib_cli_command_t | punt_socket_deregister_command |
| (constructor) VLIB_CLI_COMMAND (punt_socket_deregister_command) More... | |
| static vlib_cli_command_t | show_punt_socket_registration_command |
| (constructor) VLIB_CLI_COMMAND (show_punt_socket_registration_command) More... | |
Local TCP/IP stack punt infrastructure.
Provides a set of VPP nodes together with the relevant APIs and CLI commands in order to adjust and dispatch packets from the VPP data plane to the local TCP/IP stack
Definition in file punt.c.
| #define foreach_punt_next |
| #define punt_error | ( | n, | |
| s | |||
| ) | s, |
| #define punt_next_punt | ( | is_ip4 | ) | (is_ip4 ? PUNT_NEXT_PUNT4 : PUNT_NEXT_PUNT6) |
| enum punt_next_t |
| clib_error_t* ip_punt_init | ( | vlib_main_t * | vm | ) |
|
static |
|
static |
|
static |
|
static |
| punt_socket_detail_t* punt_socket_entries | ( | u8 | ipv | ) |
|
static |
|
static |
|
static |
|
static |
|
static |
|
inlinestatic |
IPv4/IPv6 UDP punt node main loop.
This is the main loop inline function for IPv4/IPv6 UDP punt transition node.
| vm | vlib_main_t corresponding to the current thread |
| node | vlib_node_runtime_t |
| frame | vlib_frame_t whose contents should be dispatched |
| is_ipv4 | indicates if called for IPv4 or IPv6 node |
Definition at line 93 of file punt.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
| VLIB_NODE_FN() udp4_punt_node | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | node, | ||
| vlib_frame_t * | from_frame | ||
| ) |
IPv4 UDP punt node.
ip4-udp-punt This is the IPv4 UDP punt transition node. It is registered as a next node for the "ip4-udp-lookup" handling UDP port(s) requested for punt. The buffer's current data pointer is adjusted to the original packet IPv4 header. All buffers are dispatched to "error-punt".
| vm | vlib_main_t corresponding to the current thread |
| node | vlib_node_runtime_t |
| frame | vlib_frame_t whose contents should be dispatched |
Sets:
vnet_buffer(b)->current_datavnet_buffer(b)->current_lenNext Index:
Definition at line 166 of file punt.c.
Here is the call graph for this function:
|
static |
| VLIB_NODE_FN() udp6_punt_node | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | node, | ||
| vlib_frame_t * | from_frame | ||
| ) |
IPv6 UDP punt node.
ip6-udp-punt This is the IPv6 UDP punt transition node. It is registered as a next node for the "ip6-udp-lookup" handling UDP port(s) requested for punt. The buffer's current data pointer is adjusted to the original packet IPv6 header. All buffers are dispatched to "error-punt".
| vm | vlib_main_t corresponding to the current thread |
| node | vlib_node_runtime_t |
| frame | vlib_frame_t whose contents should be dispatched |
Sets:
vnet_buffer(b)->current_datavnet_buffer(b)->current_lenNext Index:
Definition at line 194 of file punt.c.
Here is the call graph for this function:
|
static |
| clib_error_t* vnet_punt_add_del | ( | vlib_main_t * | vm, |
| u8 | ipv, | ||
| u8 | protocol, | ||
| u16 | port, | ||
| bool | is_add | ||
| ) |
Request IP traffic punt to the local TCP/IP stack.
Note
| vm | vlib_main_t corresponding to the current thread |
| ipv | IP protcol version. 4 - IPv4, 6 - IPv6, ~0 for both IPv6 and IPv4 |
| protocol | 8-bits L4 protocol value UDP is 17 TCP is 1 |
| port | 16-bits L4 (TCP/IP) port number when applicable (UDP only) |
Definition at line 708 of file punt.c.
Here is the call graph for this function:
Here is the caller graph for this function:| char* vnet_punt_get_server_pathname | ( | void | ) |
| clib_error_t* vnet_punt_socket_add | ( | vlib_main_t * | vm, |
| u32 | header_version, | ||
| bool | is_ip4, | ||
| u8 | protocol, | ||
| u16 | port, | ||
| char * | client_pathname | ||
| ) |
| clib_error_t* vnet_punt_socket_del | ( | vlib_main_t * | vm, |
| bool | is_ip4, | ||
| u8 | l4_protocol, | ||
| u16 | port | ||
| ) |
|
static |
(constructor) VLIB_CLI_COMMAND (punt_command)
|
static |
| punt_main_t punt_main |
|
static |
(constructor) VLIB_CLI_COMMAND (punt_socket_deregister_command)
|
static |
(constructor) VLIB_CLI_COMMAND (punt_socket_register_command)
|
static |
(constructor) VLIB_REGISTER_NODE (punt_socket_rx_node)
|
static |
(constructor) VLIB_CLI_COMMAND (show_punt_socket_registration_command)
| vlib_node_registration_t udp4_punt_node |
(constructor) VLIB_REGISTER_NODE (udp4_punt_node)
| vlib_node_registration_t udp4_punt_socket_node |
(constructor) VLIB_REGISTER_NODE (udp4_punt_socket_node)
| vlib_node_registration_t udp6_punt_node |
(constructor) VLIB_REGISTER_NODE (udp6_punt_node)
| vlib_node_registration_t udp6_punt_socket_node |
(constructor) VLIB_REGISTER_NODE (udp6_punt_socket_node)