fix for Other SI reception when BWP start != 0
This commit is contained in:
@@ -735,7 +735,7 @@ static int nr_ue_process_dci_dl_10(NR_UE_MAC_INST_t *mac,
|
||||
return -1;
|
||||
}
|
||||
dlsch_pdu->rb_offset = dlsch_pdu->start_rb + dlsch_pdu->BWPStart;
|
||||
if (mac->get_sib1)
|
||||
if (mac->get_sib1 || mac->get_otherSI)
|
||||
dlsch_pdu->rb_offset -= dlsch_pdu->BWPStart;
|
||||
|
||||
/* TIME_DOM_RESOURCE_ASSIGNMENT */
|
||||
|
||||
@@ -572,17 +572,18 @@ static int nr_decode_SI(NR_UE_RRC_SI_INFO *SI_info, NR_SystemInformation_t *si)
|
||||
// Dump contents
|
||||
if (si->criticalExtensions.present == NR_SystemInformation__criticalExtensions_PR_systemInformation ||
|
||||
si->criticalExtensions.present == NR_SystemInformation__criticalExtensions_PR_criticalExtensionsFuture_r16) {
|
||||
LOG_D( RRC, "[UE] si->criticalExtensions.choice.NR_SystemInformation_t->sib_TypeAndInfo.list.count %d\n",
|
||||
si->criticalExtensions.choice.systemInformation->sib_TypeAndInfo.list.count );
|
||||
LOG_D(NR_RRC,
|
||||
"[UE] si->criticalExtensions.choice.NR_SystemInformation_t->sib_TypeAndInfo.list.count %d\n",
|
||||
si->criticalExtensions.choice.systemInformation->sib_TypeAndInfo.list.count);
|
||||
} else {
|
||||
LOG_D( RRC, "[UE] Unknown criticalExtension version (not Rel16)\n" );
|
||||
LOG_D(NR_RRC, "[UE] Unknown criticalExtension version (not Rel16)\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (int i = 0; i < si->criticalExtensions.choice.systemInformation->sib_TypeAndInfo.list.count; i++) {
|
||||
SystemInformation_IEs__sib_TypeAndInfo__Member *typeandinfo;
|
||||
typeandinfo = si->criticalExtensions.choice.systemInformation->sib_TypeAndInfo.list.array[i];
|
||||
LOG_I(RRC, "Found SIB%d\n", typeandinfo->present + 1);
|
||||
LOG_I(NR_RRC, "Found SIB%d\n", typeandinfo->present + 1);
|
||||
switch(typeandinfo->present) {
|
||||
case NR_SystemInformation_IEs__sib_TypeAndInfo__Member_PR_sib2:
|
||||
if(!SI_info->sib2)
|
||||
@@ -679,6 +680,8 @@ static int nr_decode_SI(NR_UE_RRC_SI_INFO *SI_info, NR_SystemInformation_t *si)
|
||||
if(!SI_info->SInfo_r17.sib19)
|
||||
SI_info->SInfo_r17.sib19 = calloc(1, sizeof(*SI_info->SInfo_r17.sib19));
|
||||
asn_copy(&asn_DEF_NR_SIB19_r17, (void **) &SI_info->SInfo_r17.sib19, typeandinfo->choice.sib19_v1700);
|
||||
if (g_log->log_component[NR_RRC].level >= OAILOG_DEBUG)
|
||||
xer_fprint(stdout, &asn_DEF_NR_SIB19_r17, (const void *)SI_info->SInfo_r17.sib19);
|
||||
nr_timer_start(&SI_info->SInfo_r17.sib19_timer);
|
||||
break;
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user