Commit 859aa1d2 authored by Guy De Souza's avatar Guy De Souza

Initial BWP config

parent 271303c5
...@@ -40,7 +40,7 @@ int nr_init_frame_parms(nfapi_nr_config_request_t* config, ...@@ -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); LOG_I(PHY,"Initializing frame parms for mu %d, N_RB %d, Ncp %d\n",mu, N_RB, Ncp);
#endif #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); AssertFatal(mu == NR_MU_2,"Invalid cyclic prefix %d for numerology index %d\n", Ncp, mu);
switch(mu) { switch(mu) {
...@@ -148,6 +148,14 @@ int nr_init_frame_parms(nfapi_nr_config_request_t* config, ...@@ -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->samples_per_frame = 10 * frame_parms->samples_per_subframe;
frame_parms->freq_range = (frame_parms->dl_CarrierFreq < 6e9)? nr_FR1 : nr_FR2; 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; return 0;
} }
...@@ -300,4 +308,10 @@ void nr_dump_frame_parms(NR_DL_FRAME_PARMS *frame_parms) ...@@ -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_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_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->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);
} }
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include "nr_dci.h" #include "nr_dci.h"
void nr_fill_dci_and_dlsch(PHY_VARS_gNB *gNB, void nr_fill_dci_and_dlsch(PHY_VARS_gNB *gNB,
int frame, int frame,
int subframe, int subframe,
...@@ -77,6 +78,9 @@ void nr_fill_dci_and_dlsch(PHY_VARS_gNB *gNB, ...@@ -77,6 +78,9 @@ void nr_fill_dci_and_dlsch(PHY_VARS_gNB *gNB,
break; 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 /// rest of DCI alloc
memcpy((void*)&dci_alloc->pdcch_params, (void*)params_rel15, sizeof(nfapi_nr_dl_config_pdcch_parameters_rel15_t)); 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, dci_alloc->size = nr_get_dci_size(NFAPI_NR_DL_DCI_FORMAT_1_0,
......
...@@ -106,14 +106,18 @@ typedef enum { ...@@ -106,14 +106,18 @@ typedef enum {
} nr_frequency_range_e; } nr_frequency_range_e;
typedef struct NR_BWP_PARMS { typedef struct NR_BWP_PARMS {
/// Associated numerology index /// BWP ID
uint8_t numerology_index; uint8_t bwp_id;
/// Freq domain location /// Subcarrier spacing
nr_scs_e scs;
/// Freq domain location -- 1st CRB index
uint8_t location; uint8_t location;
/// Bandwidth in PRB /// Bandwidth in PRB
uint16_t N_RB; uint16_t N_RB;
/// Size of FFT/IFFT /// Size of FFT/IFFT
uint16_t ofdm_symbol_size; uint16_t ofdm_symbol_size;
/// Cyclic prefix
uint8_t cyclic_prefix;
} NR_BWP_PARMS; } NR_BWP_PARMS;
typedef struct { typedef struct {
...@@ -191,7 +195,6 @@ typedef struct NR_DL_FRAME_PARMS { ...@@ -191,7 +195,6 @@ typedef struct NR_DL_FRAME_PARMS {
uint8_t ttis_per_subframe; 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) /// 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; uint8_t slots_per_tti;
//#endif
/// Number of Physical transmit antennas in node /// Number of Physical transmit antennas in node
uint8_t nb_antennas_tx; uint8_t nb_antennas_tx;
/// Number of Receive antennas in node /// Number of Receive antennas in node
......
...@@ -53,11 +53,11 @@ gNBs = ...@@ -53,11 +53,11 @@ gNBs =
DL_FreqBandIndicatorNR = 15; DL_FreqBandIndicatorNR = 15;
DL_absoluteFrequencyPointA = 15; DL_absoluteFrequencyPointA = 15;
DL_offsetToCarrier = 15; DL_offsetToCarrier = 15;
DL_SCS_SubcarrierSpacing = "kHz15"; DL_SCS_SubcarrierSpacing = "kHz30";
DL_SCS_SpecificCarrier_k0 = 0; DL_SCS_SpecificCarrier_k0 = 0;
DL_carrierBandwidth = 15; DL_carrierBandwidth = 15;
DL_locationAndBandwidth = 15; DL_locationAndBandwidth = 15;
DL_BWP_SubcarrierSpacing = "kHz15"; DL_BWP_SubcarrierSpacing = "kHz30";
DL_BWP_prefix_type = "NORMAL"; DL_BWP_prefix_type = "NORMAL";
UL_FreqBandIndicatorNR = 15; UL_FreqBandIndicatorNR = 15;
UL_absoluteFrequencyPointA = 13; UL_absoluteFrequencyPointA = 13;
...@@ -65,11 +65,11 @@ gNBs = ...@@ -65,11 +65,11 @@ gNBs =
UL_p_Max = -1; UL_p_Max = -1;
UL_frequencyShift7p5khz = "TRUE"; UL_frequencyShift7p5khz = "TRUE";
UL_offsetToCarrier = 10; UL_offsetToCarrier = 10;
UL_SCS_SubcarrierSpacing = "kHz15"; UL_SCS_SubcarrierSpacing = "kHz30";
UL_SCS_SpecificCarrier_k0 = 0; UL_SCS_SpecificCarrier_k0 = 0;
UL_carrierBandwidth = 15; UL_carrierBandwidth = 15;
UL_locationAndBandwidth = 15; UL_locationAndBandwidth = 15;
UL_BWP_SubcarrierSpacing = "kHz15"; UL_BWP_SubcarrierSpacing = "kHz30";
UL_BWP_prefix_type = "NORMAL"; UL_BWP_prefix_type = "NORMAL";
ServingCellConfigCommon__ssb_PositionsInBurst_PR = "shortBitmap"; ServingCellConfigCommon__ssb_PositionsInBurst_PR = "shortBitmap";
ServingCellConfigCommon_ssb_periodicityServingCell = 10; ServingCellConfigCommon_ssb_periodicityServingCell = 10;
...@@ -102,7 +102,7 @@ gNBs = ...@@ -102,7 +102,7 @@ gNBs =
prach_RootSequenceIndex_choice = "l839"; prach_RootSequenceIndex_choice = "l839";
prach_RootSequenceIndex_l839 = 0; prach_RootSequenceIndex_l839 = 0;
prach_RootSequenceIndex_l139 = 0; prach_RootSequenceIndex_l139 = 0;
prach_msg1_SubcarrierSpacing = "kHz15"; prach_msg1_SubcarrierSpacing = "kHz30";
restrictedSetConfig = "unrestrictedSet"; restrictedSetConfig = "unrestrictedSet";
msg3_transformPrecoding = "ENABLE"; msg3_transformPrecoding = "ENABLE";
prach_ConfigurationIndex = 10; prach_ConfigurationIndex = 10;
...@@ -127,7 +127,7 @@ gNBs = ...@@ -127,7 +127,7 @@ gNBs =
symbolsInResourceBlock = "oneSlot"; symbolsInResourceBlock = "oneSlot";
periodicityAndPattern = 2; periodicityAndPattern = 2;
RateMatchPattern_controlResourceSet = 5; RateMatchPattern_controlResourceSet = 5;
RateMatchPattern_subcarrierSpacing = "kHz15"; RateMatchPattern_subcarrierSpacing = "kHz30";
RateMatchPattern_mode = "dynamic"; RateMatchPattern_mode = "dynamic";
searchSpaceSIB1 = 10; searchSpaceSIB1 = 10;
searchSpaceOtherSystemInformation = 10; searchSpaceOtherSystemInformation = 10;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment