FD.io VPP
v20.09-64-g4f7b92f0a
Vector Packet Processing
|
Go to the source code of this file.
Data Structures | |
struct | snat_ipfix_logging_nat44_ses_args_t |
struct | snat_ipfix_logging_addr_exhausted_args_t |
struct | snat_ipfix_logging_max_entries_per_user_args_t |
struct | nat_ipfix_logging_max_sessions_args_t |
struct | nat_ipfix_logging_max_bibs_args_t |
struct | nat_ipfix_logging_max_frags_ip4_args_t |
struct | nat_ipfix_logging_max_frags_ip6_args_t |
struct | nat_ipfix_logging_nat64_ses_args_t |
struct | nat_ipfix_logging_nat64_bib_args_t |
Macros | |
#define | NAT44_SESSION_CREATE_LEN 26 |
#define | NAT_ADDRESSES_EXHAUTED_LEN 13 |
#define | MAX_ENTRIES_PER_USER_LEN 21 |
#define | MAX_SESSIONS_LEN 17 |
#define | MAX_BIBS_LEN 17 |
#define | MAX_FRAGMENTS_IP4_LEN 21 |
#define | MAX_FRAGMENTS_IP6_LEN 33 |
#define | NAT64_BIB_LEN 38 |
#define | NAT64_SES_LEN 62 |
#define | NAT44_SESSION_CREATE_FIELD_COUNT 8 |
#define | NAT_ADDRESSES_EXHAUTED_FIELD_COUNT 3 |
#define | MAX_ENTRIES_PER_USER_FIELD_COUNT 5 |
#define | MAX_SESSIONS_FIELD_COUNT 4 |
#define | MAX_BIBS_FIELD_COUNT 4 |
#define | MAX_FRAGMENTS_FIELD_COUNT 5 |
#define | NAT64_BIB_FIELD_COUNT 8 |
#define | NAT64_SES_FIELD_COUNT 12 |
#define | skip_if_disabled() |
#define | update_template_id(old_id, new_id) |
Functions | |
static u8 * | snat_template_rewrite (flow_report_main_t *frm, flow_report_t *fr, ip4_address_t *collector_address, ip4_address_t *src_address, u16 collector_port, nat_event_t event, quota_exceed_event_t quota_event) |
Create an IPFIX template packet rewrite string. More... | |
u8 * | snat_template_rewrite_addr_exhausted (flow_report_main_t *frm, flow_report_t *fr, ip4_address_t *collector_address, ip4_address_t *src_address, u16 collector_port, ipfix_report_element_t *elts, u32 n_elts, u32 *stream_index) |
u8 * | snat_template_rewrite_nat44_session (flow_report_main_t *frm, flow_report_t *fr, ip4_address_t *collector_address, ip4_address_t *src_address, u16 collector_port, ipfix_report_element_t *elts, u32 n_elts, u32 *stream_index) |
u8 * | snat_template_rewrite_max_entries_per_usr (flow_report_main_t *frm, flow_report_t *fr, ip4_address_t *collector_address, ip4_address_t *src_address, u16 collector_port, ipfix_report_element_t *elts, u32 n_elts, u32 *stream_index) |
u8 * | nat_template_rewrite_max_sessions (flow_report_main_t *frm, flow_report_t *fr, ip4_address_t *collector_address, ip4_address_t *src_address, u16 collector_port, ipfix_report_element_t *elts, u32 n_elts, u32 *stream_index) |
u8 * | nat_template_rewrite_max_bibs (flow_report_main_t *frm, flow_report_t *fr, ip4_address_t *collector_address, ip4_address_t *src_address, u16 collector_port, ipfix_report_element_t *elts, u32 n_elts, u32 *stream_index) |
u8 * | nat_template_rewrite_nat64_bib (flow_report_main_t *frm, flow_report_t *fr, ip4_address_t *collector_address, ip4_address_t *src_address, u16 collector_port, ipfix_report_element_t *elts, u32 n_elts, u32 *stream_index) |
u8 * | nat_template_rewrite_nat64_session (flow_report_main_t *frm, flow_report_t *fr, ip4_address_t *collector_address, ip4_address_t *src_address, u16 collector_port, ipfix_report_element_t *elts, u32 n_elts, u32 *stream_index) |
static void | snat_ipfix_header_create (flow_report_main_t *frm, vlib_buffer_t *b0, u32 *offset) |
static void | snat_ipfix_send (u32 thread_index, flow_report_main_t *frm, vlib_frame_t *f, vlib_buffer_t *b0, u16 template_id) |
static void | snat_ipfix_logging_nat44_ses (u32 thread_index, u8 nat_event, u32 src_ip, u32 nat_src_ip, nat_protocol_t nat_proto, u16 src_port, u16 nat_src_port, u32 vrf_id, int do_flush) |
static void | snat_ipfix_logging_addr_exhausted (u32 thread_index, u32 pool_id, int do_flush) |
static void | snat_ipfix_logging_max_entries_per_usr (u32 thread_index, u32 limit, u32 src_ip, int do_flush) |
static void | nat_ipfix_logging_max_ses (u32 thread_index, u32 limit, int do_flush) |
static void | nat_ipfix_logging_max_bib (u32 thread_index, u32 limit, int do_flush) |
static void | nat_ipfix_logging_nat64_bibe (u32 thread_index, u8 nat_event, ip6_address_t *src_ip, u32 nat_src_ip, u8 proto, u16 src_port, u16 nat_src_port, u32 vrf_id, int do_flush) |
static void | nat_ipfix_logging_nat64_ses (u32 thread_index, u8 nat_event, ip6_address_t *src_ip, u32 nat_src_ip, u8 proto, u16 src_port, u16 nat_src_port, ip6_address_t *dst_ip, u32 nat_dst_ip, u16 dst_port, u16 nat_dst_port, u32 vrf_id, int do_flush) |
void | snat_ipfix_flush (u32 thread_index) |
void | snat_ipfix_flush_from_main (void) |
void | snat_ipfix_logging_nat44_ses_create (u32 thread_index, u32 src_ip, u32 nat_src_ip, nat_protocol_t nat_proto, u16 src_port, u16 nat_src_port, u32 vrf_id) |
Generate NAT44 session create event. More... | |
void | snat_ipfix_logging_nat44_ses_delete (u32 thread_index, u32 src_ip, u32 nat_src_ip, nat_protocol_t nat_proto, u16 src_port, u16 nat_src_port, u32 vrf_id) |
Generate NAT44 session delete event. More... | |
void | snat_ipfix_logging_addresses_exhausted (u32 thread_index, u32 pool_id) |
Generate NAT addresses exhausted event. More... | |
void | snat_ipfix_logging_max_entries_per_user (u32 thread_index, u32 limit, u32 src_ip) |
Generate maximum entries per user exceeded event. More... | |
vlib_frame_t * | deterministic_nat_data_callback (flow_report_main_t *frm, flow_report_t *fr, vlib_frame_t *f, u32 *to_next, u32 node_index) |
void | nat_ipfix_logging_max_sessions (u32 thread_index, u32 limit) |
Generate maximum session entries exceeded event. More... | |
void | nat_ipfix_logging_max_bibs (u32 thread_index, u32 limit) |
Generate maximum BIB entries exceeded event. More... | |
void | nat_ipfix_logging_nat64_bib (u32 thread_index, ip6_address_t *src_ip, ip4_address_t *nat_src_ip, u8 proto, u16 src_port, u16 nat_src_port, u32 vrf_id, u8 is_create) |
Generate NAT64 BIB create and delete events. More... | |
void | nat_ipfix_logging_nat64_session (u32 thread_index, ip6_address_t *src_ip, ip4_address_t *nat_src_ip, u8 proto, u16 src_port, u16 nat_src_port, ip6_address_t *dst_ip, ip4_address_t *nat_dst_ip, u16 dst_port, u16 nat_dst_port, u32 vrf_id, u8 is_create) |
Generate NAT64 session create and delete events. More... | |
vlib_frame_t * | data_callback (flow_report_main_t *frm, flow_report_t *fr, vlib_frame_t *f, u32 *to_next, u32 node_index) |
int | snat_ipfix_logging_enable_disable (int enable, u32 domain_id, u16 src_port) |
Enable/disable NAT plugin IPFIX logging. More... | |
void | snat_ipfix_logging_init (vlib_main_t *vm) |
Initialize NAT plugin IPFIX logging. More... | |
static uword | ipfix_flush_process (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f) |
Variables | |
vlib_node_registration_t | snat_ipfix_flush_node |
(constructor) VLIB_REGISTER_NODE (snat_ipfix_flush_node) More... | |
snat_ipfix_logging_main_t | snat_ipfix_logging_main |
#define MAX_BIBS_FIELD_COUNT 4 |
Definition at line 41 of file nat_ipfix_logging.c.
#define MAX_BIBS_LEN 17 |
Definition at line 31 of file nat_ipfix_logging.c.
#define MAX_ENTRIES_PER_USER_FIELD_COUNT 5 |
Definition at line 39 of file nat_ipfix_logging.c.
#define MAX_ENTRIES_PER_USER_LEN 21 |
Definition at line 29 of file nat_ipfix_logging.c.
#define MAX_FRAGMENTS_FIELD_COUNT 5 |
Definition at line 42 of file nat_ipfix_logging.c.
#define MAX_FRAGMENTS_IP4_LEN 21 |
Definition at line 32 of file nat_ipfix_logging.c.
#define MAX_FRAGMENTS_IP6_LEN 33 |
Definition at line 33 of file nat_ipfix_logging.c.
#define MAX_SESSIONS_FIELD_COUNT 4 |
Definition at line 40 of file nat_ipfix_logging.c.
#define MAX_SESSIONS_LEN 17 |
Definition at line 30 of file nat_ipfix_logging.c.
#define NAT44_SESSION_CREATE_FIELD_COUNT 8 |
Definition at line 37 of file nat_ipfix_logging.c.
#define NAT44_SESSION_CREATE_LEN 26 |
Definition at line 27 of file nat_ipfix_logging.c.
#define NAT64_BIB_FIELD_COUNT 8 |
Definition at line 43 of file nat_ipfix_logging.c.
#define NAT64_BIB_LEN 38 |
Definition at line 34 of file nat_ipfix_logging.c.
#define NAT64_SES_FIELD_COUNT 12 |
Definition at line 44 of file nat_ipfix_logging.c.
#define NAT64_SES_LEN 62 |
Definition at line 35 of file nat_ipfix_logging.c.
#define NAT_ADDRESSES_EXHAUTED_FIELD_COUNT 3 |
Definition at line 38 of file nat_ipfix_logging.c.
#define NAT_ADDRESSES_EXHAUTED_LEN 13 |
Definition at line 28 of file nat_ipfix_logging.c.
#define skip_if_disabled | ( | ) |
Definition at line 116 of file nat_ipfix_logging.c.
#define update_template_id | ( | old_id, | |
new_id | |||
) |
Definition at line 123 of file nat_ipfix_logging.c.
vlib_frame_t* data_callback | ( | flow_report_main_t * | frm, |
flow_report_t * | fr, | ||
vlib_frame_t * | f, | ||
u32 * | to_next, | ||
u32 | node_index | ||
) |
Definition at line 1489 of file nat_ipfix_logging.c.
vlib_frame_t* deterministic_nat_data_callback | ( | flow_report_main_t * | frm, |
flow_report_t * | fr, | ||
vlib_frame_t * | f, | ||
u32 * | to_next, | ||
u32 | node_index | ||
) |
Definition at line 1382 of file nat_ipfix_logging.c.
|
static |
Definition at line 944 of file nat_ipfix_logging.c.
Generate maximum BIB entries exceeded event.
thread_index | thread index |
limit | configured limit |
Definition at line 1414 of file nat_ipfix_logging.c.
Definition at line 856 of file nat_ipfix_logging.c.
Generate maximum session entries exceeded event.
thread_index | thread index |
limit | configured limit |
Definition at line 1399 of file nat_ipfix_logging.c.
void nat_ipfix_logging_nat64_bib | ( | u32 | thread_index, |
ip6_address_t * | src_ip, | ||
ip4_address_t * | nat_src_ip, | ||
u8 | proto, | ||
u16 | src_port, | ||
u16 | nat_src_port, | ||
u32 | vrf_id, | ||
u8 | is_create | ||
) |
Generate NAT64 BIB create and delete events.
thread_index | thread index |
src_ip | source IPv6 address |
nat_src_ip | transaltes source IPv4 address |
proto | L4 protocol |
src_port | source port |
nat_src_port | translated source port |
vrf_id | VRF ID |
is_create | non-zero value if create event otherwise delete event |
Definition at line 1435 of file nat_ipfix_logging.c.
|
static |
Definition at line 1032 of file nat_ipfix_logging.c.
|
static |
Definition at line 1133 of file nat_ipfix_logging.c.
void nat_ipfix_logging_nat64_session | ( | u32 | thread_index, |
ip6_address_t * | src_ip, | ||
ip4_address_t * | nat_src_ip, | ||
u8 | proto, | ||
u16 | src_port, | ||
u16 | nat_src_port, | ||
ip6_address_t * | dst_ip, | ||
ip4_address_t * | nat_dst_ip, | ||
u16 | dst_port, | ||
u16 | nat_dst_port, | ||
u32 | vrf_id, | ||
u8 | is_create | ||
) |
Generate NAT64 session create and delete events.
thread_index | thread index |
src_ip | source IPv6 address |
nat_src_ip | transaltes source IPv4 address |
proto | L4 protocol |
src_port | source port |
nat_src_port | translated source port |
dst_ip | destination IPv6 address |
nat_dst_ip | destination IPv4 address |
dst_port | destination port |
nat_dst_port | translated destination port |
vrf_id | VRF ID |
is_create | non-zero value if create event otherwise delete event |
Definition at line 1468 of file nat_ipfix_logging.c.
u8* nat_template_rewrite_max_bibs | ( | flow_report_main_t * | frm, |
flow_report_t * | fr, | ||
ip4_address_t * | collector_address, | ||
ip4_address_t * | src_address, | ||
u16 | collector_port, | ||
ipfix_report_element_t * | elts, | ||
u32 | n_elts, | ||
u32 * | stream_index | ||
) |
Definition at line 444 of file nat_ipfix_logging.c.
u8* nat_template_rewrite_max_sessions | ( | flow_report_main_t * | frm, |
flow_report_t * | fr, | ||
ip4_address_t * | collector_address, | ||
ip4_address_t * | src_address, | ||
u16 | collector_port, | ||
ipfix_report_element_t * | elts, | ||
u32 | n_elts, | ||
u32 * | stream_index | ||
) |
Definition at line 430 of file nat_ipfix_logging.c.
u8* nat_template_rewrite_nat64_bib | ( | flow_report_main_t * | frm, |
flow_report_t * | fr, | ||
ip4_address_t * | collector_address, | ||
ip4_address_t * | src_address, | ||
u16 | collector_port, | ||
ipfix_report_element_t * | elts, | ||
u32 | n_elts, | ||
u32 * | stream_index | ||
) |
Definition at line 458 of file nat_ipfix_logging.c.
u8* nat_template_rewrite_nat64_session | ( | flow_report_main_t * | frm, |
flow_report_t * | fr, | ||
ip4_address_t * | collector_address, | ||
ip4_address_t * | src_address, | ||
u16 | collector_port, | ||
ipfix_report_element_t * | elts, | ||
u32 | n_elts, | ||
u32 * | stream_index | ||
) |
Definition at line 471 of file nat_ipfix_logging.c.
void snat_ipfix_flush | ( | u32 | thread_index | ) |
Definition at line 1248 of file nat_ipfix_logging.c.
void snat_ipfix_flush_from_main | ( | void | ) |
Definition at line 1265 of file nat_ipfix_logging.c.
|
inlinestatic |
Definition at line 484 of file nat_ipfix_logging.c.
|
static |
Definition at line 680 of file nat_ipfix_logging.c.
Generate NAT addresses exhausted event.
thread_index | thread index |
pool_id | NAT pool ID |
Definition at line 1356 of file nat_ipfix_logging.c.
Enable/disable NAT plugin IPFIX logging.
enable | 1 if enable, 0 if disable |
domain_id | observation domain ID |
src_port | source port number |
Definition at line 1513 of file nat_ipfix_logging.c.
void snat_ipfix_logging_init | ( | vlib_main_t * | vm | ) |
Initialize NAT plugin IPFIX logging.
vm | vlib main |
Definition at line 1615 of file nat_ipfix_logging.c.
Generate maximum entries per user exceeded event.
thread_index | thread index |
limit | maximum NAT entries that can be created per user |
src_ip | source IPv4 address |
Definition at line 1372 of file nat_ipfix_logging.c.
|
static |
Definition at line 764 of file nat_ipfix_logging.c.
|
static |
Definition at line 576 of file nat_ipfix_logging.c.
void snat_ipfix_logging_nat44_ses_create | ( | u32 | thread_index, |
u32 | src_ip, | ||
u32 | nat_src_ip, | ||
nat_protocol_t | nat_proto, | ||
u16 | src_port, | ||
u16 | nat_src_port, | ||
u32 | vrf_id | ||
) |
Generate NAT44 session create event.
thread_index | thread index |
src_ip | source IPv4 address |
nat_src_ip | transaltes source IPv4 address |
nat_proto | NAT transport protocol |
src_port | source port |
nat_src_port | translated source port |
vrf_id | VRF ID |
Definition at line 1309 of file nat_ipfix_logging.c.
void snat_ipfix_logging_nat44_ses_delete | ( | u32 | thread_index, |
u32 | src_ip, | ||
u32 | nat_src_ip, | ||
nat_protocol_t | nat_proto, | ||
u16 | src_port, | ||
u16 | nat_src_port, | ||
u32 | vrf_id | ||
) |
Generate NAT44 session delete event.
thread_index | thread index |
src_ip | source IPv4 address |
nat_src_ip | transaltes source IPv4 address |
nat_proto | NAT transport protocol |
src_port | source port |
nat_src_port | translated source port |
vrf_id | VRF ID |
Definition at line 1335 of file nat_ipfix_logging.c.
|
inlinestatic |
Definition at line 536 of file nat_ipfix_logging.c.
|
inlinestatic |
Create an IPFIX template packet rewrite string.
frm | flow report main |
fr | flow report |
collector_address | collector address |
src_address | source address |
collector_port | collector |
event | NAT event ID |
quota_event | NAT quota exceeded event ID |
Definition at line 143 of file nat_ipfix_logging.c.
u8* snat_template_rewrite_addr_exhausted | ( | flow_report_main_t * | frm, |
flow_report_t * | fr, | ||
ip4_address_t * | collector_address, | ||
ip4_address_t * | src_address, | ||
u16 | collector_port, | ||
ipfix_report_element_t * | elts, | ||
u32 | n_elts, | ||
u32 * | stream_index | ||
) |
Definition at line 390 of file nat_ipfix_logging.c.
u8* snat_template_rewrite_max_entries_per_usr | ( | flow_report_main_t * | frm, |
flow_report_t * | fr, | ||
ip4_address_t * | collector_address, | ||
ip4_address_t * | src_address, | ||
u16 | collector_port, | ||
ipfix_report_element_t * | elts, | ||
u32 | n_elts, | ||
u32 * | stream_index | ||
) |
Definition at line 416 of file nat_ipfix_logging.c.
u8* snat_template_rewrite_nat44_session | ( | flow_report_main_t * | frm, |
flow_report_t * | fr, | ||
ip4_address_t * | collector_address, | ||
ip4_address_t * | src_address, | ||
u16 | collector_port, | ||
ipfix_report_element_t * | elts, | ||
u32 | n_elts, | ||
u32 * | stream_index | ||
) |
Definition at line 403 of file nat_ipfix_logging.c.
vlib_node_registration_t snat_ipfix_flush_node |
(constructor) VLIB_REGISTER_NODE (snat_ipfix_flush_node)
Definition at line 24 of file nat_ipfix_logging.c.
snat_ipfix_logging_main_t snat_ipfix_logging_main |
Definition at line 25 of file nat_ipfix_logging.c.