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

mod.h (11091B)


      1 /*
      2  * DO NOT EDIT THIS FILE!
      3  * This file is auto-generated.
      4  * Edits to this file will be lost when it is regenerated.
      5  *
      6  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      7  * 
      8  * Copyright 2007-2020 Broadcom Inc. All rights reserved.
      9  */
     10 
     11 #ifndef BCMINT_LTSW_MBCM_MOD_H
     12 #define BCMINT_LTSW_MBCM_MOD_H
     13 
     14 #include <bcm/cosq.h>
     15 
     16 #include <bcm_int/ltsw/mod.h>
     17 
     18 #include <sal/sal_types.h>
     19 
     20 /*!
     21  * \brief Init Cosq mirror-on-drop module.
     22  *
     23  * \param [in] unit Unit Number.
     24  *
     25  * \retval SHR_E_NONE No errors.
     26  * \retval !SHR_E_NONE Failure.
     27  */
     28 typedef int (*cosq_mod_init_f)(int unit);
     29 
     30 /*!
     31  * \brief detach Cosq mirror-on-drop module.
     32  *
     33  * \param [in] unit Unit Number.
     34  *
     35  * \retval SHR_E_NONE No errors.
     36  * \retval !SHR_E_NONE Failure.
     37  */
     38 typedef int (*cosq_mod_detach_f)(int unit);
     39 
     40 /*!
     41  * \brief Set mirror-on-drop control configuration.
     42  *
     43  * \param [in] unit Unit Number.
     44  * \param [in] control Cosq mirror-on-drop control structure.
     45  *
     46  * \retval SHR_E_NONE No errors.
     47  * \retval !SHR_E_NONE Failure.
     48  */
     49 typedef int (*cosq_mod_control_set_f)(
     50     int unit,
     51     bcm_cosq_mod_control_t *control);
     52 
     53 /*!
     54  * \brief Get mirror-on-drop control configuration.
     55  *
     56  * \param [in] unit Unit Number.
     57  * \param [out] control Cosq mirror-on-drop control structure.
     58  *
     59  * \retval SHR_E_NONE No errors.
     60  * \retval !SHR_E_NONE Failure.
     61  */
     62 typedef int (*cosq_mod_control_get_f)(
     63     int unit,
     64     bcm_cosq_mod_control_t *control);
     65 
     66 /*!
     67  * \brief Create a mirror-on-drop profile.
     68  *
     69  * \param [in] unit Unit Number.
     70  * \param [in] options Options flags.
     71  * \param [out] profile_id Profile id.
     72  *
     73  * \retval SHR_E_NONE No errors.
     74  * \retval !SHR_E_NONE Failure.
     75  */
     76 typedef int (*cosq_mod_profile_create_f)(
     77     int unit,
     78     uint32_t options,
     79     int *profile_id);
     80 
     81 /*!
     82  * \brief Destroy a mirror-on-drop profile.
     83  *
     84  * \param [in] unit Unit Number.
     85  * \param [in] profile_id Profile id.
     86  *
     87  * \retval SHR_E_NONE No errors.
     88  * \retval !SHR_E_NONE Failure.
     89  */
     90 typedef int (*cosq_mod_profile_destroy_f)(
     91     int unit,
     92     int profile_id);
     93 
     94 /*!
     95  * \brief Set a mirror-on-drop profile.
     96  *
     97  * \param [in] unit Unit Number.
     98  * \param [in] profile_id Profile id.
     99  * \param [in] profile Mirror-on-drop profile structure.
    100  *
    101  * \retval SHR_E_NONE No errors.
    102  * \retval !SHR_E_NONE Failure.
    103  */
    104 typedef int (*cosq_mod_profile_set_f)(
    105     int unit,
    106     int profile_id,
    107     bcm_cosq_mod_profile_t *profile);
    108 
    109 /*!
    110  * \brief Get a mirror-on-drop profile.
    111  *
    112  * \param [in] unit Unit Number.
    113  * \param [in] profile_id Profile id.
    114  * \param [out] profile Mirror-on-drop profile structure.
    115  *
    116  * \retval SHR_E_NONE No errors.
    117  * \retval !SHR_E_NONE Failure.
    118  */
    119 typedef int (*cosq_mod_profile_get_f)(
    120     int unit,
    121     int profile_id,
    122     bcm_cosq_mod_profile_t *profile);
    123 
    124 /*!
    125  * \brief Add mirror-on-drop destination.
    126  *
    127  * \param [in] unit Unit Number.
    128  * \param [in] mod_dest Mirror-on-drop destination.
    129  *
    130  * \retval SHR_E_NONE No errors.
    131  * \retval !SHR_E_NONE Failure.
    132  */
    133 typedef int (*cosq_mod_dest_add_f)(
    134     int unit,
    135     bcmi_ltsw_cosq_mod_dest_t *mod_dest);
    136 
    137 /*!
    138  * \brief Delete mirror-on-drop destination.
    139  *
    140  * \param [in] unit Unit Number.
    141  * \param [in] mod_dest Mirror-on-drop destination.
    142  *
    143  * \retval SHR_E_NONE No errors.
    144  * \retval !SHR_E_NONE Failure.
    145  */
    146 typedef int (*cosq_mod_dest_delete_f)(
    147     int unit,
    148     bcmi_ltsw_cosq_mod_dest_t *mod_dest);
    149 
    150 /*!
    151  * \brief Get mirror-on-drop destination.
    152  *
    153  * \param [in] unit Unit Number.
    154  * \param [out] mod_dest Mirror-on-drop destination.
    155  *
    156  * \retval SHR_E_NONE No errors.
    157  * \retval !SHR_E_NONE Failure.
    158  */
    159 typedef int (*cosq_mod_dest_get_f)(
    160     int unit,
    161     bcmi_ltsw_cosq_mod_dest_t *mod_dest);
    162 
    163 /*!
    164  * \brief Get mirror instance id.
    165  *
    166  * \param [in] unit Unit Number.
    167  * \param [out] instance_id Mirror instance id. -1 if not found.
    168  *
    169  * \retval SHR_E_NONE No errors.
    170  * \retval !SHR_E_NONE Failure.
    171  */
    172 typedef int (*cosq_mod_instance_id_get_f)(
    173     int unit,
    174     int *instance_id);
    175 
    176 /*!
    177  * \brief Get mirror-on-drop statistics.
    178  *
    179  * \param [in] unit Unit Number.
    180  * \param [in] id Statistics object id.
    181  * \param [in] stat Cosq mirror-on-drop Statistics type.
    182  * \param [out] value Statistics value.
    183  *
    184  * \retval SHR_E_NONE No errors.
    185  * \retval !SHR_E_NONE Failure.
    186  */
    187 typedef int (*cosq_mod_stat_get_f)(
    188     int unit,
    189     bcm_cosq_object_id_t *id,
    190     bcm_cosq_mod_stat_t stat,
    191     uint64_t *value);
    192 
    193 /*!
    194  * \brief Set mirror-on-drop statistics counter.
    195  *
    196  * \param [in] unit Unit Number.
    197  * \param [in] id Statistics object id.
    198  * \param [in] stat Cosq mirror-on-drop Statistics type
    199  * \param [in] value Statistics value.
    200  *
    201  * \retval SHR_E_NONE No errors.
    202  * \retval !SHR_E_NONE Failure.
    203  */
    204 typedef int (*cosq_mod_stat_set_f)(
    205     int unit,
    206     bcm_cosq_object_id_t *id,
    207     bcm_cosq_mod_stat_t stat,
    208     uint64_t value);
    209 
    210 /*!
    211  * \brief Cosq_mod driver structure.
    212  */
    213 typedef struct mbcm_ltsw_cosq_mod_drv_s {
    214 
    215     /*! Init Cosq mirror-on-drop module. */
    216     cosq_mod_init_f cosq_mod_init;
    217 
    218     /*! detach Cosq mirror-on-drop module. */
    219     cosq_mod_detach_f cosq_mod_detach;
    220 
    221     /*! Set mirror-on-drop control configuration. */
    222     cosq_mod_control_set_f cosq_mod_control_set;
    223 
    224     /*! Get mirror-on-drop control configuration. */
    225     cosq_mod_control_get_f cosq_mod_control_get;
    226 
    227     /*! Create a mirror-on-drop profile. */
    228     cosq_mod_profile_create_f cosq_mod_profile_create;
    229 
    230     /*! Destroy a mirror-on-drop profile. */
    231     cosq_mod_profile_destroy_f cosq_mod_profile_destroy;
    232 
    233     /*! Set a mirror-on-drop profile. */
    234     cosq_mod_profile_set_f cosq_mod_profile_set;
    235 
    236     /*! Get a mirror-on-drop profile. */
    237     cosq_mod_profile_get_f cosq_mod_profile_get;
    238 
    239     /*! Add mirror-on-drop destination. */
    240     cosq_mod_dest_add_f cosq_mod_dest_add;
    241 
    242     /*! Delete mirror-on-drop destination. */
    243     cosq_mod_dest_delete_f cosq_mod_dest_delete;
    244 
    245     /*! Get mirror-on-drop destination. */
    246     cosq_mod_dest_get_f cosq_mod_dest_get;
    247 
    248     /*! Get mirror instance id. */
    249     cosq_mod_instance_id_get_f cosq_mod_instance_id_get;
    250 
    251     /*! Get mirror-on-drop statistics. */
    252     cosq_mod_stat_get_f cosq_mod_stat_get;
    253 
    254     /*! Set mirror-on-drop statistics counter. */
    255     cosq_mod_stat_set_f cosq_mod_stat_set;
    256 
    257 } mbcm_ltsw_cosq_mod_drv_t;
    258 
    259 /*!
    260  * \brief Set the COSQ_MOD driver of the device.
    261  *
    262  * \param [in] unit Unit Number.
    263  * \param [in] drv Cosq_mod driver to set.
    264  *
    265  * \retval SHR_E_NONE No errors.
    266  * \retval !SHR_E_NONE Failure.
    267  */
    268 extern int
    269 mbcm_ltsw_cosq_mod_drv_set(
    270     int unit,
    271     mbcm_ltsw_cosq_mod_drv_t *drv);
    272 
    273 /*!
    274  * \brief Init Cosq mirror-on-drop module.
    275  *
    276  * \param [in] unit Unit Number.
    277  *
    278  * \retval SHR_E_NONE No errors.
    279  * \retval !SHR_E_NONE Failure.
    280  */
    281 extern int
    282 mbcm_ltsw_cosq_mod_init(int unit);
    283 
    284 /*!
    285  * \brief detach Cosq mirror-on-drop module.
    286  *
    287  * \param [in] unit Unit Number.
    288  *
    289  * \retval SHR_E_NONE No errors.
    290  * \retval !SHR_E_NONE Failure.
    291  */
    292 extern int
    293 mbcm_ltsw_cosq_mod_detach(int unit);
    294 
    295 /*!
    296  * \brief Set mirror-on-drop control configuration.
    297  *
    298  * \param [in] unit Unit Number.
    299  * \param [in] control Cosq mirror-on-drop control structure.
    300  *
    301  * \retval SHR_E_NONE No errors.
    302  * \retval !SHR_E_NONE Failure.
    303  */
    304 extern int
    305 mbcm_ltsw_cosq_mod_control_set(
    306     int unit,
    307     bcm_cosq_mod_control_t *control);
    308 
    309 /*!
    310  * \brief Get mirror-on-drop control configuration.
    311  *
    312  * \param [in] unit Unit Number.
    313  * \param [out] control Cosq mirror-on-drop control structure.
    314  *
    315  * \retval SHR_E_NONE No errors.
    316  * \retval !SHR_E_NONE Failure.
    317  */
    318 extern int
    319 mbcm_ltsw_cosq_mod_control_get(
    320     int unit,
    321     bcm_cosq_mod_control_t *control);
    322 
    323 /*!
    324  * \brief Create a mirror-on-drop profile.
    325  *
    326  * \param [in] unit Unit Number.
    327  * \param [in] options Options flags.
    328  * \param [out] profile_id Profile id.
    329  *
    330  * \retval SHR_E_NONE No errors.
    331  * \retval !SHR_E_NONE Failure.
    332  */
    333 extern int
    334 mbcm_ltsw_cosq_mod_profile_create(
    335     int unit,
    336     uint32_t options,
    337     int *profile_id);
    338 
    339 /*!
    340  * \brief Destroy a mirror-on-drop profile.
    341  *
    342  * \param [in] unit Unit Number.
    343  * \param [in] profile_id Profile id.
    344  *
    345  * \retval SHR_E_NONE No errors.
    346  * \retval !SHR_E_NONE Failure.
    347  */
    348 extern int
    349 mbcm_ltsw_cosq_mod_profile_destroy(
    350     int unit,
    351     int profile_id);
    352 
    353 /*!
    354  * \brief Set a mirror-on-drop profile.
    355  *
    356  * \param [in] unit Unit Number.
    357  * \param [in] profile_id Profile id.
    358  * \param [in] profile Mirror-on-drop profile structure.
    359  *
    360  * \retval SHR_E_NONE No errors.
    361  * \retval !SHR_E_NONE Failure.
    362  */
    363 extern int
    364 mbcm_ltsw_cosq_mod_profile_set(
    365     int unit,
    366     int profile_id,
    367     bcm_cosq_mod_profile_t *profile);
    368 
    369 /*!
    370  * \brief Get a mirror-on-drop profile.
    371  *
    372  * \param [in] unit Unit Number.
    373  * \param [in] profile_id Profile id.
    374  * \param [out] profile Mirror-on-drop profile structure.
    375  *
    376  * \retval SHR_E_NONE No errors.
    377  * \retval !SHR_E_NONE Failure.
    378  */
    379 extern int
    380 mbcm_ltsw_cosq_mod_profile_get(
    381     int unit,
    382     int profile_id,
    383     bcm_cosq_mod_profile_t *profile);
    384 
    385 /*!
    386  * \brief Add mirror-on-drop destination.
    387  *
    388  * \param [in] unit Unit Number.
    389  * \param [in] mod_dest Mirror-on-drop destination.
    390  *
    391  * \retval SHR_E_NONE No errors.
    392  * \retval !SHR_E_NONE Failure.
    393  */
    394 extern int
    395 mbcm_ltsw_cosq_mod_dest_add(
    396     int unit,
    397     bcmi_ltsw_cosq_mod_dest_t *mod_dest);
    398 
    399 /*!
    400  * \brief Delete mirror-on-drop destination.
    401  *
    402  * \param [in] unit Unit Number.
    403  * \param [in] mod_dest Mirror-on-drop destination.
    404  *
    405  * \retval SHR_E_NONE No errors.
    406  * \retval !SHR_E_NONE Failure.
    407  */
    408 extern int
    409 mbcm_ltsw_cosq_mod_dest_delete(
    410     int unit,
    411     bcmi_ltsw_cosq_mod_dest_t *mod_dest);
    412 
    413 /*!
    414  * \brief Get mirror-on-drop destination.
    415  *
    416  * \param [in] unit Unit Number.
    417  * \param [out] mod_dest Mirror-on-drop destination.
    418  *
    419  * \retval SHR_E_NONE No errors.
    420  * \retval !SHR_E_NONE Failure.
    421  */
    422 extern int
    423 mbcm_ltsw_cosq_mod_dest_get(
    424     int unit,
    425     bcmi_ltsw_cosq_mod_dest_t *mod_dest);
    426 
    427 /*!
    428  * \brief Get mirror instance id.
    429  *
    430  * \param [in] unit Unit Number.
    431  * \param [out] instance_id Mirror instance id. -1 if not found.
    432  *
    433  * \retval SHR_E_NONE No errors.
    434  * \retval !SHR_E_NONE Failure.
    435  */
    436 extern int
    437 mbcm_ltsw_cosq_mod_instance_id_get(
    438     int unit,
    439     int *instance_id);
    440 
    441 /*!
    442  * \brief Get mirror-on-drop statistics.
    443  *
    444  * \param [in] unit Unit Number.
    445  * \param [in] id Statistics object id.
    446  * \param [in] stat Cosq mirror-on-drop Statistics type.
    447  * \param [out] value Statistics value.
    448  *
    449  * \retval SHR_E_NONE No errors.
    450  * \retval !SHR_E_NONE Failure.
    451  */
    452 extern int
    453 mbcm_ltsw_cosq_mod_stat_get(
    454     int unit,
    455     bcm_cosq_object_id_t *id,
    456     bcm_cosq_mod_stat_t stat,
    457     uint64_t *value);
    458 
    459 /*!
    460  * \brief Set mirror-on-drop statistics counter.
    461  *
    462  * \param [in] unit Unit Number.
    463  * \param [in] id Statistics object id.
    464  * \param [in] stat Cosq mirror-on-drop Statistics type
    465  * \param [in] value Statistics value.
    466  *
    467  * \retval SHR_E_NONE No errors.
    468  * \retval !SHR_E_NONE Failure.
    469  */
    470 extern int
    471 mbcm_ltsw_cosq_mod_stat_set(
    472     int unit,
    473     bcm_cosq_object_id_t *id,
    474     bcm_cosq_mod_stat_t stat,
    475     uint64_t value);
    476 
    477 #endif /* BCMINT_LTSW_MBCM_MOD_H */