Initial BWP config
This commit is contained in:
@@ -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,
|
|||||||
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)
|
|||||||
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 @@
|
|||||||
|
|
||||||
#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,
|
|||||||
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 {
|
|||||||
} 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 {
|
|||||||
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 =
|
|||||||
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 =
|
|||||||
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 =
|
|||||||
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 =
|
|||||||
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;
|
||||||
|
|||||||
Reference in New Issue
Block a user