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

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