instrumentation.h (4459B)
1 /* 2 * 3 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 4 * 5 * Copyright 2007-2019 Broadcom Inc. All rights reserved. 6 * 7 * File: instrumentation.h 8 */ 9 10 #ifndef _BCM_INT_INSTRUMENTATION_H 11 #define _BCM_INT_INSTRUMENTATION_H 12 13 #include <soc/defs.h> 14 15 #ifdef BCM_INSTRUMENTATION_SUPPORT 16 17 #include <bcm/types.h> 18 #include <bcm/switch.h> 19 20 21 /* packet trace feature support */ 22 extern int bcm_esw_pkt_trace_init(int unit); 23 extern int _bcm_esw_pkt_trace_info_get(int unit, uint32 options, uint8 port, 24 int len, uint8 *data, 25 bcm_switch_pkt_trace_info_t 26 *pkt_trace_info); 27 28 extern int _bcm_esw_pkt_trace_src_port_set(int unit, uint32 logical_src_port); 29 extern int _bcm_esw_pkt_trace_src_port_get(int unit); 30 extern int _bcm_esw_pkt_trace_src_pipe_get(int unit); 31 extern int _bcm_esw_pkt_trace_hw_reset(int unit); 32 extern int _bcm_esw_pkt_trace_cpu_profile_get(int unit, uint32* profile_id); 33 typedef struct _bcm_switch_pkt_trace_port_info_s { 34 uint32 pkt_trace_src_logical_port; 35 uint8 pkt_trace_src_pipe; 36 37 } _bcm_switch_pkt_trace_port_info_t; 38 extern int _bcm_esw_pkt_trace_raw_data_get(int unit, 39 uint32 options, 40 uint8 port, 41 int len, 42 uint8 *data, 43 uint32 raw_data_buf_size, 44 uint8 *raw_data, 45 uint32 *raw_data_size); 46 47 /* for tomahawk */ 48 /* size is in number of double words */ 49 #define TH_PTR_RESULTS_IVP_MAX_INDEX 2 50 #define TH_PTR_RESULTS_ISW1_MAX_INDEX 4 51 #define TH_PTR_RESULTS_ISW2_MAX_INDEX 8 52 53 #define TH_FWD_DEST_TYPE_DGLP 0 54 #define TH_FWD_DEST_TYPE_NH 1 55 #define TH_FWD_DEST_TYPE_ECMP 2 56 #define TH_FWD_DEST_TYPE_L2MC 3 57 #define TH_FWD_DEST_TYPE_IPMC 4 58 #define TH_FWD_DEST_TYPE_DVP 5 59 60 #define TH_FWD_DEST_PORT_MASK 0xFF 61 #define TH_FWD_DEST_PORT_SHIFT 8 62 63 extern int _bcm_th_pkt_trace_info_get(int unit, 64 bcm_switch_pkt_trace_info_t *pkt_trace_info); 65 extern int _bcm_th_pkt_trace_src_port_set(int unit, uint32 logical_src_port); 66 extern int _bcm_th_pkt_trace_src_port_get(int unit); 67 extern int _bcm_th_pkt_trace_src_pipe_get(int unit); 68 extern int _bcm_th_pkt_trace_hw_reset(int unit); 69 extern int _bcm_th_pkt_trace_cpu_profile_init(int unit); 70 extern int _bcm_th_pkt_trace_cpu_profile_set(int unit,uint32 options); 71 extern int _bcm_th_pkt_trace_cpu_profile_get(int unit,uint32* profile_id); 72 extern int _bcm_th_pkt_trace_int_lbport_set(int unit, uint8 port, int enable, int *old_values); 73 /* TD3 paket trace function */ 74 extern int _bcm_td3_pkt_trace_src_port_set(int unit, uint32 logical_src_port); 75 extern int _bcm_td3_pkt_trace_src_port_get(int unit); 76 extern int _bcm_td3_pkt_trace_src_pipe_get(int unit); 77 extern int _bcm_td3_pkt_trace_cpu_profile_init(int unit); 78 extern int _bcm_td3_pkt_trace_cpu_profile_set(int unit, 79 uint32 flags); 80 extern int _bcm_td3_pkt_trace_cpu_profile_get(int unit, uint32* profile_id); 81 extern int _bcm_td3_pkt_trace_init(int unit); 82 extern int _bcm_td3_pkt_trace_info_get(int unit, 83 bcm_switch_pkt_trace_info_t *pkt_trace_info); 84 extern int _bcm_td3_pkt_trace_raw_data_get(int unit, 85 uint32 *raw_data_size, 86 uint8 *raw_data); 87 extern int _bcm_td3_pkt_trace_dop_config_set(int unit); 88 extern int _bcm_td3_pkt_trace_source_trunk_map_pp_set(int unit, 89 bcm_module_t mod_id, 90 bcm_port_t pp_port, 91 uint16 reset); 92 #if defined(BCM_TOMAHAWK3_SUPPORT) 93 /* TH3 paket trace functions */ 94 extern int _bcm_th3_pkt_trace_hw_reset(int unit, int pipe); 95 extern int _bcm_th3_pkt_trace_info_retrieve_data(int unit, 96 int pipe, bcm_switch_pkt_trace_info_t *pkt_trace_info); 97 extern int _bcm_th3_pkt_trace_info_get(int unit, 98 uint32 options, uint8 port, 99 int len, uint8 *data, 100 bcm_switch_pkt_trace_info_t *pkt_trace_info); 101 #endif /* BCM_TOMAHAWK3_SUPPORT */ 102 /* end of packet trace feature support */ 103 #endif /* BCM_INSTRUMENTATION_SUPPORT */ 104 105 #endif