Initial commit of vpp code.
[vpp.git] / vnet / vnet / vcgn / cnat_show_response.h
1 /* 
2  *------------------------------------------------------------------
3  * cnat_show_response.h show command response structs
4  *
5  * Copyright (c) 2007-2013 Cisco and/or its affiliates.
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at:
9  *
10  *     http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *------------------------------------------------------------------
18  */
19
20 #ifndef __CNAT_SHOW_RESPONSE_H__
21 #define __CNAT_SHOW_RESPONSE_H__ 
22
23 /*
24  * Flags indicating the type of translation entry
25  */
26 #define CNAT_TRANSLATION_ENTRY_ALL     0x0
27 #define CNAT_TRANSLATION_ENTRY_STATIC  0x1
28 #define CNAT_TRANSLATION_ENTRY_ALG     0x2
29 #define CNAT_TRANSLATION_ENTRY_DYNAMIC 0x4
30
31 /* for PCP support */
32 #define CNAT_TRANSLATION_ENTRY_PCPI_DYNAMIC 0x08
33 #define CNAT_TRANSLATION_ENTRY_PCPE_DYNAMIC 0x10
34
35 #define MAX_NODE_NAME_LEN  18
36 #define MAX_CTR_NAME_LEN   10
37
38 /*
39  * show translation entry response structures
40  */
41 typedef struct {
42     u16 call_id;
43     u16 cnat_call_id; /* mapped call Id */
44     u16 dst_call_id; /* dest call id */
45 } cnat_v4_show_gre_entry;
46
47 typedef struct {
48     u16 msg_id;
49     u16 rc; /* o/p parameter. */
50     u16 num_entries; /* Number of entries sent as output */
51     u16 vrf_id; /* vrf  id */
52     u32 pns_ip;
53     cnat_v4_show_gre_entry entries[0];
54 } cnat_v4_show_gre_entry_resp;
55
56 /*
57  * show translation entry response structures 
58  */
59 typedef struct {
60     u32 ipv4_addr;
61     u16 src_port;
62     u16 cnat_port; /* port which replaced the src port */
63     u8 protocol; 
64     u8 pad;
65     u16 flags; 
66     u16 nsessions;
67     u32 in2out_packets; 
68     u32 out2in_packets; 
69 } cnat_v4_show_translation_entry;
70
71 typedef struct {
72     u16 msg_id;
73     u8 rc; /* o/p parameter. */
74     u8 num_entries; /* Number of entries sent as output */
75     u16 vrf_id; /* vrf  id */
76     u16 pad;
77     cnat_v4_show_translation_entry entries[0];
78 } cnat_v4_show_entry_resp;
79
80 /*
81  * show free/used ipv4 address/port response structure 
82  */
83 typedef struct { 
84     u32 ip_addr;        
85     u32 free_used_ports; 
86 } cnat_v4_show_free_used_entry;
87
88 typedef struct {
89     u16 msg_id;
90     u8 rc;      
91     u8 count; 
92     u32 max_ports;
93     cnat_v4_show_free_used_entry entry_list[0]; 
94 } cnat_v4_show_free_used_entry_resp; 
95
96 /*
97  * Node name to id mapping
98  */
99 typedef struct  {
100     u8  node_id;
101     u8  pad;
102     char node_name[MAX_NODE_NAME_LEN];
103 } cnat_statistics_node_name;
104
105 typedef struct {
106     u16 msg_id;
107     u8 rc;
108     u8 num_nodes;
109     cnat_statistics_node_name node_name_array[0];
110 } cnat_statistics_node_name_mapping_resp;
111
112 /*
113  * Counter name to id mapping
114  */
115 typedef struct  {
116     u8 node_id;
117     u8 counter_id;
118     char counter_name[MAX_CTR_NAME_LEN];
119 } cnat_statistics_counter_name;
120
121 typedef struct {
122     u16 msg_id;
123     u8 rc;
124     u8 num_counters;
125     cnat_statistics_counter_name counter_name_array[0];
126 } cnat_statistics_counter_name_mapping_resp;
127
128
129 /*
130  * Node name to id mapping
131  */ 
132 typedef struct {
133     u16 msg_id;
134     u8 rc;
135     u8 num_nodes;
136     u32 pad;
137     u64 counters [0];
138 } cnat_statistics_counter_values;
139
140 /*
141  * Summary Stats
142  */
143 typedef struct {
144     u32 eaddr;
145     u32 ports_used;
146 } pool_address_usage_t;
147
148 typedef struct {
149     u16 msg_id;
150     u8 rc;
151     u8 pad;
152     u16 max_pkt_size;
153     u16 pool_address_copied;
154     u32 active_translations;
155     u32 translation_create_rate;
156     u32 translation_delete_rate;
157     u32 in2out_forwarding_rate;
158     u32 out2in_forwarding_rate;
159     u32 dummy;
160     u64 in2out_drops_port_limit_exceeded;
161     u64 in2out_drops_system_limit_reached;
162     u64 in2out_drops_resource_depletion;
163     u64 no_translation_entry_drops;
164     u64 pptp_active_tunnels;
165     u64 pptp_active_channels;
166     u64 pptp_ctrlmsg_drops;
167     u32 no_sessions;
168
169     u32 pool_address_totally_free;
170     u32 pool_address_used; /* The following array size will be lesser of
171                               (pool_address_used, 200) */
172     u32 num_subscribers;
173     u64 drops_sessiondb_limit_exceeded;
174     u64 in2out_drops_src_ip_no_config;    // for deterministic nat on brahmos
175     pool_address_usage_t pool_address_usage[0];
176 } cnat_show_statistics_summary_resp;
177
178
179 typedef struct {
180     u16 msg_id;
181     u8  rc;
182     u8  pad;
183     u64 o2i_tcp_seq_mismatch_drop;
184     u64 o2i_tcp_seq_mismatch;
185     u64 o2i_sessions_created;
186     u64 o2i_end_point_filter_drop;
187 } cnat_show_counters_summary_resp;
188
189
190 typedef struct {
191     u16 msg_id;
192     u8 rc;
193     u8 pad;
194
195     /*
196      * XLAT statistics
197      */
198     u64 v6_to_v4_tcp_input_count; 
199     u64 v6_to_v4_tcp_non_translatable_drop_count;
200     u64 v6_to_v4_tcp_invalid_next_hdr_drop_count;
201     u64 v6_to_v4_tcp_no_db_drop_count;
202     u64 v6_to_v4_tcp_output_count;
203
204     u64 v4_to_v6_tcp_input_count;
205     u64 v4_to_v6_tcp_no_db_drop_count;
206     u64 v4_to_v6_tcp_output_count;
207
208     u64 v6_to_v4_udp_input_count; 
209     u64 v6_to_v4_udp_non_translatable_drop_count;
210     u64 v6_to_v4_udp_invalid_next_hdr_drop_count;
211     u64 v6_to_v4_udp_no_db_drop_count;
212     u64 v6_to_v4_udp_output_count;
213
214     u64 v4_to_v6_udp_input_count;
215     u64 v4_to_v6_udp_no_db_drop_count;
216     u64 v4_to_v6_udp_output_count;
217     u64 v4_to_v6_udp_frag_crc_zero_drop_count;
218     u64 v4_to_v6_udp_crc_zero_recycle_sent_count;
219     u64 v4_to_v6_udp_crc_zero_recycle_drop_count;
220
221     u64 v6_to_v4_icmp_qry_input_count;
222     u64 v6_to_v4_icmp_no_db_drop_count;
223     u64 v6_to_v4_icmp_frag_drop_count;
224     u64 v6_to_v4_icmp_invalid_next_hdr_drop_count;
225     u64 v6_to_v4_icmp_non_translatable_drop_count;
226     u64 v6_to_v4_icmp_non_translatable_fwd_count;
227     u64 v6_to_v4_icmp_unsupported_type_drop_count;
228     u64 v6_to_v4_icmp_err_output_count;
229     u64 v6_to_v4_icmp_qry_output_count;
230
231     u64 v4_to_v6_icmp_qry_input_count;
232     u64 v4_to_v6_icmp_no_db_drop_count;
233     u64 v4_to_v6_icmp_frag_drop_count;
234     u64 v4_to_v6_icmp_unsupported_type_drop_count;
235     u64 v4_to_v6_icmp_err_output_count;
236     u64 v4_to_v6_icmp_qry_output_count;
237
238     u64 v6_to_v4_subsequent_frag_input_count;
239     u64 v6_to_v4_subsequent_frag_non_translatable_drop_count;
240     u64 v6_to_v4_subsequent_frag_invalid_next_hdr_drop_count;
241     u64 v6_to_v4_subsequent_frag_no_db_drop_count;
242     u64 v6_to_v4_subsequent_frag_output_count;
243
244     u64 v4_to_v6_subsequent_frag_input_count;
245     u64 v4_to_v6_subsequent_frag_no_db_drop_count;
246     u64 v4_to_v6_subsequent_frag_output_count;
247
248     u64 v4_to_v6_subsequent_frag_drop_count;
249     u64 v4_to_v6_subsequent_frag_throttled_count;
250     u64 v4_to_v6_subsequent_frag_timeout_drop_count;
251     u64 v4_to_v6_subsequent_frag_tcp_input_count;
252     u64 v4_to_v6_subsequent_frag_udp_input_count;
253     u64 v4_to_v6_subsequent_frag_icmp_input_count;
254
255     u64 v6_to_v4_options_input_count;
256     u64 v6_to_v4_options_drop_count;
257     u64 v6_to_v4_options_forward_count;
258     u64 v6_to_v4_options_no_db_drop_count;
259     u64 v6_to_v4_unsupp_proto_count;
260
261     u64 v4_to_v6_options_input_count;
262     u64 v4_to_v6_options_drop_count;
263     u64 v4_to_v6_options_forward_count;
264     u64 v4_to_v6_options_no_db_drop_count;
265     u64 v4_to_v6_unsupp_proto_count;
266    
267     u64 v4_icmp_gen_count;
268     u64 v6_icmp_gen_count;
269 } xlat_show_statistics_summary_resp;
270
271 typedef struct {
272     u16 msg_id;
273     u8  rc;
274     u8  pad;
275     /* Total v4 packets to BR */
276     u64 v4_to_v6_input_total_count;
277     /* Total v4 tunneled packets to BR */
278     u64 v4_to_v6_41_input_total_count;
279     /* proto 41 packets without minimum, of 40, v6 payload */
280     u64 v4_to_v6_41_insuff_v6payld_count;
281     /* total proto 41 packets being considered for decap */
282     u64 v4_to_v6_41_valid_count;
283     /* proto 41 packets that failed security check*/
284     u64 v4_to_v6_41_sec_check_fail_count;
285     /* packets with no active db entry */
286     u64 v4_to_v6_no_db_drop_count;
287     /* proto 41 packets actually getting decapped */
288     u64 v4_to_v6_41_decap_count;
289     /* total v4 packets which are neither icmp nor 41 */
290     u64 v4_to_v6_unsupported_protocol_count;
291     /* v4 tunneled packets with invalid v6 source address */
292     u64 v4_to_v6_41_invalid_v6_source;
293     /* total icmpv4 packets destined to BR */
294     u64 v4_forus_icmp_input_count;
295     /* total icmpv4 echo replies by BR */
296     u64 v4_icmp_reply_count;
297     /* total icmpv4 error messages translated to icmpv6 by BR */
298     u64 v4_to_v6_icmp_translation_count;
299     /* total packets with icmpv4 type/code which are not supported by BR */
300     u64 v4_icmp_unsupported_count;
301     /* total icmpv4 packets which are rate-limited by BR */
302     u64 v4_icmp_throttled_count;
303     /* total ICMPv4 error messages which could not be translated */
304     u64 v4_icmp_non_translatable_drop_count;
305
306     /* ipv4 defrag stats */
307     u64 v4_to_v6_frag_input_count;
308     u64 v4_to_v6_frag_sec_check_fail_count;
309     u64 v4_to_v6_frag_reassem_count;
310     u64 v4_to_v6_frag_timeout_drop_count;
311     u64 v4_to_v6_frag_icmp_input_count;
312     u64 v4_to_v6_frag_41_insuff_v6payld_count;
313     u64 v4_to_v6_frag_no_db_drop_count;
314     u64 v4_to_v6_frag_unsupported_protocol_count;
315     u64 v4_to_v6_frag_41_invalid_v6_source;
316     u64 v4_to_v6_frag_throttled_count;
317     u64 v4_to_v6_frag_dup_count;
318     u64 v4_to_v6_frag_reassem_frag_count;
319     u64 v4_to_v6_frag_disable_count;
320     u64 v4_to_v6_frag_drop_count;
321
322     /* total v6 packets input to BR */
323     u64 v6_to_v4_total_input_count;
324     /* v6 packets with no active db entry */
325     u64 v6_to_v4_no_db_drop_count;
326     /* forus v6 packets with next header other than icmpv6 */
327     u64 v6_to_v4_forus_unsupp_proto_count;
328     /* total v6 packets that got tunneled */
329     u64 v6_to_v4_encap_count;
330     /* total icmpv6 packets destined to BR */
331     u64 v6_forus_icmp_input_count;
332     /* total icmpv6 echo replies by BR */
333     u64 v6_icmp_reply_count;
334     /* total icmpv6 PTB messages generated by BR */
335     u64 v6_ptb_generated_count;
336     /* total ipv6 packets for which PTBv6 was NOT generated by BR */
337     u64 v6_ptb_not_generated_drop_count;
338     /* total icmpv6 Neighbor Advertisements generated by BR */
339     u64 v6_na_generated_count;
340     /* total icmpv6 TTL expiry messages generated by BR */
341     u64 v6_ttl_expiry_generated_count;
342     /* total ICMPv6 fragments, which are dropped by BR */
343     u64 v6_to_v4_frag_icmp_input_count;
344     /* total packets with icmpv6 type/code which are not supported by BR */
345     u64 v6_icmp_unsupported_count;
346     /* total icmpv6 packets which are rate-limited by BR */
347     u64 v6_icmp_throttled_count;
348 } v6rd_show_statistics_summary_resp;
349
350 typedef struct {
351     u16 msg_id;
352     u8  rc;
353     u8  pad;
354
355     /* Total Incoming Count */
356     u64 v4_input_count;
357     /* Total Drop Count */
358     u64 v4_drop_count;
359     /* Total Output Count */
360     u64 v4_to_v6_output_count;
361     /* TCP Incoming Count */
362     u64 v4_tcp_input_count;
363     /* TCP Output Count */
364     u64 v4_tcp_output_count;
365     /* UDP Incoming Count */
366     u64 v4_udp_input_count;
367     /* UDP Output Count */ 
368     u64 v4_udp_output_count;
369     /* ICMPv4 Incoming Count */
370     u64 v4_icmp_input_count;
371     /* ICMPv4 Output Count */ 
372     u64 v4_to_v6_icmp_output_count;
373     /* Invalid UIDB Drop Count */
374     u64 v4_invalid_uidb_drop_count; 
375     /* NoDb Drop Count */
376     u64 v4_no_db_drop_count; 
377     /* TTL Expire Drop Count */
378     u64 v4_ttl_expire_drop_count;
379     /* Invalid IP Destination Drop Count */
380     u64 v4_invalid_destination_prefix_drop_count;
381     /* Packet Execeeding Path MTU Drop Count */
382     u64 v4_path_mtu_exceed_count;
383     /* Unsupported Protocol Drop Count */
384     u64 v4_invalid_proto_type_drop_count;
385     /* ICMPv4 Generated for TTL Expire Count */
386     u64 v4_ttl_expiry_generated_count;
387     /* ICMPv4 Generated for Error Count */
388     u64 v4_icmp_error_gen_count;
389     /* ICMPv4 Packets Rate-Limited Count */
390     u64 v4_icmp_throttled_drop_count;
391     /* TCP MSS Changed Count */
392     u64 v4_tcp_mss_changed_count;
393
394     /* Total Incoming Count */
395     u64 v6_input_count;
396     /* Total Drop Count */
397     u64 v6_drop_count;
398     /* Total Output Count */
399     u64 v6_to_v4_output_count;
400     /* TCP Incoming Count */
401     u64 v6_tcp_input_count;
402     /* TCP Output Count */
403     u64 v6_tcp_output_count;
404     /* UDP Incoming Count */
405     u64 v6_udp_input_count;
406     /* UDP Output Count */
407     u64 v6_udp_output_count;
408     /* ICMPv4 Incoming Count */
409     u64 v6_icmpv4_input_count;
410     /* ICMPv4 Output Count */
411     u64 v6_icmpv4_output_count;
412     /* Invalid UIDB Drop Count */ 
413     u64 v6_invalid_uidb_drop_count;
414     /* NoDb Drop Count */
415     u64 v6_no_db_drop_count;
416     /* TTL Expire Drop Count */
417     u64 v6_ttl_expire_drop_count;
418     /* Invalid IPv6 Destination Drop Count */
419     u64 v6_invalid_destination_drop_count;
420     /* Invalid Source Prefix Drop Count */
421     u64 v6_invalid_source_prefix_drop_count;
422     /* Unsupported Protocol Drop Count */ 
423     u64 v6_invalid_proto_type_drop_count;
424     /* ICMPv6 Input Count */
425     u64 v6_icmp_input_count;
426     /* ICMPv6 Invalid UIDB Drop Count */
427     u64 v6_icmp_invalid_uidb_drop_count;
428     /* ICMPv6 NoDb Drop Count */
429     u64 v6_icmp_no_db_drop_count;
430     /* ICMPv6 TTL Expire Drop Count */
431     u64 v6_icmp_ttl_expire_drop_count;
432     /* ICMPv6 Invalid IPv6 Destination Drop Count */
433     u64 v6_icmp_invalid_destination_drop_count;
434     /* ICMPv6 Unsupported Type Drop Count */
435     u64 v6_icmp_unsupported_type_drop_count;
436     /* ICMPv6 Invalid NxtHdr Drop Count*/
437     u64 v6_icmp_unsupported_nxthdr_drop_count;
438     /* ICMPv6 Frag Drop Count */
439     u64 v6_icmp_frag_drop_count;
440     /* ICMPv6 Forus Count */
441     u64 v6_forus_icmp_input_count;
442     /* ICMPv6 Echo Response Received Count */
443     u64 v6_received_echo_response_count;
444     /* ICMPv6 Echo Replies Count */
445     u64 v6_echo_reply_count;
446     /* ICMPv6 Translated to ICMPV4 Output Count*/
447     u64 v6_to_v4_icmp_output_count;
448     /* ICMPv6 Generated for TTL Expire Count */
449     u64 v6_ttl_expiry_generated_count;
450     /* ICMPv6 Generated for Error Count */
451     u64 v6_icmp_error_gen_count;
452     /* ICMPv6 Packets Rate-Limited Count */
453     u64 v6_icmp_throttled_drop_count;
454     /* TCP MSS Changed Count */
455     u64 v6_tcp_mss_changed_count;
456
457     /*Total Input Count*/
458     u64 v4_to_v6_frag_input_count;
459    /*Total Drop Count*/
460     u64 v4_to_v6_frag_drop_count;
461     /*Reassembled Output Count*/
462     u64 v4_to_v6_frag_reassem_count;
463
464     /*TCP Input Count*/
465     u64 v4_to_v6_frag_tcp_input_count;
466     /*UDP Input Count*/
467     u64 v4_to_v6_frag_udp_input_count;
468     /*ICMPv4 Input Count*/
469     u64 v4_to_v6_frag_icmp_input_count;
470
471     /*Invalid UIDB Drop Count */
472     u64 v4_to_v6_frag_invalid_uidb_drop_count;
473     /*NoDb Drop Count*/
474     u64 v4_to_v6_frag_no_db_drop_count;
475     /*Unsupported Protocol Drop Count*/
476     u64 v4_to_v6_frag_invalid_proto_type_drop_count;
477     /*Throttled Count*/
478     u64 v4_to_v6_frag_throttled_count;
479     /*Timeout Drop Count*/
480     u64 v4_to_v6_frag_timeout_drop_count;
481     /*Duplicates Drop Count*/
482     u64 v4_to_v6_frag_dup_count;
483
484     /*Total Input Count*/
485     u64 v6_to_v4_inner_frag_input_count;
486     /*Total Drop Count*/
487     u64 v6_to_v4_inner_frag_drop_count;
488     /*Total Output Count*/
489     u64 v6_to_v4_inner_frag_output_count;
490
491     /*TCP Input Count*/
492     u64 v6_to_v4_inner_frag_tcp_input_count;
493     /*UDP Input Count*/
494     u64 v6_to_v4_inner_frag_udp_input_count;
495     /*ICMPv4 Input Count*/
496     u64 v6_to_v4_inner_frag_icmp_input_count;
497
498     /*Invalid Source Prefix Drop Count*/
499     u64 v6_to_v4_inner_frag_invalid_source_prefix_drop_count;
500     /*Unsupported Protocol Drop Count*/
501     u64 v6_to_v4_inner_frag_invalid_proto_type_drop_count;
502     /*Throttled Count*/
503     u64 v6_to_v4_inner_frag_throttled_count;
504     /*Timeout Drop Count*/
505     u64 v6_to_v4_inner_frag_timeout_drop_count;
506     /*Duplicates Drop Count*/
507     u64 v6_to_v4_inner_frag_dup_count;
508
509     /*ICMPv6 Generated for Error Count */
510     u64 v6_to_v4_inner_frag_icmp_error_gen_count;
511     /*ICMPv6 Packets Rate-Limited Count */
512     u64 v6_to_v4_inner_frag_icmp_throttled_drop_count;
513
514     /*TCP MSS Changed Count */
515     u64 v6_to_v4_inner_frag_tcp_mss_changed_count;
516
517 } mape_show_statistics_summary_resp;
518
519 /*
520  * The following are the command types for Generic Command cases
521  */
522 #define CNAT_DEBUG_GENERIC_COMMAND_READ_MEM  1
523 #define CNAT_DEBUG_GENERIC_COMMAND_WRITE_MEM 2
524 #define CNAT_DEBUG_GENERIC_COMMAND_DB_SUMMARY 3
525 #define CNAT_DEBUG_GENERIC_COMMAND_USER_DB_PM 4
526 #define CNAT_DEBUG_GET_CGN_DB_SUMMARY 5
527
528 typedef enum { 
529     CNAT_DEBUG_GENERIC_COMMAND_DUMP_POLICY,
530     CNAT_DEBUG_GENERIC_COMMAND_DUMP_MAIN_DB,
531     CNAT_DEBUG_GENERIC_COMMAND_DUMP_USER_DB,
532     CNAT_DEBUG_GENERIC_COMMAND_DUMP_HASHES_DB,
533     CNAT_DEBUG_GENERIC_COMMAND_DUMP_VRF_MAP,
534     CNAT_DEBUG_GENERIC_COMMAND_DUMP_SUMMARY_DB,
535     CNAT_DEBUG_GENERIC_COMMAND_DUMP_STATS,
536     CNAT_DEBUG_GENERIC_COMMAND_CLEAR_STATS,
537     CNAT_DEBUG_GENERIC_COMMAND_DUMP_NODE_COUNTER,
538     CNAT_DEBUG_GENERIC_COMMAND_CLEAR_NODE_COUNTER,
539     CNAT_DEBUG_GENERIC_COMMAND_DUMP_CNAT_COUNTER,
540     CNAT_DEBUG_GENERIC_COMMAND_DUMP_VA,
541     CNAT_DEBUG_GENERIC_COMMAND_SHOW_CONFIG,
542     CNAT_DEBUG_GENERIC_COMMAND_SHOW_NFV9,
543     CNAT_DEBUG_GENERIC_COMMAND_SHOW_IVRF,
544     CNAT_DEBUG_GENERIC_COMMAND_SHOW_OVRF,
545     CNAT_DEBUG_SPP_LOG,
546     CNAT_DEBUG_GENERIC_COMMAND_DEBUG_OPTIONS,
547     CNAT_DEBUG_GENERIC_COMMAND_DUMP_DEBUG_LEVELS,
548     CNAT_DEBUG_GENERIC_COMMAND_DEBUG_FLAGS,
549     CNAT_READ_TEMP_SENSORS,
550     CNAT_BLOCK_OCTEON_SENSOR_READ,
551     CNAT_DEBUG_GENERIC_COMMAND_DUMP_MAIN_DB_SUMMARY,
552     CNAT_DEBUG_GENERIC_COMMAND_DUMP_USER_DB_SUMMARY,
553     CNAT_DEBUG_DUMP_6RD_STATS,
554     CNAT_DEBUG_TIMEOUT_DB_SUMMARY,
555     CNAT_NAT64_STFUL_DEBUG_COMMAND,
556     CNAT_DEBUG_SET_BULK_SIZE,
557     CNAT_DEBUG_SHOW_BULK_STAT,
558     CNAT_DEBUG_CLEAR_BULK_STAT,
559     CNAT_DEBUG_SHOW_BULK_ALLOC,
560     CNAT_DEBUG_NAT64,
561     CNAT_DEBUG_NAT44_IN2OUT_FRAG_STATS,
562 } cnat_debug_dump_type_t;
563
564 typedef enum {
565     CNAT_DEBUG_FLAG_UDP_INSIDE_CHECKSUM_MODIFY,
566     CNAT_DEBUG_FLAG_UDP_OUTSIDE_CHECKSUM_MODIFY,
567     CNAT_DEBUG_FLAG_UDP_INSIDE_PACKET_DUMP,
568     CNAT_DEBUG_FLAG_UDP_OUTSIDE_PACKET_DUMP,
569 } cnat_debug_flag_type_t;
570
571 typedef struct {
572     u16 spp_msg_id;
573     u8 rc;
574     u8 core;
575     u32 num_bytes;
576     u8 raw_data[0];
577 } cnat_generic_command_resp;
578
579 extern u32 db_free_entry (void * p);
580 #endif  /*__CNAT_SHOW_RESPONSE_H__*/