Active_gNBs = ("gnb-rfsim"); # Asn1_verbosity, choice in: none, info, annoying Asn1_verbosity = "none"; e2_agent = { enabled = "yes"; near_ric_ip_addr = "192.168.71.21"; # FlexRIC Near-RT RIC near_ric_port = 36422; sm_dir = "/usr/local/lib/flexric/"; } gNBs = ( { ////////// Identification parameters: gNB_ID = 0xe00; gNB_name = "gnb-rfsim"; // Tracking area code, 0x0000 and 0xfffe are reserved values tracking_area_code = 1; # plmn_list = ({ mcc = 001; mnc = 01; mnc_length = 2; snssaiList = ({ sst = 1; sd = 0x1; }) }); plmn_list = ({ mcc = 001; mnc = 01; mnc_length = 2; snssaiList = ({ sst = 1; sd = 0xffffff; }) }); nr_cellid = 12345678L; ////////// Physical parameters: pdsch_AntennaPorts_XP = 2; pusch_AntennaPorts = 4; pdsch_AntennaPorts_N1 = 2; do_CSIRS = 1; # used to be 1 do_SRS = 0; min_rxtxtime = 6; pdcch_ConfigSIB1 = ( { controlResourceSetZero = 12; searchSpaceZero = 0; } ); servingCellConfigCommon = ( { #spCellConfigCommon physCellId = 0; # downlinkConfigCommon #frequencyInfoDL # this is 3300.60 MHz + 53*12*30e-3 MHz = 3319.68 absoluteFrequencySSB = 621312; # 641280 dl_frequencyBand = 78; # this is 3300.60 MHz dl_absoluteFrequencyPointA = 620040; # 640008 #scs-SpecificCarrierList dl_offstToCarrier = 0; # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 dl_subcarrierSpacing = 1; dl_carrierBandwidth = 106; #initialDownlinkBWP #genericParameters # this is RBstart=27,L=48 (275*(L-1))+RBstart initialDLBWPlocationAndBandwidth = 12956; # 6366 12925 12956 28875 12952 # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 initialDLBWPsubcarrierSpacing = 1; #pdcch-ConfigCommon initialDLBWPcontrolResourceSetZero = 12; initialDLBWPsearchSpaceZero = 0; #uplinkConfigCommon #frequencyInfoUL ul_frequencyBand = 78; #scs-SpecificCarrierList ul_offstToCarrier = 0; # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 ul_subcarrierSpacing = 1; ul_carrierBandwidth = 106; pMax = 20; #initialUplinkBWP #genericParameters initialULBWPlocationAndBandwidth = 12956; # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 initialULBWPsubcarrierSpacing = 1; #rach-ConfigCommon #rach-ConfigGeneric prach_ConfigurationIndex = 98; #prach_msg1_FDM #0 = one, 1=two, 2=four, 3=eight prach_msg1_FDM = 0; prach_msg1_FrequencyStart = 0; zeroCorrelationZoneConfig = 12; preambleReceivedTargetPower = -96; #preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200) preambleTransMax = 6; #powerRampingStep # 0=dB0,1=dB2,2=dB4,3=dB6 powerRampingStep = 1; #ra_ReponseWindow #1,2,4,8,10,20,40,80 # ra_ResponseWindow = 4; #ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR #1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 3; #oneHalf (0..15) 4,8,12,16,...60,64 ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 15; #ra_ContentionResolutionTimer #(0..7) 8,16,24,32,40,48,56,64 ra_ContentionResolutionTimer = 7; rsrp_ThresholdSSB = 19; #prach-RootSequenceIndex_PR #1 = 839, 2 = 139 prach_RootSequenceIndex_PR = 2; prach_RootSequenceIndex = 1; # SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex # msg1_SubcarrierSpacing = 1, # restrictedSetConfig # 0=unrestricted, 1=restricted type A, 2=restricted type B restrictedSetConfig = 0, msg3_DeltaPreamble = 1; p0_NominalWithGrant =-90; # pucch-ConfigCommon setup : # pucchGroupHopping # 0 = neither, 1= group hopping, 2=sequence hopping pucchGroupHopping = 0; hoppingId = 40; p0_nominal = -70; # ssb_PositionsInBurs_BitmapPR # 1=short, 2=medium, 3=long ssb_PositionsInBurst_PR = 2; ssb_PositionsInBurst_Bitmap = 1; # ssb_periodicityServingCell # 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1 ssb_periodicityServingCell = 2; # dmrs_TypeA_position # 0 = pos2, 1 = pos3 dmrs_TypeA_Position = 0; # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 subcarrierSpacing = 1; #tdd-UL-DL-ConfigurationCommon # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 referenceSubcarrierSpacing = 1; # pattern1 # dl_UL_TransmissionPeriodicity # 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10 dl_UL_TransmissionPeriodicity = 6; nrofDownlinkSlots = 7; nrofDownlinkSymbols = 6; nrofUplinkSlots = 2; nrofUplinkSymbols = 4; ssPBCH_BlockPower = -25; } ); # Dedicated Serving Cell Configuration servingCellConfigDedicated = ({ # BWP-Downlink # BWP 1 Configuration dl_bwp-Id_1 = 1; dl_bwp1_locationAndBandwidth = 28875; // RBstart=0, L=106 (40 MHz BW) # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 dl_bwp1_subcarrierSpacing = 1; # BWP 2 Configuration dl_bwp-Id_2 = 2; dl_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW) # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 dl_bwp2_subcarrierSpacing = 1; # BWP 3 Configuration dl_bwp-Id_3 = 3; dl_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW) # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 dl_bwp3_subcarrierSpacing = 1; firstActiveDownlinkBWP-Id = 1; #BWP-Id defaultDownlinkBWP-Id = 1; #BWP-Id # bwp-InactivityTimer ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30, # ms40,ms50, ms60, ms80,ms100, ms200,ms300, ms500, # ms750, ms1280, ms1920, ms2560, spare10, spare9, spare8, # spare7, spare6, spare5, spare4, spare3, spare2, spare1 } # UplinkConfig # BWP-Uplink # BWP 1 Configuration ul_bwp-Id_1 = 1; ul_bwp1_locationAndBandwidth = 28875; // RBstart=0, L=106 (40 MHz BW) # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 ul_bwp1_subcarrierSpacing = 1; # BWP 2 Configuration ul_bwp-Id_2 = 2; ul_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW) # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 ul_bwp2_subcarrierSpacing = 1; # BWP 3 Configuration ul_bwp-Id_3 = 3; ul_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW) # subcarrierSpacing # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 ul_bwp3_subcarrierSpacing = 1; firstActiveUplinkBWP-Id = 1; #BWP-Id } ); # ------- SCTP definitions SCTP : { # Number of streams to use in input/output SCTP_INSTREAMS = 2; SCTP_OUTSTREAMS = 2; }; ////////// AMF parameters: amf_ip_address = ({ipv4 = "192.168.71.132";}); # Full OAI CN AMF (duc-oai-amf) NETWORK_INTERFACES : { GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.71.140"; # On full CN network GNB_IPV4_ADDRESS_FOR_NGU = "192.168.71.140"; # On full CN network GNB_PORT_FOR_S1U = 2152; # Spec 2152 }; } ); MACRLCs = ( { num_cc = 1; tr_s_preference = "local_L1"; tr_n_preference = "local_RRC"; #pusch_TargetSNRx10 = 150; #pucch_TargetSNRx10 = 200; ulsch_max_frame_inactivity = 0; dl_max_mcs = 30; } ); L1s = ( { num_cc = 1; tr_n_preference = "local_mac"; pusch_proc_threads = 8; prach_dtx_threshold = 120; pucch0_dtx_threshold = 120; } ); RUs = ( { local_rf = "yes" nb_tx = 4 nb_rx = 4 att_tx = 0 att_rx = 0; bands = [78]; max_pdschReferenceSignalPower = -27; max_rxgain = 75; eNB_instances = [0]; ##beamforming 1x4 matrix: 1 layer x 4 antennas # bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000]; #clock_src = "internal"; # sdr_addrs = "mgmt_addr=192.168.10.2,addr=192.168.10.2,clock_source=internal,time_source=internal" bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000, 0x00000000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff]; sdr_addrs = "serial=XXXXXXX"; clock_src = "internal"; } ); THREAD_STRUCT = ( { #three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT" parallel_config = "PARALLEL_RU_L1_TRX_SPLIT"; #two option for worker "WORKER_DISABLE" or "WORKER_ENABLE" worker_config = "WORKER_ENABLE"; } ); rfsimulator : { serveraddr = "server"; modelname = "AWGN"; IQfile = "/tmp/rfsimulator.iqs"; }; security = { # preferred ciphering algorithms # the first one of the list that an UE supports in chosen # valid values: nea0, nea1, nea2, nea3 ciphering_algorithms = ( "nea0" ); # preferred integrity algorithms # the first one of the list that an UE supports in chosen # valid values: nia0, nia1, nia2, nia3 integrity_algorithms = ( "nia2", "nia0" ); # setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter # what 'ciphering_algorithms' configures; same thing for 'drb_integrity' drb_ciphering = "yes"; drb_integrity = "no"; }; log_config : { global_log_level ="info"; hw_log_level ="info"; phy_log_level ="info"; mac_log_level ="info"; rlc_log_level ="info"; pdcp_log_level ="info"; rrc_log_level ="info"; ngap_log_level ="info"; f1ap_log_level ="info"; }; # channelmod = { # // 2 descriptors per UE (DL+UL). 10 UEs => 20. Keep margin. # max_chan = 32; # modellist = "modellist_antenna_muting"; # modellist_antenna_muting = ( # // UE0 # { model_name="rfsimu_dl_ue0"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; }, # { model_name="rfsimu_ul_ue0"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; }, # // UE1 # { model_name="rfsimu_dl_ue1"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; }, # { model_name="rfsimu_ul_ue1"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; }, # // UE2 # { model_name="rfsimu_dl_ue2"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; }, # { model_name="rfsimu_ul_ue2"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; }, # // UE3 # { model_name="rfsimu_dl_ue3"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; }, # { model_name="rfsimu_ul_ue3"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; }, # // UE4 # { model_name="rfsimu_dl_ue4"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; }, # { model_name="rfsimu_ul_ue4"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; }, # // UE5 # { model_name="rfsimu_dl_ue5"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; }, # { model_name="rfsimu_ul_ue5"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; }, # // UE6 # { model_name="rfsimu_dl_ue6"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; }, # { model_name="rfsimu_ul_ue6"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; }, # // UE7 # { model_name="rfsimu_dl_ue7"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; }, # { model_name="rfsimu_ul_ue7"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; }, # // UE8 # { model_name="rfsimu_dl_ue8"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; }, # { model_name="rfsimu_ul_ue8"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; }, # // UE9 # { model_name="rfsimu_dl_ue9"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; }, # { model_name="rfsimu_ul_ue9"; type="AWGN"; ploss_dB=20; noise_power_dB=-10; forgetfact=0; offset=0; ds_tdl=0; } # ); # };