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_ */