FD.io VPP  v19.08.3-2-gbabecb413
Vector Packet Processing
nat_ipfix_logging.h File Reference
+ Include dependency graph for nat_ipfix_logging.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  snat_ipfix_per_thread_data_t
 
struct  snat_ipfix_logging_main_t
 

Enumerations

enum  nat_event_t {
  NAT_ADDRESSES_EXHAUTED = 3, NAT44_SESSION_CREATE = 4, NAT44_SESSION_DELETE = 5, NAT64_SESSION_CREATE = 6,
  NAT64_SESSION_DELETE = 7, NAT64_BIB_CREATE = 10, NAT64_BIB_DELETE = 11, NAT_PORTS_EXHAUSTED = 12,
  QUOTA_EXCEEDED = 13
}
 
enum  quota_exceed_event_t {
  MAX_SESSION_ENTRIES = 1, MAX_BIB_ENTRIES = 2, MAX_ENTRIES_PER_USER = 3, MAX_FRAGMENTS_PENDING_REASSEMBLY = 5,
  MAX_FRAGMENTS_PENDING_REASSEMBLY_IP6
}
 

Functions

void snat_ipfix_logging_init (vlib_main_t *vm)
 Initialize NAT plugin IPFIX logging. More...
 
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_nat44_ses_create (u32 thread_index, u32 src_ip, u32 nat_src_ip, snat_protocol_t snat_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, snat_protocol_t snat_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...
 
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_max_fragments_ip4 (u32 thread_index, u32 limit, ip4_address_t *src)
 Generate maximum IPv4 fragments pending reassembly exceeded event. More...
 
void nat_ipfix_logging_max_fragments_ip6 (u32 thread_index, u32 limit, ip6_address_t *src)
 Generate maximum IPv6 fragments pending reassembly exceeded event. 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...
 
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...
 

Variables

snat_ipfix_logging_main_t snat_ipfix_logging_main
 

Enumeration Type Documentation

◆ nat_event_t

Enumerator
NAT_ADDRESSES_EXHAUTED 
NAT44_SESSION_CREATE 
NAT44_SESSION_DELETE 
NAT64_SESSION_CREATE 
NAT64_SESSION_DELETE 
NAT64_BIB_CREATE 
NAT64_BIB_DELETE 
NAT_PORTS_EXHAUSTED 
QUOTA_EXCEEDED 

Definition at line 22 of file nat_ipfix_logging.h.

◆ quota_exceed_event_t

Enumerator
MAX_SESSION_ENTRIES 
MAX_BIB_ENTRIES 
MAX_ENTRIES_PER_USER 
MAX_FRAGMENTS_PENDING_REASSEMBLY 
MAX_FRAGMENTS_PENDING_REASSEMBLY_IP6 

Definition at line 34 of file nat_ipfix_logging.h.

Function Documentation

◆ nat_ipfix_logging_max_bibs()

void nat_ipfix_logging_max_bibs ( u32  thread_index,
u32  limit 
)

Generate maximum BIB entries exceeded event.

Parameters
thread_indexthread index
limitconfigured limit

Definition at line 1672 of file nat_ipfix_logging.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ipfix_logging_max_fragments_ip4()

void nat_ipfix_logging_max_fragments_ip4 ( u32  thread_index,
u32  limit,
ip4_address_t src 
)

Generate maximum IPv4 fragments pending reassembly exceeded event.

Parameters
thread_indexthread index
limitconfigured limit
srcsource IPv4 address

Definition at line 1688 of file nat_ipfix_logging.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ipfix_logging_max_fragments_ip6()

void nat_ipfix_logging_max_fragments_ip6 ( u32  thread_index,
u32  limit,
ip6_address_t src 
)

Generate maximum IPv6 fragments pending reassembly exceeded event.

Parameters
thread_indexthread index
limitconfigured limit
srcsource IPv6 address

Definition at line 1705 of file nat_ipfix_logging.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ipfix_logging_max_sessions()

void nat_ipfix_logging_max_sessions ( u32  thread_index,
u32  limit 
)

Generate maximum session entries exceeded event.

Parameters
thread_indexthread index
limitconfigured limit

Definition at line 1657 of file nat_ipfix_logging.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ipfix_logging_nat64_bib()

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.

Parameters
thread_indexthread index
src_ipsource IPv6 address
nat_src_iptransaltes source IPv4 address
protoL4 protocol
src_portsource port
nat_src_porttranslated source port
vrf_idVRF ID
is_createnon-zero value if create event otherwise delete event

Definition at line 1727 of file nat_ipfix_logging.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ nat_ipfix_logging_nat64_session()

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.

Parameters
thread_indexthread index
src_ipsource IPv6 address
nat_src_iptransaltes source IPv4 address
protoL4 protocol
src_portsource port
nat_src_porttranslated source port
dst_ipdestination IPv6 address
nat_dst_ipdestination IPv4 address
dst_portdestination port
nat_dst_porttranslated destination port
vrf_idVRF ID
is_createnon-zero value if create event otherwise delete event

Definition at line 1760 of file nat_ipfix_logging.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ snat_ipfix_logging_addresses_exhausted()

void snat_ipfix_logging_addresses_exhausted ( u32  thread_index,
u32  pool_id 
)

Generate NAT addresses exhausted event.

Parameters
thread_indexthread index
pool_idNAT pool ID

Definition at line 1614 of file nat_ipfix_logging.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ snat_ipfix_logging_enable_disable()

int snat_ipfix_logging_enable_disable ( int  enable,
u32  domain_id,
u16  src_port 
)

Enable/disable NAT plugin IPFIX logging.

Parameters
enable1 if enable, 0 if disable
domain_idobservation domain ID
src_portsource port number
Returns
0 if success

Definition at line 1805 of file nat_ipfix_logging.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ snat_ipfix_logging_init()

void snat_ipfix_logging_init ( vlib_main_t vm)

Initialize NAT plugin IPFIX logging.

Parameters
vmvlib main

Definition at line 1930 of file nat_ipfix_logging.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ snat_ipfix_logging_max_entries_per_user()

void snat_ipfix_logging_max_entries_per_user ( u32  thread_index,
u32  limit,
u32  src_ip 
)

Generate maximum entries per user exceeded event.

Parameters
thread_indexthread index
limitmaximum NAT entries that can be created per user
src_ipsource IPv4 address

Definition at line 1630 of file nat_ipfix_logging.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ snat_ipfix_logging_nat44_ses_create()

void snat_ipfix_logging_nat44_ses_create ( u32  thread_index,
u32  src_ip,
u32  nat_src_ip,
snat_protocol_t  snat_proto,
u16  src_port,
u16  nat_src_port,
u32  vrf_id 
)

Generate NAT44 session create event.

Parameters
thread_indexthread index
src_ipsource IPv4 address
nat_src_iptransaltes source IPv4 address
snat_protoNAT transport protocol
src_portsource port
nat_src_porttranslated source port
vrf_idVRF ID

Definition at line 1567 of file nat_ipfix_logging.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ snat_ipfix_logging_nat44_ses_delete()

void snat_ipfix_logging_nat44_ses_delete ( u32  thread_index,
u32  src_ip,
u32  nat_src_ip,
snat_protocol_t  snat_proto,
u16  src_port,
u16  nat_src_port,
u32  vrf_id 
)

Generate NAT44 session delete event.

Parameters
thread_indexthread index
src_ipsource IPv4 address
nat_src_iptransaltes source IPv4 address
snat_protoNAT transport protocol
src_portsource port
nat_src_porttranslated source port
vrf_idVRF ID

Definition at line 1593 of file nat_ipfix_logging.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ snat_ipfix_logging_main

snat_ipfix_logging_main_t snat_ipfix_logging_main

Definition at line 25 of file nat_ipfix_logging.c.