#ifndef OPENAIRINTERFACE5G_LIMITS_H_
#define OPENAIRINTERFACE5G_LIMITS_H_

#if 1 /*defined(CBMIMO1) || defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_LMSSDR) || defined(OAI_ADRV9371_ZC706)*/
  #define NUMBER_OF_eNB_MAX 1
  #define NUMBER_OF_gNB_MAX 1
  #define NUMBER_OF_RU_MAX 2
  #define NUMBER_OF_NR_RU_MAX 2
  #ifndef PHYSIM
    #ifndef UE_EXPANSION
      #define NUMBER_OF_UE_MAX 4
      #define NUMBER_OF_NR_UE_MAX 4
      #define NUMBER_OF_CONNECTED_eNB_MAX 1
      #define NUMBER_OF_CONNECTED_gNB_MAX 1
    #else
      #define NUMBER_OF_UE_MAX 256
      #define NUMBER_OF_NR_UE_MAX 256
      #define NUMBER_OF_CONNECTED_eNB_MAX 1
      #define NUMBER_OF_CONNECTED_gNB_MAX 1
    #endif
  #else
    #define NUMBER_OF_UE_MAX 1
    #define NUMBER_OF_NR_UE_MAX 1
    #define NUMBER_OF_CONNECTED_eNB_MAX 1
    #define NUMBER_OF_CONNECTED_gNB_MAX 1
  #endif
#else
  #define NUMBER_OF_eNB_MAX 7
  #define NUMBER_OF_gNB_MAX 7
  #define NUMBER_OF_RU_MAX 32
  #define NUMBER_OF_NR_RU_MAX 32
  #ifndef UE_EXPANSION
    #define NUMBER_OF_UE_MAX 20
    #define NUMBER_OF_NR_UE_MAX 20
    #define NUMBER_OF_CONNECTED_eNB_MAX 3
    #define NUMBER_OF_CONNECTED_gNB_MAX 3
  #else
    #define NUMBER_OF_UE_MAX 256
    #define NUMBER_OF_NR_UE_MAX 256
    #define NUMBER_OF_CONNECTED_eNB_MAX 1
    #define NUMBER_OF_CONNECTED_gNB_MAX 1
  #endif
  #if defined(STANDALONE) && STANDALONE==1
    #undef  NUMBER_OF_eNB_MAX
    #undef  NUMBER_OF_gNB_MAX

    #undef  NUMBER_OF_UE_MAX
    #undef  NUMBER_OF_NR_UE_MAX

    #undef  NUMBER_OF_RU_MAX
    #undef  NUMBER_OF_NR_RU_MAX

    #define NUMBER_OF_eNB_MAX 3
    #define NUMBER_OF_gNB_MAX 3

    #define NUMBER_OF_UE_MAX 3
    #define NUMBER_OF_NR_UE_MAX 3

    #define NUMBER_OF_RU_MAX 3
    #define NUMBER_OF_NR_RU_MAX 3
  #endif
  #if defined(LARGE_SCALE) && LARGE_SCALE
    #undef  NUMBER_OF_eNB_MAX
    #undef  NUMBER_OF_gNB_MAX

    #undef  NUMBER_OF_UE_MAX
    #undef  NUMBER_OF_NR_UE_MAX

    #undef  NUMBER_OF_CONNECTED_eNB_MAX
    #undef  NUMBER_OF_CONNECTED_gNB_MAX

    #undef  NUMBER_OF_RU_MAX
    #undef  NUMBER_OF_NR_RU_MAX

    #define NUMBER_OF_eNB_MAX 2
    #define NUMBER_OF_gNB_MAX 2

    #define NUMBER_OF_UE_MAX 120
    #define NUMBER_OF_NR_UE_MAX 120

    #define NUMBER_OF_RU_MAX 16
    #define NUMBER_OF_NR_RU_MAX 16

    #define NUMBER_OF_CONNECTED_eNB_MAX 1 // to save some memory
    #define NUMBER_OF_CONNECTED_gNB_MAX 1
  #endif
#endif

#endif /* OPENAIRINTERFACE5G_LIMITS_H_ */