FD.io VPP
v21.10.1-2-g0a485f517
Vector Packet Processing
|
NAT44 EI inside to outside network translation. More...
Go to the source code of this file.
Data Structures | |
struct | nat44_ei_in2out_trace_t |
Macros | |
#define | foreach_nat44_ei_in2out_error |
NAT44 EI inside to outside network translation.
Definition in file nat44_ei_in2out.c.
#define foreach_nat44_ei_in2out_error |
Definition at line 82 of file nat44_ei_in2out.c.
Enumerator | |
---|---|
NAT44_EI_IN2OUT_N_ERROR |
Definition at line 91 of file nat44_ei_in2out.c.
Enumerator | |
---|---|
NAT44_EI_IN2OUT_HAIRPINNING_FINISH_NEXT_DROP | |
NAT44_EI_IN2OUT_HAIRPINNING_FINISH_NEXT_LOOKUP | |
NAT44_EI_IN2OUT_HAIRPINNING_FINISH_N_NEXT |
Definition at line 115 of file nat44_ei_in2out.c.
Enumerator | |
---|---|
NAT44_EI_IN2OUT_NEXT_LOOKUP | |
NAT44_EI_IN2OUT_NEXT_DROP | |
NAT44_EI_IN2OUT_NEXT_ICMP_ERROR | |
NAT44_EI_IN2OUT_NEXT_SLOW_PATH | |
NAT44_EI_IN2OUT_NEXT_HAIRPINNING_HANDOFF | |
NAT44_EI_IN2OUT_N_NEXT |
Definition at line 105 of file nat44_ei_in2out.c.
Definition at line 70 of file nat44_ei_in2out.c.
Definition at line 50 of file nat44_ei_in2out.c.
static_always_inline nat44_ei_in2out_error_t icmp_get_key | ( | vlib_buffer_t * | b, |
ip4_header_t * | ip0, | ||
ip4_address_t * | addr, | ||
u16 * | port, | ||
nat_protocol_t * | nat_proto | ||
) |
Definition at line 450 of file nat44_ei_in2out.c.
u32 nat44_ei_icmp_in2out | ( | vlib_buffer_t * | b0, |
ip4_header_t * | ip0, | ||
icmp46_header_t * | icmp0, | ||
u32 | sw_if_index0, | ||
u32 | rx_fib_index0, | ||
vlib_node_runtime_t * | node, | ||
u32 | next0, | ||
u32 | thread_index, | ||
nat44_ei_session_t ** | p_s0 | ||
) |
Definition at line 689 of file nat44_ei_in2out.c.
static_always_inline u32 nat44_ei_icmp_in2out_slow_path | ( | nat44_ei_main_t * | nm, |
vlib_buffer_t * | b0, | ||
ip4_header_t * | ip0, | ||
icmp46_header_t * | icmp0, | ||
u32 | sw_if_index0, | ||
u32 | rx_fib_index0, | ||
vlib_node_runtime_t * | node, | ||
u32 | next0, | ||
f64 | now, | ||
u32 | thread_index, | ||
nat44_ei_session_t ** | p_s0 | ||
) |
Definition at line 862 of file nat44_ei_in2out.c.
u32 nat44_ei_icmp_match_in2out_fast | ( | vlib_node_runtime_t * | node, |
u32 | thread_index, | ||
vlib_buffer_t * | b0, | ||
ip4_header_t * | ip0, | ||
ip4_address_t * | addr, | ||
u16 * | port, | ||
u32 * | fib_index, | ||
nat_protocol_t * | proto, | ||
nat44_ei_session_t ** | s0, | ||
u8 * | dont_translate | ||
) |
Definition at line 614 of file nat44_ei_in2out.c.
u32 nat44_ei_icmp_match_in2out_slow | ( | vlib_node_runtime_t * | node, |
u32 | thread_index, | ||
vlib_buffer_t * | b0, | ||
ip4_header_t * | ip0, | ||
ip4_address_t * | addr, | ||
u16 * | port, | ||
u32 * | fib_index, | ||
nat_protocol_t * | proto, | ||
nat44_ei_session_t ** | p_s0, | ||
u8 * | dont_translate | ||
) |
Get address and port values to be used for ICMP packet translation and create session if needed.
[in,out] | nm | NAT main |
[in,out] | node | NAT node runtime |
[in] | thread_index | thread index |
[in,out] | b0 | buffer containing packet to be translated |
[in,out] | ip0 | ip header |
[out] | p_proto | protocol used for matching |
[out] | p_value | address and port after NAT translation |
[out] | p_dont_translate | if packet should not be translated |
d | optional parameter | |
e | optional parameter |
Definition at line 509 of file nat44_ei_in2out.c.
static_always_inline int nat44_ei_in2out_hairpinning_finish_inline | ( | vlib_main_t * | vm, |
vlib_node_runtime_t * | node, | ||
vlib_frame_t * | frame | ||
) |
|
inlinestatic |
|
inlinestatic |
Definition at line 181 of file nat44_ei_in2out.c.
|
inlinestatic |
Definition at line 123 of file nat44_ei_in2out.c.
|
inlinestatic |
Definition at line 216 of file nat44_ei_in2out.c.
int nat44_i2o_is_idle_session_cb | ( | clib_bihash_kv_8_8_t * | kv, |
void * | arg | ||
) |
Definition at line 250 of file nat44_ei_in2out.c.
|
static |
Definition at line 885 of file nat44_ei_in2out.c.
|
static |
Definition at line 304 of file nat44_ei_in2out.c.
while | ( | n_left_from | , |
0 | |||
) |
Definition at line 1674 of file nat44_ei_in2out.c.
from = vlib_frame_vector_args (frame) |
Definition at line 1801 of file nat44_ei_in2out.c.
int is_hairpinning = 0 |
Definition at line 1799 of file nat44_ei_in2out.c.
Definition at line 1802 of file nat44_ei_in2out.c.
return frame n_vectors |
Definition at line 1984 of file nat44_ei_in2out.c.
|
static |
Definition at line 99 of file nat44_ei_in2out.c.
vlib_node_registration_t nat44_ei_in2out_fast_node |
(constructor) VLIB_REGISTER_NODE (nat44_ei_in2out_fast_node)
Definition at line 1987 of file nat44_ei_in2out.c.
vlib_node_registration_t nat44_ei_in2out_hairpinning_finish_interface_output_node |
(constructor) VLIB_REGISTER_NODE (nat44_ei_in2out_hairpinning_finish_interface_output_node)
Definition at line 2193 of file nat44_ei_in2out.c.
vlib_node_registration_t nat44_ei_in2out_hairpinning_finish_ip4_lookup_node |
(constructor) VLIB_REGISTER_NODE (nat44_ei_in2out_hairpinning_finish_ip4_lookup_node)
Definition at line 2167 of file nat44_ei_in2out.c.
vlib_node_registration_t nat44_ei_in2out_hairpinning_handoff_interface_output_node |
(constructor) VLIB_REGISTER_NODE (nat44_ei_in2out_hairpinning_handoff_interface_output_node)
Definition at line 2040 of file nat44_ei_in2out.c.
vlib_node_registration_t nat44_ei_in2out_hairpinning_handoff_ip4_lookup_node |
(constructor) VLIB_REGISTER_NODE (nat44_ei_in2out_hairpinning_handoff_ip4_lookup_node)
Definition at line 2018 of file nat44_ei_in2out.c.
vlib_node_registration_t nat44_ei_in2out_node |
(constructor) VLIB_REGISTER_NODE (nat44_ei_in2out_node)
Definition at line 1679 of file nat44_ei_in2out.c.
vlib_node_registration_t nat44_ei_in2out_output_node |
(constructor) VLIB_REGISTER_NODE (nat44_ei_in2out_output_node)
Definition at line 1709 of file nat44_ei_in2out.c.
vlib_node_registration_t nat44_ei_in2out_output_slowpath_node |
(constructor) VLIB_REGISTER_NODE (nat44_ei_in2out_output_slowpath_node)
Definition at line 1769 of file nat44_ei_in2out.c.
vlib_node_registration_t nat44_ei_in2out_slowpath_node |
(constructor) VLIB_REGISTER_NODE (nat44_ei_in2out_slowpath_node)
Definition at line 1739 of file nat44_ei_in2out.c.
next_index = node->cached_next_index |
Definition at line 1797 of file nat44_ei_in2out.c.
nat44_ei_main_t* nm = &nat44_ei_main |
Definition at line 1798 of file nat44_ei_in2out.c.
Definition at line 1673 of file nat44_ei_in2out.c.
Definition at line 1796 of file nat44_ei_in2out.c.
vlib_main_t* vm |
Definition at line 1673 of file nat44_ei_in2out.c.