|  | 
| #define | VRF_NAME_LEN_STORED   12 | 
|  | 
| #define | MAX_VRFID   400 | 
|  | 
| #define | HASH_ENHANCE   4 | 
|  | 
| #define | CNAT_DB_SIZE   (PLATFORM_MAX_NAT_ENTRIES / PLATFORM_CNAT_INSTS) | 
|  | 
| #define | CNAT_MAIN_HASH_SIZE   (HASH_ENHANCE * PLATFORM_CNAT_MAIN_PRELIM_HASH_SIZE) | 
|  | 
| #define | CNAT_MAIN_HASH_MASK   (CNAT_MAIN_HASH_SIZE-1) | 
|  | 
| #define | CNAT_USER_DB_SIZE   (PLATFORM_MAX_USER_ENTRIES / PLATFORM_CNAT_INSTS) | 
|  | 
| #define | CNAT_USER_HASH_SIZE   (HASH_ENHANCE * PLATFORM_CNAT_USER_PRELIM_HASH_SIZE) | 
|  | 
| #define | CNAT_USER_HASH_MASK   (CNAT_USER_HASH_SIZE-1) | 
|  | 
| #define | CNAT_SESSION_DB_SIZE   (PLATFORM_MAX_NAT_ENTRIES / PLATFORM_CNAT_INSTS) | 
|  | 
| #define | CNAT_SESSION_HASH_SIZE   (HASH_ENHANCE * PLATFORM_CNAT_MAIN_PRELIM_HASH_SIZE) | 
|  | 
| #define | CNAT_SESSION_HASH_MASK   (CNAT_SESSION_HASH_SIZE-1) | 
|  | 
| #define | CNAT_MAX_SESSIONS_PER_BIB   0xFFFF | 
|  | 
| #define | NUM_BITS_IN_UWORD   (8*sizeof(uword)) | 
|  | 
| #define | CNAT_TIMEOUT_HASH_SIZE   1024 | 
|  | 
| #define | CNAT_TIMEOUT_HASH_MASK   (CNAT_TIMEOUT_HASH_SIZE - 1) | 
|  | 
| #define | CNAT_TIMEOUT_FULL_MASK   0xFFFFFFFFFFFFFFFF | 
|  | 
| #define | CNAT_TIMEOUT_IPPROT_MASK   PLATFORM_CNAT_TIMEOUT_IPPROT_MASK | 
|  | 
| #define | CNAT_TIMEOUT_PORTPROT_MASK   PLATFORM_CNAT_TIMEOUT_PORTPROT_MASK | 
|  | 
| #define | TRUE   1 | 
|  | 
| #define | FALSE   0 | 
|  | 
| #define | CNAT_INVALID_PROTO   0x0000 | 
|  | 
| #define | CNAT_PPTP   0x0000 | 
|  | 
| #define | CNAT_UDP   0x4000 | 
|  | 
| #define | CNAT_TCP   0x8000 | 
|  | 
| #define | CNAT_ICMP   0xc000 | 
|  | 
| #define | CNAT_VRF_MASK   0x3fff | 
|  | 
| #define | CNAT_PRO_MASK   0xc000 | 
|  | 
| #define | CNAT_PRO_SHIFT   14 | 
|  | 
| #define | CNAT_MAX_VRFMAP_ENTRIES   (CNAT_VRF_MASK + 1) | 
|  | 
| #define | CNAT_DB_FLAG_PORT_PAIR   (1<<0) | 
|  | 
| #define | CNAT_DB_FLAG_TCP_ACTIVE   (1<<1) | 
|  | 
| #define | CNAT_DB_FLAG_ENTRY_FREE   (1<<2) | 
|  | 
| #define | CNAT_DB_FLAG_UDP_ACTIVE   (1<<3) | 
|  | 
| #define | CNAT_DB_FLAG_STATIC_PORT   (1<<4) | 
|  | 
| #define | CNAT_DB_FLAG_ALG_ENTRY   (1<<5) | 
|  | 
| #define | CNAT_DB_FLAG_PPTP_TUNNEL_INIT   (1<<6) | 
|  | 
| #define | CNAT_DB_FLAG_PPTP_TUNNEL_ACTIVE   (1<<7) | 
|  | 
| #define | CNAT_DB_FLAG_PPTP_GRE_ENTRY   (1<<8) | 
|  | 
| #define | CNAT_DB_FLAG_PCPI   (1<<9) | 
|  | 
| #define | CNAT_DB_FLAG_PCPE   (1<<10) | 
|  | 
| #define | CNAT_PCP_FLAG   (CNAT_DB_FLAG_PCPI | CNAT_DB_FLAG_PCPE) | 
|  | 
| #define | CNAT_TAC_SEQ_MISMATCH   (1<<11) | 
|  | 
| #define | CNAT_DB_FLAG_ALG_CTRL_FLOW   (1<<12) | 
|  | 
| #define | CNAT_DB_FLAG_TCP_CLOSING   (1<<13) | 
|  | 
| #define | CNAT_DB_DSLITE_FLAG   (1<<14) | 
|  | 
| #define | CNAT_DB_NAT64_FLAG   (1<<15) | 
|  | 
| #define | CNAT_USER_DB_NAT44_FLAG   0 | 
|  | 
| #define | CNAT_USER_DB_NAT64_FLAG   1 | 
|  | 
| #define | CNAT_USER_DB_DSLITE_FLAG   2 | 
|  | 
| #define | CNAT_USER_DB_PORT_LIMIT_EXCEEDED   0X80 | 
|  | 
| #define | S_WAO   0 | 
|  | 
| #define | S_WA   1 /* waiting for address pool */ | 
|  | 
| #define | S_WO   2 /* waiting for outside vrf  */ | 
|  | 
| #define | S_RUN   3 /* got everything */ | 
|  | 
| #define | S_DEL   4 /* just delete */ | 
|  | 
| #define | INVALID_UIDX   0xffff /*invalid svi app uidb index */ | 
|  | 
| #define | INVALID_VRFID   0xffffffff /*invalid vrf id */ | 
|  | 
| #define | CNAT_SET_VRFMAP_NFV9_LOGGING_INDEX(logging_index,  i_vrf) | 
|  | 
| #define | VRF_MAP_ENTRY_EMPTY   0xffff | 
|  | 
| #define | CNAT_V4_GET_HASH(key64,  hash,  mask) | 
|  | 
| #define | CNAT_V4_GET_SESSION_HASH(main_index,  in_addr,  port,  vrf,  hash,  mask) | 
|  | 
| #define | CNAT_V4_GET_FRAG_HASH(key64,  key32,  hash,  mask) | 
|  | 
| #define | CNAT_DB_UPDATE_IN2OUT_TIMER | 
|  | 
| #define | CNAT_DB_TIMEOUT_RST(db) | 
|  | 
| #define | DEBUG_I2O_DROP(debug_flag) | 
|  | 
| #define | MAIN_DB_TYPE   0 | 
|  | 
| #define | SESSION_DB_TYPE   1 | 
|  | 
| #define | NAT44_STATS   0 | 
|  | 
| #define | DSLITE_STATS   1 | 
|  | 
| #define | NAT44_COMMON_STATS   nat44_dslite_common_stats[NAT44_RESERVED_INST_ID] | 
|  | 
| #define | NAT44_GLOBAL_STATS   nat44_dslite_global_stats[NAT44_STATS] | 
|  | 
| #define | DSLITE_GLOBAL_STATS   nat44_dslite_global_stats[DSLITE_STATS] | 
|  | 
| #define | SESSION_LOG_ENABLE   1 | 
|  | 
| #define | ALG_ENABLED_DB(db) | 
|  | 
|  | 
| cnat_main_db_entry_t * | cnat_main_db_create (cnat_db_create_args_t *a) | 
|  | 
| void | cnat_main_db_entry_delete (cnat_main_db_entry_t *ep) | 
|  | 
| void | cnat_delete_main_db_entry (cnat_main_db_entry_t *ep) | 
|  | 
| void | cnat_delete_main_db_entry_v2 (cnat_main_db_entry_t *ep) | 
|  | 
| cnat_main_db_entry_t * | cnat_get_main_db_entry (cnat_db_key_bucket_t *ki, port_pair_t port_type, cnat_errno_t *error, cnat_user_db_entry_t **user_db_entry) | 
|  | 
| cnat_main_db_entry_t * | cnat_get_main_db_entry_v2 (cnat_db_key_bucket_t *ki, port_pair_t port_pair_type, port_type_t port_type, cnat_gen_icmp_info *info, cnat_key_t *dest_info) | 
|  | 
| cnat_main_db_entry_t * | cnat_create_static_main_db_entry_v2 (cnat_db_key_bucket_t *ki, cnat_db_key_bucket_t *ko, cnat_vrfmap_t *my_vrfmap, cnat_gen_icmp_info *info) | 
|  | 
| cnat_main_db_entry_t * | cnat_create_main_db_entry_and_hash (cnat_db_key_bucket_t *ki, cnat_db_key_bucket_t *ko, cnat_user_db_entry_t *udb) | 
|  | 
| cnat_user_db_entry_t * | cnat_user_db_create_entry (cnat_db_key_bucket_t *uki, u32 portmap_index) | 
|  | 
| cnat_user_db_entry_t * | cnat_user_db_lookup_entry (cnat_db_key_bucket_t *uki) | 
|  | 
| cnat_main_db_entry_t * | cnat_main_db_lookup_entry (cnat_db_key_bucket_t *ki) | 
|  | 
| cnat_main_db_entry_t * | cnat_main_db_lookup_entry_out2in (cnat_db_key_bucket_t *ko) | 
|  | 
| void | cnat_main_db_entry_dump (cnat_main_db_entry_t *db) | 
|  | 
| void | cnat_db_in2out_hash_delete (cnat_main_db_entry_t *ep, cnat_user_db_entry_t *up) | 
|  | 
| void | cnat_db_out2in_hash_delete (cnat_main_db_entry_t *ep) | 
|  | 
| void | cnat_user_db_delete (cnat_user_db_entry_t *up) | 
|  | 
| void | cnat_db_debug_i2o_drop (cnat_db_key_bucket_t *ki) | 
|  | 
| void | cnat_if_num_hash_table_dump (void) | 
|  | 
| u16 | query_and_update_db_timeout (void *db, u8 db_type) | 
|  | 
| u16 | cnat_timeout_db_create (cnat_timeout_t t_entry) | 
|  | 
| void | cnat_timeout_db_delete (cnat_key_t t_key) | 
|  | 
| cnat_session_entry_t * | cnat_create_session_db_entry (cnat_key_t *ko, cnat_main_db_entry_t *bdb, u8 log) | 
|  | 
| void | cnat_dest_update_main2session (cnat_main_db_entry_t *mdb, cnat_session_entry_t *sdb) | 
|  | 
| cnat_session_entry_t * | cnat_handle_1to2_session (cnat_main_db_entry_t *mdb, cnat_key_t *dest_info) | 
|  | 
| void | cnat_add_dest_n_log (cnat_main_db_entry_t *mdb, cnat_key_t *dest_info) | 
|  | 
| cnat_session_entry_t * | cnat_session_db_lookup_entry (cnat_key_t *ko, u32 main_db_index) | 
|  | 
| cnat_session_entry_t * | cnat_session_db_edm_lookup_entry (cnat_key_t *ko, u32 session_head_index, u32 main_db_index) | 
|  |