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

bier.h (2505B)


      1 /*
      2  * ! \file bcm_int/dnx/multicast/multicast.h Internal DNX VLAN APIs
      3 PIs This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      4 PIs 
      5 PIs Copyright 2007-2020 Broadcom Inc. All rights reserved. 
      6  */
      7 
      8 #ifndef _DNX_BIER_API_INCLUDED__
      9 /*
     10  * { 
     11  */
     12 #define _DNX_BIER_API_INCLUDED__
     13 
     14 #ifndef BCM_DNX_SUPPORT
     15 #error "This file is for use by DNX (JR2) family only!"
     16 #endif
     17 
     18 #include <bcm/multicast.h>
     19 
     20 /*
     21  * MACROs
     22  * {
     23  */
     24 
     25 /*
     26  * }
     27  */
     28 
     29 
     30 typedef struct bcm_multicast_bier_config_e
     31 {
     32     /*
     33      * number of BFR entries in the system
     34      */
     35     uint32 nof_bfr_entries;
     36 } bcm_multicast_bier_config_t;
     37 
     38 /**
     39  * \brief - verify that multicast group at the correct range used by bcm_multicast_create API
     40  *
     41  * \par DIRECT_INPUT:
     42  *   \param [in] unit -  Unit-ID
     43  *   \param [in] flags - specifies whether group id is ingress/egress
     44  *   \param [in] group - multicast group id specifies the set
     45  *
     46  * \par INDIRECT INPUT:
     47  *   * None
     48  * \par DIRECT OUTPUT:
     49  *   int
     50  * \par INDIRECT OUTPUT
     51  *   * None
     52  * \remark
     53  * \see
     54  *   * None
     55  */
     56 shr_error_e dnx_multicast_bfr_id_verify(
     57     int unit,
     58     uint32 flags,
     59     bcm_multicast_t group);
     60 
     61 /**
     62  * \brief - creates multicast BIER group.
     63  *
     64  * \par DIRECT_INPUT:
     65  *   \param [in] unit -  Unit-ID
     66  *   \param [in] flags - specifies whether group id is ingress/egress
     67  *   \param [in] group_id - multicast group id specifies the set
     68  *
     69  * \par INDIRECT INPUT:
     70  *   * None
     71  * \par DIRECT OUTPUT:
     72  *   int
     73  * \par INDIRECT OUTPUT
     74  *   * None
     75  * \remark
     76  *
     77  * \see
     78  *   * None
     79  */
     80 shr_error_e dnx_multicast_bier_create(
     81     int unit,
     82     uint32 flags,
     83     bcm_multicast_t group_id);
     84 
     85 /**
     86  * \brief - destroys multicast group for BIER.
     87  *
     88  * \par DIRECT_INPUT:
     89  *   \param [in] unit -  Unit-ID
     90  *   \param [in] group_id - multicast group id specifies the set
     91  *
     92  * \par INDIRECT INPUT:
     93  *   * None
     94  * \par DIRECT OUTPUT:
     95  *   int
     96  * \par INDIRECT OUTPUT
     97  *   * None
     98  * \remark
     99  *
    100  * \see
    101  *   * None
    102  */
    103 shr_error_e dnx_multicast_bier_destroy(
    104     int unit,
    105     bcm_multicast_t group_id);
    106 
    107 /**
    108  * \brief - returns the number of MCDB entries occupied by BIER.
    109  *
    110  * \param [in] unit -  Unit-ID
    111  *
    112  * \remark
    113  *
    114  * \see
    115  *   * None
    116  */
    117 int dnx_bier_mcdb_size_get(
    118     int unit);
    119 
    120 /**
    121  * \brief - init BIER module with BFR parameters.
    122  *
    123  * \param [in] unit -  Unit-ID
    124  *
    125  * \remark
    126  *
    127  * \see
    128  *   * None
    129  */
    130 shr_error_e dnx_bier_init(
    131     int unit);
    132 
    133 /*
    134  * } 
    135  */
    136 #endif/*_DNX_BIER_API_INCLUDED__*/