FD.io VPP
v20.09-64-g4f7b92f0a
Vector Packet Processing
|
Local TCP/IP stack punt infrastructure. More...
Go to the source code of this file.
Data Structures | |
struct | udp_punt_trace_t |
struct | punt_trace_t |
Macros | |
#define | punt_error(n, s) PUNT_ERROR_##n, |
#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_error_t { PUNT_N_ERROR } |
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 | |
static char * | punt_error_strings [] |
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... | |
vlib_node_registration_t | ip4_proto_punt_socket_node |
(constructor) VLIB_REGISTER_NODE (ip4_proto_punt_socket_node) More... | |
vlib_node_registration_t | ip6_proto_punt_socket_node |
(constructor) VLIB_REGISTER_NODE (ip6_proto_punt_socket_node) More... | |
vlib_node_registration_t | exception_punt_socket_node |
(constructor) VLIB_REGISTER_NODE (exception_punt_socket_node) More... | |
vlib_node_registration_t | punt_socket_rx_node |
(constructor) VLIB_REGISTER_NODE (punt_socket_rx_node) 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_node.c.
#define foreach_punt_next |
Definition at line 47 of file punt_node.c.
#define punt_error | ( | n, | |
s | |||
) | PUNT_ERROR_##n, |
Definition at line 41 of file punt_node.c.
#define punt_error | ( | n, | |
s | |||
) | s, |
Definition at line 41 of file punt_node.c.
#define punt_next_punt | ( | is_ip4 | ) | (is_ip4 ? PUNT_NEXT_PUNT4 : PUNT_NEXT_PUNT6) |
Definition at line 67 of file punt_node.c.
enum punt_error_t |
Enumerator | |
---|---|
PUNT_N_ERROR |
Definition at line 39 of file punt_node.c.
enum punt_next_t |
Enumerator | |
---|---|
PUNT_N_NEXT |
Definition at line 51 of file punt_node.c.
Enumerator | |
---|---|
PUNT_SOCKET_RX_NEXT_INTERFACE_OUTPUT | |
PUNT_SOCKET_RX_NEXT_IP4_LOOKUP | |
PUNT_SOCKET_RX_NEXT_IP6_LOOKUP | |
PUNT_SOCKET_RX_N_NEXT |
Definition at line 59 of file punt_node.c.
|
static |
|
static |
|
static |
|
inlinestatic |
VLIB buffer chain -> Unix iovec(s).
Definition at line 249 of file punt_node.c.
|
static |
|
static |
Definition at line 510 of file punt_node.c.
|
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 80 of file punt_node.c.
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_data
vnet_buffer(b)->current_len
Next Index:
Definition at line 153 of file punt_node.c.
|
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_data
vnet_buffer(b)->current_len
Next Index:
Definition at line 181 of file punt_node.c.
|
static |
vlib_node_registration_t exception_punt_socket_node |
(constructor) VLIB_REGISTER_NODE (exception_punt_socket_node)
Definition at line 480 of file punt_node.c.
vlib_node_registration_t ip4_proto_punt_socket_node |
(constructor) VLIB_REGISTER_NODE (ip4_proto_punt_socket_node)
Definition at line 461 of file punt_node.c.
vlib_node_registration_t ip6_proto_punt_socket_node |
(constructor) VLIB_REGISTER_NODE (ip6_proto_punt_socket_node)
Definition at line 471 of file punt_node.c.
|
static |
Definition at line 126 of file punt_node.c.
vlib_node_registration_t punt_socket_rx_node |
(constructor) VLIB_REGISTER_NODE (punt_socket_rx_node)
Definition at line 621 of file punt_node.c.
vlib_node_registration_t udp4_punt_node |
(constructor) VLIB_REGISTER_NODE (udp4_punt_node)
Definition at line 189 of file punt_node.c.
vlib_node_registration_t udp4_punt_socket_node |
(constructor) VLIB_REGISTER_NODE (udp4_punt_socket_node)
Definition at line 442 of file punt_node.c.
vlib_node_registration_t udp6_punt_node |
(constructor) VLIB_REGISTER_NODE (udp6_punt_node)
Definition at line 205 of file punt_node.c.
vlib_node_registration_t udp6_punt_socket_node |
(constructor) VLIB_REGISTER_NODE (udp6_punt_socket_node)
Definition at line 452 of file punt_node.c.