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

hurricane2.h (6215B)


      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:        hurricane.h
      8  * Purpose:     Function declarations for Hurricane  bcm functions
      9  */
     10 
     11 #ifndef _BCM_INT_HURRICANE2_H_
     12 #define _BCM_INT_HURRICANE2_H_
     13 #include <bcm_int/esw/l2.h>
     14 #ifdef BCM_FIELD_SUPPORT 
     15 #include <bcm_int/esw/field.h>
     16 #endif /* BCM_FIELD_SUPPORT */
     17 
     18 #if defined(BCM_HURRICANE2_SUPPORT)
     19 #include <bcm_int/esw/mbcm.h>
     20 #include <bcm_int/esw/oam.h>
     21 
     22 #ifdef INCLUDE_L3
     23 #include <bcm_int/esw/l3.h>
     24 #include <bcm_int/esw/firebolt.h>
     25 #endif
     26 extern int bcm_hu2_cosq_init(int unit);
     27 extern int bcm_hu2_cosq_detach(int unit, int software_state_only);
     28 extern int bcm_hu2_cosq_config_set(int unit, int numq);
     29 extern int bcm_hu2_cosq_config_get(int unit, int *numq);
     30 extern int bcm_hu2_cosq_mapping_set(int unit, bcm_port_t port,
     31                         bcm_cos_t priority, bcm_cos_queue_t cosq);
     32 extern int bcm_hu2_cosq_mapping_get(int unit, bcm_port_t port,
     33                         bcm_cos_t priority, bcm_cos_queue_t *cosq);
     34 extern int     
     35 bcm_hu2_cosq_port_sched_set(int unit, bcm_pbmp_t pbm,
     36                               int mode, const int weights[], int delay);
     37 extern int
     38 bcm_hu2_cosq_port_sched_get(int unit, bcm_pbmp_t pbm,
     39                            int *mode, int weights[], int *delay);
     40 extern int
     41 bcm_hu2_cosq_port_bandwidth_set(int unit, bcm_port_t port,
     42                                bcm_cos_queue_t cosq,
     43                                uint32 kbits_sec_min,
     44                                uint32 kbits_sec_max,
     45                                uint32 kbits_sec_burst,
     46                                uint32 flags);
     47 extern int
     48 bcm_hu2_cosq_port_bandwidth_get(int unit, bcm_port_t port,
     49                                bcm_cos_queue_t cosq,
     50                                uint32 *kbits_sec_min,
     51                                uint32 *kbits_sec_max,
     52                                uint32 *kbits_sec_burst,
     53                                uint32 *flags);
     54 
     55 extern int bcm_hr2_cosq_port_pps_set(int unit, bcm_port_t port,
     56                                     bcm_cos_queue_t cosq, int pps);
     57 extern int bcm_hr2_cosq_port_pps_get(int unit, bcm_port_t port,
     58                                     bcm_cos_queue_t cosq, int *pps);
     59 extern int bcm_hr2_cosq_port_burst_set(int unit, bcm_port_t port,
     60                                       bcm_cos_queue_t cosq, int burst);
     61 extern int bcm_hr2_cosq_port_burst_get(int unit, bcm_port_t port,
     62                                       bcm_cos_queue_t cosq, int *burst);
     63 
     64 extern int
     65 bcm_hu2_cosq_discard_set(int unit, uint32 flags);
     66 extern int
     67 bcm_hu2_cosq_discard_get(int unit, uint32* flags);
     68 extern int
     69 bcm_hu2_cosq_discard_port_set(int unit, bcm_port_t port,
     70                              bcm_cos_queue_t cosq,
     71                              uint32 color,
     72                              int drop_start,
     73                              int drop_slope,
     74                              int average_time);
     75 extern int
     76 bcm_hu2_cosq_discard_port_get(int unit, bcm_port_t port,
     77                              bcm_cos_queue_t cosq,
     78                              uint32 color,
     79                              int *drop_start,
     80                              int *drop_slope,
     81                              int *average_time);
     82 
     83 extern int
     84 bcm_hu2_cosq_sched_weight_max_get(int unit, int mode, int *weight_max);
     85 
     86 extern int
     87 bcm_hu2_cosq_gport_bandwidth_get(int unit, bcm_gport_t gport,
     88                                 bcm_cos_queue_t cosq, uint32 *kbits_sec_min,
     89                                 uint32 *kbits_sec_max, uint32 *flags);
     90 
     91 extern int
     92 bcm_hu2_cosq_gport_sched_set(int unit, bcm_gport_t gport,
     93                             bcm_cos_queue_t cosq, int mode, int weight);
     94 
     95 extern int
     96 bcm_hu2_cosq_gport_sched_get(int unit, bcm_gport_t gport, 
     97                             bcm_cos_queue_t cosq, int *mode, int *weight);
     98 
     99 extern int
    100 bcm_hu2_cosq_gport_bandwidth_burst_set(int unit, bcm_gport_t gport,
    101                                       bcm_cos_queue_t cosq,
    102                                       uint32 kbits_burst);
    103 
    104 extern int
    105 bcm_hu2_cosq_gport_bandwidth_burst_get(int unit, bcm_gport_t gport,
    106                                       bcm_cos_queue_t cosq,
    107                                       uint32 *kbits_burst);
    108 
    109 extern int
    110 bcm_hu2_cosq_gport_bandwidth_set(int unit, bcm_gport_t gport,
    111                                 bcm_cos_queue_t cosq, uint32 kbits_sec_min,
    112                                 uint32 kbits_sec_max, uint32 flags);
    113 
    114 extern int
    115 bcm_hu2_cosq_gport_discard_set(int unit, bcm_gport_t port, bcm_cos_queue_t cosq,
    116                               bcm_cosq_gport_discard_t *discard);
    117 
    118 extern int
    119 bcm_hu2_cosq_gport_discard_get(int unit, bcm_gport_t port, bcm_cos_queue_t cosq,
    120                               bcm_cosq_gport_discard_t *discard);
    121 
    122 extern int
    123 bcm_hr2_dual_port_mode_reinit(int unit);
    124 
    125 #ifdef BCM_WARM_BOOT_SUPPORT
    126 extern int bcm_hu2_cosq_sync(int unit);
    127 #endif /* BCM_WARM_BOOT_SUPPORT */
    128 #ifdef BCM_WARM_BOOT_SUPPORT_SW_DUMP
    129 extern void bcm_hu2_cosq_sw_dump(int unit);
    130 #endif /* BCM_WARM_BOOT_SUPPORT_SW_DUMP */
    131 
    132 #ifdef INCLUDE_L3
    133 extern int _bcm_hu2_lpm_get(int unit, _bcm_defip_cfg_t *lpm_cfg, int *nh_ecmp_idx);
    134 extern int _bcm_hu2_lpm_add(int unit, _bcm_defip_cfg_t *lpm_cfg, int nh_ecmp_idx);
    135 extern int _bcm_hu2_lpm_del(int unit, _bcm_defip_cfg_t *lpm_cfg);
    136 extern int _bcm_hu2_lpm_update_match(int unit, _bcm_l3_trvrs_data_t *trv_data);
    137 #endif  /* INCLUDE_L3 */
    138 
    139 #ifdef BCM_FIELD_SUPPORT 
    140 extern int _bcm_field_hu2_init(int unit, _field_control_t *fc);
    141 extern int
    142 _bcm_field_hu2_selcodes_install(int unit, _field_group_t *fg,
    143                                 uint8 slice_numb, bcm_pbmp_t pbmp,
    144                                 int selcode_index);
    145 extern int
    146 _bcm_field_hu2_mode_set(int unit, uint8 slice_numb, _field_group_t *fg, uint8 flags);
    147 extern int
    148 _bcm_field_hu2_lookup_mode_set(int unit, uint8 slice_numb,
    149                               _field_group_t *fg, uint8 flags);
    150 extern int
    151 _bcm_field_hu2_slice_clear(int unit, _field_group_t *fg, _field_slice_t *fs);
    152 
    153 #endif
    154 
    155 #endif  /* BCM_HURRICANE2_SUPPORT */
    156 #endif  /* !_BCM_INT_HURRICANE2_H_ */