From 2454a2ea1e474e2e010659ae6be5ae2481d00d1d Mon Sep 17 00:00:00 2001 From: francescomani Date: Thu, 11 Sep 2025 16:38:19 +0200 Subject: [PATCH] automatic selection of SIB1 TDA --- .../gnb-vnf.sa.band66.u0.25prb.nfapi.conf | 2 - .../gnb.sa.band261.u3.32prb.rfsim.conf | 2 - .../conf_files/gnb.sa.band78.24prb.rfsim.conf | 2 - ...sa.band78.273prb.fhi72.4x4-benetel550.conf | 1 - doc/MAC/mac-usage.md | 2 - doc/RUNMODEM.md | 1 - openair2/GNB_APP/gnb_config.c | 3 - openair2/GNB_APP/gnb_paramdef.h | 50 ++++---- .../LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c | 119 ++++++++++-------- openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h | 1 - .../gnb-du.sa.band66.25prb.rfsim.pci0.conf | 1 - .../gnb-du.sa.band66.25prb.rfsim.pci1.conf | 1 - ...sa.band77.273prb.fhi72.4x4-benetel650.conf | 1 - ...73prb.fhi72.8x8-benetel650_650-mplane.conf | 1 - ...and77.273prb.fhi72.8x8-benetel650_650.conf | 1 - .../CONF/gnb-vnf.sa.band78.106prb.nfapi.conf | 1 - .../gnb.sa.band254.ntn.mu1.24prb.rfsim.conf | 1 - .../gnb.sa.band255.ntn.mu0.25prb.rfsim.conf | 1 - .../gnb.sa.band256.ntn.mu0.25prb.rfsim.conf | 1 - .../gnb.sa.band257.u3.32prb.usrpx410.conf | 1 - .../gnb.sa.band41.fr1.52PRB.usrpb210.conf | 1 - .../gnb.sa.band66.fr1.24PRB.usrpx300.conf | 1 - .../gnb.sa.band66.fr1.25PRB.usrpx300.conf | 1 - .../CONF/gnb.sa.band66.u0.25prb.rfsim.conf | 1 - .../gnb.sa.band77.106prb.fhi72.4x4-vvdn.conf | 1 - .../gnb.sa.band77.273prb.fhi72.2x2-vvdn.conf | 1 - .../gnb.sa.band77.273prb.fhi72.4x4-vvdn.conf | 1 - ...sa.band78.273prb.fhi72.4x2-benetel550.conf | 1 - ...78.273prb.fhi72.4x4-benetel550-mplane.conf | 1 - ...sa.band78.273prb.fhi72.4x4-benetel550.conf | 1 - ...gnb.sa.band78.273prb.fhi72.4x4-liteon.conf | 1 - ...b.sa.band78.273prb.fhi72.4x4-metanoia.conf | 1 - .../gnb.sa.band78.fr1.24PRB.usrpb210.conf | 1 - 33 files changed, 91 insertions(+), 115 deletions(-) diff --git a/ci-scripts/conf_files/gnb-vnf.sa.band66.u0.25prb.nfapi.conf b/ci-scripts/conf_files/gnb-vnf.sa.band66.u0.25prb.nfapi.conf index c14759c6af..6f914cf17a 100644 --- a/ci-scripts/conf_files/gnb-vnf.sa.band66.u0.25prb.nfapi.conf +++ b/ci-scripts/conf_files/gnb-vnf.sa.band66.u0.25prb.nfapi.conf @@ -16,8 +16,6 @@ gNBs = nr_cellid = 12345678L; ////////// Physical parameters: - - sib1_tda = 5; min_rxtxtime = 6; servingCellConfigCommon = ( diff --git a/ci-scripts/conf_files/gnb.sa.band261.u3.32prb.rfsim.conf b/ci-scripts/conf_files/gnb.sa.band261.u3.32prb.rfsim.conf index f2455bc2c6..c37acc89f5 100644 --- a/ci-scripts/conf_files/gnb.sa.band261.u3.32prb.rfsim.conf +++ b/ci-scripts/conf_files/gnb.sa.band261.u3.32prb.rfsim.conf @@ -18,8 +18,6 @@ gNBs = tr_s_preference = "local_mac" ////////// Physical parameters: - - sib1_tda = 15; min_rxtxtime = 6; servingCellConfigCommon = ( diff --git a/ci-scripts/conf_files/gnb.sa.band78.24prb.rfsim.conf b/ci-scripts/conf_files/gnb.sa.band78.24prb.rfsim.conf index afe40c733c..7153c90421 100644 --- a/ci-scripts/conf_files/gnb.sa.band78.24prb.rfsim.conf +++ b/ci-scripts/conf_files/gnb.sa.band78.24prb.rfsim.conf @@ -16,8 +16,6 @@ gNBs = nr_cellid = 12345678L; ////////// Physical parameters: - - sib1_tda = 15; min_rxtxtime = 6; servingCellConfigCommon = ( diff --git a/ci-scripts/conf_files/gnb.sa.band78.273prb.fhi72.4x4-benetel550.conf b/ci-scripts/conf_files/gnb.sa.band78.273prb.fhi72.4x4-benetel550.conf index 8d6a0e90cd..ee2930f8ad 100644 --- a/ci-scripts/conf_files/gnb.sa.band78.273prb.fhi72.4x4-benetel550.conf +++ b/ci-scripts/conf_files/gnb.sa.band78.273prb.fhi72.4x4-benetel550.conf @@ -23,7 +23,6 @@ gNBs = pusch_AntennaPorts = 4; do_CSIRS = 1; do_SRS = 0; - sib1_tda = 15; # force_UL256qam_off = 1; servingCellConfigCommon = ( diff --git a/doc/MAC/mac-usage.md b/doc/MAC/mac-usage.md index 2fa56c2ce4..1ce15ec9d6 100644 --- a/doc/MAC/mac-usage.md +++ b/doc/MAC/mac-usage.md @@ -255,8 +255,6 @@ configuration](../RRC/rrc-usage.md) as well for SIB configuration. * `pusch_AntennaPorts` (default 1): number of antenna ports in PUSCH * `maxMIMO_layers` (default -1=unlimited): maximum number of MIMO layers to use in downlink -* `sib1_tda` (default 1): time domain allocation (TDA) indices to use for SIB1 - (38.214 section 5.1.2.1.1) * `do_CSIRS` (default 0): flag whether to use channel-state information reference signal (CSI-RS) * `do_SRS` (default 0): flag whether to use sounding reference signal (SRS) diff --git a/doc/RUNMODEM.md b/doc/RUNMODEM.md index 37b51b96fa..2c81fb5fa4 100644 --- a/doc/RUNMODEM.md +++ b/doc/RUNMODEM.md @@ -296,7 +296,6 @@ This allows to reuse HARQ processes immediately, but it breaks compatibility wit To enable this feature, the `disable_harq` flag has to be added to the gNB conf file in the section `gNBs.[0]` ``` ... - sib1_tda = 5; min_rxtxtime = 6; disable_harq = 1; // <-- diff --git a/openair2/GNB_APP/gnb_config.c b/openair2/GNB_APP/gnb_config.c index d70bf712b8..36ee2e4f0c 100644 --- a/openair2/GNB_APP/gnb_config.c +++ b/openair2/GNB_APP/gnb_config.c @@ -699,7 +699,6 @@ void RCconfig_verify(configmodule_interface_t *cfg, ngran_node_t node_type) verify_gnb_param_notset(gnbp, GNB_PDSCH_ANTENNAPORTS_XP_IDX, GNB_CONFIG_STRING_PDSCHANTENNAPORTS_XP); verify_gnb_param_notset(gnbp, GNB_PUSCH_ANTENNAPORTS_IDX, GNB_CONFIG_STRING_PUSCHANTENNAPORTS); verify_gnb_param_notset(gnbp, GNB_MINRXTXTIME_IDX, GNB_CONFIG_STRING_MINRXTXTIME); - verify_gnb_param_notset(gnbp, GNB_SIB1_TDA_IDX, GNB_CONFIG_STRING_SIB1TDA); verify_gnb_param_notset(gnbp, GNB_DO_CSIRS_IDX, GNB_CONFIG_STRING_DOCSIRS); verify_gnb_param_notset(gnbp, GNB_DO_SRS_IDX, GNB_CONFIG_STRING_DOSRS); verify_gnb_param_notset(gnbp, GNB_FORCE256QAMOFF_IDX, GNB_CONFIG_STRING_FORCE256QAMOFF); @@ -1436,8 +1435,6 @@ void RCconfig_nr_macrlc(configmodule_interface_t *cfg) } config.minRXTXTIME = *GNBParamList.paramarray[0][GNB_MINRXTXTIME_IDX].iptr; LOG_I(GNB_APP, "minTXRXTIME %d\n", config.minRXTXTIME); - config.sib1_tda = *GNBParamList.paramarray[0][GNB_SIB1_TDA_IDX].iptr; - LOG_I(GNB_APP, "SIB1 TDA %d\n", config.sib1_tda); config.do_CSIRS = *GNBParamList.paramarray[0][GNB_DO_CSIRS_IDX].iptr; config.do_SRS = *GNBParamList.paramarray[0][GNB_DO_SRS_IDX].iptr; config.max_num_rsrp = *GNBParamList.paramarray[0][GNB_LIMIT_RSRP_REPORT_IDX].iptr; diff --git a/openair2/GNB_APP/gnb_paramdef.h b/openair2/GNB_APP/gnb_paramdef.h index 4ec09d06f0..14cd6ba3c8 100644 --- a/openair2/GNB_APP/gnb_paramdef.h +++ b/openair2/GNB_APP/gnb_paramdef.h @@ -114,7 +114,6 @@ typedef enum { #define GNB_CONFIG_STRING_PDSCHANTENNAPORTS_N2 "pdsch_AntennaPorts_N2" #define GNB_CONFIG_STRING_PDSCHANTENNAPORTS_XP "pdsch_AntennaPorts_XP" #define GNB_CONFIG_STRING_PUSCHANTENNAPORTS "pusch_AntennaPorts" -#define GNB_CONFIG_STRING_SIB1TDA "sib1_tda" #define GNB_CONFIG_STRING_DOCSIRS "do_CSIRS" #define GNB_CONFIG_STRING_DOSRS "do_SRS" #define GNB_CONFIG_STRING_NRCELLID "nr_cellid" @@ -179,7 +178,6 @@ typedef enum { {GNB_CONFIG_STRING_PDSCHANTENNAPORTS_N2, "vert. log. antenna ports", 0, .iptr=NULL, .defintval=1, TYPE_INT, 0}, \ {GNB_CONFIG_STRING_PDSCHANTENNAPORTS_XP, "XP log. antenna ports", 0, .iptr=NULL, .defintval=1, TYPE_INT, 0}, \ {GNB_CONFIG_STRING_PUSCHANTENNAPORTS, NULL, 0, .iptr=NULL, .defintval=1, TYPE_INT, 0}, \ -{GNB_CONFIG_STRING_SIB1TDA, NULL, 0, .iptr=NULL, .defintval=1, TYPE_INT, 0}, \ {GNB_CONFIG_STRING_DOCSIRS, NULL, 0, .iptr=NULL, .defintval=0, TYPE_INT, 0}, \ {GNB_CONFIG_STRING_DOSRS, NULL, 0, .iptr=NULL, .defintval=0, TYPE_INT, 0}, \ {GNB_CONFIG_STRING_NRCELLID, NULL, 0, .u64ptr=NULL,.defint64val=1, TYPE_UINT64, 0}, \ @@ -225,30 +223,29 @@ typedef enum { #define GNB_PDSCH_ANTENNAPORTS_N2_IDX 14 #define GNB_PDSCH_ANTENNAPORTS_XP_IDX 15 #define GNB_PUSCH_ANTENNAPORTS_IDX 16 -#define GNB_SIB1_TDA_IDX 17 -#define GNB_DO_CSIRS_IDX 18 -#define GNB_DO_SRS_IDX 19 -#define GNB_NRCELLID_IDX 20 -#define GNB_MINRXTXTIME_IDX 21 -#define GNB_ULPRBBLACKLIST_IDX 22 -#define GNB_UMONDEFAULTDRB_IDX 23 -#define GNB_FORCE256QAMOFF_IDX 24 -#define GNB_ENABLE_SDAP_IDX 25 -#define GNB_DRBS 26 -#define GNB_GNB_DU_ID_IDX 27 -#define GNB_GNB_CU_UP_ID_IDX 28 -#define GNB_USE_DELTA_MCS_IDX 29 -#define GNB_FORCEUL256QAMOFF_IDX 30 -#define GNB_MAXMIMOLAYERS_IDX 31 -#define GNB_DISABLE_HARQ_IDX 32 -#define GNB_NUM_DL_HARQ_IDX 33 -#define GNB_NUM_UL_HARQ_IDX 34 -#define GNB_UESS_AGG_LEVEL_LIST_IDX 35 -#define GNB_CU_SIBS_IDX 36 -#define GNB_DU_SIBS_IDX 37 -#define GNB_CONFIG_REP_IDX 38 -#define GNB_1ST_ACTIVE_BWP_IDX 39 -#define GNB_LIMIT_RSRP_REPORT_IDX 40 +#define GNB_DO_CSIRS_IDX 17 +#define GNB_DO_SRS_IDX 18 +#define GNB_NRCELLID_IDX 19 +#define GNB_MINRXTXTIME_IDX 20 +#define GNB_ULPRBBLACKLIST_IDX 21 +#define GNB_UMONDEFAULTDRB_IDX 22 +#define GNB_FORCE256QAMOFF_IDX 23 +#define GNB_ENABLE_SDAP_IDX 24 +#define GNB_DRBS 25 +#define GNB_GNB_DU_ID_IDX 26 +#define GNB_GNB_CU_UP_ID_IDX 27 +#define GNB_USE_DELTA_MCS_IDX 28 +#define GNB_FORCEUL256QAMOFF_IDX 29 +#define GNB_MAXMIMOLAYERS_IDX 30 +#define GNB_DISABLE_HARQ_IDX 31 +#define GNB_NUM_DL_HARQ_IDX 32 +#define GNB_NUM_UL_HARQ_IDX 33 +#define GNB_UESS_AGG_LEVEL_LIST_IDX 34 +#define GNB_CU_SIBS_IDX 35 +#define GNB_DU_SIBS_IDX 36 +#define GNB_CONFIG_REP_IDX 37 +#define GNB_1ST_ACTIVE_BWP_IDX 38 +#define GNB_LIMIT_RSRP_REPORT_IDX 39 #define TRACKING_AREA_CODE_OKRANGE {0x0001,0xFFFD} #define NUM_DL_HARQ_OKVALUES {2,4,6,8,10,12,16,32} @@ -287,7 +284,6 @@ typedef enum { { .s5 = { NULL } }, \ { .s5 = { NULL } }, \ { .s5 = { NULL } }, \ - { .s5 = { NULL } }, \ { .s1 = { config_check_intval, NUM_DL_HARQ_OKVALUES,8 } }, \ { .s1 = { config_check_intval, NUM_UL_HARQ_OKVALUES,2 } }, \ { .s5 = { NULL } }, \ diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c index d8c4ee04ba..600c4b7130 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c @@ -255,7 +255,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, slot_t slotP, nfapi } } -static void update_rb_mcs_tbs(NR_sched_pdsch_t *pdsch, uint32_t num_total_bytes, uint16_t *vrb_map) +static bool update_rb_mcs_tbs(NR_sched_pdsch_t *pdsch, uint32_t num_total_bytes, uint16_t *vrb_map) { const NR_tda_info_t *tda_info = &pdsch->tda_info; @@ -296,12 +296,15 @@ static void update_rb_mcs_tbs(NR_sched_pdsch_t *pdsch, uint32_t num_total_bytes, break; } } - AssertFatal(pdsch->tb_size >= num_total_bytes, - "Couldn't allocate enough resources for %d bytes in SIB PDSCH (rbStart %d, rbSize %d, bwpSize %d)\n", - num_total_bytes, - pdsch->rbStart, - pdsch->rbSize, - bwpSize); + if (pdsch->tb_size < num_total_bytes) { + LOG_D(NR_MAC, + "Couldn't allocate enough resources for %d bytes in SIB PDSCH (rbStart %d, rbSize %d, bwpSize %d)\n", + num_total_bytes, + pdsch->rbStart, + pdsch->rbSize, + bwpSize); + return false; + } LOG_D(NR_MAC, "mcs=%i, startSymbolIndex = %i, nrOfSymbols = %i, rbSize = %i, TBS = %i, dmrs_length %d, N_PRB_DMRS = %d, mappingtype = %d\n", @@ -313,6 +316,7 @@ static void update_rb_mcs_tbs(NR_sched_pdsch_t *pdsch, uint32_t num_total_bytes, pdsch->dmrs_parms.N_DMRS_SLOT, N_PRB_DMRS, tda_info->mapping_type); + return true; } static NR_sched_pdsch_t schedule_control_sib1(gNB_MAC_INST *gNB_mac, @@ -342,11 +346,12 @@ static NR_sched_pdsch_t schedule_control_sib1(gNB_MAC_INST *gNB_mac, uint8_t nr_of_candidates = 0; - for (int i=0; i<3; i++) { + for (int i = 0; i < 3; i++) { find_aggregation_candidates(&gNB_mac->sched_ctrlCommon->aggregation_level, &nr_of_candidates, gNB_mac->sched_ctrlCommon->search_space,4<0) break; // choosing the lower value of aggregation level available + if (nr_of_candidates > 0) + break; // choosing the lower value of aggregation level available } - AssertFatal(nr_of_candidates>0,"nr_of_candidates is 0\n"); + AssertFatal(nr_of_candidates > 0, "nr_of_candidates is 0\n"); gNB_mac->sched_ctrlCommon->cce_index = find_pdcch_candidate(gNB_mac, CC_id, gNB_mac->sched_ctrlCommon->aggregation_level, @@ -358,18 +363,21 @@ static NR_sched_pdsch_t schedule_control_sib1(gNB_MAC_INST *gNB_mac, AssertFatal(gNB_mac->sched_ctrlCommon->cce_index >= 0, "Could not find CCE for coreset0\n"); - update_rb_mcs_tbs(&pdsch, gNB_mac->sched_ctrlCommon->num_total_bytes, vrb_map); + bool success = update_rb_mcs_tbs(&pdsch, gNB_mac->sched_ctrlCommon->num_total_bytes, vrb_map); + if (success) { + // Mark the corresponding RBs as used + fill_pdcch_vrb_map(gNB_mac, + CC_id, + pdcch, + gNB_mac->sched_ctrlCommon->cce_index, + gNB_mac->sched_ctrlCommon->aggregation_level, + beam); + for (int rb = 0; rb < pdsch.rbSize; rb++) { + vrb_map[rb + type0_PDCCH_CSS_config->cset_start_rb] |= SL_to_bitmap(tda_info->startSymbolIndex, tda_info->nrOfSymbols); + } + } else + pdsch.tb_size = 0; // to signal we couldn't allocate TBS - // Mark the corresponding RBs as used - fill_pdcch_vrb_map(gNB_mac, - CC_id, - pdcch, - gNB_mac->sched_ctrlCommon->cce_index, - gNB_mac->sched_ctrlCommon->aggregation_level, - beam); - for (int rb = 0; rb < pdsch.rbSize; rb++) { - vrb_map[rb + type0_PDCCH_CSS_config->cset_start_rb] |= SL_to_bitmap(tda_info->startSymbolIndex, tda_info->nrOfSymbols); - } return pdsch; } @@ -474,12 +482,8 @@ void schedule_nr_sib1(module_id_t module_idP, // TODO: Get these values from RRC const int CC_id = 0; uint8_t candidate_idx = 0; - gNB_MAC_INST *gNB_mac = RC.nrmac[module_idP]; NR_ServingCellConfigCommon_t *scc = gNB_mac->common_channels[CC_id].ServingCellConfigCommon; - - int time_domain_allocation = gNB_mac->radio_config.sib1_tda; - int L_max; switch (scc->ssb_PositionsInBurst->present) { case 1: @@ -492,8 +496,7 @@ void schedule_nr_sib1(module_id_t module_idP, L_max = 64; break; default: - AssertFatal(0,"SSB bitmap size value %d undefined (allowed values 1,2,3)\n", - scc->ssb_PositionsInBurst->present); + AssertFatal(false, "SSB bitmap size value %d undefined (allowed values 1,2,3)\n", scc->ssb_PositionsInBurst->present); } for (int i = 0; i < L_max; i++) { @@ -512,38 +515,51 @@ void schedule_nr_sib1(module_id_t module_idP, int beam_index = get_beam_from_ssbidx(gNB_mac, i); NR_beam_alloc_t beam = beam_allocation_procedure(&gNB_mac->beam_info, frameP, slotP, beam_index, n_slots_frame); AssertFatal(beam.idx >= 0, "Cannot allocate SIB1 corresponding to SSB %d in any available beam\n", i); + NR_COMMON_channels_t *cc = &gNB_mac->common_channels[0]; LOG_D(NR_MAC,"(%d.%d) SIB1 transmission: ssb_index %d\n", frameP, slotP, type0_PDCCH_CSS_config->ssb_index); - default_table_type_t table_type = get_default_table_type(type0_PDCCH_CSS_config->type0_pdcch_ss_mux_pattern); - // assuming normal CP - NR_tda_info_t tda_info = get_info_from_tda_tables(table_type, time_domain_allocation, scc->dmrs_TypeA_Position, true); - - AssertFatal((tda_info.startSymbolIndex + tda_info.nrOfSymbols) < 14, - "SIB1 TDA %d would cause overlap with CSI-RS. Please select a different SIB1 TDA.\n", - time_domain_allocation); - - NR_pdsch_dmrs_t dmrs_parms = get_dl_dmrs_params(scc, NULL, &tda_info, 1); - NR_sched_pdcch_t sched_pdcch = set_pdcch_structure(NULL, gNB_mac->sched_ctrlCommon->search_space, gNB_mac->sched_ctrlCommon->coreset, scc, NULL, type0_PDCCH_CSS_config); + int time_domain_allocation = -1; + NR_sched_pdsch_t sched_pdsch = {0}; + for (int t = 0; t < 16; t++) { + // If the PDSCH was scheduled with SI-RNTI in PDCCH Type0 common search space, + // the UE may assume that this PDSCH resource allocation is not applied (Table 5.1.2.1.1-4 and 5 in 38.214) + int row = t + 1; + if (table_type == defaultB && (row == 12 || row == 13 || row == 14)) + continue; + if (table_type == defaultC && (row == 1 || row == 6 || row == 7 ||row > 12)) + continue; + // assuming normal CP + NR_tda_info_t tda_info = get_info_from_tda_tables(table_type, t, scc->dmrs_TypeA_Position, true); + // SIB1 TDA going to the last symbol would cause overlap with CSI-RS + if (!tda_info.valid_tda || tda_info.startSymbolIndex + tda_info.nrOfSymbols == 14) + continue; + if (tda_info.startSymbolIndex < type0_PDCCH_CSS_config->first_symbol_index + type0_PDCCH_CSS_config->num_symbols) + continue; - NR_COMMON_channels_t *cc = &gNB_mac->common_channels[0]; - // Configure sched_ctrlCommon for SIB1 - NR_sched_pdsch_t sched_pdsch = schedule_control_sib1(gNB_mac, - CC_id, - &sched_pdcch, - type0_PDCCH_CSS_config, - time_domain_allocation, - &dmrs_parms, - &tda_info, - candidate_idx, - beam.idx, - cc->sib1_bcch_length); - + NR_pdsch_dmrs_t dmrs_parms = get_dl_dmrs_params(scc, NULL, &tda_info, 1); + // Configure sched_ctrlCommon for SIB1 + sched_pdsch = schedule_control_sib1(gNB_mac, + CC_id, + &sched_pdcch, + type0_PDCCH_CSS_config, + t, + &dmrs_parms, + &tda_info, + candidate_idx, + beam.idx, + cc->sib1_bcch_length); + if (sched_pdsch.tb_size > 0) { + time_domain_allocation = t; + break; + } + } + AssertFatal(time_domain_allocation > 0, "Couldn't select any TDA for SIB1\n"); nfapi_nr_dl_tti_request_body_t *dl_req = &DL_req->dl_tti_request_body; int pdu_index = gNB_mac->pdu_index[0]++; nr_fill_nfapi_dl_SIB_pdu(gNB_mac, @@ -673,7 +689,8 @@ static void other_sib_sched_control(module_id_t module_idP, uint16_t *vrb_map = cc->vrb_map[beam.idx]; uint8_t *sib_bcch_pdu = cc->other_sib_bcch_pdu[payload_idx]; int num_total_bytes = cc->other_sib_bcch_length[payload_idx]; - update_rb_mcs_tbs(&sched_pdsch_otherSI, num_total_bytes, vrb_map); + bool success = update_rb_mcs_tbs(&sched_pdsch_otherSI, num_total_bytes, vrb_map); + AssertFatal(success, "Couldn't allocate TBS for other SIB\n"); for (int rb = 0; rb < sched_pdsch_otherSI.rbSize; rb++) { vrb_map[rb + type0_PDCCH_CSS_config->cset_start_rb] |= SL_to_bitmap(tda_info.startSymbolIndex, tda_info.nrOfSymbols); diff --git a/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h b/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h index ca1e217099..8863098de5 100644 --- a/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h +++ b/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h @@ -186,7 +186,6 @@ typedef enum { } nr_config_report_type_t; typedef struct nr_mac_config_t { - int sib1_tda; nr_pdsch_AntennaPorts_t pdsch_AntennaPorts; int pusch_AntennaPorts; int minRXTXTIME; diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band66.25prb.rfsim.pci0.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band66.25prb.rfsim.pci0.conf index 1d3e0e70d0..8c200c72fd 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band66.25prb.rfsim.pci0.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band66.25prb.rfsim.pci0.conf @@ -19,7 +19,6 @@ gNBs = ////////// Physical parameters: min_rxtxtime = 4; - sib1_tda = 15; servingCellConfigCommon = ( { diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band66.25prb.rfsim.pci1.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band66.25prb.rfsim.pci1.conf index cdcd1a59fd..f87cc2bb8c 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band66.25prb.rfsim.pci1.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band66.25prb.rfsim.pci1.conf @@ -19,7 +19,6 @@ gNBs = ////////// Physical parameters: min_rxtxtime = 4; - sib1_tda = 15; servingCellConfigCommon = ( { diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band77.273prb.fhi72.4x4-benetel650.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band77.273prb.fhi72.4x4-benetel650.conf index 7a6becbd8c..1652758e4e 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band77.273prb.fhi72.4x4-benetel650.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band77.273prb.fhi72.4x4-benetel650.conf @@ -23,7 +23,6 @@ gNBs = pusch_AntennaPorts = 4; do_CSIRS = 1; do_SRS = 0; - sib1_tda = 15; force_UL256qam_off = 1; # maxMIMO_layers = 2; diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band77.273prb.fhi72.8x8-benetel650_650-mplane.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band77.273prb.fhi72.8x8-benetel650_650-mplane.conf index 3dd36be9c7..eee6f875c9 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band77.273prb.fhi72.8x8-benetel650_650-mplane.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band77.273prb.fhi72.8x8-benetel650_650-mplane.conf @@ -23,7 +23,6 @@ gNBs = pusch_AntennaPorts = 8; do_CSIRS = 1; do_SRS = 0; - sib1_tda = 15; force_UL256qam_off = 1; maxMIMO_layers = 2; diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band77.273prb.fhi72.8x8-benetel650_650.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band77.273prb.fhi72.8x8-benetel650_650.conf index 18829188e3..fdad2726c2 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band77.273prb.fhi72.8x8-benetel650_650.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-du.sa.band77.273prb.fhi72.8x8-benetel650_650.conf @@ -23,7 +23,6 @@ gNBs = pusch_AntennaPorts = 8; do_CSIRS = 1; do_SRS = 0; - sib1_tda = 15; force_UL256qam_off = 1; maxMIMO_layers = 2; diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-vnf.sa.band78.106prb.nfapi.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-vnf.sa.band78.106prb.nfapi.conf index aea3176456..467873a36f 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-vnf.sa.band78.106prb.nfapi.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb-vnf.sa.band78.106prb.nfapi.conf @@ -22,7 +22,6 @@ gNBs = pusch_AntennaPorts = 1; min_rxtxtime = 6; enable_sdap = 0; - #sib1_tda = 0; servingCellConfigCommon = ( { diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band254.ntn.mu1.24prb.rfsim.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band254.ntn.mu1.24prb.rfsim.conf index a6ca5decbe..10caa403d3 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band254.ntn.mu1.24prb.rfsim.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band254.ntn.mu1.24prb.rfsim.conf @@ -16,7 +16,6 @@ gNBs = ////////// Physical parameters: - sib1_tda = 5; min_rxtxtime = 6; disable_harq = 1; cu_sibs = [2]; diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band255.ntn.mu0.25prb.rfsim.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band255.ntn.mu0.25prb.rfsim.conf index c811f0d64e..1684a375d0 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band255.ntn.mu0.25prb.rfsim.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band255.ntn.mu0.25prb.rfsim.conf @@ -16,7 +16,6 @@ gNBs = ////////// Physical parameters: - sib1_tda = 5; min_rxtxtime = 6; disable_harq = 1; cu_sibs = [2]; diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band256.ntn.mu0.25prb.rfsim.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band256.ntn.mu0.25prb.rfsim.conf index 3a472ff7a2..c20188594d 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band256.ntn.mu0.25prb.rfsim.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band256.ntn.mu0.25prb.rfsim.conf @@ -16,7 +16,6 @@ gNBs = ////////// Physical parameters: - sib1_tda = 5; min_rxtxtime = 6; disable_harq = 1; cu_sibs = [2]; diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band257.u3.32prb.usrpx410.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band257.u3.32prb.usrpx410.conf index 933cddfcb9..0c949fdccb 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band257.u3.32prb.usrpx410.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band257.u3.32prb.usrpx410.conf @@ -21,7 +21,6 @@ gNBs = pusch_AntennaPorts = 1; do_CSIRS = 1; do_SRS = 1; - sib1_tda = 15; min_rxtxtime = 6; servingCellConfigCommon = ( diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.52PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.52PRB.usrpb210.conf index a02394b5b2..bb5263aa9a 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.52PRB.usrpb210.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.52PRB.usrpb210.conf @@ -22,7 +22,6 @@ gNBs = do_CSIRS = 1; do_SRS = 1; - sib1_tda = 15; min_rxtxtime = 6; servingCellConfigCommon = ( diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band66.fr1.24PRB.usrpx300.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band66.fr1.24PRB.usrpx300.conf index 6b9b104bc0..f17e695e8a 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band66.fr1.24PRB.usrpx300.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band66.fr1.24PRB.usrpx300.conf @@ -32,7 +32,6 @@ gNBs = ////////// Physical parameters: - sib1_tda = 5; min_rxtxtime = 6; # disable_harq = 1; # num_dlharq = 32; diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band66.fr1.25PRB.usrpx300.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band66.fr1.25PRB.usrpx300.conf index 560b33b0e9..d5b0559f0c 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band66.fr1.25PRB.usrpx300.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band66.fr1.25PRB.usrpx300.conf @@ -32,7 +32,6 @@ gNBs = ////////// Physical parameters: - sib1_tda = 5; min_rxtxtime = 6; # disable_harq = 1; # num_dlharq = 32; diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band66.u0.25prb.rfsim.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band66.u0.25prb.rfsim.conf index 9458c2b272..428b6cb27c 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band66.u0.25prb.rfsim.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band66.u0.25prb.rfsim.conf @@ -17,7 +17,6 @@ gNBs = ////////// Physical parameters: - sib1_tda = 5; min_rxtxtime = 6; servingCellConfigCommon = ( diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band77.106prb.fhi72.4x4-vvdn.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band77.106prb.fhi72.4x4-vvdn.conf index 753670a9eb..f7f8390b33 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band77.106prb.fhi72.4x4-vvdn.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band77.106prb.fhi72.4x4-vvdn.conf @@ -23,7 +23,6 @@ gNBs = pusch_AntennaPorts = 4; do_CSIRS = 1; do_SRS = 0; - sib1_tda = 15; servingCellConfigCommon = ( { diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band77.273prb.fhi72.2x2-vvdn.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band77.273prb.fhi72.2x2-vvdn.conf index 38580730f2..d68e67c96f 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band77.273prb.fhi72.2x2-vvdn.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band77.273prb.fhi72.2x2-vvdn.conf @@ -21,7 +21,6 @@ gNBs = pusch_AntennaPorts = 2; do_CSIRS = 1; do_SRS = 0; - sib1_tda = 15; servingCellConfigCommon = ( { diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band77.273prb.fhi72.4x4-vvdn.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band77.273prb.fhi72.4x4-vvdn.conf index d55bc6dbda..7e13bf7dec 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band77.273prb.fhi72.4x4-vvdn.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band77.273prb.fhi72.4x4-vvdn.conf @@ -23,7 +23,6 @@ gNBs = pusch_AntennaPorts = 4; do_CSIRS = 1; do_SRS = 0; - sib1_tda = 15; servingCellConfigCommon = ( { diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x2-benetel550.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x2-benetel550.conf index 75fe0e6fdd..715dcda78c 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x2-benetel550.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x2-benetel550.conf @@ -21,7 +21,6 @@ gNBs = pusch_AntennaPorts = 2; do_CSIRS = 1; do_SRS = 0; - sib1_tda = 15; # force_UL256qam_off = 1; servingCellConfigCommon = ( diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x4-benetel550-mplane.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x4-benetel550-mplane.conf index ed996cac27..241ca9f23a 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x4-benetel550-mplane.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x4-benetel550-mplane.conf @@ -23,7 +23,6 @@ gNBs = pusch_AntennaPorts = 4; do_CSIRS = 1; do_SRS = 0; - sib1_tda = 15; # force_UL256qam_off = 1; servingCellConfigCommon = ( diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x4-benetel550.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x4-benetel550.conf index d8ca02a3be..2788e7f5f5 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x4-benetel550.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x4-benetel550.conf @@ -23,7 +23,6 @@ gNBs = pusch_AntennaPorts = 4; do_CSIRS = 1; do_SRS = 0; - sib1_tda = 15; # force_UL256qam_off = 1; servingCellConfigCommon = ( diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x4-liteon.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x4-liteon.conf index 3c9780130f..2419df21bb 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x4-liteon.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x4-liteon.conf @@ -23,7 +23,6 @@ gNBs = pusch_AntennaPorts = 4; do_CSIRS = 1; do_SRS = 0; - sib1_tda = 15; servingCellConfigCommon = ( { diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x4-metanoia.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x4-metanoia.conf index 13617fb578..322d61b2b3 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x4-metanoia.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x4-metanoia.conf @@ -21,7 +21,6 @@ gNBs = do_CSIRS = 1; do_SRS = 0; force_UL256qam_off = 1; - # sib1_tda = 15; servingCellConfigCommon = ( { diff --git a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.24PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.24PRB.usrpb210.conf index 1398020417..63c63bd80e 100644 --- a/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.24PRB.usrpb210.conf +++ b/targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.24PRB.usrpb210.conf @@ -17,7 +17,6 @@ gNBs = ////////// Physical parameters: - sib1_tda = 15; min_rxtxtime = 6; servingCellConfigCommon = (