FD.io VPP  v21.06-3-gbb25fbf28
Vector Packet Processing
cnat_session_t_ Struct Reference

A session represents the memory of a translation. More...

Data Fields

struct {
   ip46_address_t   cs_ip [VLIB_N_DIR]
 IP 4/6 address in the rx/tx direction. More...
 
   u16   cs_port [VLIB_N_DIR]
 ports in rx/tx More...
 
   ip_protocol_t   cs_proto
 The IP protocol TCP or UDP only supported. More...
 
   u8   cs_af
 The address family describing the IP addresses. More...
 
   u8   cs_loc
 input / output / fib session More...
 
key
 this key sits in the same memory location a 'key' in the bihash kvp More...
 
struct {
   ip46_address_t   cs_ip [VLIB_N_DIR]
 The IP address to translate to. More...
 
   u16   cs_port [VLIB_N_DIR]
 the port to translate to. More...
 
   index_t   cs_lbi
 The load balance object to use to forward. More...
 
   u32   dpoi_next_node
 Persist translation->ct_lb.dpoi_next_node. More...
 
   u32   cs_ts_index
 Timestamp index this session was last used. More...
 
   u32   flags
 session flags More...
 
value
 this value sits in the same memory location a 'value' in the bihash kvp More...
 

Detailed Description

A session represents the memory of a translation.

In the tx direction (from behind to in front of the NAT), the session is preserved so subsequent packets follow the same path even if the translation has been updated. In the tx direction the session represents the swap from the VIP to the server address In the RX direction the swap is from the server address/port to VIP.

A session exists only as key and value in the bihash, there is no pool for this object. If there were a pool, one would need to be concerned about what worker is using it.

Definition at line 37 of file cnat_session.h.

Field Documentation

◆ cs_af

u8 cnat_session_t_::cs_af

The address family describing the IP addresses.

Definition at line 62 of file cnat_session.h.

◆ cs_ip

ip46_address_t cnat_session_t_::cs_ip[VLIB_N_DIR]

IP 4/6 address in the rx/tx direction.

The IP address to translate to.

Definition at line 47 of file cnat_session.h.

◆ cs_lbi

index_t cnat_session_t_::cs_lbi

The load balance object to use to forward.

Definition at line 89 of file cnat_session.h.

◆ cs_loc

u8 cnat_session_t_::cs_loc

input / output / fib session

Definition at line 67 of file cnat_session.h.

◆ cs_port

u16 cnat_session_t_::cs_port[VLIB_N_DIR]

ports in rx/tx

the port to translate to.

Definition at line 52 of file cnat_session.h.

◆ cs_proto

ip_protocol_t cnat_session_t_::cs_proto

The IP protocol TCP or UDP only supported.

Definition at line 57 of file cnat_session.h.

◆ cs_ts_index

u32 cnat_session_t_::cs_ts_index

Timestamp index this session was last used.

Definition at line 99 of file cnat_session.h.

◆ dpoi_next_node

u32 cnat_session_t_::dpoi_next_node

Persist translation->ct_lb.dpoi_next_node.

Definition at line 94 of file cnat_session.h.

◆ flags

u32 cnat_session_t_::flags

session flags

Definition at line 104 of file cnat_session.h.

◆ key

struct { ... } cnat_session_t_::key

this key sits in the same memory location a 'key' in the bihash kvp

◆ value

struct { ... } cnat_session_t_::value

this value sits in the same memory location a 'value' in the bihash kvp


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