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

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