|
|
|
@@ -324,7 +324,7 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
|
|
|
|
|
|
|
|
|
|
// cellSelectionInfo
|
|
|
|
|
sib1->cellSelectionInfo = CALLOC(1,sizeof(struct NR_SIB1__cellSelectionInfo));
|
|
|
|
|
sib1->cellSelectionInfo->q_RxLevMin = -50;
|
|
|
|
|
sib1->cellSelectionInfo->q_RxLevMin = -65;
|
|
|
|
|
|
|
|
|
|
// cellAccessRelatedInfo
|
|
|
|
|
struct NR_PLMN_IdentityInfo *nr_plmn_info=CALLOC(1,sizeof(struct NR_PLMN_IdentityInfo));
|
|
|
|
@@ -357,7 +357,7 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
|
|
|
|
|
nr_plmn_info->cellIdentity.buf[4]= (configuration->cell_identity << 4) & 0xff;
|
|
|
|
|
nr_plmn_info->cellIdentity.size= 5;
|
|
|
|
|
nr_plmn_info->cellIdentity.bits_unused= 4;
|
|
|
|
|
nr_plmn_info->cellReservedForOperatorUse = NR_PLMN_IdentityInfo__cellReservedForOperatorUse_reserved;
|
|
|
|
|
nr_plmn_info->cellReservedForOperatorUse = NR_PLMN_IdentityInfo__cellReservedForOperatorUse_notReserved;
|
|
|
|
|
|
|
|
|
|
nr_plmn_info->trackingAreaCode = CALLOC(1,sizeof(NR_TrackingAreaCode_t));
|
|
|
|
|
nr_plmn_info->trackingAreaCode->buf = CALLOC(1,3);
|
|
|
|
@@ -373,17 +373,35 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
|
|
|
|
|
// TODO: add connEstFailureControl
|
|
|
|
|
|
|
|
|
|
//si-SchedulingInfo
|
|
|
|
|
/*sib1->si_SchedulingInfo = CALLOC(1,sizeof(struct NR_SI_SchedulingInfo));
|
|
|
|
|
sib1->si_SchedulingInfo = CALLOC(1,sizeof(struct NR_SI_SchedulingInfo));
|
|
|
|
|
asn_set_empty(&sib1->si_SchedulingInfo->schedulingInfoList.list);
|
|
|
|
|
sib1->si_SchedulingInfo->si_WindowLength = NR_SI_SchedulingInfo__si_WindowLength_s20;
|
|
|
|
|
sib1->si_SchedulingInfo->si_WindowLength = NR_SI_SchedulingInfo__si_WindowLength_s40;
|
|
|
|
|
struct NR_SchedulingInfo *schedulingInfo = CALLOC(1,sizeof(struct NR_SchedulingInfo));
|
|
|
|
|
schedulingInfo->si_BroadcastStatus = NR_SchedulingInfo__si_BroadcastStatus_broadcasting;
|
|
|
|
|
schedulingInfo->si_Periodicity = NR_SchedulingInfo__si_Periodicity_rf8;
|
|
|
|
|
asn_set_empty(&schedulingInfo->sib_MappingInfo.list);
|
|
|
|
|
e_NR_SIB_TypeInfo__type *sib_type = CALLOC(1,sizeof(e_NR_SIB_TypeInfo__type));
|
|
|
|
|
*sib_type = NR_SIB_TypeInfo__type_sibType3;
|
|
|
|
|
ASN_SEQUENCE_ADD(&schedulingInfo->sib_MappingInfo.list,sib_type);
|
|
|
|
|
ASN_SEQUENCE_ADD(&sib1->si_SchedulingInfo->schedulingInfoList.list,schedulingInfo);*/
|
|
|
|
|
|
|
|
|
|
NR_SIB_TypeInfo_t *sib_type3 = CALLOC(1,sizeof(e_NR_SIB_TypeInfo__type));
|
|
|
|
|
sib_type3->type = NR_SIB_TypeInfo__type_sibType3;
|
|
|
|
|
sib_type3->valueTag = CALLOC(1,sizeof(sib_type3->valueTag));
|
|
|
|
|
ASN_SEQUENCE_ADD(&schedulingInfo->sib_MappingInfo.list,sib_type3);
|
|
|
|
|
|
|
|
|
|
NR_SIB_TypeInfo_t *sib_type5 = CALLOC(1,sizeof(e_NR_SIB_TypeInfo__type));
|
|
|
|
|
sib_type5->type = NR_SIB_TypeInfo__type_sibType5;
|
|
|
|
|
sib_type5->valueTag = CALLOC(1,sizeof(sib_type5->valueTag));
|
|
|
|
|
ASN_SEQUENCE_ADD(&schedulingInfo->sib_MappingInfo.list,sib_type5);
|
|
|
|
|
|
|
|
|
|
NR_SIB_TypeInfo_t *sib_type4 = CALLOC(1,sizeof(e_NR_SIB_TypeInfo__type));
|
|
|
|
|
sib_type4->type = NR_SIB_TypeInfo__type_sibType4;
|
|
|
|
|
sib_type4->valueTag = CALLOC(1,sizeof(sib_type4->valueTag));
|
|
|
|
|
ASN_SEQUENCE_ADD(&schedulingInfo->sib_MappingInfo.list,sib_type4);
|
|
|
|
|
|
|
|
|
|
NR_SIB_TypeInfo_t *sib_type2 = CALLOC(1,sizeof(e_NR_SIB_TypeInfo__type));
|
|
|
|
|
sib_type2->type = NR_SIB_TypeInfo__type_sibType2;
|
|
|
|
|
sib_type2->valueTag = CALLOC(1,sizeof(sib_type2->valueTag));
|
|
|
|
|
ASN_SEQUENCE_ADD(&schedulingInfo->sib_MappingInfo.list,sib_type2);
|
|
|
|
|
|
|
|
|
|
ASN_SEQUENCE_ADD(&sib1->si_SchedulingInfo->schedulingInfoList.list,schedulingInfo);
|
|
|
|
|
|
|
|
|
|
// servingCellConfigCommon
|
|
|
|
|
sib1->servingCellConfigCommon = CALLOC(1,sizeof(struct NR_ServingCellConfigCommonSIB));
|
|
|
|
@@ -402,23 +420,134 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
|
|
|
|
|
for(int i = 0; i< configuration->scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list.count; i++) {
|
|
|
|
|
ASN_SEQUENCE_ADD(&sib1->servingCellConfigCommon->downlinkConfigCommon.frequencyInfoDL.scs_SpecificCarrierList.list,configuration->scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list.array[i]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sib1->servingCellConfigCommon->downlinkConfigCommon.initialDownlinkBWP.pdcch_ConfigCommon = configuration->scc->downlinkConfigCommon->initialDownlinkBWP->pdcch_ConfigCommon;
|
|
|
|
|
sib1->servingCellConfigCommon->downlinkConfigCommon.initialDownlinkBWP.pdcch_ConfigCommon->choice.setup->commonSearchSpaceList = CALLOC(1,sizeof(struct NR_PDCCH_ConfigCommon__commonSearchSpaceList));
|
|
|
|
|
asn_set_empty(&sib1->servingCellConfigCommon->downlinkConfigCommon.initialDownlinkBWP.pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list);
|
|
|
|
|
|
|
|
|
|
NR_SearchSpace_t *ss1 = calloc(1,sizeof(*ss1));
|
|
|
|
|
ss1->searchSpaceId = 1;
|
|
|
|
|
ss1->controlResourceSetId=calloc(1,sizeof(*ss1->controlResourceSetId));
|
|
|
|
|
*ss1->controlResourceSetId=0;
|
|
|
|
|
ss1->monitoringSlotPeriodicityAndOffset = calloc(1,sizeof(*ss1->monitoringSlotPeriodicityAndOffset));
|
|
|
|
|
ss1->monitoringSlotPeriodicityAndOffset->present = NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1;
|
|
|
|
|
ss1->monitoringSymbolsWithinSlot = calloc(1,sizeof(*ss1->monitoringSymbolsWithinSlot));
|
|
|
|
|
ss1->monitoringSymbolsWithinSlot->buf = calloc(1,2);
|
|
|
|
|
// should be '1100 0000 0000 00'B (LSB first!), first two symols in slot, adjust if needed
|
|
|
|
|
ss1->monitoringSymbolsWithinSlot->buf[1] = 0;
|
|
|
|
|
ss1->monitoringSymbolsWithinSlot->buf[0] = (1<<7);
|
|
|
|
|
ss1->monitoringSymbolsWithinSlot->size = 2;
|
|
|
|
|
ss1->monitoringSymbolsWithinSlot->bits_unused = 2;
|
|
|
|
|
ss1->nrofCandidates = calloc(1,sizeof(*ss1->nrofCandidates));
|
|
|
|
|
ss1->nrofCandidates->aggregationLevel1 = NR_SearchSpace__nrofCandidates__aggregationLevel1_n0;
|
|
|
|
|
ss1->nrofCandidates->aggregationLevel2 = NR_SearchSpace__nrofCandidates__aggregationLevel2_n0;
|
|
|
|
|
ss1->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n1;
|
|
|
|
|
ss1->nrofCandidates->aggregationLevel8 = NR_SearchSpace__nrofCandidates__aggregationLevel8_n0;
|
|
|
|
|
ss1->nrofCandidates->aggregationLevel16 = NR_SearchSpace__nrofCandidates__aggregationLevel16_n0;
|
|
|
|
|
ss1->searchSpaceType = calloc(1,sizeof(*ss1->searchSpaceType));
|
|
|
|
|
ss1->searchSpaceType->present = NR_SearchSpace__searchSpaceType_PR_common;
|
|
|
|
|
ss1->searchSpaceType->choice.common=calloc(1,sizeof(*ss1->searchSpaceType->choice.common));
|
|
|
|
|
ss1->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0 = calloc(1,sizeof(*ss1->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0));
|
|
|
|
|
ASN_SEQUENCE_ADD(&sib1->servingCellConfigCommon->downlinkConfigCommon.initialDownlinkBWP.pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list,ss1);
|
|
|
|
|
|
|
|
|
|
NR_SearchSpace_t *ss5 = calloc(1,sizeof(*ss5));
|
|
|
|
|
ss5->searchSpaceId = 5;
|
|
|
|
|
ss5->controlResourceSetId=calloc(1,sizeof(*ss5->controlResourceSetId));
|
|
|
|
|
*ss5->controlResourceSetId=0;
|
|
|
|
|
ss5->monitoringSlotPeriodicityAndOffset = calloc(1,sizeof(*ss5->monitoringSlotPeriodicityAndOffset));
|
|
|
|
|
ss5->monitoringSlotPeriodicityAndOffset->present = NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl5;
|
|
|
|
|
ss5->monitoringSlotPeriodicityAndOffset->choice.sl5 = 0;
|
|
|
|
|
ss5->duration = calloc(1,sizeof(*ss5->duration));
|
|
|
|
|
*ss5->duration = 2;
|
|
|
|
|
ss5->monitoringSymbolsWithinSlot = calloc(1,sizeof(*ss5->monitoringSymbolsWithinSlot));
|
|
|
|
|
ss5->monitoringSymbolsWithinSlot->buf = calloc(1,2);
|
|
|
|
|
// should be '1100 0000 0000 00'B (LSB first!), first two symols in slot, adjust if needed
|
|
|
|
|
ss5->monitoringSymbolsWithinSlot->buf[1] = 0;
|
|
|
|
|
ss5->monitoringSymbolsWithinSlot->buf[0] = (1<<7);
|
|
|
|
|
ss5->monitoringSymbolsWithinSlot->size = 2;
|
|
|
|
|
ss5->monitoringSymbolsWithinSlot->bits_unused = 2;
|
|
|
|
|
ss5->nrofCandidates = calloc(1,sizeof(*ss5->nrofCandidates));
|
|
|
|
|
ss5->nrofCandidates->aggregationLevel1 = NR_SearchSpace__nrofCandidates__aggregationLevel1_n0;
|
|
|
|
|
ss5->nrofCandidates->aggregationLevel2 = NR_SearchSpace__nrofCandidates__aggregationLevel2_n0;
|
|
|
|
|
ss5->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n4;
|
|
|
|
|
ss5->nrofCandidates->aggregationLevel8 = NR_SearchSpace__nrofCandidates__aggregationLevel8_n2;
|
|
|
|
|
ss5->nrofCandidates->aggregationLevel16 = NR_SearchSpace__nrofCandidates__aggregationLevel16_n1;
|
|
|
|
|
ss5->searchSpaceType = calloc(1,sizeof(*ss5->searchSpaceType));
|
|
|
|
|
ss5->searchSpaceType->present = NR_SearchSpace__searchSpaceType_PR_common;
|
|
|
|
|
ss5->searchSpaceType->choice.common=calloc(1,sizeof(*ss5->searchSpaceType->choice.common));
|
|
|
|
|
ss5->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0 = calloc(1,sizeof(*ss5->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0));
|
|
|
|
|
ASN_SEQUENCE_ADD(&sib1->servingCellConfigCommon->downlinkConfigCommon.initialDownlinkBWP.pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list,ss5);
|
|
|
|
|
|
|
|
|
|
NR_SearchSpace_t *ss7 = calloc(1,sizeof(*ss7));
|
|
|
|
|
ss7->searchSpaceId = 7;
|
|
|
|
|
ss7->controlResourceSetId=calloc(1,sizeof(*ss7->controlResourceSetId));
|
|
|
|
|
*ss7->controlResourceSetId=0;
|
|
|
|
|
ss7->monitoringSlotPeriodicityAndOffset = calloc(1,sizeof(*ss7->monitoringSlotPeriodicityAndOffset));
|
|
|
|
|
ss7->monitoringSlotPeriodicityAndOffset->present = NR_SearchSpace__monitoringSlotPeriodicityAndOffset_PR_sl1;
|
|
|
|
|
ss7->monitoringSymbolsWithinSlot = calloc(1,sizeof(*ss7->monitoringSymbolsWithinSlot));
|
|
|
|
|
ss7->monitoringSymbolsWithinSlot->buf = calloc(1,2);
|
|
|
|
|
// should be '1100 0000 0000 00'B (LSB first!), first two symols in slot, adjust if needed
|
|
|
|
|
ss7->monitoringSymbolsWithinSlot->buf[1] = 0;
|
|
|
|
|
ss7->monitoringSymbolsWithinSlot->buf[0] = (1<<7);
|
|
|
|
|
ss7->monitoringSymbolsWithinSlot->size = 2;
|
|
|
|
|
ss7->monitoringSymbolsWithinSlot->bits_unused = 2;
|
|
|
|
|
ss7->nrofCandidates = calloc(1,sizeof(*ss7->nrofCandidates));
|
|
|
|
|
ss7->nrofCandidates->aggregationLevel1 = NR_SearchSpace__nrofCandidates__aggregationLevel1_n0;
|
|
|
|
|
ss7->nrofCandidates->aggregationLevel2 = NR_SearchSpace__nrofCandidates__aggregationLevel2_n0;
|
|
|
|
|
ss7->nrofCandidates->aggregationLevel4 = NR_SearchSpace__nrofCandidates__aggregationLevel4_n4;
|
|
|
|
|
ss7->nrofCandidates->aggregationLevel8 = NR_SearchSpace__nrofCandidates__aggregationLevel8_n2;
|
|
|
|
|
ss7->nrofCandidates->aggregationLevel16 = NR_SearchSpace__nrofCandidates__aggregationLevel16_n1;
|
|
|
|
|
ss7->searchSpaceType = calloc(1,sizeof(*ss7->searchSpaceType));
|
|
|
|
|
ss7->searchSpaceType->present = NR_SearchSpace__searchSpaceType_PR_common;
|
|
|
|
|
ss7->searchSpaceType->choice.common=calloc(1,sizeof(*ss7->searchSpaceType->choice.common));
|
|
|
|
|
ss7->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0 = calloc(1,sizeof(*ss7->searchSpaceType->choice.common->dci_Format0_0_AndFormat1_0));
|
|
|
|
|
ASN_SEQUENCE_ADD(&sib1->servingCellConfigCommon->downlinkConfigCommon.initialDownlinkBWP.pdcch_ConfigCommon->choice.setup->commonSearchSpaceList->list,ss7);
|
|
|
|
|
|
|
|
|
|
sib1->servingCellConfigCommon->downlinkConfigCommon.initialDownlinkBWP.pdcch_ConfigCommon->choice.setup->searchSpaceSIB1 = calloc(1,sizeof(NR_SearchSpaceId_t));
|
|
|
|
|
*sib1->servingCellConfigCommon->downlinkConfigCommon.initialDownlinkBWP.pdcch_ConfigCommon->choice.setup->searchSpaceSIB1 = 0;
|
|
|
|
|
sib1->servingCellConfigCommon->downlinkConfigCommon.initialDownlinkBWP.pdcch_ConfigCommon->choice.setup->searchSpaceOtherSystemInformation = calloc(1,sizeof(NR_SearchSpaceId_t));
|
|
|
|
|
*sib1->servingCellConfigCommon->downlinkConfigCommon.initialDownlinkBWP.pdcch_ConfigCommon->choice.setup->searchSpaceOtherSystemInformation = 7;
|
|
|
|
|
sib1->servingCellConfigCommon->downlinkConfigCommon.initialDownlinkBWP.pdcch_ConfigCommon->choice.setup->pagingSearchSpace = calloc(1,sizeof(NR_SearchSpaceId_t));
|
|
|
|
|
*sib1->servingCellConfigCommon->downlinkConfigCommon.initialDownlinkBWP.pdcch_ConfigCommon->choice.setup->pagingSearchSpace = 5;
|
|
|
|
|
sib1->servingCellConfigCommon->downlinkConfigCommon.initialDownlinkBWP.pdcch_ConfigCommon->choice.setup->ra_SearchSpace = calloc(1,sizeof(NR_SearchSpaceId_t));
|
|
|
|
|
*sib1->servingCellConfigCommon->downlinkConfigCommon.initialDownlinkBWP.pdcch_ConfigCommon->choice.setup->ra_SearchSpace = 1;
|
|
|
|
|
|
|
|
|
|
sib1->servingCellConfigCommon->downlinkConfigCommon.initialDownlinkBWP.pdsch_ConfigCommon = configuration->scc->downlinkConfigCommon->initialDownlinkBWP->pdsch_ConfigCommon;
|
|
|
|
|
sib1->servingCellConfigCommon->downlinkConfigCommon.bcch_Config.modificationPeriodCoeff = NR_BCCH_Config__modificationPeriodCoeff_n2;
|
|
|
|
|
sib1->servingCellConfigCommon->downlinkConfigCommon.pcch_Config.defaultPagingCycle = 0;
|
|
|
|
|
sib1->servingCellConfigCommon->downlinkConfigCommon.pcch_Config.nAndPagingFrameOffset.present = NR_PCCH_Config__nAndPagingFrameOffset_PR_oneT;
|
|
|
|
|
sib1->servingCellConfigCommon->downlinkConfigCommon.pcch_Config.ns = NR_PCCH_Config__ns_four;
|
|
|
|
|
sib1->servingCellConfigCommon->downlinkConfigCommon.pcch_Config.defaultPagingCycle = NR_PagingCycle_rf256;
|
|
|
|
|
sib1->servingCellConfigCommon->downlinkConfigCommon.pcch_Config.nAndPagingFrameOffset.present = NR_PCCH_Config__nAndPagingFrameOffset_PR_quarterT;
|
|
|
|
|
sib1->servingCellConfigCommon->downlinkConfigCommon.pcch_Config.nAndPagingFrameOffset.choice.quarterT = 1;
|
|
|
|
|
sib1->servingCellConfigCommon->downlinkConfigCommon.pcch_Config.ns = NR_PCCH_Config__ns_one;
|
|
|
|
|
|
|
|
|
|
sib1->servingCellConfigCommon->downlinkConfigCommon.pcch_Config.firstPDCCH_MonitoringOccasionOfPO = calloc(1,sizeof(struct NR_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO));
|
|
|
|
|
sib1->servingCellConfigCommon->downlinkConfigCommon.pcch_Config.firstPDCCH_MonitoringOccasionOfPO->present = NR_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO_PR_sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT;
|
|
|
|
|
|
|
|
|
|
sib1->servingCellConfigCommon->downlinkConfigCommon.pcch_Config.firstPDCCH_MonitoringOccasionOfPO->choice.sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT = CALLOC(1,sizeof(struct NR_PCCH_Config__firstPDCCH_MonitoringOccasionOfPO__sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT));
|
|
|
|
|
asn_set_empty(&sib1->servingCellConfigCommon->downlinkConfigCommon.pcch_Config.firstPDCCH_MonitoringOccasionOfPO->choice.sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT->list);
|
|
|
|
|
|
|
|
|
|
long *sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT = calloc(1,sizeof(long));
|
|
|
|
|
*sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT = 0;
|
|
|
|
|
ASN_SEQUENCE_ADD(&sib1->servingCellConfigCommon->downlinkConfigCommon.pcch_Config.firstPDCCH_MonitoringOccasionOfPO->choice.sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT->list,sCS120KHZoneT_SCS60KHZhalfT_SCS30KHZquarterT_SCS15KHZoneEighthT);
|
|
|
|
|
|
|
|
|
|
sib1->servingCellConfigCommon->uplinkConfigCommon = CALLOC(1,sizeof(struct NR_UplinkConfigCommonSIB));
|
|
|
|
|
asn_set_empty(&sib1->servingCellConfigCommon->uplinkConfigCommon->frequencyInfoUL.scs_SpecificCarrierList.list);
|
|
|
|
|
for(int i = 0; i< configuration->scc->uplinkConfigCommon->frequencyInfoUL->scs_SpecificCarrierList.list.count; i++) {
|
|
|
|
|
ASN_SEQUENCE_ADD(&sib1->servingCellConfigCommon->uplinkConfigCommon->frequencyInfoUL.scs_SpecificCarrierList.list,configuration->scc->uplinkConfigCommon->frequencyInfoUL->scs_SpecificCarrierList.list.array[i]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sib1->servingCellConfigCommon->uplinkConfigCommon->frequencyInfoUL.p_Max = CALLOC(1,sizeof(NR_P_Max_t));
|
|
|
|
|
*sib1->servingCellConfigCommon->uplinkConfigCommon->frequencyInfoUL.p_Max = 23;
|
|
|
|
|
|
|
|
|
|
sib1->servingCellConfigCommon->uplinkConfigCommon->initialUplinkBWP.genericParameters = configuration->scc->uplinkConfigCommon->initialUplinkBWP->genericParameters;
|
|
|
|
|
sib1->servingCellConfigCommon->uplinkConfigCommon->initialUplinkBWP.rach_ConfigCommon = configuration->scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon;
|
|
|
|
|
|
|
|
|
|
sib1->servingCellConfigCommon->uplinkConfigCommon->initialUplinkBWP.pusch_ConfigCommon = configuration->scc->uplinkConfigCommon->initialUplinkBWP->pusch_ConfigCommon;
|
|
|
|
|
sib1->servingCellConfigCommon->uplinkConfigCommon->initialUplinkBWP.pusch_ConfigCommon->choice.setup->groupHoppingEnabledTransformPrecoding = null;
|
|
|
|
|
|
|
|
|
|
sib1->servingCellConfigCommon->uplinkConfigCommon->initialUplinkBWP.pucch_ConfigCommon = configuration->scc->uplinkConfigCommon->initialUplinkBWP->pucch_ConfigCommon;
|
|
|
|
|
|
|
|
|
|
sib1->servingCellConfigCommon->uplinkConfigCommon->timeAlignmentTimerCommon = NR_TimeAlignmentTimer_infinity;
|
|
|
|
|
|
|
|
|
|
sib1->servingCellConfigCommon->n_TimingAdvanceOffset = configuration->scc->n_TimingAdvanceOffset;
|
|
|
|
|
|
|
|
|
|
sib1->servingCellConfigCommon->ssb_PositionsInBurst.inOneGroup.buf = calloc(1, sizeof(uint8_t));
|
|
|
|
@@ -479,7 +608,14 @@ uint8_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier,
|
|
|
|
|
// TODO: add eCallOverIMS-Support
|
|
|
|
|
|
|
|
|
|
// ue-TimersAndConstants
|
|
|
|
|
// TODO: add ue-TimersAndConstants
|
|
|
|
|
sib1->ue_TimersAndConstants = CALLOC(1,sizeof(struct NR_UE_TimersAndConstants));
|
|
|
|
|
sib1->ue_TimersAndConstants->t300 = NR_UE_TimersAndConstants__t300_ms400;
|
|
|
|
|
sib1->ue_TimersAndConstants->t301 = NR_UE_TimersAndConstants__t301_ms400;
|
|
|
|
|
sib1->ue_TimersAndConstants->t310 = NR_UE_TimersAndConstants__t310_ms2000;
|
|
|
|
|
sib1->ue_TimersAndConstants->n310 = NR_UE_TimersAndConstants__n310_n10;
|
|
|
|
|
sib1->ue_TimersAndConstants->t311 = NR_UE_TimersAndConstants__t311_ms3000;
|
|
|
|
|
sib1->ue_TimersAndConstants->n311 = NR_UE_TimersAndConstants__n311_n1;
|
|
|
|
|
sib1->ue_TimersAndConstants->t319 = NR_UE_TimersAndConstants__t319_ms400;
|
|
|
|
|
|
|
|
|
|
// uac-BarringInfo
|
|
|
|
|
/*sib1->uac_BarringInfo = CALLOC(1, sizeof(struct NR_SIB1__uac_BarringInfo));
|
|
|
|
|