Merge branch 'develop' into develop-nr
This commit is contained in:
@@ -0,0 +1,163 @@
|
||||
package protocol;
|
||||
|
||||
|
||||
message fsp_header {
|
||||
optional uint32 version = 1;
|
||||
optional uint32 type = 2;
|
||||
optional uint32 xid = 4;
|
||||
}
|
||||
|
||||
enum fsp_type {
|
||||
// Discovery and maintenance messages
|
||||
FSPT_HELLO = 0;
|
||||
FSPT_ECHO_REQUEST = 1;
|
||||
FSPT_ECHO_REPLY = 2;
|
||||
FSPT_RLC_DATA_REQ = 3;
|
||||
FSPT_RLC_DATA_REQ_ACK = 4;
|
||||
FSPT_PDCP_DATA_IND = 5;
|
||||
FSPT_PDCP_DATA_IND_ACK = 6;
|
||||
}
|
||||
|
||||
enum f1u_type {
|
||||
// Discovery and maintenance messages
|
||||
F1U_DL_DATA = 0;
|
||||
F1U_DL_STATUS = 1;
|
||||
}
|
||||
|
||||
|
||||
message f1u_message{
|
||||
optional flexsplit_direction msg_dir = 100;
|
||||
oneof msg{
|
||||
dl_user_data dl_data = 1;
|
||||
dl_data_delivery_status dl_status = 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
message flexsplit_message {
|
||||
optional flexsplit_direction msg_dir = 100;
|
||||
oneof msg {
|
||||
fsp_hello hello_msg = 1;
|
||||
fsp_echo_request echo_request_msg = 2;
|
||||
fsp_echo_reply echo_reply_msg = 3;
|
||||
fspRlcDataReq data_req_msg = 4;
|
||||
fspRlcDataReqAck data_req_ack = 5;
|
||||
fspPdcpDataInd data_ind_msg = 6;
|
||||
fspPdcpDataIndAck data_ind_ack = 7;
|
||||
}
|
||||
}
|
||||
|
||||
enum flexsplit_direction {
|
||||
//option allow_alias = true;
|
||||
NOT_SET = 0;
|
||||
INITIATING_MESSAGE = 1;
|
||||
SUCCESSFUL_OUTCOME=2;
|
||||
UNSUCCESSFUL_OUTCOME=3;
|
||||
}
|
||||
|
||||
enum flexsplit_err {
|
||||
// message errors
|
||||
NO_ERR = 0;
|
||||
MSG_DEQUEUING = -1;
|
||||
MSG_ENQUEUING = -2;
|
||||
MSG_DECODING = -3;
|
||||
MSG_ENCODING = -4;
|
||||
MSG_BUILD = -5;
|
||||
MSG_NOT_SUPPORTED = -6;
|
||||
MSG_NOT_HANDLED = -7;
|
||||
MSG_NOT_VALIDATED = -8;
|
||||
MSG_OUT_DATED = -9;
|
||||
|
||||
// other erros
|
||||
UNEXPECTED = -100;
|
||||
}
|
||||
|
||||
message fsp_ctxt {
|
||||
optional uint32 fsp_mod_id = 1;
|
||||
optional bool fsp_enb_flag = 2;
|
||||
optional uint32 fsp_instance = 3;
|
||||
optional uint32 fsp_rnti = 4;
|
||||
optional uint32 fsp_frame = 5;
|
||||
optional uint32 fsp_subframe = 6;
|
||||
optional uint32 fsp_eNB_index = 7;
|
||||
|
||||
}
|
||||
|
||||
message fspRlcPdu {
|
||||
optional bytes fsp_pdu_data = 1; // Maximum PDU to be transfered
|
||||
}
|
||||
|
||||
message fspRlcData {
|
||||
optional fsp_ctxt fsp_ctxt = 1;
|
||||
optional bool fsp_srb_flag = 2;
|
||||
optional bool fsp_mbms_flag = 3;
|
||||
optional uint32 fsp_rb_id = 4;
|
||||
optional uint32 fsp_muip = 5;
|
||||
optional uint32 fsp_confirm = 6;
|
||||
optional int32 fsp_sdu_buffer_size = 7;
|
||||
optional fspRlcPdu fsp_pdu = 8;
|
||||
}
|
||||
|
||||
//
|
||||
// Maintenance and discovery messages
|
||||
//
|
||||
|
||||
message fsp_hello {
|
||||
optional fsp_header header = 1;
|
||||
}
|
||||
|
||||
message fsp_echo_request {
|
||||
optional fsp_header header = 1;
|
||||
// extensions 100 to 199;
|
||||
}
|
||||
|
||||
|
||||
message fsp_echo_reply {
|
||||
optional fsp_header header = 1;
|
||||
// extensions 100 to 199;
|
||||
}
|
||||
|
||||
|
||||
message fspRlcDataReq {
|
||||
optional fsp_header header = 1;
|
||||
optional uint32 eNB_id = 2;
|
||||
optional fspRlcData pdcp_data = 3;
|
||||
}
|
||||
|
||||
message fspRlcDataReqAck {
|
||||
optional fsp_header header = 1;
|
||||
optional uint32 result = 2;
|
||||
}
|
||||
|
||||
message fspPdcpDataInd {
|
||||
optional fsp_header header = 1;
|
||||
optional uint32 eNB_id = 2;
|
||||
optional fspRlcData rlc_data = 3;
|
||||
}
|
||||
|
||||
message fspPdcpDataIndAck {
|
||||
optional fsp_header header = 1;
|
||||
optional uint32 result = 2;
|
||||
}
|
||||
|
||||
message dl_data_header {
|
||||
required uint32 fields = 1;
|
||||
}
|
||||
|
||||
message dl_user_data {
|
||||
required dl_data_header header = 1;
|
||||
required bytes pdu = 2;
|
||||
required uint32 frame = 3;
|
||||
required uint32 subframe = 4;
|
||||
required uint32 rnti = 5;
|
||||
}
|
||||
|
||||
|
||||
message dl_data_delivery_status {
|
||||
required dl_data_header header = 1;
|
||||
required bytes pdu = 2;
|
||||
required uint32 frame = 3;
|
||||
required uint32 subframe = 4;
|
||||
required uint32 rnti = 5;
|
||||
}
|
||||
@@ -19,93 +19,77 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
#if defined(ENABLE_ITTI)
|
||||
# include "intertask_interface.h"
|
||||
# include "create_tasks.h"
|
||||
# include "common/utils/LOG/log.h"
|
||||
# include "targets/RT/USER/lte-softmodem.h"
|
||||
# include "common/ran_context.h"
|
||||
|
||||
# ifdef OPENAIR2
|
||||
# if defined(ENABLE_USE_MME)
|
||||
# include "sctp_eNB_task.h"
|
||||
# include "x2ap_eNB.h"
|
||||
# include "s1ap_eNB.h"
|
||||
# include "nas_ue_task.h"
|
||||
# include "udp_eNB_task.h"
|
||||
# include "gtpv1u_eNB_task.h"
|
||||
# else
|
||||
# define EPC_MODE_ENABLED 0
|
||||
# endif
|
||||
# if ENABLE_RAL
|
||||
# include "lteRALue.h"
|
||||
# include "lteRALenb.h"
|
||||
# endif
|
||||
# include "RRC/LTE/rrc_defs.h"
|
||||
# endif
|
||||
#ifdef OPENAIR2
|
||||
#include "sctp_eNB_task.h"
|
||||
#include "x2ap_eNB.h"
|
||||
#include "s1ap_eNB.h"
|
||||
#include "udp_eNB_task.h"
|
||||
#include "gtpv1u_eNB_task.h"
|
||||
#if ENABLE_RAL
|
||||
#include "lteRALue.h"
|
||||
#include "lteRALenb.h"
|
||||
#endif
|
||||
#include "RRC/LTE/rrc_defs.h"
|
||||
#endif
|
||||
# include "f1ap_cu_task.h"
|
||||
# include "f1ap_du_task.h"
|
||||
# include "enb_app.h"
|
||||
|
||||
extern int emulate_rf;
|
||||
extern RAN_CONTEXT_t RC;
|
||||
|
||||
int create_tasks(uint32_t enb_nb)
|
||||
{
|
||||
int create_tasks(uint32_t enb_nb) {
|
||||
LOG_D(ENB_APP, "%s(enb_nb:%d\n", __FUNCTION__, enb_nb);
|
||||
ngran_node_t type = RC.rrc[0]->node_type;
|
||||
int rc;
|
||||
|
||||
itti_wait_ready(1);
|
||||
if (itti_create_task (TASK_L2L1, l2l1_task, NULL) < 0) {
|
||||
LOG_E(PDCP, "Create task for L2L1 failed\n");
|
||||
return -1;
|
||||
}
|
||||
if (enb_nb == 0) return 0;
|
||||
|
||||
LOG_I(ENB_APP, "Creating ENB_APP eNB Task\n");
|
||||
rc = itti_create_task (TASK_ENB_APP, eNB_app_task, NULL);
|
||||
AssertFatal(rc >= 0, "Create task for eNB APP failed\n");
|
||||
|
||||
LOG_I(RRC,"Creating RRC eNB Task\n");
|
||||
rc = itti_create_task (TASK_RRC_ENB, rrc_enb_task, NULL);
|
||||
AssertFatal(rc >= 0, "Create task for RRC eNB failed\n");
|
||||
|
||||
if (enb_nb > 0) {
|
||||
/* Last task to create, others task must be ready before its start */
|
||||
if (itti_create_task (TASK_ENB_APP, eNB_app_task, NULL) < 0) {
|
||||
LOG_E(ENB_APP, "Create task for eNB APP failed\n");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
# if defined(ENABLE_USE_MME)
|
||||
if (EPC_MODE_ENABLED) {
|
||||
if (enb_nb > 0) {
|
||||
if (itti_create_task (TASK_X2AP, x2ap_task, NULL) < 0) {
|
||||
LOG_E(X2AP, "Create task for X2AP failed\n");
|
||||
return -1;
|
||||
}
|
||||
rc = itti_create_task(TASK_SCTP, sctp_eNB_task, NULL);
|
||||
AssertFatal(rc >= 0, "Create task for SCTP failed\n");
|
||||
}
|
||||
|
||||
if (itti_create_task (TASK_SCTP, sctp_eNB_task, NULL) < 0) {
|
||||
LOG_E(SCTP, "Create task for SCTP failed\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (itti_create_task (TASK_S1AP, s1ap_eNB_task, NULL) < 0) {
|
||||
LOG_E(S1AP, "Create task for S1AP failed\n");
|
||||
return -1;
|
||||
}
|
||||
if(!emulate_rf){
|
||||
if (itti_create_task (TASK_UDP, udp_eNB_task, NULL) < 0) {
|
||||
LOG_E(UDP_, "Create task for UDP failed\n");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (itti_create_task (TASK_GTPV1_U, >pv1u_eNB_task, NULL) < 0) {
|
||||
LOG_E(GTPU, "Create task for GTPV1U failed\n");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
} /* if (EPC_MODE_ENABLED) */
|
||||
#endif
|
||||
if (enb_nb > 0) {
|
||||
LOG_I(RRC,"Creating RRC eNB Task\n");
|
||||
|
||||
if (itti_create_task (TASK_RRC_ENB, rrc_enb_task, NULL) < 0) {
|
||||
LOG_E(RRC, "Create task for RRC eNB failed\n");
|
||||
return -1;
|
||||
}
|
||||
if (EPC_MODE_ENABLED && !NODE_IS_DU(type)) {
|
||||
rc = itti_create_task(TASK_S1AP, s1ap_eNB_task, NULL);
|
||||
AssertFatal(rc >= 0, "Create task for S1AP failed\n");
|
||||
if (!(get_softmodem_params()->emulate_rf)){
|
||||
rc = itti_create_task(TASK_UDP, udp_eNB_task, NULL);
|
||||
AssertFatal(rc >= 0, "Create task for UDP failed\n");
|
||||
}
|
||||
rc = itti_create_task(TASK_GTPV1_U, gtpv1u_eNB_task, NULL);
|
||||
AssertFatal(rc >= 0, "Create task for GTPV1U failed\n");
|
||||
if (is_x2ap_enabled()) {
|
||||
rc = itti_create_task(TASK_X2AP, x2ap_task, NULL);
|
||||
AssertFatal(rc >= 0, "Create task for X2AP failed\n");
|
||||
} else {
|
||||
LOG_I(X2AP, "X2AP is disabled.\n");
|
||||
}
|
||||
}
|
||||
|
||||
if (NODE_IS_CU(type)) {
|
||||
rc = itti_create_task(TASK_CU_F1, F1AP_CU_task, NULL);
|
||||
AssertFatal(rc >= 0, "Create task for CU F1AP failed\n");
|
||||
}
|
||||
|
||||
itti_wait_ready(0);
|
||||
if (NODE_IS_DU(type)) {
|
||||
rc = itti_create_task(TASK_DU_F1, F1AP_DU_task, NULL);
|
||||
AssertFatal(rc >= 0, "Create task for DU F1AP failed\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -19,62 +19,55 @@
|
||||
* contact@openairinterface.org
|
||||
*/
|
||||
|
||||
#if defined(ENABLE_ITTI)
|
||||
# include "intertask_interface.h"
|
||||
# include "create_tasks.h"
|
||||
# include "common/utils/LOG/log.h"
|
||||
|
||||
# ifdef OPENAIR2
|
||||
# if defined(ENABLE_USE_MME)
|
||||
# include "sctp_eNB_task.h"
|
||||
# include "s1ap_eNB.h"
|
||||
# include "nas_ue_task.h"
|
||||
# include "udp_eNB_task.h"
|
||||
# include "gtpv1u_eNB_task.h"
|
||||
# endif
|
||||
# if ENABLE_RAL
|
||||
# include "lteRALue.h"
|
||||
# include "lteRALenb.h"
|
||||
# endif
|
||||
# include "RRC/LTE/rrc_defs.h"
|
||||
# endif
|
||||
#ifdef OPENAIR2
|
||||
#include "sctp_eNB_task.h"
|
||||
#include "s1ap_eNB.h"
|
||||
#include "openair3/NAS/UE/nas_ue_task.h"
|
||||
#include "udp_eNB_task.h"
|
||||
#include "gtpv1u_eNB_task.h"
|
||||
#if ENABLE_RAL
|
||||
#include "lteRALue.h"
|
||||
#include "lteRALenb.h"
|
||||
#endif
|
||||
#include "RRC/LTE/rrc_defs.h"
|
||||
#endif
|
||||
# include "enb_app.h"
|
||||
|
||||
int create_tasks_ue(uint32_t ue_nb)
|
||||
{
|
||||
int create_tasks_ue(uint32_t ue_nb) {
|
||||
LOG_D(ENB_APP, "%s(ue_nb:%d)\n", __FUNCTION__, ue_nb);
|
||||
|
||||
itti_wait_ready(1);
|
||||
if (itti_create_task (TASK_L2L1, l2l1_task, NULL) < 0) {
|
||||
LOG_E(PDCP, "Create task for L2L1 failed\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
# if defined(ENABLE_USE_MME)
|
||||
if (EPC_MODE_ENABLED) {
|
||||
# if defined(NAS_BUILT_IN_UE)
|
||||
if (ue_nb > 0) {
|
||||
nas_user_container_t *users = calloc(1, sizeof(*users));
|
||||
if (users == NULL) abort();
|
||||
users->count = ue_nb;
|
||||
if (itti_create_task (TASK_NAS_UE, nas_ue_task, users) < 0) {
|
||||
LOG_E(NAS, "Create task for NAS UE failed\n");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
# endif
|
||||
# endif
|
||||
|
||||
if (ue_nb > 0) {
|
||||
if (itti_create_task (TASK_RRC_UE, rrc_ue_task, NULL) < 0) {
|
||||
LOG_E(RRC, "Create task for RRC UE failed\n");
|
||||
nas_user_container_t *users = calloc(1, sizeof(*users));
|
||||
|
||||
if (users == NULL) abort();
|
||||
|
||||
users->count = ue_nb;
|
||||
|
||||
if (itti_create_task (TASK_NAS_UE, nas_ue_task, users) < 0) {
|
||||
LOG_E(NAS, "Create task for NAS UE failed\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# endif
|
||||
} /* EPC_MODE_ENABLED */
|
||||
|
||||
if (ue_nb > 0) {
|
||||
if (itti_create_task (TASK_RRC_UE, rrc_ue_task, NULL) < 0) {
|
||||
LOG_E(RRC, "Create task for RRC UE failed\n");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
itti_wait_ready(0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -7,22 +7,34 @@
|
||||
# define NUMBER_OF_RU_MAX 2
|
||||
# define NUMBER_OF_NR_RU_MAX 2
|
||||
# ifndef PHYSIM
|
||||
# ifndef UE_EXPANSION
|
||||
# define NUMBER_OF_UE_MAX 16
|
||||
# define NUMBER_OF_NR_UE_MAX 16
|
||||
# define NUMBER_OF_CONNECTED_eNB_MAX 3
|
||||
# define NUMBER_OF_CONNECTED_gNB_MAX 3
|
||||
# ifndef UE_EXPANSION
|
||||
// TODO:L2 FAPI simulator.
|
||||
// UESIM_EXPANSION is used to be same value of NUMBER_OF_UE_MAX
|
||||
// in eNB and UE.
|
||||
// now , if we use --mu option in UE, compiling error will occur.
|
||||
// This problem will be fixed in the future.
|
||||
# ifndef UESIM_EXPANSION
|
||||
# define NUMBER_OF_UE_MAX 16
|
||||
# define NUMBER_OF_NR_UE_MAX 16
|
||||
# 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 16
|
||||
# define NUMBER_OF_CONNECTED_eNB_MAX 1
|
||||
# define NUMBER_OF_CONNECTED_gNB_MAX 3
|
||||
# endif
|
||||
# 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 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
|
||||
# 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
|
||||
@@ -30,59 +42,71 @@
|
||||
# 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
|
||||
/* if the value of MAX_MOBILES_PER_ENB and NUMBER_OF_UE_MAX is different,
|
||||
eNB process will exit because unexpected access happens.
|
||||
Now some parts are using NUMBER_OF_UE_MAX
|
||||
and the other are using MAX_MOBILES_PER_ENB in for-loop.
|
||||
*/
|
||||
# ifndef UESIM_EXPANSION
|
||||
# define NUMBER_OF_UE_MAX 16
|
||||
# define NUMBER_OF_NR_UE_MAX 20
|
||||
# define NUMBER_OF_CONNECTED_eNB_MAX 3
|
||||
# define NUMBER_OF_CONNECTED_gNB_MAX 3
|
||||
# define NUMBER_OF_CONNECTED_gNB_MAX 3
|
||||
# else
|
||||
# define NUMBER_OF_UE_MAX 256
|
||||
# define NUMBER_OF_NR_UE_MAX 20
|
||||
# define NUMBER_OF_CONNECTED_eNB_MAX 1
|
||||
# define NUMBER_OF_CONNECTED_gNB_MAX 3
|
||||
# endif
|
||||
# else
|
||||
# define NUMBER_OF_UE_MAX 256
|
||||
# define NUMBER_OF_NR_UE_MAX 256
|
||||
# define NUMBER_OF_NR_UE_MAX 256
|
||||
# define NUMBER_OF_CONNECTED_eNB_MAX 1
|
||||
# define NUMBER_OF_CONNECTED_gNB_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_eNB_MAX
|
||||
# undef NUMBER_OF_gNB_MAX
|
||||
|
||||
# undef NUMBER_OF_UE_MAX
|
||||
# undef NUMBER_OF_NR_UE_MAX
|
||||
# undef NUMBER_OF_UE_MAX
|
||||
# undef NUMBER_OF_NR_UE_MAX
|
||||
|
||||
# undef NUMBER_OF_RU_MAX
|
||||
# undef NUMBER_OF_NR_RU_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_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_UE_MAX 3
|
||||
# define NUMBER_OF_NR_UE_MAX 3
|
||||
|
||||
# define NUMBER_OF_RU_MAX 3
|
||||
# define NUMBER_OF_NR_RU_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_eNB_MAX
|
||||
# undef NUMBER_OF_gNB_MAX
|
||||
|
||||
# undef NUMBER_OF_UE_MAX
|
||||
# undef NUMBER_OF_NR_UE_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_CONNECTED_eNB_MAX
|
||||
# undef NUMBER_OF_CONNECTED_gNB_MAX
|
||||
|
||||
# undef NUMBER_OF_RU_MAX
|
||||
# undef NUMBER_OF_NR_RU_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_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_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_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
|
||||
# define NUMBER_OF_CONNECTED_eNB_MAX 1 // to save some memory
|
||||
# define NUMBER_OF_CONNECTED_gNB_MAX 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user