fix for 256qam in initialDownlinkBWP
This commit is contained in:
@@ -1401,12 +1401,21 @@ void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
|
|||||||
rrc_gNB_carrier_data_t *carrier,
|
rrc_gNB_carrier_data_t *carrier,
|
||||||
NR_UE_NR_Capability_t *uecap) {
|
NR_UE_NR_Capability_t *uecap) {
|
||||||
|
|
||||||
NR_SpCellConfig_t *SpCellConfig = cellGroupConfig->spCellConfig;
|
NR_SpCellConfig_t *SpCellConfig = cellGroupConfig->spCellConfig;
|
||||||
struct NR_ServingCellConfig__downlinkBWP_ToAddModList *DL_BWP_list = SpCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList;
|
NR_ServingCellConfigCommon_t *scc = carrier->servingcellconfigcommon;
|
||||||
for (int i=0; i<DL_BWP_list->list.count; i++){
|
|
||||||
NR_BWP_Downlink_t *bwp = DL_BWP_list->list.array[i];
|
NR_BWP_DownlinkDedicated_t *bwp_Dedicated = SpCellConfig->spCellConfigDedicated->initialDownlinkBWP;
|
||||||
set_dl_mcs_table(bwp, carrier->servingcellconfigcommon, uecap);
|
set_dl_mcs_table(scc->downlinkConfigCommon->initialDownlinkBWP->genericParameters.subcarrierSpacing,
|
||||||
}
|
uecap, bwp_Dedicated, scc);
|
||||||
|
|
||||||
|
struct NR_ServingCellConfig__downlinkBWP_ToAddModList *DL_BWP_list = SpCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList;
|
||||||
|
if (DL_BWP_list) {
|
||||||
|
for (int i=0; i<DL_BWP_list->list.count; i++){
|
||||||
|
NR_BWP_Downlink_t *bwp = DL_BWP_list->list.array[i];
|
||||||
|
int scs = bwp->bwp_Common->genericParameters.subcarrierSpacing;
|
||||||
|
set_dl_mcs_table(scs, uecap, bwp->bwp_Dedicated, carrier->servingcellconfigcommon);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void fill_initial_cellGroupConfig(rnti_t rnti,
|
void fill_initial_cellGroupConfig(rnti_t rnti,
|
||||||
|
|||||||
@@ -149,15 +149,16 @@ void nr_rrc_config_ul_tda(NR_ServingCellConfigCommon_t *scc, int min_fb_delay){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void set_dl_mcs_table(NR_BWP_Downlink_t *bwp, NR_ServingCellConfigCommon_t *scc, NR_UE_NR_Capability_t *cap) {
|
void set_dl_mcs_table(int scs, NR_UE_NR_Capability_t *cap,
|
||||||
|
NR_BWP_DownlinkDedicated_t *bwp_Dedicated,
|
||||||
|
NR_ServingCellConfigCommon_t *scc) {
|
||||||
|
|
||||||
if (cap == NULL){
|
if (cap == NULL){
|
||||||
bwp->bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table = NULL;
|
bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table = NULL;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int band = *scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0];
|
int band = *scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0];
|
||||||
int scs = bwp->bwp_Common->genericParameters.subcarrierSpacing;
|
|
||||||
struct NR_FrequencyInfoDL__scs_SpecificCarrierList scs_list = scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList;
|
struct NR_FrequencyInfoDL__scs_SpecificCarrierList scs_list = scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList;
|
||||||
int bw_rb = -1;
|
int bw_rb = -1;
|
||||||
for(int i=0; i<scs_list.list.count; i++){
|
for(int i=0; i<scs_list.list.count; i++){
|
||||||
@@ -208,12 +209,12 @@ void set_dl_mcs_table(NR_BWP_Downlink_t *bwp, NR_ServingCellConfigCommon_t *scc,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (supported && (supported_mo == NR_ModulationOrder_qam256)) {
|
if (supported && (supported_mo == NR_ModulationOrder_qam256)) {
|
||||||
if(bwp->bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table == NULL)
|
if(bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table == NULL)
|
||||||
bwp->bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table = calloc(1, sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table));
|
bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table = calloc(1, sizeof(*bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table));
|
||||||
*bwp->bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table = NR_PDSCH_Config__mcs_Table_qam256;
|
*bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table = NR_PDSCH_Config__mcs_Table_qam256;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
bwp->bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table = NULL;
|
bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -113,7 +113,9 @@ typedef struct physicalcellgroup_s{
|
|||||||
|
|
||||||
void nr_rrc_config_dl_tda(NR_ServingCellConfigCommon_t *scc);
|
void nr_rrc_config_dl_tda(NR_ServingCellConfigCommon_t *scc);
|
||||||
void nr_rrc_config_ul_tda(NR_ServingCellConfigCommon_t *scc, int min_fb_delay);
|
void nr_rrc_config_ul_tda(NR_ServingCellConfigCommon_t *scc, int min_fb_delay);
|
||||||
void set_dl_mcs_table(NR_BWP_Downlink_t *bwp, NR_ServingCellConfigCommon_t *scc, NR_UE_NR_Capability_t *cap);
|
void set_dl_mcs_table(int scs, NR_UE_NR_Capability_t *cap,
|
||||||
|
NR_BWP_DownlinkDedicated_t *bwp_Dedicated,
|
||||||
|
NR_ServingCellConfigCommon_t *scc);
|
||||||
void prepare_sim_uecap(NR_UE_NR_Capability_t *cap,
|
void prepare_sim_uecap(NR_UE_NR_Capability_t *cap,
|
||||||
NR_ServingCellConfigCommon_t *scc,
|
NR_ServingCellConfigCommon_t *scc,
|
||||||
int numerology,
|
int numerology,
|
||||||
|
|||||||
@@ -594,7 +594,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|||||||
bwp->bwp_Dedicated->pdsch_Config->choice.setup->rateMatchPatternGroup1=NULL;
|
bwp->bwp_Dedicated->pdsch_Config->choice.setup->rateMatchPatternGroup1=NULL;
|
||||||
bwp->bwp_Dedicated->pdsch_Config->choice.setup->rateMatchPatternGroup2=NULL;
|
bwp->bwp_Dedicated->pdsch_Config->choice.setup->rateMatchPatternGroup2=NULL;
|
||||||
bwp->bwp_Dedicated->pdsch_Config->choice.setup->rbg_Size=NR_PDSCH_Config__rbg_Size_config1;
|
bwp->bwp_Dedicated->pdsch_Config->choice.setup->rbg_Size=NR_PDSCH_Config__rbg_Size_config1;
|
||||||
set_dl_mcs_table(bwp, servingcellconfigcommon, uecap);
|
set_dl_mcs_table(bwp->bwp_Common->genericParameters.subcarrierSpacing, uecap, bwp->bwp_Dedicated, servingcellconfigcommon);
|
||||||
bwp->bwp_Dedicated->pdsch_Config->choice.setup->maxNrofCodeWordsScheduledByDCI = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->maxNrofCodeWordsScheduledByDCI));
|
bwp->bwp_Dedicated->pdsch_Config->choice.setup->maxNrofCodeWordsScheduledByDCI = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->maxNrofCodeWordsScheduledByDCI));
|
||||||
*bwp->bwp_Dedicated->pdsch_Config->choice.setup->maxNrofCodeWordsScheduledByDCI = NR_PDSCH_Config__maxNrofCodeWordsScheduledByDCI_n1;
|
*bwp->bwp_Dedicated->pdsch_Config->choice.setup->maxNrofCodeWordsScheduledByDCI = NR_PDSCH_Config__maxNrofCodeWordsScheduledByDCI_n1;
|
||||||
bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.present = NR_PDSCH_Config__prb_BundlingType_PR_staticBundling;
|
bwp->bwp_Dedicated->pdsch_Config->choice.setup->prb_BundlingType.present = NR_PDSCH_Config__prb_BundlingType_PR_staticBundling;
|
||||||
|
|||||||
Reference in New Issue
Block a user