rate.h (4687B)
1 /* 2 * 3 * 4 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 5 * 6 * Copyright 2007-2020 Broadcom Inc. All rights reserved. 7 * 8 * DO NOT EDIT THIS FILE! 9 * This file is auto-generated. 10 * Edits to this file will be lost when it is regenerated. 11 */ 12 13 #ifndef __BCM_RATE_H__ 14 #define __BCM_RATE_H__ 15 16 #include <bcm/types.h> 17 18 /* Rate flags. */ 19 #define BCM_RATE_DLF 0x01 20 #define BCM_RATE_MCAST 0x02 21 #define BCM_RATE_BCAST 0x04 22 #define BCM_RATE_UCAST 0x08 23 #define BCM_RATE_SALF 0x10 24 #define BCM_RATE_RSVD_MCAST 0x20 25 #define BCM_RATE_KNOWN_MCAST 0x40 26 #define BCM_RATE_UNKNOWN_MCAST 0x80 27 #define BCM_RATE_CTRL_BUCKET_1 0x00010000 28 #define BCM_RATE_CTRL_BUCKET_2 0x00020000 29 #define BCM_RATE_MODE_PACKETS 0x00040000 30 #define BCM_RATE_COLOR_BLIND 0x00080000 31 #define BCM_RATE_ALL (BCM_RATE_BCAST | BCM_RATE_MCAST | BCM_RATE_DLF | BCM_RATE_UCAST | BCM_RATE_SALF | BCM_RATE_RSVD_MCAST | BCM_RATE_KNOWN_MCAST | BCM_RATE_UNKNOWN_MCAST) 32 #define BCM_RATE_PKT_ADJ_HEADER_TRUNCATE 0x00100000 33 34 /* Rate Enable/Disable macros */ 35 #define BCM_RATE_DISABLE 0 36 #define BCM_RATE_BLOCK -1 37 38 /* bcm_rate_limit_s */ 39 typedef struct bcm_rate_limit_s { 40 int br_dlfbc_rate; 41 int br_mcast_rate; 42 int br_bcast_rate; 43 int flags; 44 } bcm_rate_limit_t; 45 46 /* bcm_rate_limit_t_init */ 47 extern void bcm_rate_limit_t_init( 48 bcm_rate_limit_t *rate_limit); 49 50 /* bcm_rate_packet_s */ 51 typedef struct bcm_rate_packet_s { 52 uint32 flags; 53 int pps; 54 int kbits_burst; 55 } bcm_rate_packet_t; 56 57 /* bcm_rate_packet_t_init */ 58 extern void bcm_rate_packet_t_init( 59 bcm_rate_packet_t *pkt_rate); 60 61 #ifndef BCM_HIDE_DISPATCHABLE 62 63 /* Front ends to bcm_rate_packet_set/get functions. */ 64 extern int bcm_rate_packet_set( 65 int unit, 66 bcm_port_t port, 67 bcm_rate_packet_t *pkt_rate); 68 69 /* Front ends to bcm_rate_packet_set/get functions. */ 70 extern int bcm_rate_packet_get( 71 int unit, 72 bcm_port_t port, 73 bcm_rate_packet_t *pkt_rate); 74 75 /* 76 * Configure/retrieve rate limit and on/off state of DLF, MCAST, and 77 * BCAST limiting. 78 */ 79 extern int bcm_rate_set( 80 int unit, 81 int pps, 82 int flags); 83 84 /* 85 * Configure/retrieve rate limit and on/off state of DLF, MCAST, and 86 * BCAST limiting. 87 */ 88 extern int bcm_rate_get( 89 int unit, 90 int *pps, 91 int *flags); 92 93 /* 94 * Configure or retrieve rate limit for specified packet type on given 95 * port. 96 */ 97 extern int bcm_rate_mcast_set( 98 int unit, 99 int pps, 100 int flags, 101 int port); 102 103 /* 104 * Configure or retrieve rate limit for specified packet type on given 105 * port. 106 */ 107 extern int bcm_rate_mcast_get( 108 int unit, 109 int *pps, 110 int *flags, 111 int port); 112 113 /* 114 * Configure or retrieve rate limit for specified packet type on given 115 * port. 116 */ 117 extern int bcm_rate_dlfbc_set( 118 int unit, 119 int pps, 120 int flags, 121 int port); 122 123 /* 124 * Configure or retrieve rate limit for specified packet type on given 125 * port. 126 */ 127 extern int bcm_rate_dlfbc_get( 128 int unit, 129 int *pps, 130 int *flags, 131 int port); 132 133 /* 134 * Configure or retrieve rate limit for specified packet type on given 135 * port. 136 */ 137 extern int bcm_rate_bcast_set( 138 int unit, 139 int pps, 140 int flags, 141 int port); 142 143 /* 144 * Configure or retrieve rate limit for specified packet type on given 145 * port. 146 */ 147 extern int bcm_rate_bcast_get( 148 int unit, 149 int *pps, 150 int *flags, 151 int port); 152 153 /* 154 * Front ends to bcm_*_rate_set/get functions. Uses a single data 155 * structure to write into all the 3 rate control registers. 156 */ 157 extern int bcm_rate_type_set( 158 int unit, 159 bcm_rate_limit_t *rl); 160 161 /* 162 * Front ends to bcm_*_rate_set/get functions. Uses a single data 163 * structure to write into all the 3 rate control registers. 164 */ 165 extern int bcm_rate_type_get( 166 int unit, 167 bcm_rate_limit_t *rl); 168 169 /* 170 * Configure/retrieve metering rate limit for specified packet type on 171 * given port. 172 */ 173 extern int bcm_rate_bandwidth_set( 174 int unit, 175 bcm_port_t port, 176 int flags, 177 uint32 kbits_sec, 178 uint32 kbits_burst); 179 180 /* 181 * Configure/retrieve metering rate limit for specified packet type on 182 * given port. 183 */ 184 extern int bcm_rate_bandwidth_get( 185 int unit, 186 bcm_port_t port, 187 int flags, 188 uint32 *kbits_sec, 189 uint32 *kbits_burst); 190 191 #endif /* BCM_HIDE_DISPATCHABLE */ 192 193 #endif /* __BCM_RATE_H__ */