diff --git a/openair2/LAYER2/NR_MAC_UE/config_ue.c b/openair2/LAYER2/NR_MAC_UE/config_ue.c index 49aff8d58b1e11662ea101afc39578eb00e68a0c..2235bcf224d4b0e6dae98430fa608341d47c3758 100644 --- a/openair2/LAYER2/NR_MAC_UE/config_ue.c +++ b/openair2/LAYER2/NR_MAC_UE/config_ue.c @@ -534,19 +534,19 @@ void configure_ss_coreset(NR_UE_MAC_INST_t *mac, NR_BWP_Id_t dl_bwp_id) { - NR_BWP_DownlinkCommon_t *bwp_Common; - if (dl_bwp_id>0) - bwp_Common = scd->downlinkBWP_ToAddModList->list.array[dl_bwp_id - 1]->bwp_Common; - else { - if (mac->scc_SIB) - bwp_Common = &mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP; - else - bwp_Common = mac->scc->downlinkConfigCommon->initialDownlinkBWP; + NR_BWP_DownlinkCommon_t *bwp_Common = NULL; + if(dl_bwp_id > 0 && scd->downlinkBWP_ToAddModList) { + bwp_Common = scd->downlinkBWP_ToAddModList->list.array[dl_bwp_id - 1]->bwp_Common; + } else if(mac->scc) { + bwp_Common = mac->scc->downlinkConfigCommon->initialDownlinkBWP; + } else if(mac->scc_SIB) { + bwp_Common = &mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP; } + AssertFatal(bwp_Common != NULL, "bwp_Common is null\n"); + NR_SetupRelease_PDCCH_ConfigCommon_t *pdcch_ConfigCommon = bwp_Common->pdcch_ConfigCommon; AssertFatal(pdcch_ConfigCommon != NULL, "pdcch_ConfigCommon is null\n"); - AssertFatal(pdcch_ConfigCommon->choice.setup->ra_SearchSpace != NULL, "ra_SearchSpace must be available in DL BWP\n"); // configuring eventual common coreset NR_ControlResourceSet_t *coreset = pdcch_ConfigCommon->choice.setup->commonControlResourceSet; diff --git a/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c b/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c index 2c4fad5820b577a0c14531b913a346bd339501ce..95f8a091f9124ae96afa36ed700eb4440054a559 100644 --- a/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c +++ b/openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c @@ -196,8 +196,8 @@ void get_bwp_info(NR_UE_MAC_INST_t *mac, (int)dl_bwp_id-1); *bwpd = mac->DLbwp[dl_bwp_id-1]->bwp_Dedicated; if (mac->DLbwp[dl_bwp_id-1]->bwp_Common) *bwpc = mac->DLbwp[dl_bwp_id-1]->bwp_Common; - else if (mac->scc_SIB) *bwpc = &mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP; else if (mac->scc) *bwpc = mac->scc->downlinkConfigCommon->initialDownlinkBWP; + else if (mac->scc_SIB) *bwpc = &mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP; AssertFatal(*bwpc!=NULL,"bwpc shouldn't be null\n"); } else { if (mac->cg && @@ -205,8 +205,8 @@ void get_bwp_info(NR_UE_MAC_INST_t *mac, mac->cg->spCellConfig->spCellConfigDedicated && mac->cg->spCellConfig->spCellConfigDedicated->initialDownlinkBWP) *bwpd = mac->cg->spCellConfig->spCellConfigDedicated->initialDownlinkBWP; - if (mac->scc_SIB) *bwpc = &mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP; - else if (mac->scc) *bwpc = mac->scc->downlinkConfigCommon->initialDownlinkBWP; + if (mac->scc) *bwpc = mac->scc->downlinkConfigCommon->initialDownlinkBWP; + else if (mac->scc_SIB) *bwpc = &mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP; AssertFatal(*bwpc!=NULL,"bwpc shouldn't be null\n"); } @@ -215,8 +215,8 @@ void get_bwp_info(NR_UE_MAC_INST_t *mac, ul_bwp_id-1); *ubwpd = mac->ULbwp[ul_bwp_id-1]->bwp_Dedicated; if (mac->ULbwp[ul_bwp_id-1]->bwp_Common) *ubwpc = mac->ULbwp[ul_bwp_id-1]->bwp_Common; - else if (mac->scc_SIB) *ubwpc = &mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP; else if (mac->scc) *ubwpc = mac->scc->uplinkConfigCommon->initialUplinkBWP; + else if (mac->scc_SIB) *ubwpc = &mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP; AssertFatal(*bwpc!=NULL,"bwpc shouldn't be null\n"); } @@ -227,8 +227,8 @@ void get_bwp_info(NR_UE_MAC_INST_t *mac, mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig && mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP) *ubwpd = mac->cg->spCellConfig->spCellConfigDedicated->uplinkConfig->initialUplinkBWP; - if (mac->scc_SIB) *ubwpc = &mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP; - else if (mac->scc) *ubwpc = mac->scc->uplinkConfigCommon->initialUplinkBWP; + if (mac->scc) *ubwpc = mac->scc->uplinkConfigCommon->initialUplinkBWP; + else if (mac->scc_SIB) *ubwpc = &mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP; AssertFatal(*ubwpc!=NULL,"ubwpc shouldn't be null\n"); } } @@ -630,6 +630,7 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr uint16_t n_RB_DLBWP; if (dl_bwp_id>0 && mac->DLbwp[dl_bwp_id-1]) n_RB_DLBWP = NRRIV2BW(mac->DLbwp[dl_bwp_id-1]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE); + else if (mac->scc) n_RB_DLBWP = NRRIV2BW(mac->scc->uplinkConfigCommon->initialUplinkBWP->genericParameters.locationAndBandwidth,MAX_BWP_SIZE); else if (mac->scc_SIB) n_RB_DLBWP = NRRIV2BW(mac->scc_SIB->uplinkConfigCommon->initialUplinkBWP.genericParameters.locationAndBandwidth,MAX_BWP_SIZE); else n_RB_DLBWP = mac->type0_PDCCH_CSS_config.num_rbs; @@ -834,6 +835,11 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr dlsch_config_pdu_1_0->BWPStart = NRRIV2PRBOFFSET(mac->DLbwp[dl_bwp_id-1]->bwp_Common->genericParameters.locationAndBandwidth, MAX_BWP_SIZE); dlsch_config_pdu_1_0->SubcarrierSpacing = mac->DLbwp[dl_bwp_id-1]->bwp_Common->genericParameters.subcarrierSpacing; pdsch_config = mac->DLbwp[dl_bwp_id-1]->bwp_Dedicated->pdsch_Config->choice.setup; + } else if (mac->scc) { + dlsch_config_pdu_1_0->BWPSize = NRRIV2BW(mac->scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.locationAndBandwidth, MAX_BWP_SIZE); + dlsch_config_pdu_1_0->BWPStart = NRRIV2PRBOFFSET(mac->scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.locationAndBandwidth, MAX_BWP_SIZE); + dlsch_config_pdu_1_0->SubcarrierSpacing = mac->scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.subcarrierSpacing; + pdsch_config = NULL; } else if (mac->scc_SIB) { dlsch_config_pdu_1_0->BWPSize = NRRIV2BW(mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP.genericParameters.locationAndBandwidth, MAX_BWP_SIZE); dlsch_config_pdu_1_0->BWPStart = NRRIV2PRBOFFSET(mac->scc_SIB->downlinkConfigCommon.initialDownlinkBWP.genericParameters.locationAndBandwidth, MAX_BWP_SIZE); diff --git a/openair2/RRC/NR/MESSAGES/asn1_msg.c b/openair2/RRC/NR/MESSAGES/asn1_msg.c index ee224dcb70235d0969066bc02182f4c28435057b..5e3f6c19f2be140f51e6dcd3f1f5d36309620176 100755 --- a/openair2/RRC/NR/MESSAGES/asn1_msg.c +++ b/openair2/RRC/NR/MESSAGES/asn1_msg.c @@ -1526,7 +1526,6 @@ void fill_initial_SpCellConfig(rnti_t rnti, // one symbol (13) NR_PUCCH_Resource_t *pucchres0=calloc(1,sizeof(*pucchres0)); pucchres0->pucch_ResourceId=0; - //pucchres0->startingPRB=0; pucchres0->startingPRB=(8+uid) % curr_bwp; LOG_D(NR_RRC, "pucchres0->startPRB %ld rnti %d curr_bwp %d\n", pucchres0->startingPRB, rnti, curr_bwp); pucchres0->intraSlotFrequencyHopping=NULL; @@ -1670,7 +1669,7 @@ void fill_initial_SpCellConfig(rnti_t rnti, pucch_Config->schedulingRequestResourceToAddModList = calloc(1,sizeof(*pucch_Config->schedulingRequestResourceToAddModList)); NR_SchedulingRequestResourceConfig_t *schedulingRequestResourceConfig = calloc(1,sizeof(*schedulingRequestResourceConfig)); schedulingRequestResourceConfig->schedulingRequestResourceId = 1; - schedulingRequestResourceConfig->schedulingRequestID= 0; + schedulingRequestResourceConfig->schedulingRequestID = 0; schedulingRequestResourceConfig->periodicityAndOffset = calloc(1,sizeof(*schedulingRequestResourceConfig->periodicityAndOffset)); schedulingRequestResourceConfig->periodicityAndOffset->present = NR_SchedulingRequestResourceConfig__periodicityAndOffset_PR_sl40; // note: make sure that there is no issue here. Later choose the RNTI accordingly. diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.106PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.106PRB.usrpb210.conf index afecad980c291e6596384ab46cf86c390a37b0cf..6ae7ecd6ec433240dda93752abc726ee11cc6967 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.106PRB.usrpb210.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.106PRB.usrpb210.conf @@ -185,25 +185,18 @@ servingCellConfigDedicated = ({ # BWP 2 Configuration dl_bwp-Id_2 = 2; - dl_bwp2_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW) + dl_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW) # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 dl_bwp2_subcarrierSpacing = 1; # BWP 3 Configuration dl_bwp-Id_3 = 3; - dl_bwp3_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW) + dl_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW) # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 dl_bwp3_subcarrierSpacing = 1; - # BWP 4 Configuration - dl_bwp-Id_4 = 4; - dl_bwp4_locationAndBandwidth = 22299; // RBstart=24, L=82 - # subcarrierSpacing - # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 - dl_bwp4_subcarrierSpacing = 1; - firstActiveDownlinkBWP-Id = 1; #BWP-Id defaultDownlinkBWP-Id = 1; #BWP-Id @@ -223,25 +216,18 @@ servingCellConfigDedicated = ({ # BWP 2 Configuration ul_bwp-Id_2 = 2; - ul_bwp2_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW) + ul_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW) # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 ul_bwp2_subcarrierSpacing = 1; # BWP 3 Configuration ul_bwp-Id_3 = 3; - ul_bwp3_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW) + ul_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW) # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 ul_bwp3_subcarrierSpacing = 1; - # BWP 4 Configuration - ul_bwp-Id_4 = 4; - ul_bwp4_locationAndBandwidth = 22299; // RBstart=24, L=82 - # subcarrierSpacing - # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 - ul_bwp4_subcarrierSpacing = 1; - firstActiveUplinkBWP-Id = 1; #BWP-Id } ); diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf index 8ab3096a8b43856103bbfa5ecfe59d2ad51cbb63..db4841c65a733ddc7a02d50610178e2dba054b07 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf @@ -185,25 +185,18 @@ servingCellConfigDedicated = ({ # BWP 2 Configuration dl_bwp-Id_2 = 2; - dl_bwp2_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW) + dl_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW) # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 dl_bwp2_subcarrierSpacing = 1; # BWP 3 Configuration dl_bwp-Id_3 = 3; - dl_bwp3_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW) + dl_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW) # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 dl_bwp3_subcarrierSpacing = 1; - # BWP 4 Configuration - dl_bwp-Id_4 = 4; - dl_bwp4_locationAndBandwidth = 22299; // RBstart=24, L=82 - # subcarrierSpacing - # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 - dl_bwp4_subcarrierSpacing = 1; - firstActiveDownlinkBWP-Id = 1; #BWP-Id defaultDownlinkBWP-Id = 1; #BWP-Id @@ -223,25 +216,18 @@ servingCellConfigDedicated = ({ # BWP 2 Configuration ul_bwp-Id_2 = 2; - ul_bwp2_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW) + ul_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW) # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 ul_bwp2_subcarrierSpacing = 1; # BWP 3 Configuration ul_bwp-Id_3 = 3; - ul_bwp3_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW) + ul_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW) # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 ul_bwp3_subcarrierSpacing = 1; - # BWP 4 Configuration - ul_bwp-Id_4 = 4; - ul_bwp4_locationAndBandwidth = 22299; // RBstart=24, L=82 - # subcarrierSpacing - # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 - ul_bwp4_subcarrierSpacing = 1; - firstActiveUplinkBWP-Id = 1; #BWP-Id } );