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

triumph2.h (44808B)


      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:        triumph2.h
      8  * Purpose:     Function declarations for Triumph 2 bcm functions
      9  */
     10 
     11 #ifndef _BCM_INT_TRIUMPH2_H_
     12 #define _BCM_INT_TRIUMPH2_H_
     13 #if defined(BCM_TRIUMPH2_SUPPORT)
     14 #include <bcm_int/esw/mbcm.h>
     15 #include <bcm_int/esw/oam.h>
     16 #include <bcm_int/esw/field.h>
     17 #include <bcm_int/esw/vlan.h>
     18 #include <soc/tnl_term.h>
     19 #include <bcm/qos.h>
     20 
     21 
     22 
     23 #define _BCM_QOS_MAP_TYPE_ING_PRI_CNG_MAP    1
     24 #define _BCM_QOS_MAP_TYPE_EGR_MPLS_MAPS      2
     25 #define _BCM_QOS_MAP_TYPE_DSCP_TABLE         3
     26 #define _BCM_QOS_MAP_TYPE_EGR_DSCP_TABLE     4
     27 #define _BCM_QOS_MAP_TYPE_ING_QUEUE_OFFSET_MAP_TABLE   5
     28 #define _BCM_QOS_MAP_TYPE_SERVICE_PRI_MAP_TABLE    6
     29 #define _BCM_QOS_MAP_TYPE_RQE_QUEUE_OFFSET_MAP   7
     30 #define _BCM_QOS_MAP_TYPE_EXP_TO_PHB_CNG_MAP 8
     31 
     32 #if defined(INCLUDE_L3)
     33 extern int _bcm_tr2_l3_tnl_term_add(int unit, uint32 *entry_ptr, 
     34                                     bcm_tunnel_terminator_t *tnl_info);
     35 extern int _bcm_tr2_l3_tnl_term_entry_init(int unit, 
     36                                            bcm_tunnel_terminator_t *tnl_info,
     37                                            soc_tunnel_term_t *entry);
     38 extern int _bcm_tr2_l3_tnl_term_entry_parse(int unit, soc_tunnel_term_t *entry,
     39                                   bcm_tunnel_terminator_t *tnl_info);
     40 extern int _bcm_tr2_l3_intf_urpf_default_route_set(int unit, 
     41                                                    bcm_vlan_t vid,
     42                                                    int enable);
     43 extern int _bcm_tr2_l3_intf_urpf_default_route_get (int unit, 
     44                                                     bcm_vlan_t vid,
     45                                                     int *enable);
     46 extern int _bcm_tr2_l3_intf_urpf_mode_set(int unit, bcm_vlan_t vid,
     47                                           bcm_vlan_urpf_mode_t urpf_mode);
     48 extern int _bcm_tr2_l3_intf_urpf_mode_get(int unit, bcm_vlan_t vid,
     49                                           bcm_vlan_urpf_mode_t *urpf_mode);
     50 
     51 extern int bcm_tr2_l3_ecmp_defragment_buffer_init(int unit);
     52 extern void bcm_tr2_l3_ecmp_defragment_buffer_deinit(int unit);
     53 extern int bcm_tr2_l3_ecmp_defragment_buffer_set(int unit, int size);
     54 extern int bcm_tr2_l3_ecmp_defragment_buffer_get(int unit, int *size);
     55 extern int bcm_tr2_l3_ecmp_defragment(int unit);
     56 extern int bcm_tr2_l3_ecmp_defragment_no_lock(int unit, int ecmp_level);
     57 
     58 extern int _bcm_tr2_l3_ecmp_member_copy(int unit, int src_index, int dst_index);
     59 extern int _bcm_tr2_l3_ecmp_member_clear(int unit, int index);
     60 extern int _bcm_tr2_l3_ecmp_group_base_ptr_update(int unit, int group, int base_ptr);
     61 
     62 extern int bcm_tr2_ipmc_repl_init(int unit);
     63 extern int bcm_tr2_ipmc_repl_detach(int unit);
     64 extern int bcm_tr2_ipmc_repl_set(int unit, int ipmc_id, bcm_port_t port,
     65                          bcm_vlan_vector_t vlan_vec);
     66 extern int bcm_tr2_ipmc_repl_get(int unit, int index, bcm_port_t port,
     67                          bcm_vlan_vector_t vlan_vec);
     68 extern int bcm_tr2_ipmc_repl_add(int unit, int index, bcm_port_t port,
     69                          bcm_vlan_t vlan);
     70 extern int bcm_tr2_ipmc_repl_delete(int unit, int index, bcm_port_t port,
     71                             bcm_vlan_t vlan);
     72 extern int bcm_tr2_ipmc_repl_delete_all(int unit, int index,
     73                                 bcm_port_t port);
     74 extern int bcm_tr2_ipmc_egress_intf_add(int unit, int index, bcm_port_t port,
     75                                 bcm_l3_intf_t *l3_intf);
     76 extern int bcm_tr2_ipmc_egress_intf_delete(int unit, int index, bcm_port_t port,
     77                                    bcm_l3_intf_t *l3_intf);
     78 extern int bcm_tr2_ipmc_egress_intf_set(int unit, int mc_index,
     79                                        bcm_port_t port, int if_count,
     80                                        bcm_if_t *if_array, int check_port);
     81 extern int bcm_tr2_ipmc_egress_intf_get(int unit, int mc_index,
     82                                        bcm_port_t port,
     83                                        int if_max, bcm_if_t *if_array,
     84                                        int *if_count);
     85 extern int _bcm_tr2_ipmc_egress_intf_add(int unit, int ipmc_id, bcm_port_t port,
     86                                         int nh_index);
     87 extern int _bcm_tr2_ipmc_egress_intf_delete(int unit, int ipmc_id, bcm_port_t port,
     88                                            int if_max, int nh_index);
     89 extern int _tr2_ipmc_glp_get(int unit, bcm_ipmc_addr_t *ipmc, ipmc_1_entry_t *entry);
     90 extern int bcm_tr2_ipmc_repl_availability_get(int unit, int *available_percent);
     91 extern int bcm_tr2_ipmc_repl_list_split(int unit, int array_size,
     92                     bcm_if_t *encap_id_array, int *sublist_id_array, 
     93                     int sublist_max, int *sublist_count);
     94 extern int bcm_tr2_multicast_vpls_encap_get(int unit, bcm_multicast_t group, bcm_gport_t port,
     95                                            bcm_gport_t mpls_port_id, bcm_if_t *encap_id);
     96 extern int bcm_tr2_multicast_subport_encap_get(int unit, bcm_multicast_t group, bcm_gport_t port,
     97                                               bcm_gport_t subport, bcm_if_t *encap_id);
     98 extern int bcm_tr2_multicast_mim_encap_get(int unit, bcm_multicast_t group, bcm_gport_t port,
     99                                           bcm_gport_t mim_port_id, bcm_if_t *encap_id);
    100 extern int bcm_tr2_multicast_wlan_encap_get(int unit, bcm_multicast_t group, bcm_gport_t port,
    101                                            bcm_gport_t wlan_port_id, bcm_if_t *encap_id);
    102 extern int bcm_tr2_mim_init(int unit);
    103 extern int bcm_tr2_mim_detach(int unit);
    104 extern int bcm_tr2_mim_vpn_create(int unit, bcm_mim_vpn_config_t *info);
    105 extern int bcm_tr2_mim_vpn_destroy(int unit, bcm_mim_vpn_t vpn);
    106 extern int bcm_tr2_mim_vpn_destroy_all(int unit);
    107 extern int bcm_tr2_mim_vpn_get(int unit, bcm_mim_vpn_t vpn, 
    108                               bcm_mim_vpn_config_t *info);
    109 extern int bcm_tr2_mim_vpn_traverse(int unit, bcm_mim_vpn_traverse_cb cb, 
    110                                     void *user_data);
    111 extern int bcm_tr2_mim_port_add(int unit, bcm_mim_vpn_t vpn, bcm_mim_port_t *mim_port);
    112 extern int bcm_tr2_mim_port_delete(int unit, bcm_vpn_t vpn, bcm_gport_t mim_port_id);
    113 extern int bcm_tr2_mim_port_delete_all(int unit, bcm_vpn_t vpn);
    114 extern int bcm_tr2_mim_port_get(int unit, bcm_vpn_t vpn, bcm_mim_port_t *mim_port);
    115 extern int bcm_tr2_mim_port_get_all(int unit, bcm_vpn_t vpn, int port_max,
    116                         bcm_mim_port_t *port_array, int *port_count);
    117 extern int _bcm_tr2_mim_port_resolve(int unit, bcm_gport_t mim_port,
    118                                     bcm_module_t *modid, bcm_port_t *port,
    119                                     bcm_trunk_t *trunk_id, int *id);
    120 extern int bcm_tr2_mim_port_learn_set(int unit, bcm_gport_t port, uint32 flags);
    121 extern int bcm_tr2_mim_port_learn_get(int unit, bcm_gport_t port, uint32 *flags);
    122 extern int _bcm_tr2_mim_svp_field_set(int unit, bcm_gport_t vp, 
    123                                       soc_field_t field, int value);
    124 extern int bcm_tr2_wlan_init(int unit);
    125 extern int bcm_tr2_wlan_detach(int unit);
    126 extern int bcm_tr2_wlan_client_add(int unit, bcm_wlan_client_t *info);
    127 extern int bcm_tr2_wlan_client_delete(int unit, bcm_mac_t mac);
    128 extern int bcm_tr2_wlan_client_delete_all(int unit);
    129 extern int bcm_tr2_wlan_client_traverse(int unit,
    130                                         bcm_wlan_client_traverse_cb cb,
    131                                         void *user_data);
    132 extern int bcm_tr2_wlan_client_get(int unit, bcm_mac_t mac, 
    133                                    bcm_wlan_client_t *info);
    134 extern int _bcm_tr2_wlan_port_resolve(int unit, bcm_gport_t wlan_port,
    135                                     bcm_module_t *modid, bcm_port_t *port,
    136                                     bcm_trunk_t *trunk_id, int *id);
    137 extern int bcm_tr2_wlan_port_learn_set(int unit, bcm_gport_t port, uint32 flags);
    138 extern int bcm_tr2_wlan_port_learn_get(int unit, bcm_gport_t port, uint32 *flags);
    139 extern int bcm_tr2_wlan_port_add(int unit, bcm_wlan_port_t *wlan_port);
    140 extern int bcm_tr2_wlan_port_delete(int unit, bcm_gport_t wlan_port_id);
    141 extern int bcm_tr2_wlan_port_delete_all(int unit);
    142 extern int bcm_tr2_wlan_port_get(int unit, bcm_gport_t wlan_port_id, 
    143                                  bcm_wlan_port_t *wlan_port);
    144 extern int bcm_tr2_wlan_port_traverse(int unit,
    145                                       bcm_wlan_port_traverse_cb cb,
    146                                       void *user_data);
    147 extern int bcm_tr2_wlan_tunnel_initiator_create(int unit, 
    148                                                 bcm_tunnel_initiator_t *info);
    149 extern int bcm_tr2_wlan_tunnel_initiator_destroy(int unit, 
    150                                                  bcm_gport_t wlan_tunnel_id);
    151 extern int bcm_tr2_wlan_tunnel_initiator_get(int unit, 
    152                                              bcm_tunnel_initiator_t *info);
    153 extern int bcm_tr2_tunnel_terminator_vlan_set(int unit, bcm_gport_t tunnel, 
    154                                               bcm_vlan_vector_t vlan_vec);
    155 extern int bcm_tr2_tunnel_terminator_vlan_get(int unit, bcm_gport_t tunnel, 
    156                                               bcm_vlan_vector_t *vlan_vec);
    157 extern int bcm_tr2_wlan_lport_field_set(int unit, bcm_gport_t wlan_port_id, 
    158                                         soc_field_t field, int value);
    159 extern int bcm_tr2_wlan_lport_field_get(int unit, bcm_gport_t wlan_port_id, 
    160                                         soc_field_t field, int *value);
    161 extern int _bcm_tr2_wlan_port_set(int unit, bcm_gport_t wlan_port_id, 
    162                                   soc_field_t field, uint32 value);
    163 extern int bcm_tr2_wlan_port_untagged_vlan_get(int unit, bcm_gport_t port, 
    164                                                bcm_vlan_t *vid_ptr);
    165 extern int bcm_tr2_wlan_port_untagged_vlan_set(int unit, bcm_gport_t port, 
    166                                                bcm_vlan_t vid);
    167 extern int bcm_tr2_wlan_port_untagged_prio_get(int unit, bcm_gport_t port, 
    168                                                int *prio_ptr);
    169 extern int bcm_tr2_wlan_port_untagged_prio_set(int unit, bcm_gport_t port, 
    170                                                int prio);
    171 extern int _bcm_tr2_svp_field_set(int unit, bcm_gport_t port_id, 
    172                                   soc_field_t field, int value);
    173 extern int _bcm_tr2_svp_field_get(int unit, bcm_gport_t port_id, 
    174                                   soc_field_t field, int *value);
    175 extern int _bcm_tr2_mpls_svp_field_set(int unit, bcm_gport_t vp, 
    176                                        soc_field_t field, int value);
    177 extern int bcm_tr2_mpls_label_stat_enable_set(int unit,
    178                                               bcm_mpls_label_t label, 
    179                                               bcm_gport_t port, int enable,
    180                                               int cnt_inx);
    181 extern int _bcm_tr2_l3_ecmp_grp_get(int unit, int ecmp_grp, int ecmp_group_size, int *nh_idx);
    182 extern int _bcm_tr2_l3_ecmp_grp_add(int unit, int ecmp_grp, void *buf, void *info);
    183 extern int _bcm_tr2_l3_ecmp_grp_del(int unit, int ecmp_grp, void *info);
    184 extern void bcm_tr2_failover_unlock(int unit);
    185 extern int  bcm_tr2_failover_lock(int unit);
    186 extern int  bcm_tr2_failover_init(int unit);
    187 extern int  bcm_tr2_failover_sync(int unit);
    188 extern int  bcm_tr2_failover_cleanup(int unit);
    189 extern int  bcm_tr2_failover_create(int unit, uint32 flags, bcm_failover_t *failover_id);
    190 extern int  bcm_tr2_failover_destroy(int unit, bcm_failover_t  failover_id);
    191 extern int  bcm_tr2_mmu_failover_destroy(int unit, bcm_failover_t  failover_id);
    192 extern int bcm_tr2_failover_set(int unit, bcm_failover_t failover_id, int value);
    193 extern int bcm_tr2_failover_get(int unit, bcm_failover_t failover_id, int  *value);
    194 extern int bcm_tr2_failover_prot_nhi_create (int unit, int nh_index);
    195 extern int bcm_tr2_failover_prot_nhi_set(int unit, int nh_index, uint32 prot_nh_index, bcm_failover_t failover_id);
    196 extern int bcm_tr2_failover_prot_nhi_get(int unit, int nh_index, bcm_failover_t  *failover_id, int *prot_nh_index);
    197 extern int bcm_tr2_failover_prot_nhi_cleanup  (int unit, int nh_index);
    198 extern int bcm_tr2_failover_prot_nhi_update  (int unit, int old_nh_index, int new_nh_index);
    199 extern int bcm_tr2_failover_id_validate (int unit, bcm_failover_t failover_id);
    200 extern int bcm_tr2_failover_mmu_id_validate (int unit, bcm_failover_t failover_id);
    201 extern int bcm_tr2_failover_ecmp_prot_nhi_set(int unit, int ecmp, int index, int nh_index, 
    202                               bcm_failover_t failover_id, int prot_nh_index);
    203 extern int bcm_tr2_failover_ecmp_prot_nhi_get(int unit, int ecmp, int index, int nh_index, 
    204                               bcm_failover_t *failover_id, int *prot_nh_index);
    205 extern int bcm_tr2_failover_ecmp_prot_nhi_cleanup(int unit, int ecmp, int index,
    206                               int nh_index);
    207 extern int bcm_tr2_failover_id_check(int unit, bcm_failover_t failover_id);
    208 extern int bcm_tr2_failover_egr_check (int unit, bcm_l3_egress_t  *egr);
    209 extern int bcm_tr2_failover_mpls_check (int unit, bcm_mpls_port_t  *mpls_port);
    210 
    211 extern int bcm_tr2_vlan_virtual_init(int unit);
    212 extern int bcm_tr2_vlan_virtual_detach(int unit);
    213 extern int bcm_tr2_vlan_vp_create(int unit, bcm_vlan_port_t *vlan_vp);
    214 extern int bcm_tr2_vlan_vp_destroy(int unit, bcm_gport_t gport);
    215 extern int bcm_tr2_vlan_vp_find(int unit, bcm_vlan_port_t *vlan_vp);
    216 extern int bcm_tr2_vlan_port_learn_set(int unit, bcm_gport_t vlan_port_id,
    217                                        uint32 flags);
    218 extern int bcm_tr2_vlan_vp_match_add(int unit,
    219                          bcm_vlan_port_t *vlan_vp, int vp);
    220 extern int bcm_tr2_vlan_vp_match_delete(int unit,
    221                          bcm_vlan_port_t *vlan_vp, int vp);
    222 extern int _bcm_tr2_mim_match_add(int unit, bcm_mim_port_t *mim_port,
    223                                    int vp, bcm_mim_vpn_t vpn);
    224 extern int _bcm_tr2_mim_match_delete(int unit, int vp, bcm_mim_port_t mim_port);
    225 extern int bcm_tr2_vlan_port_phys_gport_get(int unit, int vp, bcm_gport_t *gp);
    226 extern void  bcm_tr2_vlan_port_match_count_adjust(int unit, int vp, int step);
    227 extern int _bcm_tr2_vlan_port_resolve(int unit, bcm_gport_t vlan_port_id,
    228                           bcm_module_t *modid, bcm_port_t *port,
    229                           bcm_trunk_t *trunk_id, int *id);
    230 extern int bcm_tr2_vlan_gport_add(int unit, bcm_vlan_t vlan, bcm_gport_t gport, 
    231                                    int is_untagged);
    232 extern int bcm_tr2_vlan_gport_delete(int unit, bcm_vlan_t vlan,
    233                                       bcm_gport_t gport); 
    234 extern int bcm_tr2_vlan_gport_delete_all(int unit, bcm_vlan_t vlan);
    235 extern int bcm_tr2_vlan_gport_get(int unit, bcm_vlan_t vlan, bcm_gport_t gport,
    236                                    int *is_untagged); 
    237 extern int bcm_tr2_vlan_gport_get_all(int unit, bcm_vlan_t vlan, int array_max,
    238         bcm_gport_t *gport_array, int *is_untagged_array, int *array_size);
    239 
    240 #ifdef BCM_WARM_BOOT_SUPPORT
    241 extern int bcm_tr2_vlan_virtual_reinit(int unit);
    242 #endif /* BCM_WARM_BOOT_SUPPORT */
    243 
    244 #ifndef BCM_SW_STATE_DUMP_DISABLE
    245 extern void bcm_tr2_vlan_vp_sw_dump(int unit);
    246 #endif /* BCM_SW_STATE_DUMP_DISABLE */
    247 
    248 #endif /* INCLUDE_L3 */
    249 
    250 #if defined BCM_WARM_BOOT_SUPPORT
    251 extern int _bcm_notify_qos_reinit_to_fp (int unit);
    252 #endif
    253 
    254 extern int bcm_tr2_cosq_init(int unit);
    255 extern int bcm_tr2_cosq_detach(int unit, int software_state_only);
    256 extern int bcm_tr2_cosq_config_set(int unit, int numq);
    257 extern int bcm_tr2_cosq_config_get(int unit, int *numq);
    258 extern int bcm_tr2_cosq_mapping_set(int unit, bcm_port_t port,
    259                                    bcm_cos_t priority, bcm_cos_queue_t cosq);
    260 extern int bcm_tr2_cosq_mapping_get(int unit, bcm_port_t port,
    261                                    bcm_cos_t priority, bcm_cos_queue_t *cosq);
    262 extern int bcm_tr2_cosq_port_bandwidth_set(int unit, bcm_port_t port,
    263                                           bcm_cos_queue_t cosq,
    264                                           uint32 min_quantum,
    265                                           uint32 max_quantum,
    266                                           uint32 burst_quantum,
    267                                           uint32 flags);
    268 extern int bcm_tr2_cosq_port_bandwidth_get(int unit, bcm_port_t port,
    269                                           bcm_cos_queue_t cosq,
    270                                           uint32 *min_quantum,
    271                                           uint32 *max_quantum,
    272                                           uint32 *burst_quantum,
    273                                           uint32 *flags);
    274 extern int bcm_tr2_cosq_port_pps_set(int unit, bcm_port_t port,
    275                                     bcm_cos_queue_t cosq, int pps);
    276 extern int bcm_tr2_cosq_port_pps_get(int unit, bcm_port_t port,
    277                                     bcm_cos_queue_t cosq, int *pps);
    278 extern int bcm_tr2_cosq_port_burst_set(int unit, bcm_port_t port,
    279                                       bcm_cos_queue_t cosq, int burst);
    280 extern int bcm_tr2_cosq_port_burst_get(int unit, bcm_port_t port,
    281                                       bcm_cos_queue_t cosq, int *burst);
    282 extern int bcm_tr2_cosq_discard_set(int unit, uint32 flags);
    283 extern int bcm_tr2_cosq_discard_get(int unit, uint32 *flags);
    284 extern int bcm_tr2_cosq_discard_port_set(int unit, bcm_port_t port,
    285                                         bcm_cos_queue_t cosq, uint32 color,
    286                                         int drop_start, int drop_slope,
    287                                         int average_time);
    288 extern int bcm_tr2_cosq_discard_port_get(int unit, bcm_port_t port,
    289                                         bcm_cos_queue_t cosq, uint32 color,
    290                                         int *drop_start, int *drop_slope,
    291                                         int *average_time);
    292 extern int bcm_tr2_cosq_gport_discard_set(int unit, bcm_gport_t port, 
    293                                          bcm_cos_queue_t cosq,
    294                                          bcm_cosq_gport_discard_t *discard);
    295 extern int bcm_tr2_cosq_gport_discard_get(int unit, bcm_gport_t port, 
    296                                          bcm_cos_queue_t cosq,
    297                                          bcm_cosq_gport_discard_t *discard);
    298 extern int bcm_tr2_cosq_port_sched_set(int unit, bcm_pbmp_t pbm,
    299                                       int mode, const int weights[], int delay);
    300 extern int bcm_tr2_cosq_port_sched_get(int unit, bcm_pbmp_t pbm,
    301                                       int *mode, int weights[], int *delay);
    302 extern int bcm_tr2_cosq_gport_add(int unit, bcm_gport_t port, int numq,
    303                                  uint32 flags, bcm_gport_t *gport);
    304 extern int bcm_tr2_cosq_gport_delete(int unit, bcm_gport_t gport);
    305 extern int bcm_tr2_cosq_gport_traverse(int unit, bcm_cosq_gport_traverse_cb cb,
    306                                       void *user_data);
    307 
    308 extern int bcm_tr2_cosq_gport_bandwidth_set(int unit, bcm_gport_t gport,
    309                                            bcm_cos_queue_t cosq, 
    310                                            uint32 kbits_sec_min,
    311                                            uint32 kbits_sec_max,
    312                                             uint32 flags);
    313 extern int bcm_tr2_cosq_gport_bandwidth_get(int unit, bcm_gport_t gport,
    314                                            bcm_cos_queue_t cosq, 
    315                                            uint32 *kbits_sec_min,
    316                                            uint32 *kbits_sec_max,
    317                                             uint32 *flags);
    318 extern int bcm_tr2_cosq_gport_bandwidth_burst_set(int unit,
    319                                                   bcm_gport_t gport,
    320                                                   bcm_cos_queue_t cosq, 
    321                                                   uint32 kbits_burst_min,
    322                                                   uint32 kbits_burst_max);
    323 extern int bcm_tr2_cosq_gport_bandwidth_burst_get(int unit,
    324                                                   bcm_gport_t gport,
    325                                                   bcm_cos_queue_t cosq, 
    326                                                   uint32 *kbits_burst_min,
    327                                                   uint32 *kbits_burst_max);
    328 extern int bcm_tr2_cosq_gport_sched_set(int unit, bcm_gport_t gport,
    329                                        bcm_cos_queue_t cosq, int mode,
    330                                        int weight);
    331 extern int bcm_tr2_cosq_gport_sched_get(int unit, bcm_gport_t gport, 
    332                                        bcm_cos_queue_t cosq, int *mode,
    333                                        int *weight);
    334 extern int bcm_tr2_cosq_gport_attach(int unit, bcm_gport_t sched_gport, 
    335                                     bcm_cos_queue_t cosq, bcm_gport_t input_gport);
    336 extern int bcm_tr2_cosq_gport_detach(int unit, bcm_gport_t sched_gport,
    337                                     bcm_cos_queue_t cosq, bcm_gport_t input_gport);
    338 extern int bcm_tr2_cosq_gport_attach_get(int unit, bcm_gport_t sched_gport,
    339                                         bcm_cos_queue_t *cosq, bcm_gport_t *input_gport);
    340 extern int _bcm_tr2_cosq_port_resolve(int unit, bcm_gport_t gport,
    341                                      bcm_module_t *modid, bcm_port_t *port,
    342                                      bcm_trunk_t *trunk_id, int *id);
    343 
    344 extern int _bcm_tr2_port_vlan_priority_map_set(int unit, bcm_port_t port, 
    345                                                int pkt_pri, int cfi,
    346                                                int internal_pri, 
    347                                                bcm_color_t color);
    348 extern int _bcm_tr2_port_vlan_priority_map_get(int unit, bcm_port_t port, 
    349                                                int pkt_pri, int cfi,
    350                                                int *internal_pri, 
    351                                                bcm_color_t *color);
    352 extern int _bcm_tr2_port_priority_color_set(int unit, bcm_port_t port, int prio, bcm_color_t color);
    353 
    354 extern int bcm_tr2x_oam_init(int unit);
    355 extern int bcm_tr2x_oam_detach(int unit);
    356 extern int bcm_tr2x_oam_lock(int unit);
    357 extern int bcm_tr2x_oam_unlock(int unit);
    358 extern int bcm_tr2x_oam_group_create(int unit,
    359     bcm_oam_group_info_t *group_info);
    360 extern int bcm_tr2x_oam_group_get(int unit, bcm_oam_group_t group, 
    361     bcm_oam_group_info_t *group_info);
    362 extern int bcm_tr2x_oam_group_destroy(int unit, bcm_oam_group_t group);
    363 extern int bcm_tr2x_oam_group_destroy_all(int unit);
    364 extern int bcm_tr2x_oam_group_traverse(int unit, bcm_oam_group_traverse_cb cb, 
    365     void *user_data);
    366 extern int bcm_tr2x_oam_endpoint_create(int unit, 
    367     bcm_oam_endpoint_info_t *endpoint_info);
    368 extern int bcm_tr2x_oam_endpoint_get(int unit, bcm_oam_endpoint_t endpoint, 
    369     bcm_oam_endpoint_info_t *endpoint_info);
    370 extern int bcm_tr2x_oam_endpoint_destroy(int unit, bcm_oam_endpoint_t endpoint);
    371 extern int bcm_tr2x_oam_endpoint_destroy_all(int unit, bcm_oam_group_t group);
    372 extern int bcm_tr2x_oam_endpoint_traverse(int unit, bcm_oam_group_t group, 
    373     bcm_oam_endpoint_traverse_cb cb, void *user_data);
    374 extern int bcm_tr2x_oam_event_register(int unit, 
    375     bcm_oam_event_types_t event_types, bcm_oam_event_cb cb, 
    376     void *user_data);
    377 extern int bcm_tr2x_oam_event_unregister(int unit, 
    378     bcm_oam_event_types_t event_types, bcm_oam_event_cb cb);
    379 
    380 extern int bcm_tr2_subport_init(int unit);
    381 extern int bcm_tr2_subport_cleanup(int unit);
    382 extern int bcm_tr2_subport_group_create(int unit, bcm_subport_group_config_t *config,
    383                             bcm_gport_t *group);
    384 extern int bcm_tr2_subport_group_destroy(int unit, bcm_gport_t group);
    385 extern int bcm_tr2_subport_group_get(int unit, bcm_gport_t group,
    386                             bcm_subport_group_config_t *config);
    387 extern int bcm_tr2_subport_port_add(int unit, bcm_subport_config_t *config,
    388                             bcm_gport_t *port);
    389 extern int bcm_tr2_subport_port_delete(int unit, bcm_gport_t port);
    390 extern int bcm_tr2_subport_port_get(int unit, bcm_gport_t port,
    391                             bcm_subport_config_t *config);
    392 extern int bcm_tr2_subport_port_traverse(int unit, bcm_subport_port_traverse_cb cb,
    393                              void *user_data);
    394 extern int _bcm_tr2_subport_group_resolve(int unit, bcm_gport_t gport,
    395                               bcm_module_t *modid, bcm_port_t *port,
    396                               bcm_trunk_t *trunk_id, int *id);
    397 extern int _bcm_tr2_subport_port_resolve(int unit, bcm_gport_t gport,
    398                               bcm_module_t *modid, bcm_port_t *port,
    399                               bcm_trunk_t *trunk_id, int *id);
    400 extern int bcm_tr2_subport_learn_set(int unit, bcm_gport_t port, uint32 flags);
    401 extern int bcm_tr2_subport_learn_get(int unit, bcm_gport_t port, uint32 *flags);
    402 extern int _bcm_tr2_port_lanes_set(int unit, bcm_port_t port, int value);
    403 extern int _bcm_tr2_port_lanes_get(int unit, bcm_port_t port, int *value);
    404 extern int _bcm_tr2_ing_pri_cng_map_default_entry_add(int unit, 
    405                                                       soc_profile_mem_t *prof);
    406 extern int _bcm_tr2_port_vpd_bitmap_alloc(int unit);
    407 extern void _bcm_tr2_port_vpd_bitmap_free(int unit);
    408 extern int _bcm_port_vlan_prot_index_alloc(int unit, int *prof_ptr);
    409 extern int _bcm_port_vlan_prot_index_free(int unit, int prof_ptr);
    410 
    411 /* Flexible counters support */
    412 
    413 #define _BCM_FLEX_STAT_TYPE(_id) (((_id) >> 16) & 0xFFFF)
    414 #define _BCM_FLEX_STAT_COUNT_INX(_id) ((_id) & 0xFFFF)
    415 #define _BCM_FLEX_STAT_COUNT_ID(_type,_ix) ((((_type) & 0xFFFF) << 16) | \
    416 					((_ix) & 0xFFFF))
    417 
    418 typedef enum _bcm_flex_stat_type_e {
    419     _bcmFlexStatTypeService,
    420     _bcmFlexStatTypeGport,
    421     _bcmFlexStatTypeEgressService,
    422     _bcmFlexStatTypeEgressGport,
    423     _bcmFlexStatTypeFp,
    424     _bcmFlexStatTypeVrf,
    425     _bcmFlexStatTypeVxlt,
    426     _bcmFlexStatTypeEgrVxlt,
    427     _bcmFlexStatTypeMplsLabel,
    428     _bcmFlexStatTypeNum,
    429      /* count ingress/egress as 1*/
    430     _bcmFlexStatTypeHwNum = _bcmFlexStatTypeEgressService, 
    431     _bcmFlexStatTypeAllHwNum = _bcmFlexStatTypeFp 
    432 } _bcm_flex_stat_type_t;
    433 
    434 #define _BCM_FLEX_STAT_HANDLE_WORDS 2
    435 
    436 typedef struct {
    437     uint32 words[_BCM_FLEX_STAT_HANDLE_WORDS];
    438 } _bcm_flex_stat_handle_t;
    439 
    440 #define	_BCM_FLEX_STAT_HANDLE_WORD_GET(fsh, word)   ((fsh).words[(word)])
    441 #define	_BCM_FLEX_STAT_HANDLE_WORD_SET(fsh, word, val)	\
    442                                                 ((fsh).words[(word)] = (val))
    443 #define	_BCM_FLEX_STAT_HANDLE_CLEAR(fsh) \
    444         (_BCM_FLEX_STAT_HANDLE_WORD_GET(fsh, 0) = \
    445          _BCM_FLEX_STAT_HANDLE_WORD_GET(fsh, 1) = 0)
    446 
    447 #define _BCM_FLEX_STAT_HANDLE_ASSIGN(fsh1, fsh2) ((fsh1) = (fsh2))        
    448 #define _BCM_FLEX_STAT_HANDLE_COPY(fsh1, fsh2) \
    449         memcpy(&(fsh1), &(fsh2), sizeof(_bcm_flex_stat_handle_t))        
    450 
    451 typedef struct _bcm_flex_stat_handle_to_index_s {
    452     _bcm_flex_stat_handle_t handle;
    453     uint32 index;
    454     _bcm_flex_stat_type_t type;
    455 } _bcm_flex_stat_handle_to_index_t;
    456 
    457 typedef enum _bcm_flex_stat_memacc_type_e {
    458     _BCM_FS_MEMACC_SERVICE_ING_PKT,
    459     _BCM_FS_MEMACC_SERVICE_ING_BYTE,
    460     _BCM_FS_MEMACC_SERVICE_EGR_PKT,
    461     _BCM_FS_MEMACC_SERVICE_EGR_BYTE,
    462     _BCM_FS_MEMACC_VINTF_ING_PKT,
    463     _BCM_FS_MEMACC_VINTF_ING_BYTE,
    464     _BCM_FS_MEMACC_VINTF_EGR_PKT,
    465     _BCM_FS_MEMACC_VINTF_EGR_BYTE,
    466     _BCM_FS_MEMACC_NUM
    467 } _bcm_flex_stat_memacc_type_t;
    468 
    469 /* Structure for tracking flexible stat info */
    470 typedef struct _bcm_flex_stat_info_s {
    471     int stat_mem_size;
    472     SHR_BITDCL  *stats;
    473     int handle_list_size;
    474     _bcm_flex_stat_handle_to_index_t *handle_list;
    475     uint16 *ref_cnt;   /* reference count */ 
    476 } _bcm_flex_stat_info_t;
    477 
    478 #define _BCM_FLEX_STAT_GRANS  2  /* Packets and Bytes */
    479 #define _BCM_FLEX_STAT_DIRS   2  /* Ingress and Egress */
    480 #define _BCM_FLEX_STAT_BUFFS  2  /* Ping pong fetch buffers */
    481 
    482 typedef enum _bcm_flex_stat_e {
    483     _bcmFlexStatIngressPackets,  /* Packets that ingress on the class */
    484     _bcmFlexStatIngressBytes,    /* Bytes that ingress on the class */
    485     _bcmFlexStatEgressPackets,   /* Packets that egress on the class */
    486     _bcmFlexStatEgressBytes,     /* Bytes that egress on the class */
    487     _bcmFlexStatNum
    488 } _bcm_flex_stat_t;
    489 
    490 #define _BCM_FLEX_STAT_HW_INGRESS  (1 << 0)   /* apply to ingress chip */
    491 #define _BCM_FLEX_STAT_HW_EGRESS   (1 << 1)   /* apply to egress chip */
    492 #define _BCM_FLEX_STAT_HW_BOTH     (_BCM_FLEX_STAT_HW_INGRESS | \
    493                                     _BCM_FLEX_STAT_HW_EGRESS)
    494 
    495 typedef int (*_bcm_flex_stat_src_index_set_f)(int unit,
    496                                               _bcm_flex_stat_handle_t handle,
    497                                               int fs_idx, void *cookie);
    498 
    499 extern int _bcm_esw_flex_stat_detach(int unit, _bcm_flex_stat_type_t type);
    500 extern int _bcm_esw_flex_stat_init(int unit, _bcm_flex_stat_type_t type);
    501 
    502 extern void _bcm_esw_flex_stat_ext_reinit_add(int unit,
    503                                           _bcm_flex_stat_type_t type,
    504                                           int fs_idx,
    505                                           _bcm_flex_stat_handle_t handle);
    506 extern void _bcm_esw_flex_stat_reinit_add(int unit,
    507                                           _bcm_flex_stat_type_t type,
    508                                           int fs_idx, uint32 handle);
    509 extern void _bcm_esw_flex_stat_release_handles(int unit,
    510                                                _bcm_flex_stat_type_t type);
    511 extern int _bcm_esw_flex_stat_stat_set(int unit,
    512                                        _bcm_flex_stat_type_t type,
    513                                        int fs_idx,
    514                                        bcm_vlan_stat_t vl_stat,
    515                                        uint64 val);
    516 extern int _bcm_esw_flex_stat_stat_get(int unit,
    517                                        _bcm_flex_stat_type_t type,
    518                                        int fs_idx,
    519                                        bcm_vlan_stat_t vl_stat,
    520                                        uint64 *val);
    521 extern void _bcm_esw_flex_stat_ext_handle_free(int unit,
    522                                            _bcm_flex_stat_type_t type,
    523                                            _bcm_flex_stat_handle_t handle);
    524 extern void _bcm_esw_flex_stat_handle_free(int unit,
    525                                            _bcm_flex_stat_type_t type,
    526                                            uint32 handle);
    527 extern int _bcm_esw_vlan_flex_stat_hw_index_set(int unit,
    528                                             _bcm_flex_stat_handle_t handle,
    529                                                 int fs_idx, void *cookie);
    530 extern int _bcm_esw_port_flex_stat_hw_index_set(int unit,
    531                                             _bcm_flex_stat_handle_t handle,
    532                                                 int fs_idx, void *cookie);
    533 
    534 extern int _bcm_esw_flex_stat_ext_enable_set(int unit,
    535                                          _bcm_flex_stat_type_t type,
    536                          _bcm_flex_stat_src_index_set_f fs_set_cb,
    537                                          void *cookie,
    538                                          _bcm_flex_stat_handle_t handle, 
    539                                          int enable,
    540                                          int cnt_inx);
    541 extern int _bcm_esw_flex_stat_enable_set(int unit,
    542                                          _bcm_flex_stat_type_t type,
    543                          _bcm_flex_stat_src_index_set_f fs_set_cb,
    544                                          void *cookie,
    545                                          uint32 handle, 
    546                                          int enable,
    547                                          int cnt_inx);
    548 extern int _bcm_esw_flex_stat_ext_get(int unit, int sync_mode, 
    549                                   _bcm_flex_stat_type_t type,
    550                                   _bcm_flex_stat_handle_t handle, 
    551                                   _bcm_flex_stat_t stat, 
    552                                   uint64 *val);
    553 extern int _bcm_esw_flex_stat_get(int unit, int sync_mode,
    554                                   _bcm_flex_stat_type_t type,
    555                                   uint32 handle, 
    556                                   _bcm_flex_stat_t stat, 
    557                                   uint64 *val);
    558 extern int _bcm_esw_flex_stat_ext_get32(int unit, int sync_mode,
    559                                     _bcm_flex_stat_type_t type,
    560                                     _bcm_flex_stat_handle_t handle, 
    561                                     _bcm_flex_stat_t stat, 
    562                                     uint32 *val);
    563 extern int _bcm_esw_flex_stat_get32(int unit, int sync_mode,
    564                                     _bcm_flex_stat_type_t type,
    565                                     uint32 handle, 
    566                                     _bcm_flex_stat_t stat, 
    567                                     uint32 *val);
    568 extern int _bcm_esw_flex_stat_ext_set(int unit, 
    569                                   _bcm_flex_stat_type_t type,
    570                                   _bcm_flex_stat_handle_t handle, 
    571                                   _bcm_flex_stat_t stat, 
    572                                   uint64 val);
    573 extern int _bcm_esw_flex_stat_set(int unit, 
    574                                   _bcm_flex_stat_type_t type,
    575                                   uint32 handle, 
    576                                   _bcm_flex_stat_t stat, 
    577                                   uint64 val);
    578 extern int _bcm_esw_flex_stat_ext_set32(int unit, 
    579                                     _bcm_flex_stat_type_t type,
    580                                     _bcm_flex_stat_handle_t handle, 
    581                                     _bcm_flex_stat_t stat, 
    582                                     uint32 val);
    583 extern int _bcm_esw_flex_stat_set32(int unit, 
    584                                     _bcm_flex_stat_type_t type,
    585                                     uint32 handle, 
    586                                     _bcm_flex_stat_t stat, 
    587                                     uint32 val);
    588 extern int _bcm_esw_flex_stat_ext_multi_get(int unit,
    589                                         _bcm_flex_stat_type_t type,
    590                                         _bcm_flex_stat_handle_t handle,
    591                                         int nstat,
    592                                         _bcm_flex_stat_t *stat_arr,
    593                                         uint64 *value_arr);
    594 extern int _bcm_esw_flex_stat_multi_get(int unit,
    595                                         _bcm_flex_stat_type_t type,
    596                                         uint32 handle,
    597                                         int nstat,
    598                                         _bcm_flex_stat_t *stat_arr,
    599                                         uint64 *value_arr);
    600 extern int _bcm_esw_flex_stat_ext_multi_get32(int unit, 
    601                                           _bcm_flex_stat_type_t type,
    602                                           _bcm_flex_stat_handle_t handle, 
    603                                           int nstat, 
    604                                           _bcm_flex_stat_t *stat_arr, 
    605                                           uint32 *value_arr);
    606 extern int _bcm_esw_flex_stat_multi_get32(int unit, 
    607                                           _bcm_flex_stat_type_t type,
    608                                           uint32 handle, 
    609                                           int nstat, 
    610                                           _bcm_flex_stat_t *stat_arr, 
    611                                           uint32 *value_arr);
    612 extern int _bcm_esw_flex_stat_ext_multi_set(int unit, 
    613                                         _bcm_flex_stat_type_t type,
    614                                         _bcm_flex_stat_handle_t handle, 
    615                                         int nstat, 
    616                                         _bcm_flex_stat_t *stat_arr, 
    617                                         uint64 *value_arr);
    618 extern int _bcm_esw_flex_stat_multi_set(int unit, 
    619                                         _bcm_flex_stat_type_t type,
    620                                         uint32 handle, 
    621                                         int nstat, 
    622                                         _bcm_flex_stat_t *stat_arr, 
    623                                         uint64 *value_arr);
    624 extern int _bcm_esw_flex_stat_ext_multi_set32(int unit, 
    625                                           _bcm_flex_stat_type_t type,
    626                                           _bcm_flex_stat_handle_t handle, 
    627                                           int nstat, 
    628                                           _bcm_flex_stat_t *stat_arr, 
    629                                           uint32 *value_arr);
    630 extern int _bcm_esw_flex_stat_multi_set32(int unit, 
    631                                           _bcm_flex_stat_type_t type,
    632                                           uint32 handle, 
    633                                           int nstat, 
    634                                           _bcm_flex_stat_t *stat_arr, 
    635                                           uint32 *value_arr);
    636 extern int _bcm_esw_flex_stat_free_index_assign(int unit,
    637                                                 _bcm_flex_stat_type_t fs_type);
    638 extern int _bcm_esw_flex_stat_count_index_remove(int unit, 
    639                                                  _bcm_flex_stat_type_t fs_type,
    640                                                   int fs_inx);
    641 extern int _bcm_esw_port_flex_stat_index_set(int unit, bcm_gport_t port,
    642                                              int fs_idx,uint32 flags);
    643 extern int _bcm_esw_mpls_flex_stat_index_set(int unit, bcm_gport_t port,
    644                                              int fs_idx,uint32 flags);
    645 extern int _bcm_esw_mim_flex_stat_index_set(int unit, bcm_gport_t port,
    646                                             int fs_idx, uint32 flags);
    647 extern int _bcm_esw_subport_flex_stat_index_set(int unit, bcm_gport_t port,
    648                                                 int fs_idx, uint32 flags);
    649 extern int _bcm_esw_wlan_flex_stat_index_set(int unit, bcm_gport_t port,
    650                                              int fs_idx,uint32 flags);
    651 extern int _bcm_esw_vlan_flex_stat_index_set(int unit, bcm_vlan_t vlan,
    652                                              int fs_idx,uint32 flags);
    653 extern int _bcm_tr_subport_gport_used(int unit, bcm_gport_t port);
    654 extern int _bcm_tr2_vlan_qmid_set(int unit, bcm_vlan_t vlan, int qm_ptr,
    655                                   int use_inner_tag);
    656 extern int _bcm_tr2_vlan_qmid_get(int unit, bcm_vlan_t vlan, int *qm_ptr,
    657                                   int *use_inner_tag);
    658 extern int _bcm_tr2_qos_pvmid_set(int unit, bcm_vlan_t vlan, int pvmid);
    659 extern int _bcm_tr2_qos_pvmid_get(int unit, bcm_vlan_t vlan, int *pvmid);
    660 extern int _bcm_tr2_mim_port_phys_gport_get(int unit, int vp, bcm_gport_t *gp);
    661 extern void _bcm_tr2_mim_port_match_count_adjust(int unit, int vp, int step);
    662 
    663 typedef struct _bcm_vlan_translate_stat_info_s {
    664     bcm_gport_t port;
    665     bcm_vlan_translate_key_t key_type;
    666     bcm_vlan_t outer_vlan;
    667     bcm_vlan_t inner_vlan;
    668 } _bcm_vlan_translate_stat_info_t;
    669 
    670 extern int _bcm_tr2_vlan_translate_range_vp_add(int unit,
    671                                                 bcm_gport_t port,
    672                                                 bcm_vlan_t outer_vlan_low,
    673                                                 bcm_vlan_t outer_vlan_high,
    674                                                 bcm_vlan_t inner_vlan_low,
    675                                                 bcm_vlan_t inner_vlan_high,
    676                                                 int vp,
    677                                                 bcm_vlan_action_set_t *action);
    678 extern int _bcm_tr2_vlan_translate_range_vp_delete(int unit,
    679                                                 bcm_gport_t port,
    680                                                 bcm_vlan_t outer_vlan_low,
    681                                                 bcm_vlan_t outer_vlan_high,
    682                                                 bcm_vlan_t inner_vlan_low,
    683                                                 bcm_vlan_t inner_vlan_high,                                                
    684                                                 int vp);
    685 extern int bcm_tr2_qos_init(int unit);
    686 extern int bcm_tr2_qos_detach(int unit);
    687 extern int bcm_tr2_qos_map_create(int unit, uint32 flags, int *map_id);
    688 extern int bcm_tr2_qos_map_destroy(int unit, int map_id);
    689 extern int bcm_tr2_qos_map_add(int unit, uint32 flags, bcm_qos_map_t *map, 
    690                                int map_id, int internal);
    691 extern int bcm_tr2_qos_map_delete(int unit, uint32 flags, 
    692                                   bcm_qos_map_t *map, int map_id);
    693 extern int bcm_tr2_qos_multi_get(int unit, int array_size, int *map_ids_array,
    694                                  int *flags_array, int *array_count);
    695 extern int bcm_tr2_qos_map_multi_get(int unit, uint32 flags,
    696                                      int map_id, int array_size, 
    697                                      bcm_qos_map_t *array, int *array_count);
    698 extern int bcm_tr2_qos_port_map_set(int unit, bcm_gport_t port, int ing_map, 
    699                                     int egr_map);
    700 extern int bcm_tr2_qos_port_map_type_get(int unit, bcm_gport_t port, uint32 flags,
    701                                          int* map_id);
    702 extern int bcm_tr2_qos_port_vlan_map_set(int unit, bcm_gport_t port, bcm_vlan_t vid,
    703                                         int ing_map, int egr_map);
    704 extern int bcm_tr2_qos_port_vlan_map_get(int unit, bcm_gport_t port, bcm_vlan_t vid,
    705                                         int *ing_map, int *egr_map);
    706 extern int _bcm_tr2_qos_id2idx(int unit, int map_id, int *hw_idx);
    707 extern int _bcm_tr2_qos_idx2id(int unit, int hw_idx, int type, int *map_id);
    708 extern int _bcm_tr2_port_tab_set(int unit, bcm_port_t port, 
    709                                  soc_field_t field, int value);
    710 extern int _bcm_tr2_port_tab_get(int unit, bcm_port_t port,
    711                                  soc_field_t field, int* value);
    712 extern int _bcm_tr2_vp_dscp_map_mode_set(int unit, bcm_gport_t port,
    713                                          int mode);
    714 extern int _bcm_tr2_vp_dscp_map_mode_get(int unit, bcm_gport_t port,
    715                                          int *mode);
    716 extern int _bcm_tr2_vp_dscp_map_set(int unit, bcm_gport_t port, int srccp, 
    717                                     int mapcp, int prio);
    718 extern int _bcm_tr2_vp_dscp_map_get(int unit, bcm_gport_t port, int srccp, 
    719                                     int *mapcp, int *prio);
    720 extern int _bcm_tr2_vp_ing_pri_cng_set(int unit, bcm_port_t port, int untagged,
    721                                        int pkt_pri, int cfi,
    722                                        int int_pri, bcm_color_t color);
    723 extern int _bcm_tr2_vp_ing_pri_cng_get(int unit, bcm_port_t port, int untagged,
    724                                        int pkt_pri, int cfi,
    725                                        int *int_pri, bcm_color_t *color);
    726 #if defined(BCM_FIELD_SUPPORT)
    727 extern int _bcm_field_tr2_init(int unit, _field_control_t *fc);
    728 extern int _bcm_field_tr2_stat_hw_mode_to_bmap(int unit, uint16 mode,
    729                                                _field_stage_id_t stage_id,
    730                                                uint32 *hw_bmap,
    731                                                uint8 *hw_entry_count);
    732 #endif /* BCM_FIELD_SUPPORT */
    733 
    734 #ifdef BCM_WARM_BOOT_SUPPORT
    735 extern int bcm_tr2_cosq_sync(int unit);
    736 extern int _bcm_tr2_qos_sync(int unit);
    737 extern int _bcm_tr2_ipmc_repl_reload(int unit);
    738 extern int _bcm_tr2x_oam_sync(int unit);
    739 extern int bcm_tr2_l3_ecmp_defragment_buffer_wb_alloc_size_get(int unit,
    740         int *size);
    741 extern int bcm_tr2_l3_ecmp_defragment_buffer_sync(int unit,
    742         uint8 **scache_ptr, int offset);
    743 extern int bcm_tr2_l3_ecmp_defragment_buffer_recover(int unit,
    744         uint8 **scache_ptr, int offset);
    745 extern int bcm_tr2_mim_sync(int unit);
    746 #endif /* BCM_WARM_BOOT_SUPPORT */
    747 
    748 #ifndef BCM_SW_STATE_DUMP_DISABLE
    749 extern void bcm_tr2_cosq_sw_dump(int unit);
    750 extern void _bcm_tr2_ipmc_repl_sw_dump(int unit);
    751 #endif /* BCM_SW_STATE_DUMP_DISABLE */
    752 #ifdef BCM_WARM_BOOT_SUPPORT_SW_DUMP
    753 extern void _bcm_tr2_qos_sw_dump(int unit);
    754 extern void _bcm_tr2x_oam_sw_dump(int unit);
    755 #endif /* BCM_WARM_BOOT_SUPPORT_SW_DUMP */
    756 #ifndef BCM_SW_STATE_DUMP_DISABLE
    757 extern void bcm_tr2_l3_ecmp_defragment_buffer_sw_dump(int unit);
    758 #endif /* BCM_SW_STATE_DUMP_DISABLE */
    759 extern int bcm_tr2_ipmc_remap_set(int unit, bcm_multicast_t from, int to);
    760 extern int bcm_tr2_ipmc_remap_get(int unit, bcm_multicast_t from, int *to);
    761 
    762 extern int _bcm_tr3_vlan_vpn_is_eline( int unit, bcm_vpn_t vpn, uint8 *isEline);
    763 extern int _bcm_tr3_vlan_vpn_is_valid( int unit, bcm_vpn_t vpn);
    764 extern int _bcm_tr3_vlan_vp_destroy_all(int unit, bcm_vpn_t vpn);
    765 extern int
    766 _bcm_tr2_vlan_vp_port_cnt_update(int unit, bcm_gport_t gport, int vp, int incr);
    767 #if defined(BCM_TRIDENT3_SUPPORT) && defined(INCLUDE_L3)
    768 int
    769 bcm_td3_mpls_combo_add (int unit, uint32 flags, bcm_mpls_exp_map_t *mpls_map,
    770             int map_id, uint32 hw_idx, uint32 entry_per_index);
    771 #endif
    772 #endif /* BCM_TRIUMPH2_SUPPORT */
    773 #endif  /* !_BCM_INT_TRIUMPH2_H_ */