|
|
|
@@ -151,47 +151,33 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
AssertFatal(servingcellconfigcommon!=NULL,"servingcellconfigcommon is null\n");
|
|
|
|
|
AssertFatal(secondaryCellGroup!=NULL,"secondaryCellGroup is null\n");
|
|
|
|
|
|
|
|
|
|
if(servingcellconfigcommon->ssb_PositionsInBurst->present !=2)
|
|
|
|
|
AssertFatal(1==0,"Currenrly implemented only for medium size SSB bitmap\n");
|
|
|
|
|
uint8_t bitmap = servingcellconfigcommon->ssb_PositionsInBurst->choice.mediumBitmap.buf[0];
|
|
|
|
|
uint64_t bitmap=0;
|
|
|
|
|
switch (servingcellconfigcommon->ssb_PositionsInBurst->present) {
|
|
|
|
|
case 1 :
|
|
|
|
|
bitmap = ((uint64_t) servingcellconfigcommon->ssb_PositionsInBurst->choice.shortBitmap.buf[0])<<56;
|
|
|
|
|
break;
|
|
|
|
|
case 2 :
|
|
|
|
|
bitmap = ((uint64_t) servingcellconfigcommon->ssb_PositionsInBurst->choice.mediumBitmap.buf[0])<<56;
|
|
|
|
|
break;
|
|
|
|
|
case 3 :
|
|
|
|
|
for (int i=0; i<8; i++) {
|
|
|
|
|
bitmap |= (((uint64_t) servingcellconfigcommon->ssb_PositionsInBurst->choice.longBitmap.buf[i])<<((7-i)*8));
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
AssertFatal(1==0,"SSB bitmap size value %d undefined (allowed values 1,2,3) \n", servingcellconfigcommon->ssb_PositionsInBurst->present);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
memset(secondaryCellGroup,0,sizeof(NR_CellGroupConfig_t));
|
|
|
|
|
secondaryCellGroup->cellGroupId = scg_id;
|
|
|
|
|
NR_RLC_BearerConfig_t *RLC_BearerConfig = calloc(1,sizeof(*RLC_BearerConfig));
|
|
|
|
|
RLC_BearerConfig->logicalChannelIdentity = 4;
|
|
|
|
|
RLC_BearerConfig->servedRadioBearer = calloc(1,sizeof(*RLC_BearerConfig->servedRadioBearer));
|
|
|
|
|
RLC_BearerConfig->servedRadioBearer->present = NR_RLC_BearerConfig__servedRadioBearer_PR_drb_Identity;
|
|
|
|
|
RLC_BearerConfig->servedRadioBearer->choice.drb_Identity=1;
|
|
|
|
|
RLC_BearerConfig->reestablishRLC=calloc(1,sizeof(*RLC_BearerConfig->reestablishRLC));
|
|
|
|
|
*RLC_BearerConfig->reestablishRLC=NR_RLC_BearerConfig__reestablishRLC_true;
|
|
|
|
|
RLC_BearerConfig->rlc_Config=calloc(1,sizeof(*RLC_BearerConfig->rlc_Config));
|
|
|
|
|
RLC_BearerConfig->rlc_Config->present = NR_RLC_Config_PR_am;
|
|
|
|
|
RLC_BearerConfig->rlc_Config->choice.am = calloc(1,sizeof(*RLC_BearerConfig->rlc_Config->choice.am));
|
|
|
|
|
RLC_BearerConfig->rlc_Config->choice.am->ul_AM_RLC.sn_FieldLength = calloc(1,sizeof(*RLC_BearerConfig->rlc_Config->choice.am->ul_AM_RLC.sn_FieldLength));
|
|
|
|
|
*RLC_BearerConfig->rlc_Config->choice.am->ul_AM_RLC.sn_FieldLength = NR_SN_FieldLengthAM_size18;
|
|
|
|
|
RLC_BearerConfig->rlc_Config->choice.am->ul_AM_RLC.t_PollRetransmit = NR_T_PollRetransmit_ms45;
|
|
|
|
|
RLC_BearerConfig->rlc_Config->choice.am->ul_AM_RLC.pollPDU = NR_PollPDU_p64;
|
|
|
|
|
RLC_BearerConfig->rlc_Config->choice.am->ul_AM_RLC.pollByte = NR_PollByte_kB500;
|
|
|
|
|
RLC_BearerConfig->rlc_Config->choice.am->ul_AM_RLC.maxRetxThreshold = NR_UL_AM_RLC__maxRetxThreshold_t32;
|
|
|
|
|
RLC_BearerConfig->rlc_Config->choice.am->dl_AM_RLC.sn_FieldLength = calloc(1,sizeof(*RLC_BearerConfig->rlc_Config->choice.am->dl_AM_RLC.sn_FieldLength));
|
|
|
|
|
*RLC_BearerConfig->rlc_Config->choice.am->dl_AM_RLC.sn_FieldLength = NR_SN_FieldLengthAM_size18;
|
|
|
|
|
RLC_BearerConfig->rlc_Config->choice.am->dl_AM_RLC.t_Reassembly = NR_T_Reassembly_ms15;
|
|
|
|
|
RLC_BearerConfig->rlc_Config->choice.am->dl_AM_RLC.t_StatusProhibit = NR_T_StatusProhibit_ms15;
|
|
|
|
|
RLC_BearerConfig->mac_LogicalChannelConfig = calloc(1,sizeof(*RLC_BearerConfig->mac_LogicalChannelConfig));
|
|
|
|
|
RLC_BearerConfig->mac_LogicalChannelConfig->ul_SpecificParameters = calloc(1,sizeof(*RLC_BearerConfig->mac_LogicalChannelConfig->ul_SpecificParameters));
|
|
|
|
|
RLC_BearerConfig->mac_LogicalChannelConfig->ul_SpecificParameters->priority = 1;
|
|
|
|
|
RLC_BearerConfig->mac_LogicalChannelConfig->ul_SpecificParameters->prioritisedBitRate = NR_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity;
|
|
|
|
|
RLC_BearerConfig->mac_LogicalChannelConfig->ul_SpecificParameters->bucketSizeDuration = NR_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50;
|
|
|
|
|
RLC_BearerConfig->mac_LogicalChannelConfig->ul_SpecificParameters->allowedServingCells = NULL;
|
|
|
|
|
RLC_BearerConfig->mac_LogicalChannelConfig->ul_SpecificParameters->allowedSCS_List = NULL;
|
|
|
|
|
RLC_BearerConfig->mac_LogicalChannelConfig->ul_SpecificParameters->maxPUSCH_Duration = NULL;
|
|
|
|
|
RLC_BearerConfig->mac_LogicalChannelConfig->ul_SpecificParameters->configuredGrantType1Allowed = NULL;
|
|
|
|
|
RLC_BearerConfig->mac_LogicalChannelConfig->ul_SpecificParameters->logicalChannelGroup = calloc(1,sizeof(*RLC_BearerConfig->mac_LogicalChannelConfig->ul_SpecificParameters->logicalChannelGroup));
|
|
|
|
|
*RLC_BearerConfig->mac_LogicalChannelConfig->ul_SpecificParameters->logicalChannelGroup = 1;
|
|
|
|
|
RLC_BearerConfig->mac_LogicalChannelConfig->ul_SpecificParameters->schedulingRequestID = NULL;
|
|
|
|
|
RLC_BearerConfig->mac_LogicalChannelConfig->ul_SpecificParameters->logicalChannelSR_Mask = false;
|
|
|
|
|
RLC_BearerConfig->mac_LogicalChannelConfig->ul_SpecificParameters->logicalChannelSR_DelayTimerApplied = false;
|
|
|
|
|
RLC_BearerConfig->mac_LogicalChannelConfig->ul_SpecificParameters->bitRateQueryProhibitTimer = NULL;
|
|
|
|
|
nr_rlc_bearer_init(RLC_BearerConfig);
|
|
|
|
|
if (get_softmodem_params()->do_ra)
|
|
|
|
|
nr_drb_config(RLC_BearerConfig->rlc_Config, NR_RLC_Config_PR_um_Bi_Directional);
|
|
|
|
|
else
|
|
|
|
|
nr_drb_config(RLC_BearerConfig->rlc_Config, NR_RLC_Config_PR_am);
|
|
|
|
|
nr_rlc_bearer_init_ul_spec(RLC_BearerConfig->mac_LogicalChannelConfig);
|
|
|
|
|
|
|
|
|
|
secondaryCellGroup->rlc_BearerToAddModList = calloc(1,sizeof(*secondaryCellGroup->rlc_BearerToAddModList));
|
|
|
|
|
ASN_SEQUENCE_ADD(&secondaryCellGroup->rlc_BearerToAddModList->list, RLC_BearerConfig);
|
|
|
|
|
secondaryCellGroup->mac_CellGroupConfig=calloc(1,sizeof(*secondaryCellGroup->mac_CellGroupConfig));
|
|
|
|
@@ -249,18 +235,46 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->occasions= calloc(1,sizeof(struct NR_CFRA__occasions));
|
|
|
|
|
memcpy(&secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->occasions->rach_ConfigGeneric,
|
|
|
|
|
&servingcellconfigcommon->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->rach_ConfigGeneric, sizeof(NR_RACH_ConfigGeneric_t));
|
|
|
|
|
//secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->occasions->ssb_perRACH_Occasion= calloc(1,sizeof(long));
|
|
|
|
|
//*secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->occasions->ssb_perRACH_Occasion = NR_CFRA__occasions__ssb_perRACH_Occasion_one;
|
|
|
|
|
secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->occasions->ssb_perRACH_Occasion= NULL;
|
|
|
|
|
secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->occasions->ssb_perRACH_Occasion= calloc(1,sizeof(long));
|
|
|
|
|
*secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->occasions->ssb_perRACH_Occasion = NR_CFRA__occasions__ssb_perRACH_Occasion_one;
|
|
|
|
|
secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->resources.present = NR_CFRA__resources_PR_ssb;
|
|
|
|
|
secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->resources.choice.ssb = calloc(1,sizeof(struct NR_CFRA__resources__ssb));
|
|
|
|
|
secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->resources.choice.ssb->ra_ssb_OccasionMaskIndex = 0;
|
|
|
|
|
//from NR_CSI_Reporting branch
|
|
|
|
|
struct NR_CFRA_SSB_Resource *ssbElem = calloc(1,sizeof(struct NR_CFRA_SSB_Resource));
|
|
|
|
|
ssbElem->ssb = 0;
|
|
|
|
|
ssbElem->ra_PreambleIndex= 63;
|
|
|
|
|
ASN_SEQUENCE_ADD(&secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->resources.choice.ssb->ssb_ResourceList.list,ssbElem);
|
|
|
|
|
//
|
|
|
|
|
struct NR_CFRA_SSB_Resource *ssbElem[8];
|
|
|
|
|
ssbElem[0] = calloc(1,sizeof(struct NR_CFRA_SSB_Resource));
|
|
|
|
|
ssbElem[0]->ssb = 0;
|
|
|
|
|
ssbElem[0]->ra_PreambleIndex = 63;
|
|
|
|
|
ASN_SEQUENCE_ADD(&secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->resources.choice.ssb->ssb_ResourceList.list,ssbElem[0]);
|
|
|
|
|
#if 0
|
|
|
|
|
ssbElem[1] = calloc(1,sizeof(struct NR_CFRA_SSB_Resource));
|
|
|
|
|
ssbElem[1]->ssb = 1;
|
|
|
|
|
ssbElem[1]->ra_PreambleIndex = 62;
|
|
|
|
|
ASN_SEQUENCE_ADD(&secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->resources.choice.ssb->ssb_ResourceList.list,ssbElem[1]);
|
|
|
|
|
ssbElem[2] = calloc(1,sizeof(struct NR_CFRA_SSB_Resource));
|
|
|
|
|
ssbElem[2]->ssb = 2;
|
|
|
|
|
ssbElem[2]->ra_PreambleIndex = 63;
|
|
|
|
|
ASN_SEQUENCE_ADD(&secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->resources.choice.ssb->ssb_ResourceList.list,ssbElem[2]);
|
|
|
|
|
ssbElem[3] = calloc(1,sizeof(struct NR_CFRA_SSB_Resource));
|
|
|
|
|
ssbElem[3]->ssb = 3;
|
|
|
|
|
ssbElem[3]->ra_PreambleIndex = 63;
|
|
|
|
|
ASN_SEQUENCE_ADD(&secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->resources.choice.ssb->ssb_ResourceList.list,ssbElem[3]);
|
|
|
|
|
ssbElem[4] = calloc(1,sizeof(struct NR_CFRA_SSB_Resource));
|
|
|
|
|
ssbElem[4]->ssb = 4;
|
|
|
|
|
ssbElem[4]->ra_PreambleIndex = 63;
|
|
|
|
|
ASN_SEQUENCE_ADD(&secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->resources.choice.ssb->ssb_ResourceList.list,ssbElem[4]);
|
|
|
|
|
ssbElem[5] = calloc(1,sizeof(struct NR_CFRA_SSB_Resource));
|
|
|
|
|
ssbElem[5]->ssb = 5;
|
|
|
|
|
ssbElem[5]->ra_PreambleIndex = 63;
|
|
|
|
|
ASN_SEQUENCE_ADD(&secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->resources.choice.ssb->ssb_ResourceList.list,ssbElem[5]);
|
|
|
|
|
ssbElem[6] = calloc(1,sizeof(struct NR_CFRA_SSB_Resource));
|
|
|
|
|
ssbElem[6]->ssb = 6;
|
|
|
|
|
ssbElem[6]->ra_PreambleIndex = 63;
|
|
|
|
|
ASN_SEQUENCE_ADD(&secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->resources.choice.ssb->ssb_ResourceList.list,ssbElem[6]);
|
|
|
|
|
ssbElem[7] = calloc(1,sizeof(struct NR_CFRA_SSB_Resource));
|
|
|
|
|
ssbElem[7]->ssb = 7;
|
|
|
|
|
ssbElem[7]->ra_PreambleIndex = 63;
|
|
|
|
|
ASN_SEQUENCE_ADD(&secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->resources.choice.ssb->ssb_ResourceList.list,ssbElem[7]);
|
|
|
|
|
#endif
|
|
|
|
|
secondaryCellGroup->spCellConfig->reconfigurationWithSync->rach_ConfigDedicated->choice.uplink->cfra->ext1 = NULL;
|
|
|
|
|
secondaryCellGroup->spCellConfig->rlf_TimersAndConstants = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->rlf_TimersAndConstants));
|
|
|
|
|
secondaryCellGroup->spCellConfig->rlf_TimersAndConstants->present = NR_SetupRelease_RLF_TimersAndConstants_PR_setup;
|
|
|
|
@@ -269,7 +283,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
secondaryCellGroup->spCellConfig->rlf_TimersAndConstants->choice.setup->n310 = NR_RLF_TimersAndConstants__n310_n10;
|
|
|
|
|
secondaryCellGroup->spCellConfig->rlf_TimersAndConstants->choice.setup->n311 = NR_RLF_TimersAndConstants__n311_n1;
|
|
|
|
|
secondaryCellGroup->spCellConfig->rlf_TimersAndConstants->choice.setup->ext1 = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->rlf_TimersAndConstants->choice.setup->ext1));
|
|
|
|
|
secondaryCellGroup->spCellConfig->rlf_TimersAndConstants->choice.setup->ext1->t311_v1530 = NR_RLF_TimersAndConstants__ext1__t311_v1530_ms30000;
|
|
|
|
|
secondaryCellGroup->spCellConfig->rlf_TimersAndConstants->choice.setup->ext1->t311 = NR_RLF_TimersAndConstants__ext1__t311_ms30000;
|
|
|
|
|
secondaryCellGroup->spCellConfig->rlmInSyncOutOfSyncThreshold = NULL;
|
|
|
|
|
secondaryCellGroup->spCellConfig->spCellConfigDedicated = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated));
|
|
|
|
|
secondaryCellGroup->spCellConfig->spCellConfigDedicated->tdd_UL_DL_ConfigurationDedicated = NULL;
|
|
|
|
@@ -296,11 +310,11 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->tci_StatesToAddModList=calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->tci_StatesToAddModList));
|
|
|
|
|
//NR_CSI_Reporting branch
|
|
|
|
|
|
|
|
|
|
int n_ssb = 0;
|
|
|
|
|
NR_TCI_State_t *tcic[8];
|
|
|
|
|
for (int i=0;i<8;i++) {
|
|
|
|
|
if ((bitmap>>(7-i))&0x01){
|
|
|
|
|
NR_TCI_State_t *tcic[64];
|
|
|
|
|
for (int i=0;i<64;i++) {
|
|
|
|
|
if ((bitmap>>(63-i))&0x01){
|
|
|
|
|
tcic[i]=calloc(1,sizeof(*tcic[i]));
|
|
|
|
|
tcic[i]->tci_StateId=n_ssb;
|
|
|
|
|
tcic[i]->qcl_Type1.cell=NULL;
|
|
|
|
@@ -314,7 +328,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
|
|
|
|
|
|
NR_TCI_State_t*tci0=calloc(1,sizeof(*tci0));
|
|
|
|
@@ -409,7 +423,12 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->rateMatchPatternGroup1=NULL;
|
|
|
|
|
secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->rateMatchPatternGroup2=NULL;
|
|
|
|
|
secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->rbg_Size=NR_PDSCH_Config__rbg_Size_config1;
|
|
|
|
|
secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->mcs_Table=NULL;
|
|
|
|
|
if (!get_softmodem_params()->use_256qam_table) {
|
|
|
|
|
secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->mcs_Table=NULL;
|
|
|
|
|
} else {
|
|
|
|
|
secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->mcs_Table = calloc(1, sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->mcs_Table));
|
|
|
|
|
*secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->mcs_Table = NR_PDSCH_Config__mcs_Table_qam256;
|
|
|
|
|
}
|
|
|
|
|
secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->maxNrofCodeWordsScheduledByDCI = calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->maxNrofCodeWordsScheduledByDCI));
|
|
|
|
|
*secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->maxNrofCodeWordsScheduledByDCI = NR_PDSCH_Config__maxNrofCodeWordsScheduledByDCI_n1;
|
|
|
|
|
secondaryCellGroup->spCellConfig->spCellConfigDedicated->initialDownlinkBWP->pdsch_Config->choice.setup->prb_BundlingType.present = NR_PDSCH_Config__prb_BundlingType_PR_staticBundling;
|
|
|
|
@@ -459,12 +478,21 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->controlResourceSetZero=NULL;
|
|
|
|
|
bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonControlResourceSet=calloc(1,sizeof(*bwp->bwp_Common->pdcch_ConfigCommon->choice.setup->commonControlResourceSet));
|
|
|
|
|
|
|
|
|
|
int curr_bwp = NRRIV2BW(bwp->bwp_Common->genericParameters.locationAndBandwidth,275);
|
|
|
|
|
|
|
|
|
|
NR_ControlResourceSet_t *coreset = calloc(1,sizeof(*coreset));
|
|
|
|
|
coreset->controlResourceSetId=1;
|
|
|
|
|
// frequencyDomainResources '11111111 11111111 00000000 00000000 00000000 00000'B,
|
|
|
|
|
// frequency domain resources depends on BWP size
|
|
|
|
|
// options are 24, 48 or 96
|
|
|
|
|
coreset->frequencyDomainResources.buf = calloc(1,6);
|
|
|
|
|
coreset->frequencyDomainResources.buf[0] = 0xff;
|
|
|
|
|
coreset->frequencyDomainResources.buf[1] = 0xff;
|
|
|
|
|
if (curr_bwp < 48)
|
|
|
|
|
coreset->frequencyDomainResources.buf[0] = 0xf0;
|
|
|
|
|
else
|
|
|
|
|
coreset->frequencyDomainResources.buf[0] = 0xff;
|
|
|
|
|
if (curr_bwp < 96)
|
|
|
|
|
coreset->frequencyDomainResources.buf[1] = 0;
|
|
|
|
|
else
|
|
|
|
|
coreset->frequencyDomainResources.buf[1] = 0xff;
|
|
|
|
|
coreset->frequencyDomainResources.buf[2] = 0;
|
|
|
|
|
coreset->frequencyDomainResources.buf[3] = 0;
|
|
|
|
|
coreset->frequencyDomainResources.buf[4] = 0;
|
|
|
|
@@ -476,9 +504,9 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
coreset->precoderGranularity = NR_ControlResourceSet__precoderGranularity_sameAsREG_bundle;
|
|
|
|
|
|
|
|
|
|
coreset->tci_StatesPDCCH_ToAddList=calloc(1,sizeof(*coreset->tci_StatesPDCCH_ToAddList));
|
|
|
|
|
NR_TCI_StateId_t *tci[8];
|
|
|
|
|
for (int i=0;i<8;i++) {
|
|
|
|
|
if ((bitmap>>(7-i))&0x01){//NR_CSI_Reporting
|
|
|
|
|
NR_TCI_StateId_t *tci[64];
|
|
|
|
|
for (int i=0;i<64;i++) {
|
|
|
|
|
if ((bitmap>>(63-i))&0x01){
|
|
|
|
|
tci[i]=calloc(1,sizeof(*tci[i]));
|
|
|
|
|
*tci[i] = i;
|
|
|
|
|
ASN_SEQUENCE_ADD(&coreset->tci_StatesPDCCH_ToAddList->list,tci[i]);
|
|
|
|
@@ -578,7 +606,12 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
ss2->nrofCandidates=calloc(1,sizeof(*ss2->nrofCandidates));
|
|
|
|
|
ss2->nrofCandidates->aggregationLevel1 = NR_SearchSpace__nrofCandidates__aggregationLevel1_n0;
|
|
|
|
|
ss2->nrofCandidates->aggregationLevel2 = NR_SearchSpace__nrofCandidates__aggregationLevel2_n0;
|
|
|
|
|
ss2->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n4;
|
|
|
|
|
if (curr_bwp < 48)
|
|
|
|
|
ss2->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n1;
|
|
|
|
|
else if (curr_bwp < 96)
|
|
|
|
|
ss2->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n2;
|
|
|
|
|
else
|
|
|
|
|
ss2->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n4;
|
|
|
|
|
ss2->nrofCandidates->aggregationLevel8 = NR_SearchSpace__nrofCandidates__aggregationLevel8_n0;
|
|
|
|
|
ss2->nrofCandidates->aggregationLevel16 = NR_SearchSpace__nrofCandidates__aggregationLevel16_n0;
|
|
|
|
|
ss2->searchSpaceType=calloc(1,sizeof(*ss2->searchSpaceType));
|
|
|
|
@@ -611,10 +644,9 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_AdditionalPosition = calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_AdditionalPosition));
|
|
|
|
|
*bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->dmrs_AdditionalPosition = NR_DMRS_DownlinkConfig__dmrs_AdditionalPosition_pos0;
|
|
|
|
|
|
|
|
|
|
//NR_CSI_Reporting
|
|
|
|
|
//bwp->bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToAddModList=NULL;
|
|
|
|
|
bwp->bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToAddModList=calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToAddModList));
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
|
bwp->bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToAddModList=calloc(1,sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToAddModList));
|
|
|
|
|
|
|
|
|
@@ -697,14 +729,13 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
tcid7->qcl_Type1.referenceSignal.choice.csi_rs = 30;
|
|
|
|
|
tcid7->qcl_Type1.qcl_Type=NR_QCL_Info__qcl_Type_typeA;
|
|
|
|
|
ASN_SEQUENCE_ADD(&bwp->bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToAddModList->list,tcid7);
|
|
|
|
|
//NR_CSI_Reporting
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n_ssb = 0;
|
|
|
|
|
NR_TCI_State_t *tcid[8];
|
|
|
|
|
for (int i=0;i<8;i++) {
|
|
|
|
|
if ((bitmap>>(7-i))&0x01){
|
|
|
|
|
NR_TCI_State_t *tcid[64];
|
|
|
|
|
for (int i=0;i<64;i++) {
|
|
|
|
|
if ((bitmap>>(63-i))&0x01){
|
|
|
|
|
tcid[i]=calloc(1,sizeof(*tcid[i]));
|
|
|
|
|
tcid[i]->tci_StateId=n_ssb;
|
|
|
|
|
tcid[i]->qcl_Type1.cell=NULL;
|
|
|
|
@@ -717,7 +748,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
n_ssb++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bwp->bwp_Dedicated->pdsch_Config->choice.setup->tci_StatesToReleaseList=NULL;
|
|
|
|
|
bwp->bwp_Dedicated->pdsch_Config->choice.setup->vrb_ToPRB_Interleaver=NULL;
|
|
|
|
@@ -729,7 +760,12 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
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->rbg_Size=NR_PDSCH_Config__rbg_Size_config1;
|
|
|
|
|
bwp->bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table=NULL;
|
|
|
|
|
if (!get_softmodem_params()->use_256qam_table) {
|
|
|
|
|
bwp->bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table=NULL;
|
|
|
|
|
} else {
|
|
|
|
|
bwp->bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table = calloc(1, sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table));
|
|
|
|
|
*bwp->bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table = NR_PDSCH_Config__mcs_Table_qam256;
|
|
|
|
|
}
|
|
|
|
|
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->prb_BundlingType.present = NR_PDSCH_Config__prb_BundlingType_PR_staticBundling;
|
|
|
|
@@ -755,7 +791,12 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
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->rbg_Size=NR_PDSCH_Config__rbg_Size_config1;
|
|
|
|
|
bwp->bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table=NULL;
|
|
|
|
|
if (!get_softmodem_params()->use_256qam_table) {
|
|
|
|
|
bwp->bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table=NULL;
|
|
|
|
|
} else {
|
|
|
|
|
bwp->bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table = calloc(1, sizeof(*bwp->bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table));
|
|
|
|
|
*bwp->bwp_Dedicated->pdsch_Config->choice.setup->mcs_Table = NR_PDSCH_Config__mcs_Table_qam256;
|
|
|
|
|
}
|
|
|
|
|
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->prb_BundlingType.present = NR_PDSCH_Config__prb_BundlingType_PR_staticBundling;
|
|
|
|
@@ -943,7 +984,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
ASN_SEQUENCE_ADD(&pucchresset0->resourceList.list,pucchresset0id0);
|
|
|
|
|
*pucchresset0id1=2;
|
|
|
|
|
ASN_SEQUENCE_ADD(&pucchresset0->resourceList.list,pucchresset0id1);
|
|
|
|
|
pucchresset0->maxPayloadMinus1=NULL;
|
|
|
|
|
pucchresset0->maxPayloadSize=NULL;
|
|
|
|
|
|
|
|
|
|
ASN_SEQUENCE_ADD(&pucch_Config->resourceSetToAddModList->list,pucchresset0);
|
|
|
|
|
|
|
|
|
@@ -954,7 +995,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
ASN_SEQUENCE_ADD(&pucchresset1->resourceList.list,pucchresset1id0);
|
|
|
|
|
*pucchresset1id1=4;
|
|
|
|
|
ASN_SEQUENCE_ADD(&pucchresset1->resourceList.list,pucchresset1id1);
|
|
|
|
|
pucchresset1->maxPayloadMinus1=NULL;
|
|
|
|
|
pucchresset1->maxPayloadSize=NULL;
|
|
|
|
|
ASN_SEQUENCE_ADD(&pucch_Config->resourceSetToAddModList->list,pucchresset1);
|
|
|
|
|
|
|
|
|
|
pucch_Config->resourceToAddModList = calloc(1,sizeof(*pucch_Config->resourceToAddModList));
|
|
|
|
@@ -964,7 +1005,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
NR_PUCCH_Resource_t *pucchres2=calloc(1,sizeof(*pucchres2));
|
|
|
|
|
NR_PUCCH_Resource_t *pucchres3=calloc(1,sizeof(*pucchres3));
|
|
|
|
|
pucchres0->pucch_ResourceId=1;
|
|
|
|
|
pucchres0->startingPRB=48;
|
|
|
|
|
pucchres0->startingPRB=8;
|
|
|
|
|
pucchres0->intraSlotFrequencyHopping=NULL;
|
|
|
|
|
pucchres0->secondHopPRB=NULL;
|
|
|
|
|
pucchres0->format.present= NR_PUCCH_Resource__format_PR_format0;
|
|
|
|
@@ -975,7 +1016,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
ASN_SEQUENCE_ADD(&pucch_Config->resourceToAddModList->list,pucchres0);
|
|
|
|
|
|
|
|
|
|
pucchres1->pucch_ResourceId=2;
|
|
|
|
|
pucchres1->startingPRB=48;
|
|
|
|
|
pucchres1->startingPRB=8;
|
|
|
|
|
pucchres1->intraSlotFrequencyHopping=NULL;
|
|
|
|
|
pucchres1->secondHopPRB=NULL;
|
|
|
|
|
pucchres1->format.present= NR_PUCCH_Resource__format_PR_format0;
|
|
|
|
@@ -986,23 +1027,23 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
ASN_SEQUENCE_ADD(&pucch_Config->resourceToAddModList->list,pucchres1);
|
|
|
|
|
|
|
|
|
|
pucchres2->pucch_ResourceId=3;
|
|
|
|
|
pucchres2->startingPRB=40;
|
|
|
|
|
pucchres2->startingPRB=0;
|
|
|
|
|
pucchres2->intraSlotFrequencyHopping=NULL;
|
|
|
|
|
pucchres2->secondHopPRB=NULL;
|
|
|
|
|
pucchres2->format.present= NR_PUCCH_Resource__format_PR_format2;
|
|
|
|
|
pucchres2->format.choice.format2=calloc(1,sizeof(*pucchres2->format.choice.format2));
|
|
|
|
|
pucchres2->format.choice.format2->nrofPRBs=16;
|
|
|
|
|
pucchres2->format.choice.format2->nrofPRBs=8;
|
|
|
|
|
pucchres2->format.choice.format2->nrofSymbols=1;
|
|
|
|
|
pucchres2->format.choice.format2->startingSymbolIndex=13;
|
|
|
|
|
ASN_SEQUENCE_ADD(&pucch_Config->resourceToAddModList->list,pucchres2);
|
|
|
|
|
|
|
|
|
|
pucchres3->pucch_ResourceId=4;
|
|
|
|
|
pucchres3->startingPRB=40;
|
|
|
|
|
pucchres3->startingPRB=0;
|
|
|
|
|
pucchres3->intraSlotFrequencyHopping=NULL;
|
|
|
|
|
pucchres3->secondHopPRB=NULL;
|
|
|
|
|
pucchres3->format.present= NR_PUCCH_Resource__format_PR_format2;
|
|
|
|
|
pucchres3->format.choice.format2=calloc(1,sizeof(*pucchres3->format.choice.format2));
|
|
|
|
|
pucchres3->format.choice.format2->nrofPRBs=16;
|
|
|
|
|
pucchres3->format.choice.format2->nrofPRBs=8;
|
|
|
|
|
pucchres3->format.choice.format2->nrofSymbols=1;
|
|
|
|
|
pucchres3->format.choice.format2->startingSymbolIndex=12;
|
|
|
|
|
ASN_SEQUENCE_ADD(&pucch_Config->resourceToAddModList->list,pucchres3);
|
|
|
|
@@ -1014,7 +1055,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
pucchfmt2->interslotFrequencyHopping=NULL;
|
|
|
|
|
pucchfmt2->additionalDMRS=NULL;
|
|
|
|
|
pucchfmt2->maxCodeRate=calloc(1,sizeof(*pucchfmt2->maxCodeRate));
|
|
|
|
|
*pucchfmt2->maxCodeRate=NR_PUCCH_MaxCodeRate_zeroDot15;
|
|
|
|
|
*pucchfmt2->maxCodeRate=NR_PUCCH_MaxCodeRate_zeroDot25;
|
|
|
|
|
pucchfmt2->nrofSlots=NULL;
|
|
|
|
|
pucchfmt2->pi2BPSK=NULL;
|
|
|
|
|
pucchfmt2->simultaneousHARQ_ACK_CSI=NULL;
|
|
|
|
@@ -1125,45 +1166,14 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
|
|
|
|
|
NR_CSI_SSB_ResourceSet_t *ssbresset0 = calloc(1,sizeof(*ssbresset0));
|
|
|
|
|
ssbresset0->csi_SSB_ResourceSetId=0;
|
|
|
|
|
if ((bitmap>>7)&0x01){
|
|
|
|
|
NR_SSB_Index_t *ssbresset00=calloc(1,sizeof(*ssbresset00));
|
|
|
|
|
*ssbresset00=0;
|
|
|
|
|
ASN_SEQUENCE_ADD(&ssbresset0->csi_SSB_ResourceList.list,ssbresset00);
|
|
|
|
|
}
|
|
|
|
|
if ((bitmap>>6)&0x01) {
|
|
|
|
|
NR_SSB_Index_t *ssbresset01=calloc(1,sizeof(*ssbresset01));
|
|
|
|
|
*ssbresset01=1;
|
|
|
|
|
ASN_SEQUENCE_ADD(&ssbresset0->csi_SSB_ResourceList.list,ssbresset01);
|
|
|
|
|
}
|
|
|
|
|
if ((bitmap>>5)&0x01) {
|
|
|
|
|
NR_SSB_Index_t *ssbresset02=calloc(1,sizeof(*ssbresset02));
|
|
|
|
|
*ssbresset02=2;
|
|
|
|
|
ASN_SEQUENCE_ADD(&ssbresset0->csi_SSB_ResourceList.list,ssbresset02);
|
|
|
|
|
}
|
|
|
|
|
if ((bitmap>>4)&0x01) {
|
|
|
|
|
NR_SSB_Index_t *ssbresset03=calloc(1,sizeof(*ssbresset03));
|
|
|
|
|
*ssbresset03=3;
|
|
|
|
|
ASN_SEQUENCE_ADD(&ssbresset0->csi_SSB_ResourceList.list,ssbresset03);
|
|
|
|
|
}
|
|
|
|
|
if ((bitmap>>3)&0x01) {
|
|
|
|
|
NR_SSB_Index_t *ssbresset04=calloc(1,sizeof(*ssbresset04));
|
|
|
|
|
*ssbresset04=4;
|
|
|
|
|
ASN_SEQUENCE_ADD(&ssbresset0->csi_SSB_ResourceList.list,ssbresset04);
|
|
|
|
|
}
|
|
|
|
|
if ((bitmap>>2)&0x01) {
|
|
|
|
|
NR_SSB_Index_t *ssbresset05=calloc(1,sizeof(*ssbresset05));
|
|
|
|
|
*ssbresset05=5;
|
|
|
|
|
ASN_SEQUENCE_ADD(&ssbresset0->csi_SSB_ResourceList.list,ssbresset05);
|
|
|
|
|
}
|
|
|
|
|
if ((bitmap>>1)&0x01) {
|
|
|
|
|
NR_SSB_Index_t *ssbresset06=calloc(1,sizeof(*ssbresset06));
|
|
|
|
|
*ssbresset06=6;
|
|
|
|
|
ASN_SEQUENCE_ADD(&ssbresset0->csi_SSB_ResourceList.list,ssbresset06);
|
|
|
|
|
}
|
|
|
|
|
if ((bitmap)&0x01) {
|
|
|
|
|
NR_SSB_Index_t *ssbresset07=calloc(1,sizeof(*ssbresset07));
|
|
|
|
|
*ssbresset07=7;
|
|
|
|
|
ASN_SEQUENCE_ADD(&ssbresset0->csi_SSB_ResourceList.list,ssbresset07);
|
|
|
|
|
|
|
|
|
|
NR_SSB_Index_t *ssbresset[64];
|
|
|
|
|
for (int i=0;i<64;i++) {
|
|
|
|
|
if ((bitmap>>(63-i))&0x01){
|
|
|
|
|
ssbresset[i]=calloc(1,sizeof(*ssbresset[i]));
|
|
|
|
|
*ssbresset[i] = i;
|
|
|
|
|
ASN_SEQUENCE_ADD(&ssbresset0->csi_SSB_ResourceList.list,ssbresset[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_SSB_ResourceSetToAddModList->list,ssbresset0);
|
|
|
|
|
|
|
|
|
@@ -1173,14 +1183,10 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
csires0->csi_ResourceConfigId=0;
|
|
|
|
|
csires0->csi_RS_ResourceSetList.present = NR_CSI_ResourceConfig__csi_RS_ResourceSetList_PR_nzp_CSI_RS_SSB;
|
|
|
|
|
csires0->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB = calloc(1,sizeof(*csires0->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB));
|
|
|
|
|
csires0->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->nzp_CSI_RS_ResourceSetList = NULL; //calloc(1,sizeof(*csires0->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->nzp_CSI_RS_ResourceSetList));
|
|
|
|
|
csires0->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->csi_SSB_ResourceSetList = calloc(1,sizeof(*csires0->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->csi_SSB_ResourceSetList));//NULL;
|
|
|
|
|
//NR_NZP_CSI_RS_ResourceSetId_t *csires00 = calloc(1,sizeof(*csires00));
|
|
|
|
|
//For verification of CSI measurment for SSB
|
|
|
|
|
csires0->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->nzp_CSI_RS_ResourceSetList = NULL;
|
|
|
|
|
csires0->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->csi_SSB_ResourceSetList = calloc(1,sizeof(*csires0->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->csi_SSB_ResourceSetList));
|
|
|
|
|
NR_CSI_SSB_ResourceSetId_t *ssbres00 = calloc(1,sizeof(*ssbres00));
|
|
|
|
|
//*csires00 = 0;
|
|
|
|
|
*ssbres00 = 0;
|
|
|
|
|
//ASN_SEQUENCE_ADD(&csires0->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->nzp_CSI_RS_ResourceSetList->list,csires00);
|
|
|
|
|
ASN_SEQUENCE_ADD(&csires0->csi_RS_ResourceSetList.choice.nzp_CSI_RS_SSB->csi_SSB_ResourceSetList->list,ssbres00);
|
|
|
|
|
csires0->bwp_Id = 1;
|
|
|
|
|
csires0->resourceType = NR_CSI_ResourceConfig__resourceType_periodic;
|
|
|
|
@@ -1191,7 +1197,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
NR_CSI_ReportConfig_t *csirep1 = calloc(1,sizeof(*csirep1));
|
|
|
|
|
csirep1->reportConfigId=0;
|
|
|
|
|
csirep1->carrier=NULL;
|
|
|
|
|
csirep1->resourcesForChannelMeasurement=0;//initial_csi_index; Just for verification
|
|
|
|
|
csirep1->resourcesForChannelMeasurement=0;
|
|
|
|
|
csirep1->csi_IM_ResourcesForInterference=NULL;
|
|
|
|
|
csirep1->nzp_CSI_RS_ResourcesForInterference=NULL;
|
|
|
|
|
csirep1->reportConfigType.present = NR_CSI_ReportConfig__reportConfigType_PR_periodic;
|
|
|
|
@@ -1200,7 +1206,7 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
csirep1->reportConfigType.choice.periodic->reportSlotConfig.choice.slots320 = 49;
|
|
|
|
|
NR_PUCCH_CSI_Resource_t *pucchcsires1 = calloc(1,sizeof(*pucchcsires1));
|
|
|
|
|
pucchcsires1->uplinkBandwidthPartId=1;
|
|
|
|
|
pucchcsires1->pucch_Resource=3;//4;//12;
|
|
|
|
|
pucchcsires1->pucch_Resource=3;
|
|
|
|
|
ASN_SEQUENCE_ADD(&csirep1->reportConfigType.choice.periodic->pucch_CSI_ResourceList.list,pucchcsires1);
|
|
|
|
|
csirep1->reportQuantity.present = NR_CSI_ReportConfig__reportQuantity_PR_ssb_Index_RSRP;
|
|
|
|
|
csirep1->reportQuantity.choice.ssb_Index_RSRP=(NULL_t)0;
|
|
|
|
@@ -1247,7 +1253,6 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|
|
|
|
|
|
|
|
|
ASN_SEQUENCE_ADD(&csi_MeasConfig->csi_ReportConfigToAddModList->list,csirep1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
secondaryCellGroup->spCellConfig->spCellConfigDedicated->sCellDeactivationTimer=NULL;
|
|
|
|
|
secondaryCellGroup->spCellConfig->spCellConfigDedicated->crossCarrierSchedulingConfig=NULL;
|
|
|
|
|
secondaryCellGroup->spCellConfig->spCellConfigDedicated->tag_Id=0;
|
|
|
|
@@ -2528,3 +2533,4 @@ void rrc_config_dl_ptrs_params(NR_BWP_Downlink_t *bwp, int *ptrsNrb, int *ptrsMc
|
|
|
|
|
*bwp->bwp_Dedicated->pdsch_Config->choice.setup->dmrs_DownlinkForPDSCH_MappingTypeA->choice.setup->phaseTrackingRS->choice.setup->resourceElementOffset = *reOffset;
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|