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

pfc.h (18856B)


      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_PFC_H
     12 #define BCMINT_LTSW_MBCM_PFC_H
     13 
     14 #include <bcm/cosq.h>
     15 #include <bcm/types.h>
     16 
     17 #include <sal/sal_types.h>
     18 
     19 /*!
     20  * \brief Get an entire PFC class (RX) profile
     21  *
     22  * \param [in] unit Unit Number.
     23  * \param [in] profile_id Profile ID.
     24  * \param [in] max_count Maximum number of elements in config array.
     25  * \param [out] config_array PFC class config array.
     26  * \param [out] count actual size of array.
     27  *
     28  * \retval SHR_E_NONE No errors.
     29  * \retval !SHR_E_NONE Failure.
     30  */
     31 typedef int (*pfc_class_config_profile_get_f)(
     32     int unit,
     33     int profile_id,
     34     int max_count,
     35     bcm_cosq_pfc_class_map_config_t *config_array,
     36     int *count);
     37 
     38 /*!
     39  * \brief Set an entire PFC class (RX) profile
     40  *
     41  * \param [in] unit Unit Number.
     42  * \param [in] profile_id Profile ID.
     43  * \param [in] count The length of array.
     44  * \param [out] config_array PFC class config array.
     45  *
     46  * \retval SHR_E_NONE No errors.
     47  * \retval !SHR_E_NONE Failure.
     48  */
     49 typedef int (*pfc_class_config_profile_set_f)(
     50     int unit,
     51     int profile_id,
     52     int count,
     53     bcm_cosq_pfc_class_map_config_t *config_array);
     54 
     55 /*!
     56  * \brief Get a PFC-tx priority to PG mapping profile
     57  *
     58  * \param [in] unit Unit Number.
     59  * \param [in] profile_id Profile ID.
     60  * \param [in] array_max Maximum number of elements in PG array.
     61  * \param [out] pg_array PG array, indexed by PFC priority.
     62  * \param [out] array_count actual size of array.
     63  *
     64  * \retval SHR_E_NONE No errors.
     65  * \retval !SHR_E_NONE Failure.
     66  */
     67 typedef int (*pfc_priority_mapping_profile_get_f)(
     68     int unit,
     69     int profile_id,
     70     int array_max,
     71     int *pg_array,
     72     int *array_count);
     73 
     74 /*!
     75  * \brief Set a PFC-tx priority to PG mapping profile
     76  *
     77  * \param [in] unit Unit Number.
     78  * \param [in] profile_id Profile ID.
     79  * \param [in] array_count actual size of array.
     80  * \param [out] pg_array PG array, indexed by PFC priority.
     81  *
     82  * \retval SHR_E_NONE No errors.
     83  * \retval !SHR_E_NONE Failure.
     84  */
     85 typedef int (*pfc_priority_mapping_profile_set_f)(
     86     int unit,
     87     int profile_id,
     88     int array_count,
     89     int *pg_array);
     90 
     91 /*!
     92  * \brief Get number of optimized PFC groups on a port.
     93  *
     94  * \param [in] unit Unit Number.
     95  * \param [in] port logical port number.
     96  * \param [out] arg number of optimized PFC groups supported.
     97  *
     98  * \retval SHR_E_NONE No errors.
     99  * \retval !SHR_E_NONE Failure.
    100  */
    101 typedef int (*pfc_group_num_get_f)(
    102     int unit,
    103     int port,
    104     int *arg);
    105 
    106 /*!
    107  * \brief Initialize the pfc module.
    108  *
    109  * \param [in] unit Unit Number.
    110  *
    111  * \retval SHR_E_NONE No errors.
    112  * \retval !SHR_E_NONE Failure.
    113  */
    114 typedef int (*pfc_init_f)(int unit);
    115 
    116 /*!
    117  * \brief Detach the pfc module.
    118  *
    119  * \param [in] unit Unit Number.
    120  *
    121  * \retval SHR_E_NONE No errors.
    122  * \retval !SHR_E_NONE Failure.
    123  */
    124 typedef int (*pfc_detach_f)(int unit);
    125 
    126 /*!
    127  * \brief Enable/diable PFC rx.
    128  *
    129  * \param [in] unit Unit Number.
    130  * \param [in] lport Logical port ID.
    131  * \param [in] pfc_enable PFC enable, 0: disable, 1: enable.
    132  *
    133  * \retval SHR_E_NONE No errors.
    134  * \retval !SHR_E_NONE Failure.
    135  */
    136 typedef int (*pfc_rx_config_set_f)(
    137     int unit,
    138     int lport,
    139     int pfc_enable);
    140 
    141 /*!
    142  * \brief Enable/diable PFC tx.
    143  *
    144  * \param [in] unit Unit Number.
    145  * \param [in] lport Logical port ID.
    146  * \param [in] pfc_enable PFC enable, 0: disable, 1: enable.
    147  *
    148  * \retval SHR_E_NONE No errors.
    149  * \retval !SHR_E_NONE Failure.
    150  */
    151 typedef int (*pfc_tx_config_set_f)(
    152     int unit,
    153     int lport,
    154     int pfc_enable);
    155 
    156 /*!
    157  * \brief enable port pg pfc.
    158  *
    159  * \param [in] unit Unit Number.
    160  * \param [in] port Port ID.
    161  * \param [in] pg priority group id.
    162  * \param [in] pfc_enable pfc enable state.
    163  *
    164  * \retval SHR_E_NONE No errors.
    165  * \retval !SHR_E_NONE Failure.
    166  */
    167 typedef int (*pfc_port_pg_pfc_set_f)(
    168     int unit,
    169     bcm_port_t port,
    170     int pg,
    171     int pfc_enable);
    172 
    173 /*!
    174  * \brief Get per port pg pfc enable state.
    175  *
    176  * \param [in] unit Unit Number.
    177  * \param [in] port Port ID.
    178  * \param [in] pg priority group id.
    179  * \param [out] pfc_enable pfc enable state.
    180  *
    181  * \retval SHR_E_NONE No errors.
    182  * \retval !SHR_E_NONE Failure.
    183  */
    184 typedef int (*pfc_port_pg_pfc_get_f)(
    185     int unit,
    186     bcm_port_t port,
    187     int pg,
    188     int *pfc_enable);
    189 
    190 /*!
    191  * \brief Set the PFC-related profile ID for a given port.
    192  *
    193  * \param [in] unit Unit Number.
    194  * \param [in] lport Logical port ID.
    195  * \param [in] profile_id profile ID.
    196  *
    197  * \retval SHR_E_NONE No errors.
    198  * \retval !SHR_E_NONE Failure.
    199  */
    200 typedef int (*pfc_config_profile_id_set_f)(
    201     int unit,
    202     int lport,
    203     int profile_id);
    204 
    205 /*!
    206  * \brief Set Recovery action to be performed in PFC deadlock recovery state.
    207  *
    208  * \param [in] unit Unit Number.
    209  * \param [in] action 0-Transmit Packets (Default), 1-Drop.
    210  *
    211  * \retval SHR_E_NONE No errors.
    212  * \retval !SHR_E_NONE Failure.
    213  */
    214 typedef int (*pfc_deadlock_recovery_action_set_f)(
    215     int unit,
    216     int action);
    217 
    218 /*!
    219  * \brief Get Recovery action to be performed in PFC deadlock recovery state.
    220  *
    221  * \param [in] unit Unit Number.
    222  * \param [out] action 0-Transmit Packets (Default), 1-Drop.
    223  *
    224  * \retval SHR_E_NONE No errors.
    225  * \retval !SHR_E_NONE Failure.
    226  */
    227 typedef int (*pfc_deadlock_recovery_action_get_f)(
    228     int unit,
    229     int *action);
    230 
    231 /*!
    232  * \brief Get config for the given (PFC priority, port) for the PFC Deadlock feature.
    233  *
    234  * \param [in] unit Unit Number.
    235  * \param [in] port Port ID.
    236  * \param [in] pfc_priority PFC Priority.
    237  * \param [in] type PFC deadlock control type.
    238  * \param [out] arg pointer to value.
    239  *
    240  * \retval SHR_E_NONE No errors.
    241  * \retval !SHR_E_NONE Failure.
    242  */
    243 typedef int (*pfc_deadlock_control_get_f)(
    244     int unit,
    245     bcm_port_t port,
    246     int pfc_priority,
    247     bcm_cosq_pfc_deadlock_control_t type,
    248     int *arg);
    249 
    250 /*!
    251  * \brief Set config for the given (PFC priority, port) for the PFC Deadlock feature.
    252  *
    253  * \param [in] unit Unit Number.
    254  * \param [in] port Port ID.
    255  * \param [in] pfc_priority PFC Priority.
    256  * \param [in] type PFC deadlock control type.
    257  * \param [in] arg value.
    258  *
    259  * \retval SHR_E_NONE No errors.
    260  * \retval !SHR_E_NONE Failure.
    261  */
    262 typedef int (*pfc_deadlock_control_set_f)(
    263     int unit,
    264     bcm_port_t port,
    265     int pfc_priority,
    266     bcm_cosq_pfc_deadlock_control_t type,
    267     int arg);
    268 
    269 /*!
    270  * \brief Get bitmap of Enabled(Admin) and Current Deadlock ports status for a given priority in PFC deadlock feature.
    271  *
    272  * \param [in] unit Unit Number.
    273  * \param [in] pfc_priority PFC Priority.
    274  * \param [out] pfc_deadlock_info Info for a given priority.
    275  *
    276  * \retval SHR_E_NONE No errors.
    277  * \retval !SHR_E_NONE Failure.
    278  */
    279 typedef int (*pfc_deadlock_info_get_f)(
    280     int unit,
    281     int pfc_priority,
    282     bcm_cosq_pfc_deadlock_info_t *pfc_deadlock_info);
    283 
    284 /*!
    285  * \brief Get the current Deadlock status for the given Port.
    286  *
    287  * \param [in] unit Unit Number.
    288  * \param [in] gport Gport id.
    289  * \param [out] deadlock_status Deatlock status for the given port.
    290  *
    291  * \retval SHR_E_NONE No errors.
    292  * \retval !SHR_E_NONE Failure.
    293  */
    294 typedef int (*pfc_deadlock_queue_status_get_f)(
    295     int unit,
    296     bcm_gport_t gport,
    297     uint8_t *deadlock_status);
    298 
    299 /*!
    300  * \brief Register pfc deadlock recovery callback in PFC deadlock feature.
    301  *
    302  * \param [in] unit Unit Number.
    303  * \param [in] callback callback function.
    304  * \param [in] userdata user data.
    305  *
    306  * \retval SHR_E_NONE No errors.
    307  * \retval !SHR_E_NONE Failure.
    308  */
    309 typedef int (*pfc_deadlock_recovery_event_register_f)(
    310     int unit,
    311     bcm_cosq_pfc_deadlock_recovery_event_cb_t callback,
    312     void *userdata);
    313 
    314 /*!
    315  * \brief Unregister pfc deadlock recovery callback in PFC deadlock feature.
    316  *
    317  * \param [in] unit Unit Number.
    318  * \param [in] callback callback function.
    319  * \param [in] userdata user data.
    320  *
    321  * \retval SHR_E_NONE No errors.
    322  * \retval !SHR_E_NONE Failure.
    323  */
    324 typedef int (*pfc_deadlock_recovery_event_unregister_f)(
    325     int unit,
    326     bcm_cosq_pfc_deadlock_recovery_event_cb_t callback,
    327     void *userdata);
    328 
    329 /*!
    330  * \brief PFC driver structure.
    331  */
    332 typedef struct mbcm_ltsw_pfc_drv_s {
    333 
    334     /*! Get an entire PFC class (RX) profile */
    335     pfc_class_config_profile_get_f pfc_class_config_profile_get;
    336 
    337     /*! Set an entire PFC class (RX) profile */
    338     pfc_class_config_profile_set_f pfc_class_config_profile_set;
    339 
    340     /*! Get a PFC-tx priority to PG mapping profile */
    341     pfc_priority_mapping_profile_get_f pfc_priority_mapping_profile_get;
    342 
    343     /*! Set a PFC-tx priority to PG mapping profile */
    344     pfc_priority_mapping_profile_set_f pfc_priority_mapping_profile_set;
    345 
    346     /*! Get number of optimized PFC groups on a port. */
    347     pfc_group_num_get_f pfc_group_num_get;
    348 
    349     /*! Initialize the pfc module. */
    350     pfc_init_f pfc_init;
    351 
    352     /*! Detach the pfc module. */
    353     pfc_detach_f pfc_detach;
    354 
    355     /*! Enable/diable PFC rx. */
    356     pfc_rx_config_set_f pfc_rx_config_set;
    357 
    358     /*! Enable/diable PFC tx. */
    359     pfc_tx_config_set_f pfc_tx_config_set;
    360 
    361     /*! enable port pg pfc. */
    362     pfc_port_pg_pfc_set_f pfc_port_pg_pfc_set;
    363 
    364     /*! Get per port pg pfc enable state. */
    365     pfc_port_pg_pfc_get_f pfc_port_pg_pfc_get;
    366 
    367     /*! Set the PFC-related profile ID for a given port. */
    368     pfc_config_profile_id_set_f pfc_config_profile_id_set;
    369 
    370     /*! Set Recovery action to be performed in PFC deadlock recovery state. */
    371     pfc_deadlock_recovery_action_set_f pfc_deadlock_recovery_action_set;
    372 
    373     /*! Get Recovery action to be performed in PFC deadlock recovery state. */
    374     pfc_deadlock_recovery_action_get_f pfc_deadlock_recovery_action_get;
    375 
    376     /*! Get config for the given (PFC priority, port) for the PFC Deadlock feature. */
    377     pfc_deadlock_control_get_f pfc_deadlock_control_get;
    378 
    379     /*! Set config for the given (PFC priority, port) for the PFC Deadlock feature. */
    380     pfc_deadlock_control_set_f pfc_deadlock_control_set;
    381 
    382     /*! Get bitmap of Enabled(Admin) and Current Deadlock ports status for a given priority in PFC deadlock feature. */
    383     pfc_deadlock_info_get_f pfc_deadlock_info_get;
    384 
    385     /*! Get the current Deadlock status for the given Port. */
    386     pfc_deadlock_queue_status_get_f pfc_deadlock_queue_status_get;
    387 
    388     /*! Register pfc deadlock recovery callback in PFC deadlock feature. */
    389     pfc_deadlock_recovery_event_register_f pfc_deadlock_recovery_event_register;
    390 
    391     /*! Unregister pfc deadlock recovery callback in PFC deadlock feature. */
    392     pfc_deadlock_recovery_event_unregister_f pfc_deadlock_recovery_event_unregister;
    393 
    394 } mbcm_ltsw_pfc_drv_t;
    395 
    396 /*!
    397  * \brief Set the PFC driver of the device.
    398  *
    399  * \param [in] unit Unit Number.
    400  * \param [in] drv Pfc driver to set.
    401  *
    402  * \retval SHR_E_NONE No errors.
    403  * \retval !SHR_E_NONE Failure.
    404  */
    405 extern int
    406 mbcm_ltsw_pfc_drv_set(
    407     int unit,
    408     mbcm_ltsw_pfc_drv_t *drv);
    409 
    410 /*!
    411  * \brief Get an entire PFC class (RX) profile
    412  *
    413  * \param [in] unit Unit Number.
    414  * \param [in] profile_id Profile ID.
    415  * \param [in] max_count Maximum number of elements in config array.
    416  * \param [out] config_array PFC class config array.
    417  * \param [out] count actual size of array.
    418  *
    419  * \retval SHR_E_NONE No errors.
    420  * \retval !SHR_E_NONE Failure.
    421  */
    422 extern int
    423 mbcm_ltsw_pfc_class_config_profile_get(
    424     int unit,
    425     int profile_id,
    426     int max_count,
    427     bcm_cosq_pfc_class_map_config_t *config_array,
    428     int *count);
    429 
    430 /*!
    431  * \brief Set an entire PFC class (RX) profile
    432  *
    433  * \param [in] unit Unit Number.
    434  * \param [in] profile_id Profile ID.
    435  * \param [in] count The length of array.
    436  * \param [out] config_array PFC class config array.
    437  *
    438  * \retval SHR_E_NONE No errors.
    439  * \retval !SHR_E_NONE Failure.
    440  */
    441 extern int
    442 mbcm_ltsw_pfc_class_config_profile_set(
    443     int unit,
    444     int profile_id,
    445     int count,
    446     bcm_cosq_pfc_class_map_config_t *config_array);
    447 
    448 /*!
    449  * \brief Get a PFC-tx priority to PG mapping profile
    450  *
    451  * \param [in] unit Unit Number.
    452  * \param [in] profile_id Profile ID.
    453  * \param [in] array_max Maximum number of elements in PG array.
    454  * \param [out] pg_array PG array, indexed by PFC priority.
    455  * \param [out] array_count actual size of array.
    456  *
    457  * \retval SHR_E_NONE No errors.
    458  * \retval !SHR_E_NONE Failure.
    459  */
    460 extern int
    461 mbcm_ltsw_pfc_priority_mapping_profile_get(
    462     int unit,
    463     int profile_id,
    464     int array_max,
    465     int *pg_array,
    466     int *array_count);
    467 
    468 /*!
    469  * \brief Set a PFC-tx priority to PG mapping profile
    470  *
    471  * \param [in] unit Unit Number.
    472  * \param [in] profile_id Profile ID.
    473  * \param [in] array_count actual size of array.
    474  * \param [out] pg_array PG array, indexed by PFC priority.
    475  *
    476  * \retval SHR_E_NONE No errors.
    477  * \retval !SHR_E_NONE Failure.
    478  */
    479 extern int
    480 mbcm_ltsw_pfc_priority_mapping_profile_set(
    481     int unit,
    482     int profile_id,
    483     int array_count,
    484     int *pg_array);
    485 
    486 /*!
    487  * \brief Get number of optimized PFC groups on a port.
    488  *
    489  * \param [in] unit Unit Number.
    490  * \param [in] port logical port number.
    491  * \param [out] arg number of optimized PFC groups supported.
    492  *
    493  * \retval SHR_E_NONE No errors.
    494  * \retval !SHR_E_NONE Failure.
    495  */
    496 extern int
    497 mbcm_ltsw_pfc_group_num_get(
    498     int unit,
    499     int port,
    500     int *arg);
    501 
    502 /*!
    503  * \brief Initialize the pfc module.
    504  *
    505  * \param [in] unit Unit Number.
    506  *
    507  * \retval SHR_E_NONE No errors.
    508  * \retval !SHR_E_NONE Failure.
    509  */
    510 extern int
    511 mbcm_ltsw_pfc_init(int unit);
    512 
    513 /*!
    514  * \brief Detach the pfc module.
    515  *
    516  * \param [in] unit Unit Number.
    517  *
    518  * \retval SHR_E_NONE No errors.
    519  * \retval !SHR_E_NONE Failure.
    520  */
    521 extern int
    522 mbcm_ltsw_pfc_detach(int unit);
    523 
    524 /*!
    525  * \brief Enable/diable PFC rx.
    526  *
    527  * \param [in] unit Unit Number.
    528  * \param [in] lport Logical port ID.
    529  * \param [in] pfc_enable PFC enable, 0: disable, 1: enable.
    530  *
    531  * \retval SHR_E_NONE No errors.
    532  * \retval !SHR_E_NONE Failure.
    533  */
    534 extern int
    535 mbcm_ltsw_pfc_rx_config_set(
    536     int unit,
    537     int lport,
    538     int pfc_enable);
    539 
    540 /*!
    541  * \brief Enable/diable PFC tx.
    542  *
    543  * \param [in] unit Unit Number.
    544  * \param [in] lport Logical port ID.
    545  * \param [in] pfc_enable PFC enable, 0: disable, 1: enable.
    546  *
    547  * \retval SHR_E_NONE No errors.
    548  * \retval !SHR_E_NONE Failure.
    549  */
    550 extern int
    551 mbcm_ltsw_pfc_tx_config_set(
    552     int unit,
    553     int lport,
    554     int pfc_enable);
    555 
    556 /*!
    557  * \brief enable port pg pfc.
    558  *
    559  * \param [in] unit Unit Number.
    560  * \param [in] port Port ID.
    561  * \param [in] pg priority group id.
    562  * \param [in] pfc_enable pfc enable state.
    563  *
    564  * \retval SHR_E_NONE No errors.
    565  * \retval !SHR_E_NONE Failure.
    566  */
    567 extern int
    568 mbcm_ltsw_pfc_port_pg_pfc_set(
    569     int unit,
    570     bcm_port_t port,
    571     int pg,
    572     int pfc_enable);
    573 
    574 /*!
    575  * \brief Get per port pg pfc enable state.
    576  *
    577  * \param [in] unit Unit Number.
    578  * \param [in] port Port ID.
    579  * \param [in] pg priority group id.
    580  * \param [out] pfc_enable pfc enable state.
    581  *
    582  * \retval SHR_E_NONE No errors.
    583  * \retval !SHR_E_NONE Failure.
    584  */
    585 extern int
    586 mbcm_ltsw_pfc_port_pg_pfc_get(
    587     int unit,
    588     bcm_port_t port,
    589     int pg,
    590     int *pfc_enable);
    591 
    592 /*!
    593  * \brief Set the PFC-related profile ID for a given port.
    594  *
    595  * \param [in] unit Unit Number.
    596  * \param [in] lport Logical port ID.
    597  * \param [in] profile_id profile ID.
    598  *
    599  * \retval SHR_E_NONE No errors.
    600  * \retval !SHR_E_NONE Failure.
    601  */
    602 extern int
    603 mbcm_ltsw_pfc_config_profile_id_set(
    604     int unit,
    605     int lport,
    606     int profile_id);
    607 
    608 /*!
    609  * \brief Set Recovery action to be performed in PFC deadlock recovery state.
    610  *
    611  * \param [in] unit Unit Number.
    612  * \param [in] action 0-Transmit Packets (Default), 1-Drop.
    613  *
    614  * \retval SHR_E_NONE No errors.
    615  * \retval !SHR_E_NONE Failure.
    616  */
    617 extern int
    618 mbcm_ltsw_pfc_deadlock_recovery_action_set(
    619     int unit,
    620     int action);
    621 
    622 /*!
    623  * \brief Get Recovery action to be performed in PFC deadlock recovery state.
    624  *
    625  * \param [in] unit Unit Number.
    626  * \param [out] action 0-Transmit Packets (Default), 1-Drop.
    627  *
    628  * \retval SHR_E_NONE No errors.
    629  * \retval !SHR_E_NONE Failure.
    630  */
    631 extern int
    632 mbcm_ltsw_pfc_deadlock_recovery_action_get(
    633     int unit,
    634     int *action);
    635 
    636 /*!
    637  * \brief Get config for the given (PFC priority, port) for the PFC Deadlock feature.
    638  *
    639  * \param [in] unit Unit Number.
    640  * \param [in] port Port ID.
    641  * \param [in] pfc_priority PFC Priority.
    642  * \param [in] type PFC deadlock control type.
    643  * \param [out] arg pointer to value.
    644  *
    645  * \retval SHR_E_NONE No errors.
    646  * \retval !SHR_E_NONE Failure.
    647  */
    648 extern int
    649 mbcm_ltsw_pfc_deadlock_control_get(
    650     int unit,
    651     bcm_port_t port,
    652     int pfc_priority,
    653     bcm_cosq_pfc_deadlock_control_t type,
    654     int *arg);
    655 
    656 /*!
    657  * \brief Set config for the given (PFC priority, port) for the PFC Deadlock feature.
    658  *
    659  * \param [in] unit Unit Number.
    660  * \param [in] port Port ID.
    661  * \param [in] pfc_priority PFC Priority.
    662  * \param [in] type PFC deadlock control type.
    663  * \param [in] arg value.
    664  *
    665  * \retval SHR_E_NONE No errors.
    666  * \retval !SHR_E_NONE Failure.
    667  */
    668 extern int
    669 mbcm_ltsw_pfc_deadlock_control_set(
    670     int unit,
    671     bcm_port_t port,
    672     int pfc_priority,
    673     bcm_cosq_pfc_deadlock_control_t type,
    674     int arg);
    675 
    676 /*!
    677  * \brief Get bitmap of Enabled(Admin) and Current Deadlock ports status for a given priority in PFC deadlock feature.
    678  *
    679  * \param [in] unit Unit Number.
    680  * \param [in] pfc_priority PFC Priority.
    681  * \param [out] pfc_deadlock_info Info for a given priority.
    682  *
    683  * \retval SHR_E_NONE No errors.
    684  * \retval !SHR_E_NONE Failure.
    685  */
    686 extern int
    687 mbcm_ltsw_pfc_deadlock_info_get(
    688     int unit,
    689     int pfc_priority,
    690     bcm_cosq_pfc_deadlock_info_t *pfc_deadlock_info);
    691 
    692 /*!
    693  * \brief Get the current Deadlock status for the given Port.
    694  *
    695  * \param [in] unit Unit Number.
    696  * \param [in] gport Gport id.
    697  * \param [out] deadlock_status Deatlock status for the given port.
    698  *
    699  * \retval SHR_E_NONE No errors.
    700  * \retval !SHR_E_NONE Failure.
    701  */
    702 extern int
    703 mbcm_ltsw_pfc_deadlock_queue_status_get(
    704     int unit,
    705     bcm_gport_t gport,
    706     uint8_t *deadlock_status);
    707 
    708 /*!
    709  * \brief Register pfc deadlock recovery callback in PFC deadlock feature.
    710  *
    711  * \param [in] unit Unit Number.
    712  * \param [in] callback callback function.
    713  * \param [in] userdata user data.
    714  *
    715  * \retval SHR_E_NONE No errors.
    716  * \retval !SHR_E_NONE Failure.
    717  */
    718 extern int
    719 mbcm_ltsw_pfc_deadlock_recovery_event_register(
    720     int unit,
    721     bcm_cosq_pfc_deadlock_recovery_event_cb_t callback,
    722     void *userdata);
    723 
    724 /*!
    725  * \brief Unregister pfc deadlock recovery callback in PFC deadlock feature.
    726  *
    727  * \param [in] unit Unit Number.
    728  * \param [in] callback callback function.
    729  * \param [in] userdata user data.
    730  *
    731  * \retval SHR_E_NONE No errors.
    732  * \retval !SHR_E_NONE Failure.
    733  */
    734 extern int
    735 mbcm_ltsw_pfc_deadlock_recovery_event_unregister(
    736     int unit,
    737     bcm_cosq_pfc_deadlock_recovery_event_cb_t callback,
    738     void *userdata);
    739 
    740 #endif /* BCMINT_LTSW_MBCM_PFC_H */