diff --git a/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h b/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h index 560ae4b3c24a4184a88e78b0bdcb60460a801d0d..67caf3bd737aeff9c6e171f12403f2fdf8e45a41 100644 --- a/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h +++ b/nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h @@ -62,6 +62,8 @@ typedef struct typedef struct { nfapi_uint16_tlv_t numerology_index_mu; nfapi_uint16_tlv_t duplex_mode; + nfapi_uint16_tlv_t dl_prefix_type; + nfapi_uint16_tlv_t ul_prefix_type; } nfapi_nr_subframe_config_t; #define NFAPI_NR_SUBFRAME_CONFIG_DUPLEX_MODE_TAG 0x5001 @@ -74,6 +76,21 @@ typedef struct { typedef struct { nfapi_uint16_tlv_t tx_antenna_ports; nfapi_uint16_tlv_t rx_antenna_ports; + nfapi_uint16_tlv_t dl_carrierBandwidth; + nfapi_uint16_tlv_t ul_carrierBandwidth; + nfapi_uint16_tlv_t dl_locationAndBandwidth; + nfapi_uint16_tlv_t ul_locationAndBandwidth; + nfapi_uint16_tlv_t dl_BWP_SubcarrierSpacing; + nfapi_uint16_tlv_t ul_BWP_SubcarrierSpacing; + nfapi_uint16_tlv_t dl_absoluteFrequencyPointA; + nfapi_uint16_tlv_t ul_absoluteFrequencyPointA; + nfapi_uint16_tlv_t dl_offsetToCarrier; + nfapi_uint16_tlv_t ul_offsetToCarrier; + nfapi_uint16_tlv_t dl_SCS_SubcarrierSpacing; + nfapi_uint16_tlv_t ul_SCS_SubcarrierSpacing; + nfapi_uint16_tlv_t dl_SCS_SpecificCarrier_k0; + nfapi_uint16_tlv_t ul_SCS_SpecificCarrier_k0; + nfapi_uint16_tlv_t NIA_SubcarrierSpacing; } nfapi_nr_rf_config_t; #define NFAPI_NR_RF_CONFIG_DL_CHANNEL_BANDWIDTH_TAG 0x500A @@ -86,7 +103,8 @@ typedef struct { nfapi_uint16_tlv_t physical_cell_id; nfapi_uint16_tlv_t half_frame_index; nfapi_uint16_tlv_t ssb_subcarrier_offset; - nfapi_uint16_tlv_t ssb_position_in_burst; + nfapi_uint16_tlv_t ssb_sib1_position_in_burst; + nfapi_uint16_tlv_t ssb_scg_position_in_burst; nfapi_uint16_tlv_t ssb_periodicity; nfapi_uint16_tlv_t ss_pbch_block_power; nfapi_uint16_tlv_t n_ssb_crb; @@ -115,45 +133,10 @@ typedef struct { } nfapi_nr_rach_config_t; typedef struct { - //NR FrequencyInfoDL - nfapi_uint16_tlv_t absoluteFrequencySSB; - nfapi_uint16_tlv_t ssb_SubcarrierOffset; ///// L1 parameter 'kssb' - nfapi_uint16_tlv_t DL_FreqBandIndicatorNR; - nfapi_uint16_tlv_t DL_absoluteFrequencyPointA; ///// L1 parameter 'offset-ref-low-scs-ref-PRB' - //NR DL SCS-SpecificCarrier ///// L1 parameter 'offset-pointA-set' - nfapi_uint16_tlv_t DL_offsetToCarrier; ///// L1 parameter 'offset-pointA-low-scs ' - nfapi_uint16_tlv_t DL_SCS_SubcarrierSpacing; ///// L1 parameter 'ref-scs' - nfapi_uint16_tlv_t DL_SCS_SpecificCarrier_k0; ///// L1 parameter 'k0' - nfapi_uint16_tlv_t DL_carrierBandwidth; ///// L1 parameter 'BW' -} nfapi_nr_dl_frequencyinfo_t; - -typedef struct { - //NR BWP-DownlinkCommon - nfapi_uint16_tlv_t DL_locationAndBandwidth; ///// L1 parameter 'DL-BWP-loc' - nfapi_uint16_tlv_t DL_BWP_SubcarrierSpacing; ///// Corresponds to subcarrier spacing according to 38.211, Table 4.2-1 - nfapi_uint16_tlv_t DL_BWP_prefix_type; -} nfapi_nr_bwp_dl_t; - -typedef struct { - //NR FrequencyInfoUL - nfapi_uint16_tlv_t UL_FreqBandIndicatorNR; - nfapi_uint16_tlv_t UL_absoluteFrequencyPointA; ///// L1 parameter 'offset-ref-low-scs-ref-PRB' - nfapi_uint16_tlv_t UL_additionalSpectrumEmission; - nfapi_uint16_tlv_t UL_p_Max; - nfapi_uint16_tlv_t UL_frequencyShift7p5khz; - //NR UL SCS-SpecificCarrier ///// L1 parameter 'offset-pointA-set' - nfapi_uint16_tlv_t UL_offsetToCarrier; ///// L1 parameter 'offset-pointA-low-scs ' - nfapi_uint16_tlv_t UL_SCS_SubcarrierSpacing; ///// L1 parameter 'ref-scs' - nfapi_uint16_tlv_t UL_SCS_SpecificCarrier_k0; ///// L1 parameter 'k0' - nfapi_uint16_tlv_t UL_carrierBandwidth; ///// L1 parameter 'BW' -} nfapi_nr_ul_frequencyinfo_t; - -typedef struct { - //NR BWP-UplinkCommon ///// L1 parameter 'initial-UL-BWP' - nfapi_uint16_tlv_t UL_locationAndBandwidth; ///// L1 parameter 'DL-BWP-loc' - nfapi_uint16_tlv_t UL_BWP_SubcarrierSpacing; ///// Corresponds to subcarrier spacing according to 38.211, Table 4.2-1 - nfapi_uint16_tlv_t UL_BWP_prefix_type; -} nfapi_nr_bwp_ul_t; + nfapi_uint16_tlv_t dmrs_TypeA_Position; ///// Position of (first) DL DM-RS + nfapi_uint16_tlv_t TimeDomainResourceAllocation_k0; ///// L1 parameter 'K0' + nfapi_uint16_tlv_t TimeDomainResourceAllocation_mappingType; ///// L1 parameter 'Mapping-type' +} nfapi_nr_pdsch_config_t; typedef struct { nfapi_uint16_tlv_t groupHoppingEnabledTransformPrecoding; ///// L1 parameter 'Group-hopping-enabled-Transform-precoding' @@ -168,48 +151,6 @@ typedef struct { nfapi_uint16_tlv_t p0_nominal; ///// L1 parameter 'p0-nominal-pucch' } nfapi_nr_pucch_config_t; -typedef struct { - nfapi_uint16_tlv_t TimeDomainResourceAllocation_k0; ///// L1 parameter 'K0' - nfapi_uint16_tlv_t TimeDomainResourceAllocation_mappingType; ///// L1 parameter 'Mapping-type' -} nfapi_nr_pdsch_config_t; - -typedef struct { - nfapi_uint16_tlv_t searchSpaceSIB1; ///// L1 parameter 'rmsi-SearchSpace' - nfapi_uint16_tlv_t searchSpaceOtherSystemInformation; ///// L1 parameter 'osi-SearchSpace' - nfapi_uint16_tlv_t pagingSearchSpace; ///// L1 parameter 'paging-SearchSpace' - nfapi_uint16_tlv_t ra_SearchSpace; ///// L1 parameter 'ra-SearchSpace' - nfapi_uint16_tlv_t rach_ra_ControlResourceSet; ///// L1 parameter 'rach-coreset-configuration' - nfapi_uint16_tlv_t common_controlResourceSetId; ///// L1 parameter 'CORESET-ID - nfapi_uint16_tlv_t common_ControlResourceSet_duration; ///// L1 parameter 'CORESET-time-duration' - nfapi_uint16_tlv_t cce_REG_MappingType; ///// L1 parameter 'CORESET-CCE-REG-mapping-type' - nfapi_uint16_tlv_t reg_BundleSize; ///// L1 parameter 'CORESET-REG-bundle-size' - nfapi_uint16_tlv_t interleaverSize; ///// L1 parameter 'CORESET-interleaver-size' - nfapi_uint16_tlv_t shiftIndex; ///// L1 parameter 'CORESET-shift-index' - nfapi_uint16_tlv_t precoderGranularity; ///// L1 parameter 'CORESET-precoder-granuality' - nfapi_uint16_tlv_t TCI_StateId; ///// L1 parameter 'TCI-StatesPDCCH' - nfapi_uint16_tlv_t tci_PresentInDCI; ///// L1 parameter 'TCI-PresentInDCI' - nfapi_uint16_tlv_t SearchSpaceId; - nfapi_uint16_tlv_t commonSearchSpaces_controlResourceSetId; - nfapi_uint16_tlv_t SearchSpace_monitoringSlotPeriodicityAndOffset; ///// L1 parameters 'Montoring-periodicity-PDCCH-slot' - nfapi_uint16_tlv_t SearchSpace_nrofCandidates_aggregationLevel1; ///// L1 parameter 'Aggregation-level-1' - nfapi_uint16_tlv_t SearchSpace_nrofCandidates_aggregationLevel2; ///// L1 parameter 'Aggregation-level-2' - nfapi_uint16_tlv_t SearchSpace_nrofCandidates_aggregationLevel4; ///// L1 parameter 'Aggregation-level-4' - nfapi_uint16_tlv_t SearchSpace_nrofCandidates_aggregationLevel8; ///// L1 parameter 'Aggregation-level-8' - nfapi_uint16_tlv_t SearchSpace_nrofCandidates_aggregationLevel16; ///// L1 parameter 'Aggregation-level-16' - nfapi_uint16_tlv_t Common_dci_Format2_0_nrofCandidates_SFI_And_aggregationLevel; ///// L1 parameters 'SFI-Num-PDCCH-cand' and 'SFI-Aggregation-Level' - nfapi_uint16_tlv_t Common_dci_Format2_3_monitoringPeriodicity; ///// L1 parameter 'SRS-monitoring-periodicity' - nfapi_uint16_tlv_t Common_dci_Format2_3_nrofPDCCH_Candidates; ///// L1 parameter 'SRS-Num-PDCCH-cand' - nfapi_uint16_tlv_t ue_Specific__dci_Formats; -} nfapi_nr_pdcch_config_t; - -typedef struct { - nfapi_uint16_tlv_t ssb_PositionsInBurst_PR; ///// L1 parameter 'SSB-Transmitted - nfapi_uint16_tlv_t ssb_periodicityServingCell; - nfapi_uint16_tlv_t dmrs_TypeA_Position; ///// Position of (first) DL DM-RS - nfapi_uint16_tlv_t NIA_SubcarrierSpacing; ///// Used only for non-initial access (e.g. SCells, PCell of SCG) - nfapi_uint16_tlv_t ss_PBCH_BlockPower; -} nfapi_nr_servingcellconfigcommon_t; - typedef struct { //NR TDD-UL-DL-ConfigCommon ///// L1 parameter 'UL-DL-configuration-common' nfapi_uint16_tlv_t referenceSubcarrierSpacing; ///// L1 parameter 'reference-SCS' @@ -243,9 +184,6 @@ typedef struct { nfapi_uint16_tlv_t RateMatchPatternLTE_CRS_subframeAllocation_choice; } nfapi_nr_ratematchpattern_lte_crs_t; - - - typedef struct { nfapi_p4_p5_message_header_t header; uint8_t num_tlv; @@ -253,15 +191,9 @@ typedef struct { nfapi_nr_rf_config_t rf_config; nfapi_nr_sch_config_t sch_config; nfapi_nr_rach_config_t rach_config; - nfapi_nr_dl_frequencyinfo_t dl_frequencyinfo; - nfapi_nr_bwp_dl_t bwp_dl; - nfapi_nr_ul_frequencyinfo_t ul_frequencyinfo; - nfapi_nr_bwp_ul_t bwp_ul; + nfapi_nr_pdsch_config_t pdsch_config; nfapi_nr_pusch_config_t pusch_config; nfapi_nr_pucch_config_t pucch_config; - nfapi_nr_pdsch_config_t pdsch_config; - nfapi_nr_pucch_config_t pdcch_config; - nfapi_nr_servingcellconfigcommon_t servingcellconfigcommon; nfapi_nr_tdd_ul_dl_config_t tdd_ul_dl_config; nfapi_nr_ratematchpattern_t ratematchpattern; nfapi_nr_ratematchpattern_lte_crs_t ratematchpattern_lte_crs; @@ -301,5 +233,98 @@ typedef struct { nfapi_nr_dl_config_dci_dl_pdu_rel15_t dci_dl_pdu_rel15; } nfapi_nr_dl_config_dci_dl_pdu; -#endif +typedef struct{ + nfapi_uint16_tlv_t controlResourceSetId; ///// L1 parameter 'CORESET-ID' + nfapi_uint16_tlv_t frequencyDomainResources; ///// L1 parameter 'CORESET-freq-dom' + nfapi_uint16_tlv_t duration; ///// L1 parameter 'CORESET-time-duration' + nfapi_uint16_tlv_t cce_REG_MappingType; ///// L1 parameter 'CORESET-CCE-REG-mapping-type' + nfapi_uint16_tlv_t reg_BundleSize; ///// L1 parameter 'CORESET-REG-bundle-size' + nfapi_uint16_tlv_t interleaverSize; ///// L1 parameter 'CORESET-interleaver-size' + nfapi_uint16_tlv_t shiftIndex; ///// L1 parameter 'CORESET-shift-index' + nfapi_uint16_tlv_t precoderGranularity; ///// L1 parameter 'CORESET-precoder-granuality' + nfapi_uint16_tlv_t TCI_StateId; ///// L1 parameter 'TCI-StatesPDCCH' + nfapi_uint16_tlv_t tci_PresentInDCI; ///// L1 parameter 'TCI-PresentInDCI' + nfapi_uint16_tlv_t pdcch_DMRS_ScramblingID; ///// L1 parameter 'PDCCH-DMRS-Scrambling-ID' +} nfapi_nr_ControlResourcesSets_t; + +typedef struct{ + nfapi_uint16_tlv_t SearchSpaceId; + nfapi_uint16_tlv_t controlResourceSetId; + nfapi_uint16_tlv_t monitoringSlotPeriodicityAndOffset; ///// L1 parameters 'Montoring-periodicity-PDCCH-slot' + nfapi_uint16_tlv_t monitoringSymbolsWithinSlot; ///// L1 parameter 'Montoring-symbols-PDCCH-within-slot' + nfapi_uint16_tlv_t nrofCand_aggLevel1; ///// L1 parameter 'Aggregation-level-1' + nfapi_uint16_tlv_t nrofCand_aggLevel2; ///// L1 parameter 'Aggregation-level-2' + nfapi_uint16_tlv_t nrofCand_aggLevel4; ///// L1 parameter 'Aggregation-level-4' + nfapi_uint16_tlv_t nrofCand_aggLevel8; ///// L1 parameter 'Aggregation-level-8' + nfapi_uint16_tlv_t nrofCand_aggLevel16; ///// L1 parameter 'Aggregation-level-16' + nfapi_uint16_tlv_t Com_dci_Format2_0_nrofCand_SFI_And_aggLevel; ///// L1 parameters 'SFI-Num-PDCCH-cand' and 'SFI-Aggregation-Level' + nfapi_uint16_tlv_t Com_dci_Format2_3_monitoringPeriodicity; ///// L1 parameter 'SRS-monitoring-periodicity' + nfapi_uint16_tlv_t Com_dci_Format2_3_nrofPDCCH_Candidates; ///// L1 parameter 'SRS-Num-PDCCH-cand' + nfapi_uint16_tlv_t ue_Specific_dci_Formats; +} nfapi_nr_SearchSpaces_t; + +typedef struct { + nfapi_tl_t tl; + nfapi_nr_SearchSpaces_t sib1searchSpace; + nfapi_nr_ControlResourcesSets_t sib1ControlResourceSets; +}nfapi_nr_dl_config_bch_pdu_rel15_t; + +typedef struct { + nfapi_tl_t tl; + nfapi_nr_SearchSpaces_t sibssearchSpace; + nfapi_nr_ControlResourcesSets_t sibsControlResourceSets; + nfapi_nr_SearchSpaces_t ra_SearchSpace; + nfapi_nr_ControlResourcesSets_t ra_ControlResourceSets; +}nfapi_nr_dl_config_dlsch_pdu_rel15_t; + +typedef struct { + nfapi_tl_t tl; + nfapi_nr_SearchSpaces_t pagingSearchSpace; + nfapi_nr_ControlResourcesSets_t pagingControlResourceSets; +}nfapi_nr_dl_config_pch_pdu_rel15_t; + +typedef struct { + +}nfapi_nr_dl_config_nbch_pdu_rel15_t; + +typedef struct { + +}nfapi_nr_dl_config_npdcch_pdu_rel15_t; + +typedef struct { + +}nfapi_nr_dl_config_ndlsch_pdu_rel15_t; + +typedef struct { + uint8_t pdu_type; + uint8_t pdu_size; + union { + nfapi_nr_dl_config_dci_dl_pdu_rel15_t dci_dl_pdu; + nfapi_nr_dl_config_bch_pdu_rel15_t bch_pdu; + nfapi_nr_dl_config_dlsch_pdu_rel15_t dlsch_pdu; + nfapi_nr_dl_config_pch_pdu_rel15_t pch_pdu; + nfapi_nr_dl_config_nbch_pdu_rel15_t nbch_pdu; + nfapi_nr_dl_config_npdcch_pdu_rel15_t npdcch_pdu; + nfapi_nr_dl_config_ndlsch_pdu_rel15_t ndlsch_pdu; + }; + +} nfapi_nr_dl_config_request_pdu_t; + +typedef struct { + nfapi_tl_t tl; + //uint8_t number_pdcch_ofdm_symbols; + uint8_t number_dci; + uint16_t number_pdu; + uint8_t number_pdsch_rnti; + nfapi_dl_config_request_pdu_t *dl_config_pdu_list; +} nfapi_nr_dl_config_request_body_t; + +typedef struct { + nfapi_p7_message_header_t header; + uint16_t sfn_sf; + nfapi_nr_dl_config_request_body_t dl_config_request_body; + nfapi_vendor_extension_tlv_t vendor_extension; +} nfapi_nr_dl_config_request_t; + +#endif \ No newline at end of file diff --git a/openair2/GNB_APP/NR_RRC_paramsvalues.h b/openair2/GNB_APP/RRC_nr_paramsvalues.h similarity index 100% rename from openair2/GNB_APP/NR_RRC_paramsvalues.h rename to openair2/GNB_APP/RRC_nr_paramsvalues.h diff --git a/openair2/GNB_APP/gnb_app.c b/openair2/GNB_APP/gnb_app.c index 126189363176f1f6f516a61aefa8ea99ae614fe8..0148278e75a1b7f5649a889ce1d59cd509b3faa2 100644 --- a/openair2/GNB_APP/gnb_app.c +++ b/openair2/GNB_APP/gnb_app.c @@ -58,30 +58,6 @@ extern RAN_CONTEXT_t RC; # define GNB_REGISTER_RETRY_DELAY 10 # endif -/*------------------------------------------------------------------------------*/ - -/* -static void configure_phy(module_id_t enb_id, const Enb_properties_array_t* enb_properties) -{ - MessageDef *msg_p; - int CC_id; - - msg_p = itti_alloc_new_message (TASK_ENB_APP, PHY_CONFIGURATION_REQ); - - for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) { - PHY_CONFIGURATION_REQ (msg_p).frame_type[CC_id] = enb_properties->properties[enb_id]->frame_type[CC_id]; - PHY_CONFIGURATION_REQ (msg_p).prefix_type[CC_id] = enb_properties->properties[enb_id]->prefix_type[CC_id]; - PHY_CONFIGURATION_REQ (msg_p).downlink_frequency[CC_id] = enb_properties->properties[enb_id]->downlink_frequency[CC_id]; - PHY_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[CC_id] = enb_properties->properties[enb_id]->uplink_frequency_offset[CC_id]; - PHY_CONFIGURATION_REQ (msg_p).nb_antennas_tx[CC_id] = enb_properties->properties[enb_id]->nb_antennas_tx[CC_id]; - PHY_CONFIGURATION_REQ (msg_p).nb_antennas_rx[CC_id] = enb_properties->properties[enb_id]->nb_antennas_rx[CC_id]; - PHY_CONFIGURATION_REQ (msg_p).tx_gain[CC_id] = enb_properties->properties[enb_id]->tx_gain[CC_id]; - PHY_CONFIGURATION_REQ (msg_p).rx_gain[CC_id] = enb_properties->properties[enb_id]->rx_gain[CC_id]; - } - - itti_send_msg_to_task (TASK_PHY_ENB, ENB_MODULE_ID_TO_INSTANCE(enb_id), msg_p); -} -*/ /*------------------------------------------------------------------------------*/ static void configure_nr_rrc(uint32_t gnb_id) diff --git a/openair2/GNB_APP/gnb_config.c b/openair2/GNB_APP/gnb_config.c index 8075ffb733d04861fffb6710fde385961030ddd7..aa359bc84fff0268203f3e0bf0d66956d452f6bd 100644 --- a/openair2/GNB_APP/gnb_config.c +++ b/openair2/GNB_APP/gnb_config.c @@ -61,6 +61,180 @@ extern uint16_t sf_ahead; +void RCconfig_NR_flexran() +{ + uint16_t i; + uint16_t num_gnbs; + char aprefix[MAX_OPTNAME_SIZE*2 + 8]; + /* this will possibly truncate the cell id (RRC assumes int32_t). + * Both Nid_cell and gnb_id are signed in RRC case, but we use unsigned for + * the bitshifting to work properly */ + int32_t Nid_cell = 0; + uint16_t Nid_cell_tr = 0; + uint32_t gnb_id = 0; + + /* + * the only reason for all these variables is, that they are "hard-encoded" + * into the CCPARAMS_DESC macro and we need it for the Nid_cell variable ... + */ + char *frame_type, DL_prefix_type, UL_prefix_type, SIB1_frequencyOffsetSSB, + DL_SCS_SubcarrierSpacing, DL_BWP_SubcarrierSpacing, DL_BWP_prefix_type, + UL_frequencyShift7p5khz, UL_SCS_SubcarrierSpacing, UL_BWP_SubcarrierSpacing, + UL_BWP_prefix_type, ServingCellConfigCommon_ssb_PositionsInBurst_PR, + NIA_SubcarrierSpacing, referenceSubcarrierSpacing, dl_UL_TransmissionPeriodicity, + rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_choice, + rach_groupBconfigured, rach_messagePowerOffsetGroupB, + prach_RootSequenceIndex_choice, prach_msg1_SubcarrierSpacing, + restrictedSetConfig, msg3_transformPrecoding, prach_msg1_FDM, + powerRampingStep, groupHoppingEnabledTransformPrecoding, + PUSCH_TimeDomainResourceAllocation_mappingType, pucch_GroupHopping, + PDSCH_TimeDomainResourceAllocation_mappingType, RateMatchPattern_patternType, + symbolsInResourceBlock, RateMatchPattern_subcarrierSpacing, RateMatchPattern_mode, + PDCCH_cce_REG_MappingType, PDCCH_precoderGranularity, + tci_PresentInDCI, SearchSpace_monitoringSlotPeriodicityAndOffset_choice, + SearchSpace_searchSpaceType, ue_Specific__dci_Formats, + RateMatchPatternLTE_CRS_subframeAllocation_choice; + + long long int downlink_frequency; + + int32_t eutra_band, uplink_frequency_offset, N_RB_DL, nb_antenna_ports, + MIB_subCarrierSpacingCommon, MIB_ssb_SubcarrierOffset, MIB_dmrs_TypeA_Position, + pdcch_ConfigSIB1, SIB1_ssb_PeriodicityServingCell, SIB1_ss_PBCH_BlockPower, + absoluteFrequencySSB, ssb_SubcarrierOffset, DL_FreqBandIndicatorNR, + DL_absoluteFrequencyPointA, DL_offsetToCarrier, DL_SCS_SpecificCarrier_k0, + DL_carrierBandwidth, DL_locationAndBandwidth, UL_FreqBandIndicatorNR, + UL_absoluteFrequencyPointA, UL_additionalSpectrumEmission, UL_p_Max, + UL_offsetToCarrier, UL_SCS_SpecificCarrier_k0, UL_carrierBandwidth, + UL_locationAndBandwidth, ServingCellConfigCommon_ssb_periodicityServingCell, + ServingCellConfigCommon_dmrs_TypeA_Position, ServingCellConfigCommon_ss_PBCH_BlockPower, + nrofDownlinkSlots, nrofDownlinkSymbols, nrofUplinkSlots, nrofUplinkSymbols, + rach_totalNumberOfRA_Preambles, rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneEighth, + rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneFourth, + rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneHalf, + rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_one, + rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_two, + rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_four, + rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_eight, + rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_sixteen, + rach_ra_Msg3SizeGroupA, rach_numberOfRA_PreamblesGroupA, rach_ra_ContentionResolutionTimer, + rsrp_ThresholdSSB, rsrp_ThresholdSSB_SUL, prach_RootSequenceIndex_l839, + prach_RootSequenceIndex_l139, prach_ConfigurationIndex, prach_msg1_FrequencyStart, + zeroCorrelationZoneConfig, preambleReceivedTargetPower, preambleTransMax, + ra_ResponseWindow, msg3_DeltaPreamble, p0_NominalWithGrant, + PUSCH_TimeDomainResourceAllocation_k2, p0_nominal, PDSCH_TimeDomainResourceAllocation_k0, + rateMatchPatternId, periodicityAndPattern, RateMatchPattern_controlResourceSet, + searchSpaceSIB1, searchSpaceOtherSystemInformation, pagingSearchSpace, + ra_SearchSpace, rach_ra_ControlResourceSet, PDCCH_common_controlResourceSetId, + PDCCH_common_ControlResourceSet_duration, PDCCH_reg_BundleSize, PDCCH_interleaverSize, + PDCCH_shiftIndex, PDCCH_TCI_StateId, SearchSpaceId, commonSearchSpaces_controlResourceSetId, + SearchSpace_monitoringSlotPeriodicityAndOffset_sl1, + SearchSpace_monitoringSlotPeriodicityAndOffset_sl2, + SearchSpace_monitoringSlotPeriodicityAndOffset_sl4, + SearchSpace_monitoringSlotPeriodicityAndOffset_sl5, + SearchSpace_monitoringSlotPeriodicityAndOffset_sl8, + SearchSpace_monitoringSlotPeriodicityAndOffset_sl10, + SearchSpace_monitoringSlotPeriodicityAndOffset_sl16, + SearchSpace_monitoringSlotPeriodicityAndOffset_sl20, + SearchSpace_nrofCandidates_aggregationLevel1, + SearchSpace_nrofCandidates_aggregationLevel2, + SearchSpace_nrofCandidates_aggregationLevel4, + SearchSpace_nrofCandidates_aggregationLevel8, + SearchSpace_nrofCandidates_aggregationLevel16, + Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel1, + Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel2, + Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel4, + Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel8, + Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel16, + Common_dci_Format2_3_monitoringPeriodicity, + Common_dci_Format2_3_nrofPDCCH_Candidates, + RateMatchPatternLTE_CRS_carrierFreqDL, + RateMatchPatternLTE_CRS_carrierBandwidthDL, + RateMatchPatternLTE_CRS_nrofCRS_Ports, + RateMatchPatternLTE_CRS_v_Shift, + RateMatchPatternLTE_CRS_radioframeAllocationPeriod, + RateMatchPatternLTE_CRS_radioframeAllocationOffset + ; + + /* get number of gNBs */ + paramdef_t GNBSParams[] = GNBSPARAMS_DESC; + config_get(GNBSParams, sizeof(GNBSParams)/sizeof(paramdef_t), NULL); + num_gnbs = GNBSParams[GNB_ACTIVE_GNBS_IDX].numelt; + + /* for gNB ID */ + paramdef_t GNBParams[] = GNBPARAMS_DESC; + paramlist_def_t GNBParamList = {GNB_CONFIG_STRING_GNB_LIST, NULL, 0}; + + /* for Nid_cell */ + checkedparam_t config_check_CCparams[] = NRCCPARAMS_CHECK; + paramdef_t CCsParams[] = NRCCPARAMS_DESC; + paramlist_def_t CCsParamList = {GNB_CONFIG_STRING_COMPONENT_CARRIERS, NULL, 0}; + /* map parameter checking array instances to parameter definition array instances */ + for (int I = 0; I < (sizeof(CCsParams) / sizeof(paramdef_t)); I++) { + CCsParams[I].chkPptr = &(config_check_CCparams[I]); + } + + paramdef_t flexranParams[] = FLEXRANPARAMS_DESC; + config_get(flexranParams, sizeof(flexranParams)/sizeof(paramdef_t), CONFIG_STRING_NETWORK_CONTROLLER_CONFIG); + + if (!RC.flexran) { + RC.flexran = calloc(num_gnbs, sizeof(flexran_agent_info_t*)); + AssertFatal(RC.flexran, + "can't ALLOCATE %zu Bytes for %d flexran agent info with size %zu\n", + num_gnbs * sizeof(flexran_agent_info_t*), + num_gnbs, sizeof(flexran_agent_info_t*)); + } + + for (i = 0; i < num_gnbs; i++) { + RC.flexran[i] = calloc(1, sizeof(flexran_agent_info_t)); + AssertFatal(RC.flexran[i], + "can't ALLOCATE %zu Bytes for flexran agent info (iteration %d/%d)\n", + sizeof(flexran_agent_info_t), i + 1, num_gnbs); + /* if config says "yes", enable Agent, in all other cases it's like "no" */ + RC.flexran[i]->enabled = strcasecmp(*(flexranParams[FLEXRAN_ENABLED].strptr), "yes") == 0; + /* if not enabled, simply skip the rest, it is not needed anyway */ + if (!RC.flexran[i]->enabled) + continue; + RC.flexran[i]->interface_name = strdup(*(flexranParams[FLEXRAN_INTERFACE_NAME_IDX].strptr)); + //inet_ntop(AF_INET, &(enb_properties->properties[mod_id]->flexran_agent_ipv4_address), in_ip, INET_ADDRSTRLEN); + RC.flexran[i]->remote_ipv4_addr = strdup(*(flexranParams[FLEXRAN_IPV4_ADDRESS_IDX].strptr)); + RC.flexran[i]->remote_port = *(flexranParams[FLEXRAN_PORT_IDX].uptr); + RC.flexran[i]->cache_name = strdup(*(flexranParams[FLEXRAN_CACHE_IDX].strptr)); + RC.flexran[i]->node_ctrl_state = strcasecmp(*(flexranParams[FLEXRAN_AWAIT_RECONF_IDX].strptr), "yes") == 0 ? ENB_WAIT : ENB_NORMAL_OPERATION; + + config_getlist(&GNBParamList, GNBParams, sizeof(GNBParams)/sizeof(paramdef_t),NULL); + /* gNB ID from configuration, as read in by RCconfig_RRC() */ + if (!GNBParamList.paramarray[i][GNB_GNB_ID_IDX].uptr) { + // Calculate a default gNB ID +# if defined(ENABLE_USE_MME) + gnb_id = i + (s1ap_generate_eNB_id () & 0xFFFF8); +# else + gnb_id = i; +# endif + } else { + gnb_id = *(GNBParamList.paramarray[i][GNB_GNB_ID_IDX].uptr); + } + + /* cell ID */ + sprintf(aprefix, "%s.[%i]", GNB_CONFIG_STRING_GNB_LIST, i); + config_getlist(&CCsParamList, NULL, 0, aprefix); + if (CCsParamList.numelt > 0) { + sprintf(aprefix, "%s.[%i].%s.[%i]", GNB_CONFIG_STRING_GNB_LIST, i, GNB_CONFIG_STRING_COMPONENT_CARRIERS, 0); + config_get(CCsParams, sizeof(CCsParams)/sizeof(paramdef_t), aprefix); + Nid_cell_tr = (uint16_t) Nid_cell; + } + + RC.flexran[i]->mod_id = i; + RC.flexran[i]->agent_id = (((uint64_t)i) << 48) | (((uint64_t)gnb_id) << 16) | ((uint64_t)Nid_cell_tr); + + /* assume for the moment the monolithic case, i.e. agent can provide + * information for all layers */ + RC.flexran[i]->capability_mask = FLEXRAN_CAP_LOPHY | FLEXRAN_CAP_HIPHY + | FLEXRAN_CAP_LOMAC | FLEXRAN_CAP_HIMAC + | FLEXRAN_CAP_RLC | FLEXRAN_CAP_PDCP + | FLEXRAN_CAP_SDAP | FLEXRAN_CAP_RRC; + } +} + void RCconfig_NR_L1(void) { int i,j; paramdef_t L1_Params[] = L1PARAMS_DESC; diff --git a/openair2/GNB_APP/gnb_config.h b/openair2/GNB_APP/gnb_config.h index 4d816a7b321f126ea6d4388d462a790100a1e1fe..3ce598bb1b14bc9b59ac3b3d1a6c60774abff0c2 100644 --- a/openair2/GNB_APP/gnb_config.h +++ b/openair2/GNB_APP/gnb_config.h @@ -92,7 +92,7 @@ typedef struct ru_config_s { } ru_config_t; */ extern void RCconfig_RU(void); -extern void RCconfig_flexran(void); +extern void RCconfig_NR_flexran(void); extern void RCconfig_NR_L1(void); extern void RCconfig_nr_macrlc(void); extern int RCconfig_gtpu(void ); diff --git a/openair2/GNB_APP/gnb_paramdef.h b/openair2/GNB_APP/gnb_paramdef.h index 81dd69ab83123d5894fe0baaa5c574a3a19569dc..152465b29953d6c4cd70f2e50fdd27463c309d37 100644 --- a/openair2/GNB_APP/gnb_paramdef.h +++ b/openair2/GNB_APP/gnb_paramdef.h @@ -31,7 +31,7 @@ */ #include "common/config/config_paramdesc.h" -#include "NR_RRC_paramsvalues.h" +#include "RRC_nr_paramsvalues.h" #define GNB_CONFIG_STRING_CC_NODE_FUNCTION "node_function" @@ -666,7 +666,7 @@ typedef enum { {GNB_CONFIG_STRING_RACH_RA_CONTROLRESOURCESET, NULL, 0, iptr:&rach_ra_ControlResourceSet, defintval:10, TYPE_UINT, 0}, \ {GNB_CONFIG_STRING_PDCCH_COMMON_CONTROLRESOURCESETID, NULL, 0, iptr:&PDCCH_common_controlResourceSetId, defintval:5, TYPE_UINT, 0}, \ {GNB_CONFIG_STRING_PDCCH_COMMON_CONTROLRESOURCESET_DURATION, NULL, 0, iptr:&PDCCH_common_ControlResourceSet_duration, defintval:2, TYPE_UINT, 0}, \ -{GNB_CONFIG_STRING_PDCCH_CCE_REG_MAPPINGTYPE, NULL, 0, strptr:&PDCCH_cce_REG_MappingType, defstrval:"interleaved", TYPE_STRING, 0}, \ +{GNB_CONFIG_STRING_PDCCH_CCE_REG_MAPPINGTYPE, NULL, 0, strptr:&PDCCH_cce_REG_MappingType, defstrval:"nonInterleaved", TYPE_STRING, 0}, \ {GNB_CONFIG_STRING_PDCCH_REG_BUNDLESIZE, NULL, 0, iptr:&PDCCH_reg_BundleSize, defintval:3, TYPE_UINT, 0}, \ {GNB_CONFIG_STRING_PDCCH_INTERLEAVERSIZE, NULL, 0, iptr:&PDCCH_interleaverSize, defintval:3, TYPE_UINT, 0}, \ {GNB_CONFIG_STRING_PDCCH_SHIFTINDEX, NULL, 0, iptr:&PDCCH_shiftIndex, defintval:10, TYPE_UINT, 0}, \ diff --git a/openair2/LAYER2/NR_MAC_gNB/config.c b/openair2/LAYER2/NR_MAC_gNB/config.c index 3a2e81874c8d9ad4e6300c929aacfc5cbd8291da..98f4646d1154e5ec72c940848692137aa4973f39 100644 --- a/openair2/LAYER2/NR_MAC_gNB/config.c +++ b/openair2/LAYER2/NR_MAC_gNB/config.c @@ -162,13 +162,13 @@ void config_common(int Mod_idP, //cfg->subframe_config.tl.tag = //cfg->num_tlv++; - cfg->dl_frequencyinfo.DL_carrierBandwidth.value = dl_BandwidthP; - cfg->dl_frequencyinfo.DL_carrierBandwidth.tl.tag = NFAPI_RF_CONFIG_DL_CHANNEL_BANDWIDTH_TAG; //temporary + cfg->rf_config.dl_carrierBandwidth.value = dl_BandwidthP; + cfg->rf_config.dl_carrierBandwidth.tl.tag = NFAPI_RF_CONFIG_DL_CHANNEL_BANDWIDTH_TAG; //temporary cfg->num_tlv++; LOG_E(PHY,"%s() dl_BandwidthP:%d\n", __FUNCTION__, dl_BandwidthP); - cfg->ul_frequencyinfo.UL_carrierBandwidth.value = dl_BandwidthP; - cfg->ul_frequencyinfo.UL_carrierBandwidth.tl.tag = NFAPI_RF_CONFIG_UL_CHANNEL_BANDWIDTH_TAG; //temporary + cfg->rf_config.ul_carrierBandwidth.value = dl_BandwidthP; + cfg->rf_config.ul_carrierBandwidth.tl.tag = NFAPI_RF_CONFIG_UL_CHANNEL_BANDWIDTH_TAG; //temporary cfg->num_tlv++; //cfg->sch_config.half_frame_index.value = 0; Fix in PHY diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf index aaaf00546a307d2e709237a19574091fa824d163..908c3f4716f27655108abdfe0e8c77c3b9964ad4 100644 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpx300.conf @@ -1,16 +1,16 @@ -Active_eNBs = ( "gNB-Eurecom-LTEBox"); +Active_gNBs = ( "gNB-Eurecom-5GNRBox"); # Asn1_verbosity, choice in: none, info, annoying Asn1_verbosity = "none"; -eNBs = +gNBs = ( { ////////// Identification parameters: - eNB_ID = 0xe00; + gNB_ID = 0xe00; cell_type = "CELL_MACRO_ENB"; - eNB_name = "gNB-Eurecom-LTEBox"; + gNB_name = "gNB-Eurecom-5GNRBox"; // Tracking area code, 0x0000 and 0xfffe are reserved values tracking_area_code = "1"; @@ -25,86 +25,156 @@ eNBs = component_carriers = ( { - node_function = "3GPP_gNODEB"; - node_timing = "synch_to_ext_device"; - node_synch_ref = 0; - frame_type = "FDD"; - tdd_config = 3; - tdd_config_s = 0; - prefix_type = "NORMAL"; - eutra_band = 22; - downlink_frequency = 3510000000L; - uplink_frequency_offset = -120000000; - Nid_cell = 0; - N_RB_DL = 100; - Nid_cell_mbsfn = 0; - nb_antenna_ports = 1; - nb_antennas_tx = 1; - nb_antennas_rx = 1; - tx_gain = 90; - rx_gain = 125; - pbch_repetition = "FALSE"; - prach_root = 0; - prach_config_index = 0; - prach_high_speed = "DISABLE"; - prach_zero_correlation = 1; - prach_freq_offset = 2; - pucch_delta_shift = 1; - pucch_nRB_CQI = 0; - pucch_nCS_AN = 0; - pucch_n1_AN = 32; - pdsch_referenceSignalPower = -27; - pdsch_p_b = 0; - pusch_n_SB = 1; - pusch_enable64QAM = "DISABLE"; - pusch_hoppingMode = "interSubFrame"; - pusch_hoppingOffset = 0; - pusch_groupHoppingEnabled = "ENABLE"; - pusch_groupAssignment = 0; - pusch_sequenceHoppingEnabled = "DISABLE"; - pusch_nDMRS1 = 1; - phich_duration = "NORMAL"; - phich_resource = "ONESIXTH"; - srs_enable = "DISABLE"; - /* srs_BandwidthConfig =; - srs_SubframeConfig =; - srs_ackNackST =; - srs_MaxUpPts =;*/ - - pusch_p0_Nominal = -96; - pusch_alpha = "AL1"; - pucch_p0_Nominal = -104; - msg3_delta_Preamble = 6; - pucch_deltaF_Format1 = "deltaF2"; - pucch_deltaF_Format1b = "deltaF3"; - pucch_deltaF_Format2 = "deltaF0"; - pucch_deltaF_Format2a = "deltaF0"; - pucch_deltaF_Format2b = "deltaF0"; - - rach_numberOfRA_Preambles = 64; - rach_preamblesGroupAConfig = "DISABLE"; - /* - rach_sizeOfRA_PreamblesGroupA = ; - rach_messageSizeGroupA = ; - rach_messagePowerOffsetGroupB = ; - */ - rach_powerRampingStep = 4; - rach_preambleInitialReceivedTargetPower = -108; - rach_preambleTransMax = 10; - rach_raResponseWindowSize = 10; - rach_macContentionResolutionTimer = 48; - rach_maxHARQ_Msg3Tx = 4; - - pcch_default_PagingCycle = 128; - pcch_nB = "oneT"; - bcch_modificationPeriodCoeff = 2; - ue_TimersAndConstants_t300 = 1000; - ue_TimersAndConstants_t301 = 1000; - ue_TimersAndConstants_t310 = 1000; - ue_TimersAndConstants_t311 = 10000; - ue_TimersAndConstants_n310 = 20; - ue_TimersAndConstants_n311 = 1; - ue_TransmissionMode = 1; + node_function = "3GPP_gNODEB"; + node_timing = "synch_to_ext_device"; + node_synch_ref = 0; + frame_type = "FDD"; + DL_prefix_type = "NORMAL"; + UL_prefix_type = "NORMAL"; + eutra_band = 22; + downlink_frequency = 3510000000L; + uplink_frequency_offset = -120000000; + Nid_cell = 0; + N_RB_DL = 100; + nb_antenna_ports = 1; + nb_antennas_tx = 1; + nb_antennas_rx = 1; + tx_gain = 90; + rx_gain = 125; + MIB_subCarrierSpacingCommon = 0; + MIB_ssb_SubcarrierOffset = 0; + MIB_dmrs_TypeA_Position = 2; + pdcch_ConfigSIB1 = 0; + SIB1_frequencyOffsetSSB = "khz5"; + SIB1_ssb_PeriodicityServingCell = 5; + SIB1_ss_PBCH_BlockPower = -60; + absoluteFrequencySSB = 0; + ssb_SubcarrierOffset = 15; + DL_FreqBandIndicatorNR = 15; + DL_absoluteFrequencyPointA = 15; + DL_offsetToCarrier = 15; + DL_SCS_SubcarrierSpacing = "kHz15"; + DL_SCS_SpecificCarrier_k0 = 0; + DL_carrierBandwidth = 15; + DL_locationAndBandwidth = 15; + DL_BWP_SubcarrierSpacing = "kHz15"; + DL_BWP_prefix_type = "NORMAL"; + UL_FreqBandIndicatorNR = 15; + UL_absoluteFrequencyPointA = 13; + UL_additionalSpectrumEmission = 3; + UL_p_Max = -1; + UL_frequencyShift7p5khz = "TRUE"; + UL_offsetToCarrier = 10; + UL_SCS_SubcarrierSpacing = "kHz15"; + UL_SCS_SpecificCarrier_k0 = 0; + UL_carrierBandwidth = 15; + UL_locationAndBandwidth = 15; + UL_BWP_SubcarrierSpacing = "kHz15"; + UL_BWP_prefix_type = "NORMAL"; + ServingCellConfigCommon__ssb_PositionsInBurst_PR = "shortBitmap"; + ServingCellConfigCommon_ssb_periodicityServingCell = 10; + ServingCellConfigCommon_dmrs_TypeA_Position = 0; + NIA_SubcarrierSpacing = "kHz15"; + ServingCellConfigCommon_ss_PBCH_BlockPower = -60; + referenceSubcarrierSpacing = "kHz15"; + dl_UL_TransmissionPeriodicity = "ms0p5"; + nrofDownlinkSlots = 10; + nrofDownlinkSymbols = 10; + nrofUplinkSlots = 10; + nrofUplinkSymbols = 10; + rach_totalNumberOfRA_Preambles = 63; + rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_choice = "oneEighth"; + rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneEighth = 4; + rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneFourth = 8; + rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneHalf = 16; + rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_one = 24; + rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_two = 32; + rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_four = 8; + rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_eight = 4; + rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_sixteen = 2; + rach_groupBconfigured = "ENABLE"; + rach_ra_Msg3SizeGroupA = 56; + rach_messagePowerOffsetGroupB = "dB0"; + rach_numberOfRA_PreamblesGroupA = 32; + rach_ra_ContentionResolutionTimer = 8; + rsrp_ThresholdSSB = 64; + rsrp_ThresholdSSB_SUL = 64; + prach_RootSequenceIndex_choice = "l839"; + prach_RootSequenceIndex_l839 = 0; + prach_RootSequenceIndex_l139 = 0; + prach_msg1_SubcarrierSpacing = "kHz15"; + restrictedSetConfig = "unrestrictedSet"; + msg3_transformPrecoding = "ENABLE"; + prach_ConfigurationIndex = 10; + prach_msg1_FDM = "one"; + prach_msg1_FrequencyStart = 10; + zeroCorrelationZoneConfig = 10; + preambleReceivedTargetPower = -150; + preambleTransMax = 6; + powerRampingStep = "dB0"; + ra_ResponseWindow = 8; + groupHoppingEnabledTransformPrecoding = "ENABLE"; + msg3_DeltaPreamble = 0; + p0_NominalWithGrant = 0; + PUSCH_TimeDomainResourceAllocation_k2 = 0; + PUSCH_TimeDomainResourceAllocation_mappingType = "typeA"; + pucch_GroupHopping = "neither"; + p0_nominal = -30; + PDSCH_TimeDomainResourceAllocation_k0 = 2; + PDSCH_TimeDomainResourceAllocation_mappingType = "typeA"; + rateMatchPatternId = 0; + RateMatchPattern_patternType = "bitmaps"; + symbolsInResourceBlock = "oneSlot"; + periodicityAndPattern = 2; + RateMatchPattern_controlResourceSet = 5; + RateMatchPattern_subcarrierSpacing = "kHz15"; + RateMatchPattern_mode = "dynamic"; + searchSpaceSIB1 = 10; + searchSpaceOtherSystemInformation = 10; + pagingSearchSpace = 10; + ra_SearchSpace = 10; + rach_ra_ControlResourceSet = 10; + PDCCH_common_controlResourceSetId = 5; + PDCCH_common_ControlResourceSet_duration = 2; + PDCCH_cce_REG_MappingType = "nonInterleaved"; + PDCCH_reg_BundleSize = 3; + PDCCH_interleaverSize = 3; + PDCCH_shiftIndex = 10; + PDCCH_precoderGranularity = "sameAsREG-bundle"; + PDCCH_TCI_StateId = 32; + tci_PresentInDCI = "ENABLE"; + SearchSpaceId = 10; + commonSearchSpaces_controlResourceSetId = 5; + SearchSpace_monitoringSlotPeriodicityAndOffset_choice = "sl1"; + SearchSpace_monitoringSlotPeriodicityAndOffset_sl1 = 0; + SearchSpace_monitoringSlotPeriodicityAndOffset_sl2 = 0; + SearchSpace_monitoringSlotPeriodicityAndOffset_sl4 = 0; + SearchSpace_monitoringSlotPeriodicityAndOffset_sl5 = 0; + SearchSpace_monitoringSlotPeriodicityAndOffset_sl8 = 0; + SearchSpace_monitoringSlotPeriodicityAndOffset_sl10 = 0; + SearchSpace_monitoringSlotPeriodicityAndOffset_sl16 = 0; + SearchSpace_monitoringSlotPeriodicityAndOffset_sl20 = 0; + SearchSpace_nrofCandidates_aggregationLevel1 = 0; + SearchSpace_nrofCandidates_aggregationLevel2 = 0; + SearchSpace_nrofCandidates_aggregationLevel4 = 0; + SearchSpace_nrofCandidates_aggregationLevel8 = 0; + SearchSpace_nrofCandidates_aggregationLevel16 = 0; + SearchSpace_searchSpaceType = "common"; + Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel1 = 1; + Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel2 = 1; + Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel4 = 1; + Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel8 = 1; + Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel16 = 1; + Common_dci_Format2_3_monitoringPeriodicity = 1; + Common_dci_Format2_3_nrofPDCCH_Candidates = 1; + ue_Specific__dci_Formats = "formats0-0-And-1-0"; + RateMatchPatternLTE_CRS_carrierFreqDL = 6; + RateMatchPatternLTE_CRS_carrierBandwidthDL = 6; + RateMatchPatternLTE_CRS_nrofCRS_Ports = 1; + RateMatchPatternLTE_CRS_v_Shift = 0; + RateMatchPatternLTE_CRS_radioframeAllocationPeriod = 1; + RateMatchPatternLTE_CRS_radioframeAllocationOffset = 0; + RateMatchPatternLTE_CRS_subframeAllocation_choice = "oneFrame"; } ); diff --git a/targets/RT/USER/nr-softmodem.c b/targets/RT/USER/nr-softmodem.c index fc5790fe4eaf75ce5b7c78ad5d41b7c915f60962..43d944038b45570a37b246e357327972b5095e17 100644 --- a/targets/RT/USER/nr-softmodem.c +++ b/targets/RT/USER/nr-softmodem.c @@ -1061,7 +1061,7 @@ int main( int argc, char **argv ) #endif /* Start the agent. If it is turned off in the configuration, it won't start */ - RCconfig_flexran(); + RCconfig_NR_flexran(); for (i = 0; i < RC.nb_L1_inst; i++) { flexran_agent_start(i); }