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