reworking NOS1 bearer configuration to take info from file
This commit is contained in:
+2
-23
@@ -989,29 +989,8 @@ void init_NR_UE(int nb_inst, char *uecap_file, char *reconfig_file, char *rbconf
|
||||
NR_UE_MAC_INST_t *mac = get_mac_inst(i);
|
||||
AssertFatal((mac->if_module = nr_ue_if_module_init(i)) != NULL, "can not initialize IF module\n");
|
||||
if (!get_softmodem_params()->sa) {
|
||||
init_nsa_message(&rrc_inst[i], reconfig_file, rbconfig_file);
|
||||
// TODO why do we need noS1 configuration?
|
||||
// temporarily moved here to understand why not using the one provided by gNB
|
||||
nr_rlc_activate_srb0(i, NULL, send_srb0_rrc);
|
||||
if (IS_SOFTMODEM_NOS1) {
|
||||
// get default noS1 configuration
|
||||
NR_RadioBearerConfig_t *rbconfig = NULL;
|
||||
NR_RLC_BearerConfig_t *rlc_rbconfig = NULL;
|
||||
fill_nr_noS1_bearer_config(&rbconfig, &rlc_rbconfig);
|
||||
|
||||
// set up PDCP, RLC, MAC
|
||||
nr_pdcp_layer_init(false);
|
||||
nr_pdcp_add_drbs(ENB_FLAG_NO, i, rbconfig->drb_ToAddModList, 0, NULL, NULL);
|
||||
nr_rlc_add_drb(i, rbconfig->drb_ToAddModList->list.array[0]->drb_Identity, rlc_rbconfig);
|
||||
struct NR_CellGroupConfig__rlc_BearerToAddModList rlc_toadd_list;
|
||||
rlc_toadd_list.list.count = 1;
|
||||
rlc_toadd_list.list.array = calloc(1, sizeof(NR_RLC_BearerConfig_t));
|
||||
rlc_toadd_list.list.array[0] = rlc_rbconfig;
|
||||
nr_rrc_mac_config_req_ue_logicalChannelBearer(0, &rlc_toadd_list, NULL);
|
||||
|
||||
// free memory
|
||||
free_nr_noS1_bearer_config(&rbconfig, NULL);
|
||||
}
|
||||
init_nsa_message(rrc_inst, reconfig_file, rbconfig_file);
|
||||
nr_rlc_activate_srb0(mac_inst->crnti, NULL, send_srb0_rrc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -368,7 +368,8 @@ void init_openair0(void) {
|
||||
}
|
||||
}
|
||||
|
||||
static void init_pdcp(int ue_id) {
|
||||
static void init_pdcp(int ue_id)
|
||||
{
|
||||
uint32_t pdcp_initmask = (!IS_SOFTMODEM_NOS1) ? LINK_ENB_PDCP_TO_GTPV1U_BIT : (LINK_ENB_PDCP_TO_GTPV1U_BIT | PDCP_USE_NETLINK_BIT | LINK_ENB_PDCP_TO_IP_DRIVER_BIT);
|
||||
|
||||
/*if (IS_SOFTMODEM_RFSIM || (nfapi_getmode()==NFAPI_UE_STUB_PNF)) {
|
||||
@@ -510,8 +511,6 @@ int main(int argc, char **argv)
|
||||
memset(PHY_vars_UE_g[0][CC_id], 0, sizeof(*PHY_vars_UE_g[0][CC_id]));
|
||||
}
|
||||
|
||||
init_NR_UE(NB_UE_INST, uecap_file, reconfig_file, rbconfig_file);
|
||||
|
||||
int mode_offset = get_softmodem_params()->nsa ? NUMBER_OF_UE_MAX : 1;
|
||||
uint16_t node_number = get_softmodem_params()->node_number;
|
||||
ue_id_g = (node_number == 0) ? 0 : node_number - 2;
|
||||
@@ -525,6 +524,8 @@ int main(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
init_NR_UE(NB_UE_INST, uecap_file, reconfig_file, rbconfig_file);
|
||||
|
||||
if (get_softmodem_params()->emulate_l1) {
|
||||
RCconfig_nr_ue_macrlc();
|
||||
get_channel_model_mode(uniqCfg);
|
||||
|
||||
@@ -275,14 +275,12 @@ void process_nsa_message(NR_UE_RRC_INST_t *rrc, nsa_message_t nsa_message_type,
|
||||
SEQUENCE_free( &asn_DEF_NR_RadioBearerConfig, RadioBearerConfig, 1 );
|
||||
return;
|
||||
}
|
||||
if (get_softmodem_params()->nsa) {
|
||||
LOG_D(NR_RRC, "Calling nr_rrc_ue_process_RadioBearerConfig() at %d with: e_rab_id = %ld, drbID = %ld, cipher_algo = %ld, key = %ld \n",
|
||||
__LINE__, RadioBearerConfig->drb_ToAddModList->list.array[0]->cnAssociation->choice.eps_BearerIdentity,
|
||||
RadioBearerConfig->drb_ToAddModList->list.array[0]->drb_Identity,
|
||||
RadioBearerConfig->securityConfig->securityAlgorithmConfig->cipheringAlgorithm,
|
||||
*RadioBearerConfig->securityConfig->keyToUse);
|
||||
nr_rrc_ue_process_RadioBearerConfig(rrc, rrc->perNB + 0, RadioBearerConfig);
|
||||
}
|
||||
LOG_D(NR_RRC, "Calling nr_rrc_ue_process_RadioBearerConfig()with: e_rab_id = %ld, drbID = %ld, cipher_algo = %ld, key = %ld \n",
|
||||
RadioBearerConfig->drb_ToAddModList->list.array[0]->cnAssociation->choice.eps_BearerIdentity,
|
||||
RadioBearerConfig->drb_ToAddModList->list.array[0]->drb_Identity,
|
||||
RadioBearerConfig->securityConfig->securityAlgorithmConfig->cipheringAlgorithm,
|
||||
*RadioBearerConfig->securityConfig->keyToUse);
|
||||
nr_rrc_ue_process_RadioBearerConfig(rrc, rrc->perNB + 0, RadioBearerConfig);
|
||||
if (LOG_DEBUGFLAG(DEBUG_ASN1))
|
||||
xer_fprint(stdout, &asn_DEF_NR_RadioBearerConfig, (const void *)RadioBearerConfig);
|
||||
ASN_STRUCT_FREE(asn_DEF_NR_RadioBearerConfig, RadioBearerConfig);
|
||||
@@ -795,9 +793,7 @@ void nr_rrc_cellgroup_configuration(rrcPerNB_t *rrcNB, NR_UE_RRC_INST_t *rrc, NR
|
||||
}
|
||||
}
|
||||
|
||||
// TODO verify why we need this limitation
|
||||
if (get_softmodem_params()->sa || get_softmodem_params()->nsa)
|
||||
nr_rrc_manage_rlc_bearers(rrc, cellGroupConfig, rrcNB);
|
||||
nr_rrc_manage_rlc_bearers(rrc, cellGroupConfig, rrcNB);
|
||||
|
||||
AssertFatal(cellGroupConfig->sCellToReleaseList == NULL,
|
||||
"Secondary serving cell release not implemented\n");
|
||||
|
||||
Reference in New Issue
Block a user