FD.io VPP
v17.07.01-10-g3be13f0
Vector Packet Processing
|
Local TCP/IP stack punt infrastructure. More...
Go to the source code of this file.
Macros | |
#define | foreach_punt_next _ (PUNT, "error-punt") |
#define | punt_error(n, s) s, |
Enumerations | |
enum | punt_next_t { PUNT_N_NEXT } |
Functions | |
static uword | udp46_punt_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame, int is_ip4) |
IPv4/IPv6 UDP punt node main loop. More... | |
static uword | udp4_punt (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
IPv4 UDP punt node. More... | |
static uword | udp6_punt (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
IPv6 UDP punt node. More... | |
VLIB_NODE_FUNCTION_MULTIARCH (udp4_punt_node, udp4_punt) | |
VLIB_NODE_FUNCTION_MULTIARCH (udp6_punt_node, udp6_punt) | |
clib_error_t * | vnet_punt_add_del (vlib_main_t *vm, u8 ipv, u8 protocol, u16 port, int is_add) |
Request IP traffic punt to the local TCP/IP stack. More... | |
static clib_error_t * | udp_punt_cli (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
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... | |
static char * | punt_error_strings [] |
static vlib_cli_command_t | punt_udp_command |
(constructor) VLIB_CLI_COMMAND (punt_udp_command) More... | |
Local TCP/IP stack punt infrastructure.
Provides a set of VPP nodes togather 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 punt_error | ( | n, | |
s | |||
) | s, |
enum punt_next_t |
|
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 54 of file punt.c.
|
static |
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 127 of file punt.c.
|
static |
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 155 of file punt.c.
|
static |
VLIB_NODE_FUNCTION_MULTIARCH | ( | udp4_punt_node | , |
udp4_punt | |||
) |
VLIB_NODE_FUNCTION_MULTIARCH | ( | udp6_punt_node | , |
udp6_punt | |||
) |
clib_error_t* vnet_punt_add_del | ( | vlib_main_t * | vm, |
u8 | ipv, | ||
u8 | protocol, | ||
u16 | port, | ||
int | 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 Only value of 17 (UDP) is currently supported |
port | 16-bits L4 (TCP/IP) port number when applicable |
Definition at line 219 of file punt.c.
|
static |
|
static |
(constructor) VLIB_CLI_COMMAND (punt_udp_command)
vlib_node_registration_t udp4_punt_node |
(constructor) VLIB_REGISTER_NODE (udp4_punt_node)
vlib_node_registration_t udp6_punt_node |
(constructor) VLIB_REGISTER_NODE (udp6_punt_node)