2 *------------------------------------------------------------------
3 * cnat_show_response.h show command response structs
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:
10 * http://www.apache.org/licenses/LICENSE-2.0
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 *------------------------------------------------------------------
20 #ifndef __CNAT_SHOW_RESPONSE_H__
21 #define __CNAT_SHOW_RESPONSE_H__
24 * Flags indicating the type of translation entry
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
32 #define CNAT_TRANSLATION_ENTRY_PCPI_DYNAMIC 0x08
33 #define CNAT_TRANSLATION_ENTRY_PCPE_DYNAMIC 0x10
35 #define MAX_NODE_NAME_LEN 18
36 #define MAX_CTR_NAME_LEN 10
39 * show translation entry response structures
43 u16 cnat_call_id; /* mapped call Id */
44 u16 dst_call_id; /* dest call id */
45 } cnat_v4_show_gre_entry;
49 u16 rc; /* o/p parameter. */
50 u16 num_entries; /* Number of entries sent as output */
51 u16 vrf_id; /* vrf id */
53 cnat_v4_show_gre_entry entries[0];
54 } cnat_v4_show_gre_entry_resp;
57 * show translation entry response structures
62 u16 cnat_port; /* port which replaced the src port */
69 } cnat_v4_show_translation_entry;
73 u8 rc; /* o/p parameter. */
74 u8 num_entries; /* Number of entries sent as output */
75 u16 vrf_id; /* vrf id */
77 cnat_v4_show_translation_entry entries[0];
78 } cnat_v4_show_entry_resp;
81 * show free/used ipv4 address/port response structure
86 } cnat_v4_show_free_used_entry;
93 cnat_v4_show_free_used_entry entry_list[0];
94 } cnat_v4_show_free_used_entry_resp;
97 * Node name to id mapping
102 char node_name[MAX_NODE_NAME_LEN];
103 } cnat_statistics_node_name;
109 cnat_statistics_node_name node_name_array[0];
110 } cnat_statistics_node_name_mapping_resp;
113 * Counter name to id mapping
118 char counter_name[MAX_CTR_NAME_LEN];
119 } cnat_statistics_counter_name;
125 cnat_statistics_counter_name counter_name_array[0];
126 } cnat_statistics_counter_name_mapping_resp;
130 * Node name to id mapping
138 } cnat_statistics_counter_values;
146 } pool_address_usage_t;
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;
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;
169 u32 pool_address_totally_free;
170 u32 pool_address_used; /* The following array size will be lesser of
171 (pool_address_used, 200) */
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
267 u64 v4_icmp_gen_count;
268 u64 v6_icmp_gen_count;
269 } xlat_show_statistics_summary_resp;
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;
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;
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;
355 /* Total Incoming Count */
357 /* Total 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;
394 /* Total Incoming Count */
396 /* Total 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;
457 /*Total Input Count*/
458 u64 v4_to_v6_frag_input_count;
460 u64 v4_to_v6_frag_drop_count;
461 /*Reassembled Output Count*/
462 u64 v4_to_v6_frag_reassem_count;
465 u64 v4_to_v6_frag_tcp_input_count;
467 u64 v4_to_v6_frag_udp_input_count;
468 /*ICMPv4 Input Count*/
469 u64 v4_to_v6_frag_icmp_input_count;
471 /*Invalid UIDB Drop Count */
472 u64 v4_to_v6_frag_invalid_uidb_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;
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;
484 /*Total Input Count*/
485 u64 v6_to_v4_inner_frag_input_count;
487 u64 v6_to_v4_inner_frag_drop_count;
488 /*Total Output Count*/
489 u64 v6_to_v4_inner_frag_output_count;
492 u64 v6_to_v4_inner_frag_tcp_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;
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;
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;
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;
514 /*TCP MSS Changed Count */
515 u64 v6_to_v4_inner_frag_tcp_mss_changed_count;
517 } mape_show_statistics_summary_resp;
520 * The following are the command types for Generic Command cases
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
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,
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,
561 CNAT_DEBUG_NAT44_IN2OUT_FRAG_STATS,
562 } cnat_debug_dump_type_t;
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;
577 } cnat_generic_command_resp;
579 extern u32 db_free_entry (void * p);
580 #endif /*__CNAT_SHOW_RESPONSE_H__*/