Simplified use of nb_nr_inst
* nb_nr_inst represents the number of gNB instances and the number of RAN contexts * it used also to count the number of RRC instances in the node * it is set from config file in NRRCConfig, therefore redundant checks after this function have been removed * redundant global variable NB_gNB_INST, set after nb_nr_inst, was removed
This commit is contained in:
@@ -400,10 +400,7 @@ void term_gNB_Tpool(int inst) {
|
|||||||
void init_eNB_afterRU(void) {
|
void init_eNB_afterRU(void) {
|
||||||
int inst,ru_id,i,aa;
|
int inst,ru_id,i,aa;
|
||||||
PHY_VARS_gNB *gNB;
|
PHY_VARS_gNB *gNB;
|
||||||
LOG_D(PHY, "%s() RC.nb_nr_inst:%d\n", __FUNCTION__, RC.nb_nr_inst);
|
|
||||||
|
|
||||||
if(NFAPI_MODE == NFAPI_MODE_PNF)
|
|
||||||
RC.nb_nr_inst = 1;
|
|
||||||
for (inst=0; inst<RC.nb_nr_inst; inst++) {
|
for (inst=0; inst<RC.nb_nr_inst; inst++) {
|
||||||
LOG_D(PHY, "RC.nb_nr_CC[inst:%d]:%p\n", inst, RC.gNB[inst]);
|
LOG_D(PHY, "RC.nb_nr_CC[inst:%d]:%p\n", inst, RC.gNB[inst]);
|
||||||
|
|
||||||
|
|||||||
@@ -103,7 +103,6 @@ unsigned int mmapped_dma=0;
|
|||||||
|
|
||||||
uint64_t downlink_frequency[MAX_NUM_CCs][4];
|
uint64_t downlink_frequency[MAX_NUM_CCs][4];
|
||||||
int32_t uplink_frequency_offset[MAX_NUM_CCs][4];
|
int32_t uplink_frequency_offset[MAX_NUM_CCs][4];
|
||||||
unsigned char NB_gNB_INST = 1;
|
|
||||||
char *uecap_file;
|
char *uecap_file;
|
||||||
|
|
||||||
runmode_t mode = normal_txrx;
|
runmode_t mode = normal_txrx;
|
||||||
@@ -255,18 +254,12 @@ static int create_gNB_tasks(ngran_node_t node_type, configmodule_interface_t *cf
|
|||||||
"Number of gNB is greater than gNB defined in configuration file (%d/%d)!",
|
"Number of gNB is greater than gNB defined in configuration file (%d/%d)!",
|
||||||
gnb_nb, RC.nb_nr_inst);
|
gnb_nb, RC.nb_nr_inst);
|
||||||
|
|
||||||
LOG_D(GNB_APP, "Allocating gNB_RRC_INST for %d instances\n", RC.nb_nr_inst);
|
LOG_D(GNB_APP, "Allocating gNB_RRC_INST\n");
|
||||||
|
RC.nrrrc = calloc(1, sizeof(*RC.nrrrc));
|
||||||
|
RC.nrrrc[0] = calloc(1, sizeof(gNB_RRC_INST));
|
||||||
|
RCconfig_NRRRC(RC.nrrrc[0]);
|
||||||
|
|
||||||
if (RC.nb_nr_inst > 0) {
|
if (!get_softmodem_params()->nsa && !(node_type == ngran_gNB_DU)) {
|
||||||
AssertFatal(RC.nb_nr_inst == 1, "multiple RRC instances are not supported\n");
|
|
||||||
RC.nrrrc = calloc(1, sizeof(*RC.nrrrc));
|
|
||||||
RC.nrrrc[0] = calloc(1,sizeof(gNB_RRC_INST));
|
|
||||||
RCconfig_NRRRC(RC.nrrrc[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (RC.nb_nr_inst > 0 &&
|
|
||||||
!get_softmodem_params()->nsa &&
|
|
||||||
!(node_type == ngran_gNB_DU)) {
|
|
||||||
// we start pdcp in both cuup (for drb) and cucp (for srb)
|
// we start pdcp in both cuup (for drb) and cucp (for srb)
|
||||||
init_pdcp();
|
init_pdcp();
|
||||||
}
|
}
|
||||||
@@ -373,7 +366,6 @@ static void get_options(configmodule_interface_t *cfg)
|
|||||||
memset((void *)&RC,0,sizeof(RC));
|
memset((void *)&RC,0,sizeof(RC));
|
||||||
/* Read RC configuration file */
|
/* Read RC configuration file */
|
||||||
NRRCConfig();
|
NRRCConfig();
|
||||||
NB_gNB_INST = RC.nb_nr_inst;
|
|
||||||
NB_RU = RC.nb_RU;
|
NB_RU = RC.nb_RU;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,8 +54,6 @@
|
|||||||
#include "gnb_config.h"
|
#include "gnb_config.h"
|
||||||
#include "openair2/LAYER2/NR_MAC_gNB/mac_proto.h"
|
#include "openair2/LAYER2/NR_MAC_gNB/mac_proto.h"
|
||||||
|
|
||||||
extern unsigned char NB_gNB_INST;
|
|
||||||
|
|
||||||
extern RAN_CONTEXT_t RC;
|
extern RAN_CONTEXT_t RC;
|
||||||
|
|
||||||
#define GNB_REGISTER_RETRY_DELAY 10
|
#define GNB_REGISTER_RETRY_DELAY 10
|
||||||
|
|||||||
@@ -2136,6 +2136,11 @@ void NRRCConfig(void) {
|
|||||||
|
|
||||||
config_get(config_get_if(), GNBSParams, sizeofArray(GNBSParams), NULL);
|
config_get(config_get_if(), GNBSParams, sizeofArray(GNBSParams), NULL);
|
||||||
RC.nb_nr_inst = GNBSParams[GNB_ACTIVE_GNBS_IDX].numelt;
|
RC.nb_nr_inst = GNBSParams[GNB_ACTIVE_GNBS_IDX].numelt;
|
||||||
|
AssertFatal(RC.nb_nr_inst == NUMBER_OF_gNB_MAX,
|
||||||
|
"Configuration error: RC.nb_nr_inst (%d) must equal NUMBER_OF_gNB_MAX (%d).\n"
|
||||||
|
"Currently, only one instance of each layer (L1, L2, L3) is supported.\n"
|
||||||
|
"Ensure that nb_nr_inst matches the maximum allowed gNB instances in this configuration.",
|
||||||
|
RC.nb_nr_inst, NUMBER_OF_gNB_MAX);
|
||||||
|
|
||||||
// Get num MACRLC instances
|
// Get num MACRLC instances
|
||||||
config_getlist(config_get_if(), &MACRLCParamList, NULL, 0, NULL);
|
config_getlist(config_get_if(), &MACRLCParamList, NULL, 0, NULL);
|
||||||
@@ -2383,7 +2388,6 @@ int gNB_app_handle_f1ap_gnb_cu_configuration_update(f1ap_gnb_cu_configuration_up
|
|||||||
gnb_cu_cfg_update->num_cells_to_activate, RC.nb_nr_inst);
|
gnb_cu_cfg_update->num_cells_to_activate, RC.nb_nr_inst);
|
||||||
|
|
||||||
AssertFatal(gnb_cu_cfg_update->num_cells_to_activate == 1, "only one cell supported at the moment\n");
|
AssertFatal(gnb_cu_cfg_update->num_cells_to_activate == 1, "only one cell supported at the moment\n");
|
||||||
AssertFatal(RC.nb_nr_inst == 1, "expected one instance\n");
|
|
||||||
gNB_MAC_INST *mac = RC.nrmac[0];
|
gNB_MAC_INST *mac = RC.nrmac[0];
|
||||||
NR_SCHED_LOCK(&mac->sched_lock);
|
NR_SCHED_LOCK(&mac->sched_lock);
|
||||||
for (j = 0; j < gnb_cu_cfg_update->num_cells_to_activate; j++) {
|
for (j = 0; j < gnb_cu_cfg_update->num_cells_to_activate; j++) {
|
||||||
|
|||||||
Reference in New Issue
Block a user