From 004d620c459bb6ab4a0bed38c1316dc02707c45e Mon Sep 17 00:00:00 2001 From: Your Name <you@example.com> Date: Wed, 1 Mar 2023 15:29:51 -0300 Subject: [PATCH] Add new scenarios --- .../cu_du_UE/cu_gnb.conf | 224 ++++++++++++++++ .../cu_du_UE/du_gnb.conf | 242 ++++++++++++++++++ .../cu_du_UE/run_SIMU_oai_ran.sh | 22 ++ .../cu_du_UE/run_SIMU_oai_ran_w_UE.sh | 27 ++ .../cu_du_UE/run_USRP_oai_UE.sh | 13 + .../cu_du_UE/run_USRP_oai_ran.sh | 22 ++ .../openairinterface-conf/cu_du_UE/ue.conf | 8 + .../flexric_CU_DU_UE/cu_gnb.conf | 224 ++++++++++++++++ .../flexric_CU_DU_UE/du_gnb.conf | 242 ++++++++++++++++++ .../flexric_CU_DU_UE/run_SIMU_oai_ran.sh | 22 ++ .../flexric_CU_DU_UE/run_SIMU_oai_ran_w_UE.sh | 27 ++ .../flexric_CU_DU_UE/run_USRP_oai_UE.sh | 13 + .../flexric_CU_DU_UE/run_USRP_oai_ran.sh | 22 ++ .../flexric_CU_DU_UE/ue.conf | 8 + .../flexric_gNB_UE/run_SIMU_oai_ran.sh | 11 +- .../flexric_gNB_UE/run_SIMU_oai_ran_w_UE.sh | 12 +- .../flexric_gNB_UE/run_USRP_oai_ran.sh | 9 +- .../openairinterface-conf/gNB_UE/cu_gnb.conf | 224 ++++++++++++++++ .../openairinterface-conf/gNB_UE/du_gnb.conf | 242 ++++++++++++++++++ .../gNB_UE/run_SIMU_oai_ran.sh | 19 ++ .../gNB_UE/run_SIMU_oai_ran_w_UE.sh | 21 ++ .../gNB_UE/run_USRP_oai_UE.sh | 13 + .../gNB_UE/run_USRP_oai_ran.sh | 19 ++ .../openairinterface-conf/gNB_UE/ue.conf | 8 + 24 files changed, 1672 insertions(+), 22 deletions(-) create mode 100644 openairinterface5g/openairinterface-conf/cu_du_UE/cu_gnb.conf create mode 100644 openairinterface5g/openairinterface-conf/cu_du_UE/du_gnb.conf create mode 100755 openairinterface5g/openairinterface-conf/cu_du_UE/run_SIMU_oai_ran.sh create mode 100755 openairinterface5g/openairinterface-conf/cu_du_UE/run_SIMU_oai_ran_w_UE.sh create mode 100755 openairinterface5g/openairinterface-conf/cu_du_UE/run_USRP_oai_UE.sh create mode 100755 openairinterface5g/openairinterface-conf/cu_du_UE/run_USRP_oai_ran.sh create mode 100644 openairinterface5g/openairinterface-conf/cu_du_UE/ue.conf create mode 100644 openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/cu_gnb.conf create mode 100644 openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/du_gnb.conf create mode 100755 openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/run_SIMU_oai_ran.sh create mode 100755 openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/run_SIMU_oai_ran_w_UE.sh create mode 100755 openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/run_USRP_oai_UE.sh create mode 100755 openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/run_USRP_oai_ran.sh create mode 100644 openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/ue.conf create mode 100644 openairinterface5g/openairinterface-conf/gNB_UE/cu_gnb.conf create mode 100644 openairinterface5g/openairinterface-conf/gNB_UE/du_gnb.conf create mode 100755 openairinterface5g/openairinterface-conf/gNB_UE/run_SIMU_oai_ran.sh create mode 100755 openairinterface5g/openairinterface-conf/gNB_UE/run_SIMU_oai_ran_w_UE.sh create mode 100755 openairinterface5g/openairinterface-conf/gNB_UE/run_USRP_oai_UE.sh create mode 100755 openairinterface5g/openairinterface-conf/gNB_UE/run_USRP_oai_ran.sh create mode 100644 openairinterface5g/openairinterface-conf/gNB_UE/ue.conf diff --git a/openairinterface5g/openairinterface-conf/cu_du_UE/cu_gnb.conf b/openairinterface5g/openairinterface-conf/cu_du_UE/cu_gnb.conf new file mode 100644 index 000000000..a2655f6a7 --- /dev/null +++ b/openairinterface5g/openairinterface-conf/cu_du_UE/cu_gnb.conf @@ -0,0 +1,224 @@ +Active_gNBs = ( "gNB-Eurecom-CU"); +# Asn1_verbosity, choice in: none, info, annoying +Asn1_verbosity = "none"; +Num_Threads_PUSCH = 8; + +gNBs = +( + { + ////////// Identification parameters: + gNB_ID = 0xe00; + +# cell_type = "CELL_MACRO_GNB"; + + gNB_name = "gNB-Eurecom-CU"; + + // Tracking area code, 0x0000 and 0xfffe are reserved values + tracking_area_code = 0x0001; + plmn_list = ({ mcc = 001; mnc = 01; mnc_length = 2; snssaiList = ({ sst = 1, sd = 0x1 }) }); + + nr_cellid = 12345678L; + + tr_s_preference = "f1"; + + local_s_if_name = "lo"; + local_s_address = "127.0.0.4"; + remote_s_address = "127.0.0.3"; + local_s_portc = 501; + local_s_portd = 2152; + remote_s_portc = 500; + remote_s_portd = 2152; + min_rxtxtime = 6; + + pdcch_ConfigSIB1 = ( + { + controlResourceSetZero = 12; + searchSpaceZero = 0; + } + ); + + servingCellConfigCommon = ( + { + #spCellConfigCommon + + physCellId = 0; + +# downlinkConfigCommon + #frequencyInfoDL + # this is 3600 MHz + 43 PRBs@30kHz SCS (same as initial BWP) + absoluteFrequencySSB = 641280; + dl_frequencyBand = 78; + # this is 3600 MHz + dl_absoluteFrequencyPointA = 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 = 28875; # 6366 12925 12956 28875 12952 +# subcarrierSpacing +# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 + initialDLBWPsubcarrierSpacing = 1; + #pdcch-ConfigCommon + initialDLBWPcontrolResourceSetZero = 11; + 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 = 28875; +# 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 = 13; + 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 = 4; +#oneHalf (0..15) 4,8,12,16,...60,64 + ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 14; +#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 = -90; +# 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; + } + + ); + # ------- 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.70.132"; + ipv6 = "192:168:30::17"; + active = "yes"; + preference = "ipv4"; + } + ); + + NETWORK_INTERFACES : + { + + GNB_INTERFACE_NAME_FOR_NG_AMF = "demo-oai"; + GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.70.129"; + GNB_INTERFACE_NAME_FOR_NGU = "demo-oai"; + GNB_IPV4_ADDRESS_FOR_NGU = "192.168.70.129"; + GNB_PORT_FOR_S1U = 2152; # Spec 2152 + }; + } +); + +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 ="debug"; + pdcp_log_level ="info"; + rrc_log_level ="info"; + f1ap_log_level ="debug"; + ngap_log_level ="debug"; + }; + diff --git a/openairinterface5g/openairinterface-conf/cu_du_UE/du_gnb.conf b/openairinterface5g/openairinterface-conf/cu_du_UE/du_gnb.conf new file mode 100644 index 000000000..df5be97e3 --- /dev/null +++ b/openairinterface5g/openairinterface-conf/cu_du_UE/du_gnb.conf @@ -0,0 +1,242 @@ +Active_gNBs = ( "gNB-Eurecom-DU"); +# Asn1_verbosity, choice in: none, info, annoying +Asn1_verbosity = "none"; + +gNBs = +( + { + ////////// Identification parameters: + gNB_ID = 0xe00; + +# cell_type = "CELL_MACRO_GNB"; + + gNB_name = "gNB-Eurecom-DU"; + + // Tracking area code, 0x0000 and 0xfffe are reserved values + tracking_area_code = 0x0001; + plmn_list = ({ mcc = 001; mnc = 01; mnc_length = 2; snssaiList = ({ sst = 1, sd = 0x1 }) }); + + nr_cellid = 12345678L; + + ////////// Physical parameters: + + min_rxtxtime = 6; + + pdcch_ConfigSIB1 = ( + { + controlResourceSetZero = 12; + searchSpaceZero = 0; + } + ); + + servingCellConfigCommon = ( + { + #spCellConfigCommon + + physCellId = 0; + +# downlinkConfigCommon + #frequencyInfoDL + # this is 3600 MHz + 43 PRBs@30kHz SCS (same as initial BWP) + absoluteFrequencySSB = 641280; + dl_frequencyBand = 78; + # this is 3600 MHz + dl_absoluteFrequencyPointA = 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 = 28875; # 6366 12925 12956 28875 12952 +# subcarrierSpacing +# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 + initialDLBWPsubcarrierSpacing = 1; + #pdcch-ConfigCommon + initialDLBWPcontrolResourceSetZero = 11; + 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 = 28875; +# 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 = 13; + 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 = 4; +#oneHalf (0..15) 4,8,12,16,...60,64 + ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 14; +#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 = -90; +# 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; + } + + ); + + + # ------- SCTP definitions + SCTP : + { + # Number of streams to use in input/output + SCTP_INSTREAMS = 2; + SCTP_OUTSTREAMS = 2; + }; + } +); + +MACRLCs = ( + { + num_cc = 1; + tr_s_preference = "local_L1"; + tr_n_preference = "f1"; + local_n_if_name = "lo"; + local_n_address = "127.0.0.3"; + remote_n_address = "127.0.0.4"; + local_n_portc = 500; + local_n_portd = 2152; + remote_n_portc = 501; + remote_n_portd = 2152; + + } +); + +L1s = ( +{ + num_cc = 1; + tr_n_preference = "local_mac"; + prach_dtx_threshold = 120; + pucch0_dtx_threshold = 150; + ofdm_offset_divisor = 8; #set this to UINT_MAX for offset 0 +} +); + +RUs = ( + { + local_rf = "yes" + nb_tx = 1 + nb_rx = 1 + att_tx = 0 + att_rx = 0; + bands = [78]; + max_pdschReferenceSignalPower = -27; + max_rxgain = 114; + eNB_instances = [0]; + #beamforming 1x4 matrix: + bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000]; + 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_SINGLE_THREAD"; + #two option for worker "WORKER_DISABLE" or "WORKER_ENABLE" + worker_config = "WORKER_ENABLE"; + } +); +rfsimulator: { +serveraddr = "server"; + serverport = "4043"; + options = (); #("saviq"); or/and "chanmod" + modelname = "AWGN"; + IQfile = "/tmp/rfsimulator.iqs" +} + + 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"; + f1ap_log_level ="debug"; + ngap_log_level ="debug"; + }; + diff --git a/openairinterface5g/openairinterface-conf/cu_du_UE/run_SIMU_oai_ran.sh b/openairinterface5g/openairinterface-conf/cu_du_UE/run_SIMU_oai_ran.sh new file mode 100755 index 000000000..e47501a4c --- /dev/null +++ b/openairinterface5g/openairinterface-conf/cu_du_UE/run_SIMU_oai_ran.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +sudo apt-get install tmux -y + +session="oai" + +## Split into 4 panes +tmux new-session -d -s $session +tmux split-window -h \; split-window -d; + +## Run OAI RAN + +## Run OAI CU +tmux send-keys -t 0 'cd ~/openairinterface5g/cmake_targets/ran_build/build/' ENTER \; send-keys -t 0 'sudo RFSIMULATOR=server ./nr-softmodem --rfsim --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/cu_gnb.conf --continuous-tx --gNBs.[0].min_rxtxtime 6' ENTER; + +## Run OAI DU +tmux send-keys -t 1 'cd ~/openairinterface5g/cmake_targets/ran_build/build/' ENTER \; send-keys -t 1 'sudo RFSIMULATOR=server ./nr-softmodem --rfsim --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/du_gnb.conf --continuous-tx --gNBs.[0].min_rxtxtime 6' ENTER; + +## Run FlexRIC +tmux send-keys -t 2 'cd ~/flexric/' ENTER \; send-keys -t 2 './build/examples/ric/nearRT-RIC' ENTER; + +tmux attach-session -t $session diff --git a/openairinterface5g/openairinterface-conf/cu_du_UE/run_SIMU_oai_ran_w_UE.sh b/openairinterface5g/openairinterface-conf/cu_du_UE/run_SIMU_oai_ran_w_UE.sh new file mode 100755 index 000000000..a26ba78cb --- /dev/null +++ b/openairinterface5g/openairinterface-conf/cu_du_UE/run_SIMU_oai_ran_w_UE.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +sudo apt-get install tmux + +session="oai" + +## Split into 4 panes +tmux new-session -d -s $session +tmux split-window -h \; split-window -d; +tmux swapp -s 0; +tmux split-window -d; + +## Run OAI RAN + +## Run OAI CU +tmux send-keys -t 0 'cd ~/openairinterface5g/cmake_targets/ran_build/build/' ENTER \; send-keys -t 0 'sudo RFSIMULATOR=server ./nr-softmodem --rfsim --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/cu_gnb.conf --continuous-tx --gNBs.[0].min_rxtxtime 6' ENTER; + +## Run OAI DU +tmux send-keys -t 1 'cd ~/openairinterface5g/cmake_targets/ran_build/build/' ENTER \; send-keys -t 1 'sudo RFSIMULATOR=server ./nr-softmodem --rfsim --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/du_gnb.conf --continuous-tx --gNBs.[0].min_rxtxtime 6' ENTER; + +## Run FlexRIC +tmux send-keys -t 2 'cd ~/flexric/' ENTER \; send-keys -t 2 './build/examples/ric/nearRT-RIC' ENTER; + +## Run OAI UE +tmux send-keys -t 3 'cd ~/openairinterface5g/cmake_targets/ran_build/build/' ENTER \; send-keys -t 3 'sleep 20' ENTER \; send-keys -t 3 'sudo RFSIMULATOR=192.168.70.129 ./nr-uesoftmodem -r 106 --numerology 1 --band 78 -C 3619200000 --rfsim --sa --nokrnmod -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/ue.conf' ENTER; + +tmux attach-session -t $session diff --git a/openairinterface5g/openairinterface-conf/cu_du_UE/run_USRP_oai_UE.sh b/openairinterface5g/openairinterface-conf/cu_du_UE/run_USRP_oai_UE.sh new file mode 100755 index 000000000..237f7e746 --- /dev/null +++ b/openairinterface5g/openairinterface-conf/cu_du_UE/run_USRP_oai_UE.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +sudo apt-get install tmux -y + +session="oai_UE" + +## Split into 4 panes +tmux new-session -d -s $session + +## Run OAI UE +tmux send-keys -t 0 'cd ~/openairinterface5g/cmake_targets/ran_build/build/' ENTER \; send-keys -t 0 'sudo ./nr-uesoftmodem -r 106 --numerology 1 --band 78 -C 3619200000 --sa --nokrnmod --ue-fo-compensation --ue-max-power 0 -E -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/ue.conf' ENTER; + +tmux attach-session -t $session diff --git a/openairinterface5g/openairinterface-conf/cu_du_UE/run_USRP_oai_ran.sh b/openairinterface5g/openairinterface-conf/cu_du_UE/run_USRP_oai_ran.sh new file mode 100755 index 000000000..dde6f394c --- /dev/null +++ b/openairinterface5g/openairinterface-conf/cu_du_UE/run_USRP_oai_ran.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +sudo apt-get install tmux -y + +session="oai" + +## Split into 4 panes +tmux new-session -d -s $session +tmux split-window -h \; split-window -d; + +## Run OAI RAN + +## Run OAI CU +tmux send-keys -t 0 'cd ~/openairinterface5g/cmake_targets/ran_build/build/' ENTER \; send-keys -t 0 'sudo ./nr-softmodem -E --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/cu_gnb.conf --continuous-tx --gNBs.[0].min_rxtxtime 6' ENTER; + +## Run OAI DU +tmux send-keys -t 1 'cd ~/openairinterface5g/cmake_targets/ran_build/build/' ENTER \; send-keys -t 1 'sudo ./nr-softmodem -E --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/du_gnb.conf --continuous-tx --gNBs.[0].min_rxtxtime 6' ENTER; + +## Run FlexRIC +tmux send-keys -t 2 'cd ~/flexric/' ENTER \; send-keys -t 2 './build/examples/ric/nearRT-RIC' ENTER; + +tmux attach-session -t $session diff --git a/openairinterface5g/openairinterface-conf/cu_du_UE/ue.conf b/openairinterface5g/openairinterface-conf/cu_du_UE/ue.conf new file mode 100644 index 000000000..73207fcfd --- /dev/null +++ b/openairinterface5g/openairinterface-conf/cu_du_UE/ue.conf @@ -0,0 +1,8 @@ +uicc0 = { +imsi = "001010000000001"; +key = "fec86ba6eb707ed08905757b1bb44b8f"; +opc= "C42449363BBAD02B66D16BC975D77CC1"; +dnn= "oai"; +nssai_sst=1; +nssai_sd=1; +} diff --git a/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/cu_gnb.conf b/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/cu_gnb.conf new file mode 100644 index 000000000..a2655f6a7 --- /dev/null +++ b/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/cu_gnb.conf @@ -0,0 +1,224 @@ +Active_gNBs = ( "gNB-Eurecom-CU"); +# Asn1_verbosity, choice in: none, info, annoying +Asn1_verbosity = "none"; +Num_Threads_PUSCH = 8; + +gNBs = +( + { + ////////// Identification parameters: + gNB_ID = 0xe00; + +# cell_type = "CELL_MACRO_GNB"; + + gNB_name = "gNB-Eurecom-CU"; + + // Tracking area code, 0x0000 and 0xfffe are reserved values + tracking_area_code = 0x0001; + plmn_list = ({ mcc = 001; mnc = 01; mnc_length = 2; snssaiList = ({ sst = 1, sd = 0x1 }) }); + + nr_cellid = 12345678L; + + tr_s_preference = "f1"; + + local_s_if_name = "lo"; + local_s_address = "127.0.0.4"; + remote_s_address = "127.0.0.3"; + local_s_portc = 501; + local_s_portd = 2152; + remote_s_portc = 500; + remote_s_portd = 2152; + min_rxtxtime = 6; + + pdcch_ConfigSIB1 = ( + { + controlResourceSetZero = 12; + searchSpaceZero = 0; + } + ); + + servingCellConfigCommon = ( + { + #spCellConfigCommon + + physCellId = 0; + +# downlinkConfigCommon + #frequencyInfoDL + # this is 3600 MHz + 43 PRBs@30kHz SCS (same as initial BWP) + absoluteFrequencySSB = 641280; + dl_frequencyBand = 78; + # this is 3600 MHz + dl_absoluteFrequencyPointA = 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 = 28875; # 6366 12925 12956 28875 12952 +# subcarrierSpacing +# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 + initialDLBWPsubcarrierSpacing = 1; + #pdcch-ConfigCommon + initialDLBWPcontrolResourceSetZero = 11; + 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 = 28875; +# 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 = 13; + 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 = 4; +#oneHalf (0..15) 4,8,12,16,...60,64 + ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 14; +#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 = -90; +# 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; + } + + ); + # ------- 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.70.132"; + ipv6 = "192:168:30::17"; + active = "yes"; + preference = "ipv4"; + } + ); + + NETWORK_INTERFACES : + { + + GNB_INTERFACE_NAME_FOR_NG_AMF = "demo-oai"; + GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.70.129"; + GNB_INTERFACE_NAME_FOR_NGU = "demo-oai"; + GNB_IPV4_ADDRESS_FOR_NGU = "192.168.70.129"; + GNB_PORT_FOR_S1U = 2152; # Spec 2152 + }; + } +); + +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 ="debug"; + pdcp_log_level ="info"; + rrc_log_level ="info"; + f1ap_log_level ="debug"; + ngap_log_level ="debug"; + }; + diff --git a/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/du_gnb.conf b/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/du_gnb.conf new file mode 100644 index 000000000..df5be97e3 --- /dev/null +++ b/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/du_gnb.conf @@ -0,0 +1,242 @@ +Active_gNBs = ( "gNB-Eurecom-DU"); +# Asn1_verbosity, choice in: none, info, annoying +Asn1_verbosity = "none"; + +gNBs = +( + { + ////////// Identification parameters: + gNB_ID = 0xe00; + +# cell_type = "CELL_MACRO_GNB"; + + gNB_name = "gNB-Eurecom-DU"; + + // Tracking area code, 0x0000 and 0xfffe are reserved values + tracking_area_code = 0x0001; + plmn_list = ({ mcc = 001; mnc = 01; mnc_length = 2; snssaiList = ({ sst = 1, sd = 0x1 }) }); + + nr_cellid = 12345678L; + + ////////// Physical parameters: + + min_rxtxtime = 6; + + pdcch_ConfigSIB1 = ( + { + controlResourceSetZero = 12; + searchSpaceZero = 0; + } + ); + + servingCellConfigCommon = ( + { + #spCellConfigCommon + + physCellId = 0; + +# downlinkConfigCommon + #frequencyInfoDL + # this is 3600 MHz + 43 PRBs@30kHz SCS (same as initial BWP) + absoluteFrequencySSB = 641280; + dl_frequencyBand = 78; + # this is 3600 MHz + dl_absoluteFrequencyPointA = 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 = 28875; # 6366 12925 12956 28875 12952 +# subcarrierSpacing +# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 + initialDLBWPsubcarrierSpacing = 1; + #pdcch-ConfigCommon + initialDLBWPcontrolResourceSetZero = 11; + 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 = 28875; +# 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 = 13; + 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 = 4; +#oneHalf (0..15) 4,8,12,16,...60,64 + ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 14; +#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 = -90; +# 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; + } + + ); + + + # ------- SCTP definitions + SCTP : + { + # Number of streams to use in input/output + SCTP_INSTREAMS = 2; + SCTP_OUTSTREAMS = 2; + }; + } +); + +MACRLCs = ( + { + num_cc = 1; + tr_s_preference = "local_L1"; + tr_n_preference = "f1"; + local_n_if_name = "lo"; + local_n_address = "127.0.0.3"; + remote_n_address = "127.0.0.4"; + local_n_portc = 500; + local_n_portd = 2152; + remote_n_portc = 501; + remote_n_portd = 2152; + + } +); + +L1s = ( +{ + num_cc = 1; + tr_n_preference = "local_mac"; + prach_dtx_threshold = 120; + pucch0_dtx_threshold = 150; + ofdm_offset_divisor = 8; #set this to UINT_MAX for offset 0 +} +); + +RUs = ( + { + local_rf = "yes" + nb_tx = 1 + nb_rx = 1 + att_tx = 0 + att_rx = 0; + bands = [78]; + max_pdschReferenceSignalPower = -27; + max_rxgain = 114; + eNB_instances = [0]; + #beamforming 1x4 matrix: + bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000]; + 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_SINGLE_THREAD"; + #two option for worker "WORKER_DISABLE" or "WORKER_ENABLE" + worker_config = "WORKER_ENABLE"; + } +); +rfsimulator: { +serveraddr = "server"; + serverport = "4043"; + options = (); #("saviq"); or/and "chanmod" + modelname = "AWGN"; + IQfile = "/tmp/rfsimulator.iqs" +} + + 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"; + f1ap_log_level ="debug"; + ngap_log_level ="debug"; + }; + diff --git a/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/run_SIMU_oai_ran.sh b/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/run_SIMU_oai_ran.sh new file mode 100755 index 000000000..68bfc9686 --- /dev/null +++ b/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/run_SIMU_oai_ran.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +sudo apt-get install tmux -y + +session="oai" + +## Split into 4 panes +tmux new-session -d -s $session +tmux split-window -h \; split-window -d; + +## Run OAI RAN + +## Run OAI CU +tmux send-keys -t 0 'cd ~/oai/cmake_targets/ran_build/build/' ENTER \; send-keys -t 0 'sudo RFSIMULATOR=server ./nr-softmodem --rfsim --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/cu_gnb.conf --continuous-tx --gNBs.[0].min_rxtxtime 6' ENTER; + +## Run OAI DU +tmux send-keys -t 1 'cd ~/oai/cmake_targets/ran_build/build/' ENTER \; send-keys -t 1 'sudo RFSIMULATOR=server ./nr-softmodem --rfsim --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/du_gnb.conf --continuous-tx --gNBs.[0].min_rxtxtime 6' ENTER; + +## Run FlexRIC +tmux send-keys -t 2 'cd ~/flexric/' ENTER \; send-keys -t 2 './build/examples/ric/nearRT-RIC' ENTER; + +tmux attach-session -t $session diff --git a/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/run_SIMU_oai_ran_w_UE.sh b/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/run_SIMU_oai_ran_w_UE.sh new file mode 100755 index 000000000..7706bc8c7 --- /dev/null +++ b/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/run_SIMU_oai_ran_w_UE.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +sudo apt-get install tmux + +session="oai" + +## Split into 4 panes +tmux new-session -d -s $session +tmux split-window -h \; split-window -d; +tmux swapp -s 0; +tmux split-window -d; + +## Run OAI RAN + +## Run OAI CU +tmux send-keys -t 0 'cd ~/oai/cmake_targets/ran_build/build/' ENTER \; send-keys -t 0 'sudo RFSIMULATOR=server ./nr-softmodem --rfsim --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/cu_gnb.conf --continuous-tx --gNBs.[0].min_rxtxtime 6' ENTER; + +## Run OAI DU +tmux send-keys -t 1 'cd ~/oai/cmake_targets/ran_build/build/' ENTER \; send-keys -t 1 'sudo RFSIMULATOR=server ./nr-softmodem --rfsim --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/du_gnb.conf --continuous-tx --gNBs.[0].min_rxtxtime 6' ENTER; + +## Run FlexRIC +tmux send-keys -t 2 'cd ~/flexric/' ENTER \; send-keys -t 2 './build/examples/ric/nearRT-RIC' ENTER; + +## Run OAI UE +tmux send-keys -t 3 'cd ~/oai/cmake_targets/ran_build/build/' ENTER \; send-keys -t 3 'sleep 20' ENTER \; send-keys -t 3 'sudo RFSIMULATOR=192.168.70.129 ./nr-uesoftmodem -r 106 --numerology 1 --band 78 -C 3619200000 --rfsim --sa --nokrnmod -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/ue.conf' ENTER; + +tmux attach-session -t $session diff --git a/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/run_USRP_oai_UE.sh b/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/run_USRP_oai_UE.sh new file mode 100755 index 000000000..b9bbf2698 --- /dev/null +++ b/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/run_USRP_oai_UE.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +sudo apt-get install tmux -y + +session="oai_UE" + +## Split into 4 panes +tmux new-session -d -s $session + +## Run OAI UE +tmux send-keys -t 0 'cd ~/oai/cmake_targets/ran_build/build/' ENTER \; send-keys -t 0 'sudo ./nr-uesoftmodem -r 106 --numerology 1 --band 78 -C 3619200000 --sa --nokrnmod --ue-fo-compensation --ue-max-power 0 -E -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/ue.conf' ENTER; + +tmux attach-session -t $session diff --git a/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/run_USRP_oai_ran.sh b/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/run_USRP_oai_ran.sh new file mode 100755 index 000000000..1c7fd213e --- /dev/null +++ b/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/run_USRP_oai_ran.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +sudo apt-get install tmux -y + +session="oai" + +## Split into 4 panes +tmux new-session -d -s $session +tmux split-window -h \; split-window -d; + +## Run OAI RAN + +## Run OAI CU +tmux send-keys -t 0 'cd ~/oai/cmake_targets/ran_build/build/' ENTER \; send-keys -t 0 'sudo ./nr-softmodem -E --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/cu_gnb.conf --continuous-tx --gNBs.[0].min_rxtxtime 6' ENTER; + +## Run OAI DU +tmux send-keys -t 1 'cd ~/oai/cmake_targets/ran_build/build/' ENTER \; send-keys -t 1 'sudo ./nr-softmodem -E --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/du_gnb.conf --continuous-tx --gNBs.[0].min_rxtxtime 6' ENTER; + +## Run FlexRIC +tmux send-keys -t 2 'cd ~/flexric/' ENTER \; send-keys -t 2 './build/examples/ric/nearRT-RIC' ENTER; + +tmux attach-session -t $session diff --git a/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/ue.conf b/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/ue.conf new file mode 100644 index 000000000..73207fcfd --- /dev/null +++ b/openairinterface5g/openairinterface-conf/flexric_CU_DU_UE/ue.conf @@ -0,0 +1,8 @@ +uicc0 = { +imsi = "001010000000001"; +key = "fec86ba6eb707ed08905757b1bb44b8f"; +opc= "C42449363BBAD02B66D16BC975D77CC1"; +dnn= "oai"; +nssai_sst=1; +nssai_sd=1; +} diff --git a/openairinterface5g/openairinterface-conf/flexric_gNB_UE/run_SIMU_oai_ran.sh b/openairinterface5g/openairinterface-conf/flexric_gNB_UE/run_SIMU_oai_ran.sh index 7f064f872..ed50e7fd5 100755 --- a/openairinterface5g/openairinterface-conf/flexric_gNB_UE/run_SIMU_oai_ran.sh +++ b/openairinterface5g/openairinterface-conf/flexric_gNB_UE/run_SIMU_oai_ran.sh @@ -6,17 +6,14 @@ session="oai" ## Split into 4 panes tmux new-session -d -s $session -tmux split-window -h \; split-window -d; +tmux split-window -h; ## Run OAI RAN -## Run OAI CU -tmux send-keys -t 0 'cd ~/oai/cmake_targets/ran_build/build/' ENTER \; send-keys -t 0 'sudo RFSIMULATOR=server ./nr-softmodem --rfsim --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/cu_gnb.conf' ENTER; - -## Run OAI DU -tmux send-keys -t 1 'cd ~/oai/cmake_targets/ran_build/build/' ENTER \; send-keys -t 1 'sudo RFSIMULATOR=server ./nr-softmodem --rfsim --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/du_gnb.conf' ENTER; +tmux send-keys -t 0 'cd ~/oai/cmake_targets/ran_build/build/' ENTER \; send-keys -t 0 'sudo RFSIMULATOR=server ./nr-softmodem --rfsim --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf --continuous-tx --gNBs.[0].min_rxtxtime 6' ENTER; ## Run FlexRIC -tmux send-keys -t 2 'cd ~/flexric/' ENTER \; send-keys -t 2 './build/examples/ric/nearRT-RIC' ENTER; + +tmux send-keys -t 1 'cd ~/flexric/' ENTER \; send-keys -t 1 './build/examples/ric/nearRT-RIC' ENTER; tmux attach-session -t $session diff --git a/openairinterface5g/openairinterface-conf/flexric_gNB_UE/run_SIMU_oai_ran_w_UE.sh b/openairinterface5g/openairinterface-conf/flexric_gNB_UE/run_SIMU_oai_ran_w_UE.sh index 059e5d924..34005399b 100755 --- a/openairinterface5g/openairinterface-conf/flexric_gNB_UE/run_SIMU_oai_ran_w_UE.sh +++ b/openairinterface5g/openairinterface-conf/flexric_gNB_UE/run_SIMU_oai_ran_w_UE.sh @@ -7,21 +7,15 @@ session="oai" ## Split into 4 panes tmux new-session -d -s $session tmux split-window -h \; split-window -d; -tmux swapp -s 0; -tmux split-window -d; ## Run OAI RAN -## Run OAI CU -tmux send-keys -t 0 'cd ~/oai/cmake_targets/ran_build/build/' ENTER \; send-keys -t 0 'sudo RFSIMULATOR=server ./nr-softmodem --rfsim --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/cu_gnb.conf' ENTER; - -## Run OAI DU -tmux send-keys -t 1 'cd ~/oai/cmake_targets/ran_build/build/' ENTER \; send-keys -t 1 'sudo RFSIMULATOR=server ./nr-softmodem --rfsim --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/du_gnb.conf' ENTER; +tmux send-keys -t 0 'cd ~/oai/cmake_targets/ran_build/build/' ENTER \; send-keys -t 0 'sudo RFSIMULATOR=server ./nr-softmodem -E --rfsim --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf --continuous-tx --gNBs.[0].min_rxtxtime 6' ENTER; ## Run FlexRIC -tmux send-keys -t 2 'cd ~/flexric/' ENTER \; send-keys -t 2 './build/examples/ric/nearRT-RIC' ENTER; +tmux send-keys -t 1 'cd ~/flexric/' ENTER \; send-keys -t 1 './build/examples/ric/nearRT-RIC' ENTER; ## Run OAI UE -tmux send-keys -t 3 'cd ~/oai/cmake_targets/ran_build/build/' ENTER \; send-keys -t 3 'sleep 20' ENTER \; send-keys -t 3 'sudo RFSIMULATOR=192.168.70.129 ./nr-uesoftmodem -r 106 --numerology 1 --band 78 -C 3619200000 --rfsim --sa --nokrnmod -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/ue.conf' ENTER; +tmux send-keys -t 2 'cd ~/oai/cmake_targets/ran_build/build/' ENTER \; send-keys -t 2 'sleep 20' ENTER \; send-keys -t 2 'sudo RFSIMULATOR=192.168.70.129 ./nr-uesoftmodem -r 106 --numerology 1 --band 78 -C 3619200000 --rfsim --sa --nokrnmod -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/ue.conf' ENTER; tmux attach-session -t $session diff --git a/openairinterface5g/openairinterface-conf/flexric_gNB_UE/run_USRP_oai_ran.sh b/openairinterface5g/openairinterface-conf/flexric_gNB_UE/run_USRP_oai_ran.sh index 676edfb88..e11368784 100755 --- a/openairinterface5g/openairinterface-conf/flexric_gNB_UE/run_USRP_oai_ran.sh +++ b/openairinterface5g/openairinterface-conf/flexric_gNB_UE/run_USRP_oai_ran.sh @@ -10,13 +10,10 @@ tmux split-window -h \; split-window -d; ## Run OAI RAN -## Run OAI CU -tmux send-keys -t 0 'cd ~/oai/cmake_targets/ran_build/build/' ENTER \; send-keys -t 0 'sudo ./nr-softmodem -E --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/cu_gnb.conf' ENTER; - -## Run OAI DU -tmux send-keys -t 1 'cd ~/oai/cmake_targets/ran_build/build/' ENTER \; send-keys -t 1 'sudo ./nr-softmodem -E --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/du_gnb.conf' ENTER; +tmux send-keys -t 0 'cd ~/oai/cmake_targets/ran_build/build/' ENTER \; send-keys -t 0 'sudo ./nr-softmodem -E --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf --continuous-tx --gNBs.[0].min_rxtxtime 6' ENTER; ## Run FlexRIC -tmux send-keys -t 2 'cd ~/flexric/' ENTER \; send-keys -t 2 './build/examples/ric/nearRT-RIC' ENTER; + +tmux send-keys -t 1 'cd ~/flexric/' ENTER \; send-keys -t 1 './build/examples/ric/nearRT-RIC' ENTER; tmux attach-session -t $session diff --git a/openairinterface5g/openairinterface-conf/gNB_UE/cu_gnb.conf b/openairinterface5g/openairinterface-conf/gNB_UE/cu_gnb.conf new file mode 100644 index 000000000..a2655f6a7 --- /dev/null +++ b/openairinterface5g/openairinterface-conf/gNB_UE/cu_gnb.conf @@ -0,0 +1,224 @@ +Active_gNBs = ( "gNB-Eurecom-CU"); +# Asn1_verbosity, choice in: none, info, annoying +Asn1_verbosity = "none"; +Num_Threads_PUSCH = 8; + +gNBs = +( + { + ////////// Identification parameters: + gNB_ID = 0xe00; + +# cell_type = "CELL_MACRO_GNB"; + + gNB_name = "gNB-Eurecom-CU"; + + // Tracking area code, 0x0000 and 0xfffe are reserved values + tracking_area_code = 0x0001; + plmn_list = ({ mcc = 001; mnc = 01; mnc_length = 2; snssaiList = ({ sst = 1, sd = 0x1 }) }); + + nr_cellid = 12345678L; + + tr_s_preference = "f1"; + + local_s_if_name = "lo"; + local_s_address = "127.0.0.4"; + remote_s_address = "127.0.0.3"; + local_s_portc = 501; + local_s_portd = 2152; + remote_s_portc = 500; + remote_s_portd = 2152; + min_rxtxtime = 6; + + pdcch_ConfigSIB1 = ( + { + controlResourceSetZero = 12; + searchSpaceZero = 0; + } + ); + + servingCellConfigCommon = ( + { + #spCellConfigCommon + + physCellId = 0; + +# downlinkConfigCommon + #frequencyInfoDL + # this is 3600 MHz + 43 PRBs@30kHz SCS (same as initial BWP) + absoluteFrequencySSB = 641280; + dl_frequencyBand = 78; + # this is 3600 MHz + dl_absoluteFrequencyPointA = 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 = 28875; # 6366 12925 12956 28875 12952 +# subcarrierSpacing +# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 + initialDLBWPsubcarrierSpacing = 1; + #pdcch-ConfigCommon + initialDLBWPcontrolResourceSetZero = 11; + 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 = 28875; +# 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 = 13; + 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 = 4; +#oneHalf (0..15) 4,8,12,16,...60,64 + ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 14; +#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 = -90; +# 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; + } + + ); + # ------- 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.70.132"; + ipv6 = "192:168:30::17"; + active = "yes"; + preference = "ipv4"; + } + ); + + NETWORK_INTERFACES : + { + + GNB_INTERFACE_NAME_FOR_NG_AMF = "demo-oai"; + GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.70.129"; + GNB_INTERFACE_NAME_FOR_NGU = "demo-oai"; + GNB_IPV4_ADDRESS_FOR_NGU = "192.168.70.129"; + GNB_PORT_FOR_S1U = 2152; # Spec 2152 + }; + } +); + +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 ="debug"; + pdcp_log_level ="info"; + rrc_log_level ="info"; + f1ap_log_level ="debug"; + ngap_log_level ="debug"; + }; + diff --git a/openairinterface5g/openairinterface-conf/gNB_UE/du_gnb.conf b/openairinterface5g/openairinterface-conf/gNB_UE/du_gnb.conf new file mode 100644 index 000000000..df5be97e3 --- /dev/null +++ b/openairinterface5g/openairinterface-conf/gNB_UE/du_gnb.conf @@ -0,0 +1,242 @@ +Active_gNBs = ( "gNB-Eurecom-DU"); +# Asn1_verbosity, choice in: none, info, annoying +Asn1_verbosity = "none"; + +gNBs = +( + { + ////////// Identification parameters: + gNB_ID = 0xe00; + +# cell_type = "CELL_MACRO_GNB"; + + gNB_name = "gNB-Eurecom-DU"; + + // Tracking area code, 0x0000 and 0xfffe are reserved values + tracking_area_code = 0x0001; + plmn_list = ({ mcc = 001; mnc = 01; mnc_length = 2; snssaiList = ({ sst = 1, sd = 0x1 }) }); + + nr_cellid = 12345678L; + + ////////// Physical parameters: + + min_rxtxtime = 6; + + pdcch_ConfigSIB1 = ( + { + controlResourceSetZero = 12; + searchSpaceZero = 0; + } + ); + + servingCellConfigCommon = ( + { + #spCellConfigCommon + + physCellId = 0; + +# downlinkConfigCommon + #frequencyInfoDL + # this is 3600 MHz + 43 PRBs@30kHz SCS (same as initial BWP) + absoluteFrequencySSB = 641280; + dl_frequencyBand = 78; + # this is 3600 MHz + dl_absoluteFrequencyPointA = 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 = 28875; # 6366 12925 12956 28875 12952 +# subcarrierSpacing +# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120 + initialDLBWPsubcarrierSpacing = 1; + #pdcch-ConfigCommon + initialDLBWPcontrolResourceSetZero = 11; + 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 = 28875; +# 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 = 13; + 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 = 4; +#oneHalf (0..15) 4,8,12,16,...60,64 + ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 14; +#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 = -90; +# 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; + } + + ); + + + # ------- SCTP definitions + SCTP : + { + # Number of streams to use in input/output + SCTP_INSTREAMS = 2; + SCTP_OUTSTREAMS = 2; + }; + } +); + +MACRLCs = ( + { + num_cc = 1; + tr_s_preference = "local_L1"; + tr_n_preference = "f1"; + local_n_if_name = "lo"; + local_n_address = "127.0.0.3"; + remote_n_address = "127.0.0.4"; + local_n_portc = 500; + local_n_portd = 2152; + remote_n_portc = 501; + remote_n_portd = 2152; + + } +); + +L1s = ( +{ + num_cc = 1; + tr_n_preference = "local_mac"; + prach_dtx_threshold = 120; + pucch0_dtx_threshold = 150; + ofdm_offset_divisor = 8; #set this to UINT_MAX for offset 0 +} +); + +RUs = ( + { + local_rf = "yes" + nb_tx = 1 + nb_rx = 1 + att_tx = 0 + att_rx = 0; + bands = [78]; + max_pdschReferenceSignalPower = -27; + max_rxgain = 114; + eNB_instances = [0]; + #beamforming 1x4 matrix: + bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000]; + 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_SINGLE_THREAD"; + #two option for worker "WORKER_DISABLE" or "WORKER_ENABLE" + worker_config = "WORKER_ENABLE"; + } +); +rfsimulator: { +serveraddr = "server"; + serverport = "4043"; + options = (); #("saviq"); or/and "chanmod" + modelname = "AWGN"; + IQfile = "/tmp/rfsimulator.iqs" +} + + 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"; + f1ap_log_level ="debug"; + ngap_log_level ="debug"; + }; + diff --git a/openairinterface5g/openairinterface-conf/gNB_UE/run_SIMU_oai_ran.sh b/openairinterface5g/openairinterface-conf/gNB_UE/run_SIMU_oai_ran.sh new file mode 100755 index 000000000..95fd45e36 --- /dev/null +++ b/openairinterface5g/openairinterface-conf/gNB_UE/run_SIMU_oai_ran.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +sudo apt-get install tmux -y + +session="oai" + +## Split into 4 panes +tmux new-session -d -s $session +tmux split-window -h; + +## Run OAI RAN + +tmux send-keys -t 0 'cd ~/openairinterface5g/cmake_targets/ran_build/build/' ENTER \; send-keys -t 0 'sudo RFSIMULATOR=server ./nr-softmodem --rfsim --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf --continuous-tx --gNBs.[0].min_rxtxtime 6' ENTER; + +## Run FlexRIC + +tmux send-keys -t 1 'cd ~/flexric/' ENTER \; send-keys -t 1 './build/examples/ric/nearRT-RIC' ENTER; + +tmux attach-session -t $session diff --git a/openairinterface5g/openairinterface-conf/gNB_UE/run_SIMU_oai_ran_w_UE.sh b/openairinterface5g/openairinterface-conf/gNB_UE/run_SIMU_oai_ran_w_UE.sh new file mode 100755 index 000000000..5f0b6c8b2 --- /dev/null +++ b/openairinterface5g/openairinterface-conf/gNB_UE/run_SIMU_oai_ran_w_UE.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +sudo apt-get install tmux + +session="oai" + +## Split into 4 panes +tmux new-session -d -s $session +tmux split-window -h \; split-window -d; + +## Run OAI RAN + +tmux send-keys -t 0 'cd ~/openairinterface5g/cmake_targets/ran_build/build/' ENTER \; send-keys -t 0 'sudo RFSIMULATOR=server ./nr-softmodem -E --rfsim --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf --continuous-tx --gNBs.[0].min_rxtxtime 6' ENTER; + +## Run FlexRIC +tmux send-keys -t 1 'cd ~/flexric/' ENTER \; send-keys -t 1 './build/examples/ric/nearRT-RIC' ENTER; + +## Run OAI UE +tmux send-keys -t 2 'cd ~/openairinterface5g/cmake_targets/ran_build/build/' ENTER \; send-keys -t 2 'sleep 20' ENTER \; send-keys -t 2 'sudo RFSIMULATOR=192.168.70.129 ./nr-uesoftmodem -r 106 --numerology 1 --band 78 -C 3619200000 --rfsim --sa --nokrnmod -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/ue.conf' ENTER; + +tmux attach-session -t $session diff --git a/openairinterface5g/openairinterface-conf/gNB_UE/run_USRP_oai_UE.sh b/openairinterface5g/openairinterface-conf/gNB_UE/run_USRP_oai_UE.sh new file mode 100755 index 000000000..237f7e746 --- /dev/null +++ b/openairinterface5g/openairinterface-conf/gNB_UE/run_USRP_oai_UE.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +sudo apt-get install tmux -y + +session="oai_UE" + +## Split into 4 panes +tmux new-session -d -s $session + +## Run OAI UE +tmux send-keys -t 0 'cd ~/openairinterface5g/cmake_targets/ran_build/build/' ENTER \; send-keys -t 0 'sudo ./nr-uesoftmodem -r 106 --numerology 1 --band 78 -C 3619200000 --sa --nokrnmod --ue-fo-compensation --ue-max-power 0 -E -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/ue.conf' ENTER; + +tmux attach-session -t $session diff --git a/openairinterface5g/openairinterface-conf/gNB_UE/run_USRP_oai_ran.sh b/openairinterface5g/openairinterface-conf/gNB_UE/run_USRP_oai_ran.sh new file mode 100755 index 000000000..cac458f4a --- /dev/null +++ b/openairinterface5g/openairinterface-conf/gNB_UE/run_USRP_oai_ran.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +sudo apt-get install tmux -y + +session="oai" + +## Split into 4 panes +tmux new-session -d -s $session +tmux split-window -h \; split-window -d; + +## Run OAI RAN + +tmux send-keys -t 0 'cd ~/openairinterface5g/cmake_targets/ran_build/build/' ENTER \; send-keys -t 0 'sudo ./nr-softmodem -E --sa -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf --continuous-tx --gNBs.[0].min_rxtxtime 6' ENTER; + +## Run FlexRIC + +tmux send-keys -t 1 'cd ~/flexric/' ENTER \; send-keys -t 1 './build/examples/ric/nearRT-RIC' ENTER; + +tmux attach-session -t $session diff --git a/openairinterface5g/openairinterface-conf/gNB_UE/ue.conf b/openairinterface5g/openairinterface-conf/gNB_UE/ue.conf new file mode 100644 index 000000000..73207fcfd --- /dev/null +++ b/openairinterface5g/openairinterface-conf/gNB_UE/ue.conf @@ -0,0 +1,8 @@ +uicc0 = { +imsi = "001010000000001"; +key = "fec86ba6eb707ed08905757b1bb44b8f"; +opc= "C42449363BBAD02B66D16BC975D77CC1"; +dnn= "oai"; +nssai_sst=1; +nssai_sd=1; +} -- GitLab