lb.h (1720B)
1 /* 2 * 3 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 4 * 5 * Copyright 2007-2020 Broadcom Inc. All rights reserved. 6 * 7 * File: lb.h 8 * Purpose: LB internal definitions to the BCM library. 9 */ 10 11 #ifndef _BCM_INT_DPP_LB_H_ 12 #define _BCM_INT_DPP_LB_H_ 13 14 #include <soc/dpp/TMC/tmc_api_link_bonding.h> 15 16 #define BCM_LB_PORT_INVALID -1 17 #define BCM_LB_LBG_INVALID 0xFFFFFFFF 18 19 #define BCM_LB_VALUE_MAX_CHECK(val, max, para_name) {\ 20 if ((val) > (max)) { \ 21 BCMDNX_ERR_EXIT_MSG(SOC_E_PARAM, \ 22 (_BSL_SOCDNX_MSG("Fail(%s) parameter(%s=%d) should be less than %d\n"), \ 23 soc_errmsg(BCM_E_PARAM), para_name, val, (max+1)));\ 24 } \ 25 } 26 27 #define BCM_LB_VALUE_CHECK(val, min, max, para_name) \ 28 if ((val) < (min) || (val) > (max)) { \ 29 BCMDNX_ERR_EXIT_MSG(SOC_E_PARAM, \ 30 (_BSL_SOCDNX_MSG("Fail(%s) parameter(%s=%d) should be in range of [%d, %d]\n"), \ 31 soc_errmsg(BCM_E_PARAM), para_name, val, min, max));\ 32 } 33 34 #define LB_INFO_ACCESS sw_state_access[unit].dpp.bcm.linkbonding 35 36 typedef struct bcm_dpp_lb_info_s { 37 SHR_BITDCL *lbg_valid_bmp; 38 int modem_to_ports[SOC_TMC_LB_NOF_MODEM]; 39 uint32 port_to_lbg[SOC_MAX_NUM_PORTS]; 40 uint32 modem_to_ing_lbg[SOC_TMC_LB_NOF_MODEM]; 41 uint32 modem_to_egr_lbg[SOC_TMC_LB_NOF_MODEM]; 42 } bcm_dpp_lb_info_t; 43 44 /* sw_state_access[unit].dpp.bcm.lb.cosq_res_info.queue_unicast_total_dynamic_res.bit_set */ 45 46 extern int bcm_petra_lb_init(int unit); 47 extern int bcm_petra_lb_detach(int unit); 48 49 #endif /* _BCM_INT_DPP_LB_H_ */ 50