hurricane.h (4971B)
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_HURRICANE_H_ 12 #define _BCM_INT_HURRICANE_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_HURRICANE_SUPPORT) 19 #include <bcm_int/esw/mbcm.h> 20 #include <bcm_int/esw/oam.h> 21 22 23 extern int bcm_hu_cosq_init(int unit); 24 extern int bcm_hu_cosq_detach(int unit, int software_state_only); 25 extern int bcm_hu_cosq_config_set(int unit, int numq); 26 extern int bcm_hu_cosq_config_get(int unit, int *numq); 27 extern int bcm_hu_cosq_mapping_set(int unit, bcm_port_t port, 28 bcm_cos_t priority, bcm_cos_queue_t cosq); 29 extern int bcm_hu_cosq_mapping_get(int unit, bcm_port_t port, 30 bcm_cos_t priority, bcm_cos_queue_t *cosq); 31 extern int 32 bcm_hu_cosq_port_sched_set(int unit, bcm_pbmp_t pbm, 33 int mode, const int weights[], int delay); 34 extern int 35 bcm_hu_cosq_port_sched_get(int unit, bcm_pbmp_t pbm, 36 int *mode, int weights[], int *delay); 37 extern int 38 bcm_hu_cosq_port_bandwidth_set(int unit, bcm_port_t port, 39 bcm_cos_queue_t cosq, 40 uint32 kbits_sec_min, 41 uint32 kbits_sec_max, 42 uint32 kbits_sec_burst, 43 uint32 flags); 44 extern int 45 bcm_hu_cosq_port_bandwidth_get(int unit, bcm_port_t port, 46 bcm_cos_queue_t cosq, 47 uint32 *kbits_sec_min, 48 uint32 *kbits_sec_max, 49 uint32 *kbits_sec_burst, 50 uint32 *flags); 51 52 extern int 53 bcm_hu_cosq_discard_set(int unit, uint32 flags); 54 extern int 55 bcm_hu_cosq_discard_get(int unit, uint32* flags); 56 extern int 57 bcm_hu_cosq_discard_port_set(int unit, bcm_port_t port, 58 bcm_cos_queue_t cosq, 59 uint32 color, 60 int drop_start, 61 int drop_slope, 62 int average_time); 63 extern int 64 bcm_hu_cosq_discard_port_get(int unit, bcm_port_t port, 65 bcm_cos_queue_t cosq, 66 uint32 color, 67 int *drop_start, 68 int *drop_slope, 69 int *average_time); 70 71 extern int 72 bcm_hu_cosq_sched_weight_max_get(int unit, int mode, int *weight_max); 73 74 extern int 75 bcm_hu_cosq_gport_bandwidth_get(int unit, bcm_gport_t gport, 76 bcm_cos_queue_t cosq, uint32 *kbits_sec_min, 77 uint32 *kbits_sec_max, uint32 *flags); 78 79 extern int 80 bcm_hu_cosq_gport_sched_set(int unit, bcm_gport_t gport, 81 bcm_cos_queue_t cosq, int mode, int weight); 82 83 extern int 84 bcm_hu_cosq_gport_sched_get(int unit, bcm_gport_t gport, 85 bcm_cos_queue_t cosq, int *mode, int *weight); 86 87 extern int 88 bcm_hu_cosq_gport_bandwidth_burst_set(int unit, bcm_gport_t gport, 89 bcm_cos_queue_t cosq, 90 uint32 kbits_burst); 91 92 extern int 93 bcm_hu_cosq_gport_bandwidth_burst_get(int unit, bcm_gport_t gport, 94 bcm_cos_queue_t cosq, 95 uint32 *kbits_burst); 96 97 extern int 98 bcm_hu_cosq_gport_bandwidth_set(int unit, bcm_gport_t gport, 99 bcm_cos_queue_t cosq, uint32 kbits_sec_min, 100 uint32 kbits_sec_max, uint32 flags); 101 102 extern int 103 bcm_hu_cosq_gport_discard_set(int unit, bcm_gport_t port, bcm_cos_queue_t cosq, 104 bcm_cosq_gport_discard_t *discard); 105 106 extern int 107 bcm_hu_cosq_gport_discard_get(int unit, bcm_gport_t port, bcm_cos_queue_t cosq, 108 bcm_cosq_gport_discard_t *discard); 109 110 #ifdef BCM_WARM_BOOT_SUPPORT 111 extern int bcm_hu_cosq_sync(int unit); 112 #endif /* BCM_WARM_BOOT_SUPPORT */ 113 #ifndef BCM_SW_STATE_DUMP_DISABLE 114 extern void bcm_hu_cosq_sw_dump(int unit); 115 #endif /* BCM_SW_STATE_DUMP_DISABLE */ 116 117 #ifdef INCLUDE_L3 118 extern int _bcm_hu_l3_intf_mtu_get(int unit, _bcm_l3_intf_cfg_t *intf_info); 119 extern int _bcm_hu_l3_intf_mtu_set(int unit, _bcm_l3_intf_cfg_t *intf_info); 120 #endif /* INCLUDE_L3 */ 121 122 extern int _bcm_hu_port_lanes_set(int unit, bcm_port_t port, int value); 123 extern int _bcm_hu_port_lanes_get(int unit, bcm_port_t port, int *value); 124 125 #ifdef BCM_FIELD_SUPPORT 126 extern int _bcm_field_hu_init(int unit, _field_control_t *fc); 127 #endif 128 129 #endif /* BCM_HURRICANE_SUPPORT */ 130 #endif /* !_BCM_INT_HURRICANE_H_ */