check multiple DCI candidates with same length if SIB RNTI
This commit is contained in:
@@ -640,6 +640,9 @@ void nr_dci_decoding_procedure(PHY_VARS_NR_UE *ue,
|
|||||||
{
|
{
|
||||||
int e_rx_cand_idx = 0;
|
int e_rx_cand_idx = 0;
|
||||||
*dci_ind = (fapi_nr_dci_indication_t){.SFN = proc->frame_rx, .slot = proc->nr_slot_rx};
|
*dci_ind = (fapi_nr_dci_indication_t){.SFN = proc->frame_rx, .slot = proc->nr_slot_rx};
|
||||||
|
// if DCI for SIB we don't break after finding 1st DCI with that RNTI
|
||||||
|
// there might be SIB1 and otherSIB in the same slot with the same length
|
||||||
|
bool is_SI = rel15->rnti == SI_RNTI;
|
||||||
|
|
||||||
for (int j = 0; j < rel15->number_of_candidates; j++) {
|
for (int j = 0; j < rel15->number_of_candidates; j++) {
|
||||||
int CCEind = rel15->CCE[j];
|
int CCEind = rel15->CCE[j];
|
||||||
@@ -653,7 +656,7 @@ void nr_dci_decoding_procedure(PHY_VARS_NR_UE *ue,
|
|||||||
int dci_length = rel15->dci_length_options[k];
|
int dci_length = rel15->dci_length_options[k];
|
||||||
int ind;
|
int ind;
|
||||||
for (ind = 0; ind < dci_ind->number_of_dcis; ind++) {
|
for (ind = 0; ind < dci_ind->number_of_dcis; ind++) {
|
||||||
if (rel15->rnti == dci_ind->dci_list[ind].rnti && dci_length == dci_ind->dci_list[ind].payloadSize) {
|
if (!is_SI && rel15->rnti == dci_ind->dci_list[ind].rnti && dci_length == dci_ind->dci_list[ind].payloadSize) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -185,7 +185,7 @@ static void nr_decode_SI(NR_UE_RRC_SI_INFO *SI_info, NR_SystemInformation_t *si,
|
|||||||
for (int i = 0; i < si->criticalExtensions.choice.systemInformation->sib_TypeAndInfo.list.count; i++) {
|
for (int i = 0; i < si->criticalExtensions.choice.systemInformation->sib_TypeAndInfo.list.count; i++) {
|
||||||
SystemInformation_IEs__sib_TypeAndInfo__Member *typeandinfo;
|
SystemInformation_IEs__sib_TypeAndInfo__Member *typeandinfo;
|
||||||
typeandinfo = si->criticalExtensions.choice.systemInformation->sib_TypeAndInfo.list.array[i];
|
typeandinfo = si->criticalExtensions.choice.systemInformation->sib_TypeAndInfo.list.array[i];
|
||||||
LOG_I(NR_RRC, "Found SIB%d\n", typeandinfo->present + 1);
|
LOG_A(NR_RRC, "Found SIB%d\n", typeandinfo->present + 1);
|
||||||
switch(typeandinfo->present) {
|
switch(typeandinfo->present) {
|
||||||
case NR_SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib2:
|
case NR_SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib2:
|
||||||
SI_info->sib2_validity = SIB_VALID;
|
SI_info->sib2_validity = SIB_VALID;
|
||||||
|
|||||||
Reference in New Issue
Block a user