openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

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-2020 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