diff --git a/openair1/PHY/INIT/nr_parms.c b/openair1/PHY/INIT/nr_parms.c index c541b4dc57..86a8a5afe5 100644 --- a/openair1/PHY/INIT/nr_parms.c +++ b/openair1/PHY/INIT/nr_parms.c @@ -40,7 +40,7 @@ int nr_init_frame_parms(nfapi_nr_config_request_t* config, LOG_I(PHY,"Initializing frame parms for mu %d, N_RB %d, Ncp %d\n",mu, N_RB, Ncp); #endif - if (Ncp == EXTENDED) + if (Ncp == NFAPI_CP_EXTENDED) AssertFatal(mu == NR_MU_2,"Invalid cyclic prefix %d for numerology index %d\n", Ncp, mu); switch(mu) { @@ -148,6 +148,14 @@ int nr_init_frame_parms(nfapi_nr_config_request_t* config, frame_parms->samples_per_frame = 10 * frame_parms->samples_per_subframe; frame_parms->freq_range = (frame_parms->dl_CarrierFreq < 6e9)? nr_FR1 : nr_FR2; + // Initial bandwidth part configuration -- full carrier bandwidth + frame_parms->initial_bwp_dl.bwp_id = 0; + frame_parms->initial_bwp_dl.scs = frame_parms->subcarrier_spacing; + frame_parms->initial_bwp_dl.location = 0; + frame_parms->initial_bwp_dl.N_RB = N_RB; + frame_parms->initial_bwp_dl.cyclic_prefix = Ncp; + frame_parms->initial_bwp_dl.ofdm_symbol_size = frame_parms->ofdm_symbol_size; + return 0; } @@ -300,4 +308,10 @@ void nr_dump_frame_parms(NR_DL_FRAME_PARMS *frame_parms) LOG_I(PHY,"frame_parms->samples_per_frame_wCP=%d\n",frame_parms->samples_per_frame_wCP); LOG_I(PHY,"frame_parms->samples_per_subframe=%d\n",frame_parms->samples_per_subframe); LOG_I(PHY,"frame_parms->samples_per_frame=%d\n",frame_parms->samples_per_frame); + LOG_I(PHY,"frame_parms->initial_bwp_dl.bwp_id=%d\n",frame_parms->initial_bwp_dl.bwp_id); + LOG_I(PHY,"frame_parms->initial_bwp_dl.scs=%d\n",frame_parms->initial_bwp_dl.scs); + LOG_I(PHY,"frame_parms->initial_bwp_dl.N_RB=%d\n",frame_parms->initial_bwp_dl.N_RB); + LOG_I(PHY,"frame_parms->initial_bwp_dl.cyclic_prefix=%d\n",frame_parms->initial_bwp_dl.cyclic_prefix); + LOG_I(PHY,"frame_parms->initial_bwp_dl.location=%d\n",frame_parms->initial_bwp_dl.location); + LOG_I(PHY,"frame_parms->initial_bwp_dl.ofdm_symbol_size=%d\n",frame_parms->initial_bwp_dl.ofdm_symbol_size); } diff --git a/openair1/PHY/NR_TRANSPORT/nr_dci_tools.c b/openair1/PHY/NR_TRANSPORT/nr_dci_tools.c index c2ac37a23f..b43687a8ec 100644 --- a/openair1/PHY/NR_TRANSPORT/nr_dci_tools.c +++ b/openair1/PHY/NR_TRANSPORT/nr_dci_tools.c @@ -32,6 +32,7 @@ #include "nr_dci.h" + void nr_fill_dci_and_dlsch(PHY_VARS_gNB *gNB, int frame, int subframe, @@ -77,6 +78,9 @@ void nr_fill_dci_and_dlsch(PHY_VARS_gNB *gNB, break; } + LOG_I(MAC, "DCI PDU: [0]->0x%08x \t [0]->0x%08x [1]->0x%08x \t [2]->0x%08x \t [3]->0x%08x\n", + dci_pdu[0], dci_pdu[1], dci_pdu[2], dci_pdu[3]); + /// rest of DCI alloc memcpy((void*)&dci_alloc->pdcch_params, (void*)params_rel15, sizeof(nfapi_nr_dl_config_pdcch_parameters_rel15_t)); dci_alloc->size = nr_get_dci_size(NFAPI_NR_DL_DCI_FORMAT_1_0, diff --git a/openair1/PHY/defs_nr_common.h b/openair1/PHY/defs_nr_common.h index ebcb29ee6b..29e181d0fa 100644 --- a/openair1/PHY/defs_nr_common.h +++ b/openair1/PHY/defs_nr_common.h @@ -106,14 +106,18 @@ typedef enum { } nr_frequency_range_e; typedef struct NR_BWP_PARMS { - /// Associated numerology index - uint8_t numerology_index; - /// Freq domain location + /// BWP ID + uint8_t bwp_id; + /// Subcarrier spacing + nr_scs_e scs; + /// Freq domain location -- 1st CRB index uint8_t location; /// Bandwidth in PRB uint16_t N_RB; /// Size of FFT/IFFT uint16_t ofdm_symbol_size; + /// Cyclic prefix + uint8_t cyclic_prefix; } NR_BWP_PARMS; typedef struct { @@ -191,7 +195,6 @@ typedef struct NR_DL_FRAME_PARMS { uint8_t ttis_per_subframe; /// NR number of slots per tti . Assumption only 2 Slot per TTI is supported (Slot Config 1 in 38.211) uint8_t slots_per_tti; -//#endif /// Number of Physical transmit antennas in node uint8_t nb_antennas_tx; /// Number of Receive antennas in node diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf index 6e586c99c3..769ebcaaaa 100644 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf @@ -53,11 +53,11 @@ gNBs = DL_FreqBandIndicatorNR = 15; DL_absoluteFrequencyPointA = 15; DL_offsetToCarrier = 15; - DL_SCS_SubcarrierSpacing = "kHz15"; + DL_SCS_SubcarrierSpacing = "kHz30"; DL_SCS_SpecificCarrier_k0 = 0; DL_carrierBandwidth = 15; DL_locationAndBandwidth = 15; - DL_BWP_SubcarrierSpacing = "kHz15"; + DL_BWP_SubcarrierSpacing = "kHz30"; DL_BWP_prefix_type = "NORMAL"; UL_FreqBandIndicatorNR = 15; UL_absoluteFrequencyPointA = 13; @@ -65,11 +65,11 @@ gNBs = UL_p_Max = -1; UL_frequencyShift7p5khz = "TRUE"; UL_offsetToCarrier = 10; - UL_SCS_SubcarrierSpacing = "kHz15"; + UL_SCS_SubcarrierSpacing = "kHz30"; UL_SCS_SpecificCarrier_k0 = 0; UL_carrierBandwidth = 15; UL_locationAndBandwidth = 15; - UL_BWP_SubcarrierSpacing = "kHz15"; + UL_BWP_SubcarrierSpacing = "kHz30"; UL_BWP_prefix_type = "NORMAL"; ServingCellConfigCommon__ssb_PositionsInBurst_PR = "shortBitmap"; ServingCellConfigCommon_ssb_periodicityServingCell = 10; @@ -102,7 +102,7 @@ gNBs = prach_RootSequenceIndex_choice = "l839"; prach_RootSequenceIndex_l839 = 0; prach_RootSequenceIndex_l139 = 0; - prach_msg1_SubcarrierSpacing = "kHz15"; + prach_msg1_SubcarrierSpacing = "kHz30"; restrictedSetConfig = "unrestrictedSet"; msg3_transformPrecoding = "ENABLE"; prach_ConfigurationIndex = 10; @@ -127,7 +127,7 @@ gNBs = symbolsInResourceBlock = "oneSlot"; periodicityAndPattern = 2; RateMatchPattern_controlResourceSet = 5; - RateMatchPattern_subcarrierSpacing = "kHz15"; + RateMatchPattern_subcarrierSpacing = "kHz30"; RateMatchPattern_mode = "dynamic"; searchSpaceSIB1 = 10; searchSpaceOtherSystemInformation = 10;