60 extern void set_bulk_size_to_all_vrfs(
int bulk_size);
62 u32 *cnat_debug_addr_list;
64 extern int global_pd_dbg_lvl;
65 extern int global_pi_dbg_lvl;
66 extern int global_l2_dbg_lvl;
68 extern u32 cnat_pcp_debug_flag;
70 void spp_api_cnat_get_cgn_db_summary
71 (spp_api_cnat_generic_command_request_t *);
73 void spp_api_cnat_v4_debug_dummy_t_handler
74 (spp_api_cnat_v4_debug_dummy_t *mp)
78 if(global_pd_dbg_lvl) {
85 void spp_api_cnat_v4_debug_dummy_max_t_handler
86 (spp_api_cnat_v4_debug_dummy_max_t *mp)
90 if(global_pd_dbg_lvl) {
98 void spp_api_cnat_v4_debug_global_t_handler
99 (spp_api_cnat_v4_debug_global_t *mp)
105 global_debug_flag = mp->debug_flag;
110 if(global_pd_dbg_lvl) {
117 void spp_node_print_cnat_counters()
124 if (xlat_global_counters.v4_to_v6_frag_invalid_uidb_drop_count ||
125 xlat_global_counters.v6_to_v4_frag_invalid_uidb_drop_count ||
126 xlat_global_counters.v4_to_v6_icmp_invalid_uidb_drop_count ||
127 xlat_global_counters.v6_to_v4_icmp_invalid_uidb_drop_count ||
128 xlat_global_counters.v4_to_v6_tcp_invalid_uidb_drop_count ||
129 xlat_global_counters.v6_to_v4_tcp_invalid_uidb_drop_count ||
130 xlat_global_counters.v4_to_v6_udp_invalid_uidb_drop_count ||
131 xlat_global_counters.v6_to_v4_udp_invalid_uidb_drop_count ||
132 xlat_global_counters.v4_to_v6_udp_crc_zero_invalid_uidb_drop_count) {
136 xlat_global_counters.v4_to_v6_frag_invalid_uidb_drop_count);
140 xlat_global_counters.v6_to_v4_frag_invalid_uidb_drop_count);
144 xlat_global_counters.v4_to_v6_icmp_invalid_uidb_drop_count);
148 xlat_global_counters.v6_to_v4_icmp_invalid_uidb_drop_count);
152 xlat_global_counters.v4_to_v6_tcp_invalid_uidb_drop_count);
156 xlat_global_counters.v6_to_v4_tcp_invalid_uidb_drop_count);
160 xlat_global_counters.v4_to_v6_udp_invalid_uidb_drop_count);
164 xlat_global_counters.v6_to_v4_udp_invalid_uidb_drop_count);
168 xlat_global_counters.v4_to_v6_udp_crc_zero_invalid_uidb_drop_count);
176 void spp_log_p2mp_req(spp_api_cnat_p2mp_debug_request_t *mp)
179 u32 num_rec = spp_net_to_host_byte_order_32(&mp->param[i++]);
188 err_c_num_args = spp_net_to_host_byte_order_32(&mp->param[i++]);
189 err_c = (err_c_num_args >> 16) & 0xFFFF;
190 num_args = err_c_num_args & 0xFFFF;
192 num_args = (num_args <= 32) ? num_args : 32;
193 while (j < num_args) {
194 argv[j++] = spp_net_to_host_byte_order_32(&mp->param[i++]);
197 i += ((num_args - 32) > 0) ? (num_args - 32) : 0;
202 void nat64_debug_addr_pool_add_del()
224 for(i=0;i<pm_len ; i++)
245 for(i=0;i<pm_len ; i++)
265 for(i=0;i<pm_len ; i++)
276 for(i=0;i<pm_len;i++)
294 for(i=0;i<pm_len ; i++)
317 for(i=0;i<pm_len ; i++)
327 void uidb_mapping_dump_timeout() {
332 for(i = 0;i < 30;i++) {
338 void nat64_debug_dump_info(
u32 debug_value)
341 switch(debug_value) {
352 bib_add_v6_entry1_new();
356 bib_add_v6_entry1_new_static();
364 bib_add_v6_entry_new2();
368 nat64_fill_table_entry();
372 nat64_db_dump_main();
376 nat64_db_dump_user();
380 nat64_db_dump_session();
388 bib_del_v6_entry1_static();
392 nat64_debug_addr_pool_add_del();
396 nat64_db_dump_timeout(0);
400 uidb_mapping_dump_timeout();
408 void cnat_debug_flags_set (spp_api_cnat_p2mp_debug_request_t *mp)
410 u32 debug_variable = spp_net_to_host_byte_order_32(&mp->param[0]);
411 u32 debug_value = spp_net_to_host_byte_order_32(&mp->param[1]);
415 switch (debug_variable) {
418 udp_inside_checksum_disable = debug_value;
423 udp_outside_checksum_disable = debug_value;
428 udp_outside_packet_dump_enable = debug_value;
433 udp_inside_packet_dump_enable = debug_value;
438 icmp_debug_flag = debug_value;
443 frag_debug_flag = debug_value;
448 xlat_config_debug_level = debug_value;
455 nat64_debug_dump_info(debug_value);
469 xlat_data_path_debug_level = debug_value;
474 config_debug_level = debug_value;
480 cnat_pptp_debug_flag = debug_value;
482 if(debug_value == 0) {
483 pptp_dump_counters();
490 cnat_pcp_debug_flag = debug_value;
492 if(debug_value == 0) {
499 global_debug_flag = debug_value;
504 summary_stats_debug_flag = debug_value;
517 v6rd_data_path_debug_level = debug_value;
521 v6rd_config_debug_level = debug_value;
528 v6rd_defrag_debug_level = debug_value ? debug_value : 1;
546 nfv9_logging_debug_flag = debug_value;
551 syslog_debug_flag = debug_value;
556 mape_config_debug_level = debug_value;
561 mape_data_path_debug_level = debug_value;
572 udp_inside_checksum_disable);
575 udp_outside_checksum_disable);
578 udp_inside_packet_dump_enable);
581 udp_outside_packet_dump_enable);
596 summary_stats_debug_flag);
602 xlat_config_debug_level);
605 xlat_data_path_debug_level);
608 tcp_logging_enable_flag);
609 PLATFORM_DEBUG_PRINT(
" tcp_logging_enable_options DISABLE %d, ENABLE %d, PKT_DUMP %d, SUMMARY_DUMP %d\n",
614 nfv9_logging_debug_flag);
623 v6rd_data_path_debug_level);
626 v6rd_config_debug_level);
629 v6rd_defrag_debug_level);
644 mape_config_debug_level);
647 mape_data_path_debug_level);
653 extern void dump_cnat_frag_stats(
void);
655 void spp_api_cnat_p2mp_debug_request_t_handler
656 (spp_api_cnat_p2mp_debug_request_t *mp)
667 command_type = spp_net_to_host_byte_order_16(&mp->dump_type);
671 switch (command_type) {
715 spp_node_print_stats(1,
NULL);
721 spp_node_clear_stats();
726 spp_log_p2mp_req(mp);
731 spp_node_print_counters();
736 spp_node_clear_stats();
741 spp_node_print_cnat_counters();
748 u32 arg[2] = {spp_net_to_host_byte_order_32(&mp->param[0]), 0};
758 unsigned long arg[3];
760 if (arg[argc++] = spp_net_to_host_byte_order_32(&mp->param[0])) {
761 if (arg[argc++] = spp_net_to_host_byte_order_32(&mp->param[1])) {
783 cnat_nfv9_show_cmd();
791 unsigned long arg[3];
793 if (arg[argc++] = spp_net_to_host_byte_order_32(&mp->param[0])) {
794 if (arg[argc++] = spp_net_to_host_byte_order_32(&mp->param[1])) {
795 if (arg[argc++] = spp_net_to_host_byte_order_32(&mp->param[2])) {
808 spp_net_to_host_byte_order_32(&mp->param[1]));
818 unsigned long arg[3];
819 if (arg[argc++] = spp_net_to_host_byte_order_32(&mp->param[0])) {
820 if (arg[argc++] = spp_net_to_host_byte_order_32(&mp->param[1])) {
821 if (arg[argc++] = spp_net_to_host_byte_order_32(&mp->param[2])) {
833 spp_net_to_host_byte_order_32(&mp->param[1]));
842 global_pd_dbg_lvl = 0;
843 global_pi_dbg_lvl = 0;
844 global_l2_dbg_lvl = 0;
847 spp_net_to_host_byte_order_32(&mp->param[0]);
849 spp_net_to_host_byte_order_32(&mp->param[1]);
851 spp_net_to_host_byte_order_32(&mp->param[2]);
854 global_pd_dbg_lvl, global_pi_dbg_lvl, global_l2_dbg_lvl);
866 cnat_debug_flags_set(mp);
877 #ifdef TARGET_RODDICK 879 spp_net_to_host_byte_order_32(&mp->param[0]);
890 spp_net_to_host_byte_order_32(&mp->param[0]));
891 set_bulk_size_to_all_vrfs(
892 spp_net_to_host_byte_order_32(&mp->param[0]));
905 u16 in_vrfid = spp_net_to_host_byte_order_32(&mp->param[0]);
906 u32 inside_ip = spp_net_to_host_byte_order_32(&mp->param[1]);
912 dump_cnat_frag_stats();
925 void spp_api_cnat_v4_debug_in2out_private_addr_t_handler
926 (spp_api_cnat_v4_debug_in2out_private_addr_t *mp)
930 u32 start_addr, end_addr;
934 spp_net_to_host_byte_order_32(&mp->start_addr);
936 spp_net_to_host_byte_order_32(&mp->end_addr);
938 spp_net_to_host_byte_order_16(&mp->i_vrf);
940 spp_net_to_host_byte_order_32(&mp->debug_flag);
942 if ((i_vrf >
MAX_UIDX) || (start_addr > end_addr) ||
947 "start addr 0x%x end addr 0x%x\n",
949 start_addr, end_addr);
954 "start addr 0x%x end addr 0x%x\n",
956 start_addr, end_addr);
960 debug_i_flag = debug_flag;
961 debug_i_addr_start = start_addr;
962 debug_i_addr_end = end_addr;
966 void spp_api_cnat_v4_debug_out2in_public_addr_t_handler
967 (spp_api_cnat_v4_debug_out2in_public_addr_t *mp)
971 u32 start_addr, end_addr;
974 spp_net_to_host_byte_order_32(&mp->start_addr);
976 spp_net_to_host_byte_order_32(&mp->end_addr);
978 spp_net_to_host_byte_order_16(&mp->o_vrf);
980 spp_net_to_host_byte_order_32(&mp->debug_flag);
982 if ((o_vrf >
MAX_UIDX) || (start_addr > end_addr) ||
987 "start addr 0x%x end addr 0x%x\n",
989 start_addr, end_addr);
995 debug_o_flag = debug_flag;
996 debug_o_addr_start = start_addr;
997 debug_o_addr_end = end_addr;
1004 NAT64_STFUL_DEBUG_PRINT(3,
" invoking nat64_clean_bib_db_entry\n " );
1005 nat64_clean_bib_db_entry(db);
1006 NAT64_STFUL_DEBUG_PRINT(3,
"done with clean_bib_db_entry\n " );
1009 void spp_api_nat64_clear_db_request_t_handler
1010 (spp_api_nat64_clear_db_request_t *mp)
1012 u16 port, proto, flag;
1020 NAT64_STFUL_FUNC_ENTER;
1021 NAT64_STFUL_DEBUG_DUMP_MSG(mp);
1023 nat64_id = spp_net_to_host_byte_order_16(&mp->nat64_id);
1026 port = spp_net_to_host_byte_order_16(&mp->port_num);
1027 proto = mp->protocol;
1032 for(i =0 ; i< 4 ; i++)
1033 ki.
ipv6[i] = spp_net_to_host_byte_order_32(&mp->ip_addr[i]);
1041 NAT64_STFUL_DEBUG_PRINT(3,
"\n Nat64_id = %d, port =%d, \ 1042 proto =%d, flags=0x%08X",\
1043 nat64_id, port, proto, flag);
1045 NAT64_STFUL_DEBUG_PRINT(3,
"\n IPv6 Addr = %08X : %08X: %08X: %08X",\
1049 NAT64_STFUL_DEBUG_PRINT(3,
"\n clear specific \n");
1053 NAT64_STFUL_DEBUG_PRINT(3,
"\n clear specific - not present\n");
1063 nat64_reset_session_expiry(db);
1081 nat64_reset_session_expiry(db);
1085 if (flag & CNAT_DB_CLEAR_ADDR) {
1090 NAT64_STFUL_DEBUG_PRINT(3,
"\n%s:%d\n", __FUNCTION__, \
1096 if (flag & CNAT_DB_CLEAR_PROTO) {
1099 NAT64_STFUL_DEBUG_PRINT(3,
"\n%s:%d\n", __FUNCTION__, \
1105 if (flag & CNAT_DB_CLEAR_PORT) {
1107 NAT64_STFUL_DEBUG_PRINT(3,
"\n%s:%d\n", __FUNCTION__, \
1113 NAT64_STFUL_DEBUG_PRINT(3,
"\n%s:%d\n", __FUNCTION__, \
1118 nat64_reset_session_expiry(db);
1145 void spp_api_ds_lite_clear_db_request_t_handler
1146 (spp_api_ds_lite_clear_db_request_t *mp)
1148 u16 port, proto, flag;
1159 id = spp_net_to_host_byte_order_16(&mp->ds_lite_id);
1160 id = DS_LITE_CONFIG_TO_ARRAY_ID(
id);
1162 my_table_db_ptr = &dslite_table_array[id];
1163 i_vrf = my_table_db_ptr->
i_vrf;
1165 port = spp_net_to_host_byte_order_16(&mp->port_num);
1166 proto = mp->protocol;
1171 for(i =0 ; i< 4 ; i++)
1172 ki.
ipv6[i] = spp_net_to_host_byte_order_32(&mp->ip_addr[i]);
1181 "proto =%d, flags=0x%08X",\
1182 id, port, proto, flag);
1188 DSLITE_PRINTF(3,
"\n Clear specific NOT supported for DS Lite \n");
1215 cnat_clear_session_db(db);
1219 if (flag & CNAT_DB_CLEAR_ADDR) {
1224 if ((udb->
ipv6[0] != ki.
ipv6[0]) ||
1232 if (flag & CNAT_DB_CLEAR_PROTO) {
1239 if (flag & CNAT_DB_CLEAR_PORT) {
1250 cnat_clear_session_db(db);
1256 void spp_api_cnat_clear_db_request_t_handler
1257 (spp_api_cnat_clear_db_request_t *mp)
1259 u16 i_vrf, port, proto, flag;
1265 #if defined(TARGET_LINUX_UDVR) || defined(CNAT_PG) 1266 i_vrf = mp->inside_vrf;
1267 ip_addr = mp->ip_addr;
1268 port = mp->port_num;
1269 proto = mp->protocol;
1271 i_vrf = spp_net_to_host_byte_order_16(&mp->inside_vrf);
1272 ip_addr = spp_net_to_host_byte_order_32(&mp->ip_addr);
1273 port = spp_net_to_host_byte_order_16(&mp->port_num);
1274 proto = spp_net_to_host_byte_order_16(&mp->protocol);
1284 flag = mp->wildcard;
1316 cnat_clear_session_db(db);
1320 }
while (index !=
EMPTY);
1345 cnat_clear_session_db(db);
1350 if (flag & CNAT_DB_CLEAR_VRF) {
1356 if (flag & CNAT_DB_CLEAR_ADDR) {
1362 if (flag & CNAT_DB_CLEAR_PROTO) {
1369 if (flag & CNAT_DB_CLEAR_PORT) {
1382 cnat_clear_session_db(db);
1394 i = spp_net_to_host_byte_order_32(&(mp_resp->
num_bytes));
1398 for (j = 0; j <
i; j++) {
1400 if ((j % 16) == 15) {
1432 void spp_api_cnat_generic_command_user_db_pm
1433 (spp_api_cnat_generic_command_request_t *mp)
1437 u16 my_vrfmap_index;
1451 u_ki.
k.
k.
vrf = spp_net_to_host_byte_order_32(&mp->params[1]);
1452 u_ki.
k.
k.
ipv4 = spp_net_to_host_byte_order_32(&mp->params[2]);
1458 mp_resp->
num_bytes = spp_host_to_net_byte_order_32(0);
1465 result_array[i++] = spp_host_to_net_byte_order_32((
u32) udb);
1486 spp_host_to_net_byte_order_32(udb->
key.
k.
ipv4);
1488 spp_host_to_net_byte_order_16(udb->
key.
k.
port);
1490 spp_host_to_net_byte_order_16(udb->
key.
k.
vrf);
1502 result_array[i++] = spp_host_to_net_byte_order_32((
u32) my_pm);
1503 result_array[i++] = spp_host_to_net_byte_order_32(my_pm->
inuse);
1504 result_array[i++] = spp_host_to_net_byte_order_32(my_pm->
delete_time);
1505 result_array[i++] = spp_host_to_net_byte_order_32(my_pm->
ipv4_address);
1507 mp_resp->
num_bytes = spp_host_to_net_byte_order_32(i*4);
1510 spp_api_cnat_generic_command_debug(mp_resp);
1535 void spp_api_cnat_generic_command_db_summary
1536 (spp_api_cnat_generic_command_request_t *mp)
1538 u32 count1, count2, count3;
1555 count3 = count1 - count2;
1557 *(result_array + i++) = spp_host_to_net_byte_order_32(count1);
1558 *(result_array + i++) = spp_host_to_net_byte_order_32(count3);
1559 *(result_array + i++) = spp_host_to_net_byte_order_32(count2);
1566 count3 = count1 - count2;
1568 *(result_array + i++) = spp_host_to_net_byte_order_32(count1);
1569 *(result_array + i++) = spp_host_to_net_byte_order_32(count3);
1570 *(result_array + i++) = spp_host_to_net_byte_order_32(count2);
1576 count1 = count2 = 0;
1585 *(result_array + i++) = spp_host_to_net_byte_order_32(CNAT_MAIN_HASH_SIZE);
1586 *(result_array + i++) = spp_host_to_net_byte_order_32(count1);
1587 *(result_array + i++) = spp_host_to_net_byte_order_32(count3);
1591 *(result_array + i++) = spp_host_to_net_byte_order_32(CNAT_MAIN_HASH_SIZE);
1592 *(result_array + i++) = spp_host_to_net_byte_order_32(count2);
1593 *(result_array + i++) = spp_host_to_net_byte_order_32(count3);
1595 mp_resp->
num_bytes = spp_host_to_net_byte_order_32(i*4);
1597 spp_api_cnat_generic_command_debug(mp_resp);
1636 void spp_api_cnat_generic_command_request_t_handler
1637 (spp_api_cnat_generic_command_request_t *mp)
1640 u32 command_type, start_locn, num_bytes;
1642 command_type = spp_net_to_host_byte_order_32(&mp->params[0]);
1645 switch (command_type) {
1647 start_locn = spp_net_to_host_byte_order_32(&mp->params[1]);
1648 num_bytes = spp_net_to_host_byte_order_32(&mp->params[2]);
1650 resp_ptr->
num_bytes = spp_host_to_net_byte_order_32(num_bytes);
1656 for (i = 0; i < num_bytes; i++) {
1658 if ((i % 16) == 15) {
1667 start_locn = spp_net_to_host_byte_order_32(&mp->params[1]);
1668 num_bytes = spp_net_to_host_byte_order_32(&mp->params[2]);
1670 if (num_bytes >
sizeof(
u64)) {
1675 clib_memcpy((
u8 *) start_locn, &(mp->params[3]), num_bytes);
1680 spp_api_cnat_generic_command_db_summary(mp);
1684 spp_api_cnat_generic_command_user_db_pm(mp);
1688 spp_api_cnat_get_cgn_db_summary(mp);
1698 static int cnat_debug_init (
void *notused)
1700 spp_msg_api_set_handler(SPP_API_CNAT_V4_DEBUG_DUMMY,
1701 spp_api_cnat_v4_debug_dummy_t_handler);
1703 spp_msg_api_set_handler(SPP_API_CNAT_V4_DEBUG_DUMMY_MAX,
1704 spp_api_cnat_v4_debug_dummy_max_t_handler);
1706 spp_msg_api_set_handler(SPP_API_CNAT_V4_DEBUG_GLOBAL,
1707 spp_api_cnat_v4_debug_global_t_handler);
1709 spp_msg_api_set_handler(SPP_API_CNAT_V4_DEBUG_IN2OUT_PRIVATE_ADDR,
1710 spp_api_cnat_v4_debug_in2out_private_addr_t_handler);
1712 spp_msg_api_set_handler(SPP_API_CNAT_V4_DEBUG_OUT2IN_PUBLIC_ADDR,
1713 spp_api_cnat_v4_debug_out2in_public_addr_t_handler);
1715 spp_msg_api_set_handler(SPP_API_CNAT_CLEAR_DB_REQUEST,
1716 spp_api_cnat_clear_db_request_t_handler);
1718 spp_msg_api_set_handler(SPP_API_CNAT_GENERIC_COMMAND_REQUEST,
1719 spp_api_cnat_generic_command_request_t_handler);
1721 spp_msg_api_set_handler(SPP_API_CNAT_P2MP_DEBUG_REQUEST,
1722 spp_api_cnat_p2mp_debug_request_t_handler);
1724 spp_msg_api_set_handler(SPP_API_NAT64_CLEAR_DB_REQUEST,
1725 spp_api_nat64_clear_db_request_t_handler);
1727 spp_msg_api_set_handler(SPP_API_DS_LITE_CLEAR_DB_REQUEST,
1728 spp_api_ds_lite_clear_db_request_t_handler);
1740 void spp_api_cnat_get_cgn_db_summary
1741 (spp_api_cnat_generic_command_request_t *mp)
1743 u32 total_db_entries, total_free_entries, used_entries;
1759 used_entries = total_db_entries - total_free_entries;
1761 *(result_array + i++) = spp_host_to_net_byte_order_32(total_db_entries);
1762 *(result_array + i++) = spp_host_to_net_byte_order_32(used_entries);
1763 *(result_array + i++) = spp_host_to_net_byte_order_32(total_free_entries);
1770 used_entries = total_db_entries - total_free_entries;
1772 *(result_array + i++) = spp_host_to_net_byte_order_32(total_db_entries);
1773 *(result_array + i++) = spp_host_to_net_byte_order_32(used_entries);
1774 *(result_array + i++) = spp_host_to_net_byte_order_32(total_free_entries);
1776 mp_resp->
num_bytes = spp_host_to_net_byte_order_32(i*
sizeof(
u32));
1779 SPP_INIT_FUNCTION(cnat_debug_init);
#define CNAT_DEBUG_GENERIC_COMMAND_READ_MEM
#define TCP_LOGGING_DISABLE
void cnat_db_dump_user(int argc, unsigned long *argv)
cnat_main_db_entry_t * cnat_main_db
sll srl srl sll sra u16x4 i
void cnat_db_dump_user_summary(int argc, unsigned long *argv)
#define DSLITE_PRINTF(level,...)
void cnat_db_dump_main(int argc, unsigned long *argv)
void cnat_db_dump_policy(int argc, unsigned long *argv)
#define CNAT_DEBUG_GENERIC_COMMAND_DB_SUMMARY
u32 nat64_data_path_debug_level
cnat_session_entry_t * cnat_session_db
u16 cnat_static_port_range
#define CNAT_DEBUG_GENERIC_COMMAND_USER_DB_PM
#define vec_add2(V, P, N)
Add N elements to end of vector V, return pointer to new elements in P.
#define CNAT_MAIN_HASH_SIZE
index_slist_t in2out_hash
#define CNAT_DB_FLAG_STATIC_PORT
u32 nfv9_logging_debug_flag
cnat_portmap_v2_t * portmap_list
#define TCP_LOGGING_PACKET_DUMP
void cnat_show_ivrf_command_v2(int argc, unsigned long *argv)
void show_bulk_port_stats()
index_slist_t * cnat_in2out_hash
u32 nat64_config_debug_level
nat64_table_entry_t * nat64_table_ptr
#define TCP_LOGGING_ENABLE
#define CNAT_DB_NAT64_FLAG
nat64_bib_entry_t * nat64_bib_db_lookup_entry(nat64_v6_key_t *ki)
void cnat_show_cdb_command_v2(int argc, unsigned long *argv)
cnat_global_counters_t cnat_global_counters
void cnat_db_dump_portmaps()
#define CNAT_DB_CLEAR_ALL
#define CNAT_DEBUG_GET_CGN_DB_SUMMARY
void cnat_db_dump_timeout()
u16 vrf_map_array[CNAT_MAX_VRFMAP_ENTRIES]
void tcp_debug_logging_enable_disable(u32 enable_flag)
cnat_user_db_entry_t * cnat_user_db
u32 tcp_logging_enable_flag
u64 nfv9_downstream_constipation_count
always_inline uword clib_bitmap_get(uword *ai, uword i)
u32 translation_list_head_index
u32 udp_inside_packet_dump_enable
#define clib_memcpy(a, b, c)
#define CNAT_DB_CLEAR_SPECIFIC
#define CNAT_DB_DSLITE_FLAG
u32 summary_stats_debug_flag
void show_bulk_port_allocation(u16 in_vrfid, u32 inside_ip)
void cnat_va_dump(int argc, unsigned long *argv)
void cnat_db_dump_main_summary(int argc, unsigned long *argv)
void cnat_show_ovrf_command_v2(int argc, unsigned long *argv)
#define CNAT_DEBUG_GLOBAL_ALL
#define vec_delete(V, N, M)
Delete N elements starting at element M.
u32 udp_outside_packet_dump_enable
index_slist_t * cnat_out2in_hash
void cnat_db_dump_hashes(int argc, unsigned long *argv)
always_inline pool_header_t * pool_header(void *v)
#define CNAT_DEBUG_GLOBAL_ERR
#define TCP_LOGGING_SUMMARY_DUMP
u32 ds_lite_config_debug_level
cnat_vrfmap_t * cnat_map_by_vrf
cnat_user_db_entry_t * cnat_user_db_lookup_entry(cnat_db_key_bucket_t *uki)
#define CNAT_MAIN_HASH_MASK
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
nat64_bib_entry_t * nat64_bib_db
always_inline void * vec_header(void *v, uword header_bytes)
Find a user vector header.
u16 * cgse_uidb_index_cgse_id_mapping_ptr
u32 udp_inside_checksum_disable
u32 db_free_entry(void *p)
#define CNAT_V4_GET_HASH(key64, hash, mask)
void dslite_show_config(void)
u32 udp_outside_checksum_disable
#define CNAT_DEBUG_GENERIC_COMMAND_WRITE_MEM
void clear_bulk_port_stats()