Merge remote-tracking branch 'origin/NR_UE_cell_barred' into integration_2023_w34
This commit is contained in:
@@ -465,6 +465,10 @@ static void UE_synch(void *arg) {
|
|||||||
} else {
|
} else {
|
||||||
UE->is_synchronized = 1;
|
UE->is_synchronized = 1;
|
||||||
}
|
}
|
||||||
|
if (UE->synch_request.received_synch_request == 1) {
|
||||||
|
UE->is_synchronized = 0;
|
||||||
|
UE->synch_request.received_synch_request = 0;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if (UE->UE_scan_carrier == 1) {
|
if (UE->UE_scan_carrier == 1) {
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ void nr_ue_init_mac(module_id_t module_idP);
|
|||||||
\param mac mac instance */
|
\param mac mac instance */
|
||||||
void nr_ue_mac_default_configs(NR_UE_MAC_INST_t *mac);
|
void nr_ue_mac_default_configs(NR_UE_MAC_INST_t *mac);
|
||||||
|
|
||||||
int8_t nr_ue_decode_mib(module_id_t module_id, int cc_id);
|
void nr_ue_decode_mib(module_id_t module_id, int cc_id);
|
||||||
|
|
||||||
/**\brief decode SIB1 and other SIs pdus in NR_UE, from if_module dl_ind
|
/**\brief decode SIB1 and other SIs pdus in NR_UE, from if_module dl_ind
|
||||||
\param module_id module id
|
\param module_id module id
|
||||||
|
|||||||
@@ -232,14 +232,20 @@ int get_rnti_type(NR_UE_MAC_INST_t *mac, uint16_t rnti)
|
|||||||
return rnti_type;
|
return rnti_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void nr_ue_decode_mib(module_id_t module_id, int cc_id)
|
||||||
int8_t nr_ue_decode_mib(module_id_t module_id,
|
|
||||||
int cc_id)
|
|
||||||
{
|
{
|
||||||
LOG_D(MAC,"[L2][MAC] decode mib\n");
|
LOG_D(MAC,"[L2][MAC] decode mib\n");
|
||||||
|
|
||||||
NR_UE_MAC_INST_t *mac = get_mac_inst(module_id);
|
NR_UE_MAC_INST_t *mac = get_mac_inst(module_id);
|
||||||
|
|
||||||
|
if (mac->mib->cellBarred == NR_MIB__cellBarred_barred) {
|
||||||
|
LOG_W(MAC, "Cell is barred. Going back to sync mode.\n");
|
||||||
|
mac->synch_request.Mod_id = module_id;
|
||||||
|
mac->synch_request.CC_id = cc_id;
|
||||||
|
mac->synch_request.synch_req.target_Nid_cell = -1;
|
||||||
|
mac->if_module->synch_request(&mac->synch_request);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
uint16_t frame = (mac->mib->systemFrameNumber.buf[0] >> mac->mib->systemFrameNumber.bits_unused);
|
uint16_t frame = (mac->mib->systemFrameNumber.buf[0] >> mac->mib->systemFrameNumber.bits_unused);
|
||||||
uint16_t frame_number_4lsb = 0;
|
uint16_t frame_number_4lsb = 0;
|
||||||
|
|
||||||
@@ -285,8 +291,6 @@ int8_t nr_ue_decode_mib(module_id_t module_id,
|
|||||||
mac->state = UE_CONNECTED;
|
mac->state = UE_CONNECTED;
|
||||||
else if(mac->state == UE_NOT_SYNC)
|
else if(mac->state == UE_NOT_SYNC)
|
||||||
mac->state = UE_SYNC;
|
mac->state = UE_SYNC;
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int8_t nr_ue_decode_BCCH_DL_SCH(module_id_t module_id,
|
int8_t nr_ue_decode_BCCH_DL_SCH(module_id_t module_id,
|
||||||
|
|||||||
@@ -490,8 +490,6 @@ bool check_si_validity(NR_UE_RRC_SI_INFO *SI_info, int si_type)
|
|||||||
|
|
||||||
int check_si_status(NR_UE_RRC_SI_INFO *SI_info)
|
int check_si_status(NR_UE_RRC_SI_INFO *SI_info)
|
||||||
{
|
{
|
||||||
if (!get_softmodem_params()->sa)
|
|
||||||
return 0;
|
|
||||||
// schedule reception of SIB1 if RRC doesn't have it
|
// schedule reception of SIB1 if RRC doesn't have it
|
||||||
if (!SI_info->sib1)
|
if (!SI_info->sib1)
|
||||||
return 1;
|
return 1;
|
||||||
@@ -534,9 +532,12 @@ int8_t nr_rrc_ue_decode_NR_BCCH_BCH_Message(const module_id_t module_id, const u
|
|||||||
NR_UE_rrc_inst[module_id].mib = bcch_message->message.choice.mib;
|
NR_UE_rrc_inst[module_id].mib = bcch_message->message.choice.mib;
|
||||||
bcch_message->message.choice.mib = NULL;
|
bcch_message->message.choice.mib = NULL;
|
||||||
|
|
||||||
NR_UE_RRC_SI_INFO *SI_info = &NR_UE_rrc_inst[module_id].SInfo[gNB_index];
|
int get_sib = 0;
|
||||||
// to schedule MAC to get SI if required
|
if (get_softmodem_params()->sa && NR_UE_rrc_inst[module_id].mib->cellBarred == NR_MIB__cellBarred_notBarred) {
|
||||||
int get_sib = check_si_status(SI_info);
|
NR_UE_RRC_SI_INFO *SI_info = &NR_UE_rrc_inst[module_id].SInfo[gNB_index];
|
||||||
|
// to schedule MAC to get SI if required
|
||||||
|
get_sib = check_si_status(SI_info);
|
||||||
|
}
|
||||||
nr_rrc_mac_config_req_mib(module_id, 0, NR_UE_rrc_inst[module_id].mib, get_sib);
|
nr_rrc_mac_config_req_mib(module_id, 0, NR_UE_rrc_inst[module_id].mib, get_sib);
|
||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user