From a59cfae18ca94ec853093de49cb76c2726b8f2b6 Mon Sep 17 00:00:00 2001 From: ndomingues Date: Wed, 2 Apr 2025 16:00:45 +0100 Subject: [PATCH 1/2] Prevent RedCap UEs to move to dedicated BWP --- openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c | 2 +- openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c | 1 + openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c index 3c7c9ebd39..7ad2ac5bb4 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c @@ -3322,7 +3322,7 @@ bool prepare_initial_ul_rrc_message(gNB_MAC_INST *mac, NR_UE_info_t *UE) int CC_id = 0; int srb_id = 1; const NR_ServingCellConfigCommon_t *scc = mac->common_channels[CC_id].ServingCellConfigCommon; - const NR_ServingCellConfig_t *sccd = mac->common_channels[CC_id].pre_ServingCellConfig; + const NR_ServingCellConfig_t *sccd = UE->is_redcap ? NULL : mac->common_channels[CC_id].pre_ServingCellConfig; NR_CellGroupConfig_t *cellGroupConfig = get_initial_cellGroupConfig(UE->uid, scc, sccd, &mac->radio_config); ASN_STRUCT_FREE(asn_DEF_NR_CellGroupConfig, UE->CellGroup); UE->CellGroup = cellGroupConfig; diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c index e1a48d6002..edbb467b19 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c @@ -351,6 +351,7 @@ static int nr_process_mac_pdu(instance_t module_idP, if (lcid == UL_SCH_LCID_CCCH_48_BITS_REDCAP) { LOG_I(MAC, "UE with RNTI %04x is RedCap\n", UE->rnti); + UE->is_redcap = true; } if (prepare_initial_ul_rrc_message(RC.nrmac[module_idP], UE)) { diff --git a/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h b/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h index 65812ae0f5..628a23f770 100644 --- a/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h +++ b/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h @@ -783,6 +783,7 @@ typedef struct { float ul_thr_ue; float dl_thr_ue; long pdsch_HARQ_ACK_Codebook; + bool is_redcap; } NR_UE_info_t; typedef struct { From f24a576d8147b3f48265fa19528d10a491141db8 Mon Sep 17 00:00:00 2001 From: ndomingues Date: Thu, 3 Apr 2025 09:17:28 +0100 Subject: [PATCH 2/2] Update RedCap configuration file to have 20 MHz InitialBWP and 40 MHz DedicatedBWP --- ...nb.sa.band78.fr1.106PRB.usrpb210.redcap.yaml} | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) rename targets/PROJECTS/GENERIC-NR-5GC/CONF/{gnb.sa.band78.fr1.51PRB.usrpb210.redcap.yaml => gnb.sa.band78.fr1.106PRB.usrpb210.redcap.yaml} (93%) diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.51PRB.usrpb210.redcap.yaml b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.redcap.yaml similarity index 93% rename from targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.51PRB.usrpb210.redcap.yaml rename to targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.redcap.yaml index b3f43bfbd7..01c40ca3d7 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.51PRB.usrpb210.redcap.yaml +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.redcap.yaml @@ -35,7 +35,7 @@ gNBs: # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 dl_subcarrierSpacing: 1 - dl_carrierBandwidth: 51 + dl_carrierBandwidth: 106 #initialDownlinkBWP #genericParameters # this is RBstart=0,L=51 (275*(L-1))+RBstart @@ -54,7 +54,7 @@ gNBs: # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 ul_subcarrierSpacing: 1 - ul_carrierBandwidth: 51 + ul_carrierBandwidth: 106 pMax: 20 #initialUplinkBWP #genericParameters @@ -134,6 +134,18 @@ gNBs: nrofUplinkSymbols: 4 ssPBCH_BlockPower: -25 + + servingCellConfigDedicated: + - dl_bwp-Id_1: 1 + dl_bwp1_locationAndBandwidth: 28875 + dl_bwp1_subcarrierSpacing: 1 + firstActiveDownlinkBWP-Id: 1 + defaultDownlinkBWP-Id: 1 + ul_bwp-Id_1: 1 + ul_bwp1_locationAndBandwidth: 28875 + ul_bwp1_subcarrierSpacing: 1 + firstActiveUplinkBWP-Id: 1 + RedCap: cellBarredRedCap1Rx_r17: 1 cellBarredRedCap2Rx_r17: 1