FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the source code of this file.
Data Structures | |
struct | icmp_echo_header_t |
struct | tcp_udp_header_t |
struct | nat64_prefix_t |
struct | nat64_static_bib_to_update_t |
struct | nat64_address_t |
struct | nat64_interface_t |
struct | nat64_main_t |
Macros | |
#define | foreach_nat64_tcp_ses_state |
#define | NAT64_INTERFACE_FLAG_IS_INSIDE 1 |
#define | NAT64_INTERFACE_FLAG_IS_OUTSIDE 2 |
#define | nat64_interface_is_inside(i) i->flags & NAT64_INTERFACE_FLAG_IS_INSIDE |
Check if NAT64 interface is inside. More... | |
#define | nat64_interface_is_outside(i) i->flags & NAT64_INTERFACE_FLAG_IS_OUTSIDE |
Check if NAT64 interface is outside. More... | |
#define | nat64_log_err(...) vlib_log(VLIB_LOG_LEVEL_ERR, nat64_main.log_class, __VA_ARGS__) |
#define | nat64_log_warn(...) vlib_log(VLIB_LOG_LEVEL_WARNING, nat64_main.log_class, __VA_ARGS__) |
#define | nat64_log_notice(...) vlib_log(VLIB_LOG_LEVEL_NOTICE, nat64_main.log_class, __VA_ARGS__) |
#define | nat64_log_info(...) vlib_log(VLIB_LOG_LEVEL_INFO, nat64_main.log_class, __VA_ARGS__) |
#define | nat64_log_debug(...) vlib_log(VLIB_LOG_LEVEL_DEBUG, nat64_main.log_class, __VA_ARGS__) |
Typedefs | |
typedef int(* | nat64_pool_addr_walk_fn_t) (nat64_address_t *addr, void *ctx) |
Call back function when walking addresses in NAT64 pool, non-zero return value stop walk. More... | |
typedef int(* | nat64_interface_walk_fn_t) (nat64_interface_t *i, void *ctx) |
Call back function when walking interfaces with NAT64 feature, non-zero return value stop walk. More... | |
typedef int(* | nat64_prefix_walk_fn_t) (nat64_prefix_t *pref64, void *ctx) |
Call back function when walking addresses in NAT64 prefixes, non-zero return value stop walk. More... | |
Enumerations | |
enum | nat64_tcp_ses_state_t { foreach_nat64_tcp_ses_state } |
enum | nat64_cleaner_process_event_e { NAT64_CLEANER_RESCHEDULE = 1 } |
Functions | |
int | nat64_add_del_pool_addr (u32 thread_index, ip4_address_t *addr, u32 vrf_id, u8 is_add) |
Add/delete address to NAT64 pool. More... | |
void | nat64_pool_addr_walk (nat64_pool_addr_walk_fn_t fn, void *ctx) |
Walk NAT64 pool. More... | |
int | nat64_add_interface_address (u32 sw_if_index, int is_add) |
NAT64 pool address from specific (DHCP addressed) interface. More... | |
int | nat64_interface_add_del (u32 sw_if_index, u8 is_inside, u8 is_add) |
Enable/disable NAT64 feature on the interface. More... | |
void | nat64_interfaces_walk (nat64_interface_walk_fn_t fn, void *ctx) |
Walk NAT64 interfaces. More... | |
clib_error_t * | nat64_init (vlib_main_t *vm) |
Initialize NAT64. More... | |
int | nat64_add_del_static_bib_entry (ip6_address_t *in_addr, ip4_address_t *out_addr, u16 in_port, u16 out_port, u8 proto, u32 vrf_id, u8 is_add) |
Add/delete static NAT64 BIB entry. More... | |
int | nat64_alloc_out_addr_and_port (u32 fib_index, nat_protocol_t proto, ip4_address_t *addr, u16 *port, u32 thread_index) |
Alloce IPv4 address and port pair from NAT64 pool. More... | |
int | nat64_set_udp_timeout (u32 timeout) |
Set UDP session timeout. More... | |
u32 | nat64_get_udp_timeout (void) |
Get UDP session timeout. More... | |
int | nat64_set_icmp_timeout (u32 timeout) |
Set ICMP session timeout. More... | |
u32 | nat64_get_icmp_timeout (void) |
Get ICMP session timeout. More... | |
int | nat64_set_tcp_timeouts (u32 trans, u32 est) |
Set TCP session timeouts. More... | |
u32 | nat64_get_tcp_trans_timeout (void) |
Get TCP transitory timeout. More... | |
u32 | nat64_get_tcp_est_timeout (void) |
Get TCP established timeout. More... | |
void | nat64_session_reset_timeout (nat64_db_st_entry_t *ste, vlib_main_t *vm) |
Reset NAT64 session timeout. More... | |
void | nat64_tcp_session_set_state (nat64_db_st_entry_t *ste, tcp_header_t *tcp, u8 is_ip6) |
Set NAT64 TCP session state. More... | |
int | nat64_add_del_prefix (ip6_address_t *prefix, u8 plen, u32 vrf_id, u8 is_add) |
Add/delete NAT64 prefix. More... | |
void | nat64_prefix_walk (nat64_prefix_walk_fn_t fn, void *ctx) |
Walk NAT64 prefixes. More... | |
void | nat64_compose_ip6 (ip6_address_t *ip6, ip4_address_t *ip4, u32 fib_index) |
Compose IPv4-embedded IPv6 addresses. More... | |
void | nat64_extract_ip4 (ip6_address_t *ip6, ip4_address_t *ip4, u32 fib_index) |
Extract IPv4 address from the IPv4-embedded IPv6 addresses. More... | |
void | nat64_set_hash (u32 bib_buckets, uword bib_memory_size, u32 st_buckets, uword st_memory_size) |
Set NAT64 hash tables configuration. More... | |
u32 | nat64_get_worker_in2out (ip6_address_t *addr) |
Get worker thread index for NAT64 in2out. More... | |
u32 | nat64_get_worker_out2in (vlib_buffer_t *b, ip4_header_t *ip) |
Get worker thread index for NAT64 out2in. More... | |
static_always_inline u8 | plugin_enabled () |
void | nat64_add_del_addr_to_fib (ip4_address_t *addr, u8 p_len, u32 sw_if_index, int is_add) |
int | nat64_plugin_enable (nat64_config_t c) |
int | nat64_plugin_disable () |
void | nat64_reset_timeouts () |
clib_error_t * | nat64_api_hookup (vlib_main_t *vm) |
Variables | |
nat64_main_t | nat64_main |
vlib_node_registration_t | nat64_in2out_node |
(constructor) VLIB_REGISTER_NODE (nat64_in2out_node) More... | |
vlib_node_registration_t | nat64_out2in_node |
(constructor) VLIB_REGISTER_NODE (nat64_out2in_node) More... | |
format_function_t | format_nat_protocol |
unformat_function_t | unformat_nat_protocol |
#define foreach_nat64_tcp_ses_state |
#define nat64_interface_is_inside | ( | i | ) | i->flags & NAT64_INTERFACE_FLAG_IS_INSIDE |
#define nat64_interface_is_outside | ( | i | ) | i->flags & NAT64_INTERFACE_FLAG_IS_OUTSIDE |
#define nat64_log_debug | ( | ... | ) | vlib_log(VLIB_LOG_LEVEL_DEBUG, nat64_main.log_class, __VA_ARGS__) |
#define nat64_log_err | ( | ... | ) | vlib_log(VLIB_LOG_LEVEL_ERR, nat64_main.log_class, __VA_ARGS__) |
#define nat64_log_info | ( | ... | ) | vlib_log(VLIB_LOG_LEVEL_INFO, nat64_main.log_class, __VA_ARGS__) |
#define nat64_log_notice | ( | ... | ) | vlib_log(VLIB_LOG_LEVEL_NOTICE, nat64_main.log_class, __VA_ARGS__) |
#define nat64_log_warn | ( | ... | ) | vlib_log(VLIB_LOG_LEVEL_WARNING, nat64_main.log_class, __VA_ARGS__) |
typedef int(* nat64_interface_walk_fn_t) (nat64_interface_t *i, void *ctx) |
typedef int(* nat64_pool_addr_walk_fn_t) (nat64_address_t *addr, void *ctx) |
typedef int(* nat64_prefix_walk_fn_t) (nat64_prefix_t *pref64, void *ctx) |
void nat64_add_del_addr_to_fib | ( | ip4_address_t * | addr, |
u8 | p_len, | ||
u32 | sw_if_index, | ||
int | is_add | ||
) |
int nat64_add_del_pool_addr | ( | u32 | thread_index, |
ip4_address_t * | addr, | ||
u32 | vrf_id, | ||
u8 | is_add | ||
) |
Add/delete address to NAT64 pool.
thread_index | Thread index used by ipfix nat logging (not address per thread). |
addr | IPv4 address. |
vrf_id | VRF id of tenant, ~0 means independent of VRF. |
is_add | 1 if add, 0 if delete. |
Definition at line 364 of file nat64.c.
Add/delete NAT64 prefix.
prefix | NAT64 prefix. |
plen | Prefix length. |
vrf_id | VRF id of tenant. |
is_add | 1 if add, 0 if delete. |
Definition at line 1206 of file nat64.c.
int nat64_add_del_static_bib_entry | ( | ip6_address_t * | in_addr, |
ip4_address_t * | out_addr, | ||
u16 | in_port, | ||
u16 | out_port, | ||
u8 | proto, | ||
u32 | vrf_id, | ||
u8 | is_add | ||
) |
Add/delete static NAT64 BIB entry.
in_addr | Inside IPv6 address. |
out_addr | Outside IPv4 address. |
in_port | Inside port number. |
out_port | Outside port number. |
proto | L4 protocol. |
vrf_id | VRF id of tenant. |
is_add | 1 if add, 0 if delete. |
Definition at line 879 of file nat64.c.
int nat64_add_interface_address | ( | u32 | sw_if_index, |
int | is_add | ||
) |
NAT64 pool address from specific (DHCP addressed) interface.
sw_if_index | Index of the interface. |
is_add | 1 if add, 0 if delete. |
Definition at line 455 of file nat64.c.
int nat64_alloc_out_addr_and_port | ( | u32 | fib_index, |
nat_protocol_t | proto, | ||
ip4_address_t * | addr, | ||
u16 * | port, | ||
u32 | thread_index | ||
) |
Alloce IPv4 address and port pair from NAT64 pool.
fib_index | FIB index of tenant. |
proto | L4 protocol. |
addr | Allocated IPv4 address. |
port | Allocated port number. |
thread_index | Thread index. |
Definition at line 757 of file nat64.c.
clib_error_t* nat64_api_hookup | ( | vlib_main_t * | vm | ) |
void nat64_compose_ip6 | ( | ip6_address_t * | ip6, |
ip4_address_t * | ip4, | ||
u32 | fib_index | ||
) |
void nat64_extract_ip4 | ( | ip6_address_t * | ip6, |
ip4_address_t * | ip4, | ||
u32 | fib_index | ||
) |
u32 nat64_get_icmp_timeout | ( | void | ) |
u32 nat64_get_tcp_est_timeout | ( | void | ) |
u32 nat64_get_tcp_trans_timeout | ( | void | ) |
u32 nat64_get_udp_timeout | ( | void | ) |
u32 nat64_get_worker_in2out | ( | ip6_address_t * | addr | ) |
u32 nat64_get_worker_out2in | ( | vlib_buffer_t * | b, |
ip4_header_t * | ip | ||
) |
clib_error_t* nat64_init | ( | vlib_main_t * | vm | ) |
Enable/disable NAT64 feature on the interface.
sw_if_index | Index of the interface. |
is_inside | 1 if inside, 0 if outside. |
is_add | 1 if add, 0 if delete. |
Definition at line 538 of file nat64.c.
void nat64_interfaces_walk | ( | nat64_interface_walk_fn_t | fn, |
void * | ctx | ||
) |
int nat64_plugin_disable | ( | ) |
int nat64_plugin_enable | ( | nat64_config_t | c | ) |
void nat64_pool_addr_walk | ( | nat64_pool_addr_walk_fn_t | fn, |
void * | ctx | ||
) |
void nat64_prefix_walk | ( | nat64_prefix_walk_fn_t | fn, |
void * | ctx | ||
) |
void nat64_reset_timeouts | ( | ) |
void nat64_session_reset_timeout | ( | nat64_db_st_entry_t * | ste, |
vlib_main_t * | vm | ||
) |
void nat64_set_hash | ( | u32 | bib_buckets, |
uword | bib_memory_size, | ||
u32 | st_buckets, | ||
uword | st_memory_size | ||
) |
Set NAT64 hash tables configuration.
bib_buckets | Number of BIB hash buckets. |
bib_memory_size | Memory size of BIB hash. |
st_buckets | Number of session table hash buckets. |
st_memory_size | Memory size of session table hash. |
int nat64_set_icmp_timeout | ( | u32 | timeout | ) |
int nat64_set_udp_timeout | ( | u32 | timeout | ) |
void nat64_tcp_session_set_state | ( | nat64_db_st_entry_t * | ste, |
tcp_header_t * | tcp, | ||
u8 | is_ip6 | ||
) |
static_always_inline u8 plugin_enabled | ( | ) |
format_function_t format_nat_protocol |
vlib_node_registration_t nat64_in2out_node |
(constructor) VLIB_REGISTER_NODE (nat64_in2out_node)
Definition at line 1230 of file nat64_in2out.c.
nat64_main_t nat64_main |
vlib_node_registration_t nat64_out2in_node |
(constructor) VLIB_REGISTER_NODE (nat64_out2in_node)
Definition at line 643 of file nat64_out2in.c.
unformat_function_t unformat_nat_protocol |