FD.io VPP  v20.09-64-g4f7b92f0a
Vector Packet Processing
cnat_client_t_ Struct Reference

A client is a representation of an IP address behind the NAT. More...

+ Collaboration diagram for cnat_client_t_:

Public Member Functions

 CLIB_CACHE_LINE_ALIGN_MARK (cacheline0)
 

Data Fields

ip_address_t cc_ip
 the client's IP address More...
 
dpo_id_t cc_parent
 How to send packets to this client post translation. More...
 
fib_node_index_t cc_fei
 the FIB entry this client sources More...
 
u32 cc_locks
 number of DPO locks More...
 
u32 tr_refcnt
 Translations refcount for cleanup. More...
 
u32 session_refcnt
 Session refcount for cleanup. More...
 
index_t parent_cci
 Parent cnat_client index if cloned via interpose or own index if vanilla client. More...
 
u8 flags
 Client flags. More...
 

Detailed Description

A client is a representation of an IP address behind the NAT.

A client thus sends packet to a VIP. Clients are learned in the Data-plane when they send packets, but, since they make additions to the FIB they must be programmed in the main thread. They are aged out when they become idle.

A client interposes in the FIB graph for the prefix corresponding to the client (e.g. client's-IP/32). As a result this client object is cloned as the interpose DPO. The clones are removed when the lock count drops to zero. The originals are removed when the client ages. At forwarding time the client preforms the reverse translation and then ships the packet to where the FIB would send it.

Definition at line 35 of file cnat_client.h.

Member Function Documentation

◆ CLIB_CACHE_LINE_ALIGN_MARK()

cnat_client_t_::CLIB_CACHE_LINE_ALIGN_MARK ( cacheline0  )

Field Documentation

◆ cc_fei

fib_node_index_t cnat_client_t_::cc_fei

the FIB entry this client sources

Definition at line 52 of file cnat_client.h.

◆ cc_ip

ip_address_t cnat_client_t_::cc_ip

the client's IP address

Definition at line 42 of file cnat_client.h.

◆ cc_locks

u32 cnat_client_t_::cc_locks

number of DPO locks

Definition at line 57 of file cnat_client.h.

◆ cc_parent

dpo_id_t cnat_client_t_::cc_parent

How to send packets to this client post translation.

Definition at line 47 of file cnat_client.h.

◆ flags

u8 cnat_client_t_::flags

Client flags.

Definition at line 79 of file cnat_client.h.

◆ parent_cci

index_t cnat_client_t_::parent_cci

Parent cnat_client index if cloned via interpose or own index if vanilla client.

Used to get translations & update session_refcnt

Definition at line 74 of file cnat_client.h.

◆ session_refcnt

u32 cnat_client_t_::session_refcnt

Session refcount for cleanup.

Definition at line 67 of file cnat_client.h.

◆ tr_refcnt

u32 cnat_client_t_::tr_refcnt

Translations refcount for cleanup.

Definition at line 62 of file cnat_client.h.


The documentation for this struct was generated from the following file: