From 59b71296ed7d7478b124aa56ac6f19e61a102af5 Mon Sep 17 00:00:00 2001 From: herlesupreeth Date: Thu, 7 Dec 2023 08:58:50 +0100 Subject: [PATCH] Use latest commits from srsRAN_Project and srsRAN_4G repo --- srslte/Dockerfile | 2 +- srslte/gnb_zmq.conf | 426 +++++++++++++++++++++++++++++++++++++++++ srslte/rr_gnb_zmq.conf | 70 +++++++ srslte/srslte_init.sh | 4 +- srslte/ue_5g_zmq.conf | 6 +- srsran/Dockerfile | 2 +- srsran/gnb_zmq.yml | 8 +- srsran/qos.yml | 42 +++- 8 files changed, 543 insertions(+), 17 deletions(-) create mode 100644 srslte/gnb_zmq.conf create mode 100644 srslte/rr_gnb_zmq.conf diff --git a/srslte/Dockerfile b/srslte/Dockerfile index 7ac25fa..5f6a698 100644 --- a/srslte/Dockerfile +++ b/srslte/Dockerfile @@ -68,7 +68,7 @@ RUN git clone https://github.com/srsran/srsGUI && \ # Get srsLTE, compile and install RUN git clone https://github.com/srsran/srsRAN_4G.git && \ cd srsRAN_4G && \ - git checkout release_23_04_1 && \ + git checkout 4eb990c9c6ad9b0af943bba71d0f8355b3ebb259 && \ mkdir build && cd build && \ cmake ../ && make -j`nproc` && make install && \ ldconfig diff --git a/srslte/gnb_zmq.conf b/srslte/gnb_zmq.conf new file mode 100644 index 0000000..eeb8dd5 --- /dev/null +++ b/srslte/gnb_zmq.conf @@ -0,0 +1,426 @@ +##################################################################### +# srsENB configuration file +##################################################################### + +##################################################################### +# eNB configuration +# +# enb_id: 20-bit eNB identifier. +# mcc: Mobile Country Code +# mnc: Mobile Network Code +# mme_addr: IP address of MME for S1 connnection +# gtp_bind_addr: Local IP address to bind for GTP connection +# gtp_advertise_addr: IP address of eNB to advertise for DL GTP-U Traffic +# s1c_bind_addr: Local IP address to bind for S1AP connection +# s1c_bind_port: Source port for S1AP connection (0 means any) +# n_prb: Number of Physical Resource Blocks (6,15,25,50,75,100) +# tm: Transmission mode 1-4 (TM1 default) +# nof_ports: Number of Tx ports (1 port default, set to 2 for TM2/3/4) +# +##################################################################### +[enb] +enb_id = 0x19B +mcc = MCC +mnc = MNC +mme_addr = MME_IP +gtp_bind_addr = SRS_ENB_IP +s1c_bind_addr = SRS_ENB_IP +s1c_bind_port = 0 +n_prb = 100 +#tm = 4 +#nof_ports = 2 + +##################################################################### +# eNB configuration files +# +# sib_config: SIB1, SIB2 and SIB3 configuration file +# note: When enabling MBMS, use the sib.conf.mbsfn configuration file which includes SIB13 +# rr_config: Radio Resources configuration file +# rb_config: SRB/DRB configuration file +##################################################################### +[enb_files] +sib_config = /etc/srsran/sib.conf +rr_config = /etc/srsran/rr.conf +rb_config = /etc/srsran/rb.conf + +##################################################################### +# RF configuration +# +# dl_earfcn: EARFCN code for DL (only valid if a single cell is configured in rr.conf) +# tx_gain: Transmit gain (dB). +# rx_gain: Optional receive gain (dB). If disabled, AGC if enabled +# +# Optional parameters: +# dl_freq: Override DL frequency corresponding to dl_earfcn +# ul_freq: Override UL frequency corresponding to dl_earfcn (must be set if dl_freq is set) +# device_name: Device driver family +# Supported options: "auto" (uses first driver found), "UHD", "bladeRF", "soapy", "zmq" or "Sidekiq" +# device_args: Arguments for the device driver. Options are "auto" or any string. +# Default for UHD: "recv_frame_size=9232,send_frame_size=9232" +# Default for bladeRF: "" +# time_adv_nsamples: Transmission time advance (in number of samples) to compensate for RF delay +# from antenna to timestamp insertion. +# Default "auto". B210 USRP: 100 samples, bladeRF: 27 +##################################################################### +[rf] +#dl_earfcn = 3150 +tx_gain = 80 +rx_gain = 40 + +#device_name = auto + +# For best performance in 2x2 MIMO and >= 15 MHz use the following device_args settings: +# USRP B210: num_recv_frames=64,num_send_frames=64 +# And for 75 PRBs, also append ",master_clock_rate=15.36e6" to the device args + +# For best performance when BW<5 MHz (25 PRB), use the following device_args settings: +# USRP B210: send_frame_size=512,recv_frame_size=512 + +#device_args = auto +#time_adv_nsamples = auto + +# Example for ZMQ-based operation with TCP transport for I/Q samples +device_name = zmq +device_args = fail_on_disconnect=true,tx_port=tcp://SRS_ENB_IP:2000,rx_port=tcp://SRS_UE_IP:2001,id=enb,base_srate=23.04e6 + +##################################################################### +# Packet capture configuration +# +# MAC-layer packets are captured to a file in the compact format which can +# be decoded by Wireshark. For decoding, use the UDP dissector and the UDP +# heuristic dissection. Edit the preferences (Edit > Preferences > +# Protocols > DLT_USER) for DLT_USER to add an entry for DLT=149 with +# Protocol=udp. Further, enable the heuristic dissection in UDP under: +# Analyze > Enabled Protocols > MAC-LTE > mac_lte_udp and MAC-NR > mac_nr_udp +# For more information see: https://wiki.wireshark.org/MAC-LTE +# Configuring this Wireshark preferences is needed for decoding the MAC PCAP +# files as well as for the live network capture option. +# +# Please note that this setting will by default only capture MAC +# frames on dedicated channels, and not SIB. You have to build with +# WRITE_SIB_PCAP enabled in srsenb/src/stack/mac/mac.cc if you want +# SIB to be part of the MAC pcap file. +# +# S1AP Packets are captured to a file in the compact format which can +# be decoded by the Wireshark s1ap dissector with DLT 150. +# To use the dissector, edit the preferences for DLT_USER to +# add an entry with DLT=150, Payload Protocol=s1ap. +# +# mac_enable: Enable MAC layer packet captures (true/false) +# filename: File path to use for LTE MAC packet captures +# nr_filename: File path to use for NR MAC packet captures +# s1ap_enable: Enable or disable the PCAP. +# s1ap_filename: File name where to save the PCAP. +# +# mac_net_enable: Enable MAC layer packet captures sent over the network (true/false default: false) +# bind_ip: Bind IP address for MAC network trace (default: "0.0.0.0") +# bind_port: Bind port for MAC network trace (default: 5687) +# client_ip: Client IP address for MAC network trace (default: "127.0.0.1") +# client_port Client IP address for MAC network trace (default: 5847) +##################################################################### +[pcap] +#enable = false +#filename = /mnt/srslte/enb_mac.pcap +#nr_filename = /mnt/srslte/enb_mac_nr.pcap +#s1ap_enable = false +#s1ap_filename = /mnt/srslte/enb_s1ap.pcap + +#mac_net_enable = false +#bind_ip = 0.0.0.0 +#bind_port = 5687 +#client_ip = 127.0.0.1 +#client_port = 5847 + +##################################################################### +# Log configuration +# +# Log levels can be set for individual layers. "all_level" sets log +# level for all layers unless otherwise configured. +# Format: e.g. phy_level = info +# +# In the same way, packet hex dumps can be limited for each level. +# "all_hex_limit" sets the hex limit for all layers unless otherwise +# configured. +# Format: e.g. phy_hex_limit = 32 +# +# Logging layers: rf, phy, phy_lib, mac, rlc, pdcp, rrc, gtpu, s1ap, stack, all +# Logging levels: debug, info, warning, error, none +# +# filename: File path to use for log output. Can be set to stdout +# to print logs to standard output +# file_max_size: Maximum file size (in kilobytes). When passed, multiple files are created. +# If set to negative, a single log file will be created. +##################################################################### +[log] +all_level = warning +all_hex_limit = 32 +filename = /mnt/srslte/enb.log +file_max_size = -1 + +[gui] +enable = false + +##################################################################### +# Scheduler configuration options +# +# sched_policy: User MAC scheduling policy (E.g. time_rr, time_pf) +# min_aggr_level: Optional minimum aggregation level index (l=log2(L) can be 0, 1, 2 or 3) +# max_aggr_level: Optional maximum aggregation level index (l=log2(L) can be 0, 1, 2 or 3) +# adaptive_aggr_level: Boolean flag to enable/disable adaptive aggregation level based on target BLER +# pdsch_mcs: Optional fixed PDSCH MCS (ignores reported CQIs if specified) +# pdsch_max_mcs: Optional PDSCH MCS limit +# pusch_mcs: Optional fixed PUSCH MCS (ignores reported CQIs if specified) +# pusch_max_mcs: Optional PUSCH MCS limit +# min_nof_ctrl_symbols: Minimum number of control symbols +# max_nof_ctrl_symbols: Maximum number of control symbols +# pucch_multiplex_enable: Allow PUCCH HARQ to collide with PUSCH and other PUCCH +# pucch_harq_max_rb: Maximum number of RB to be used for PUCCH on the edges of the grid. +# If defined and greater than 0, the scheduler will avoid DL PDCCH allocations if +# PUCCH HARQ falls outside this region +# target_bler: Target BLER (in decimal) to achieve via adaptive link +# max_delta_dl_cqi: Maximum shift in CQI for adaptive DL link +# max_delta_ul_snr: Maximum shift in UL SNR for adaptive UL link +# adaptive_dl_mcs_step_size: Step size or learning rate used in adaptive DL MCS link +# adaptive_ul_mcs_step_size: Step size or learning rate used in adaptive UL MCS link +# min_tpc_tti_interval: Minimum TTI interval between TPCs different than 1 +# ul_snr_avg_alpha: Exponential Average alpha coefficient used in estimation of UL SNR +# init_ul_snr_value: Initial UL SNR value used for computing MCS in the first UL grant +# init_dl_cqi: DL CQI value used before any CQI report is available to the eNB +# max_sib_coderate: Upper bound on SIB and RAR grants coderate +# pdcch_cqi_offset: CQI offset in derivation of PDCCH aggregation level +# nr_pdsch_mcs: Optional fixed NR PDSCH MCS (ignores reported CQIs if specified) +# nr_pusch_mcs: Optional fixed NR PUSCH MCS (ignores reported CQIs if specified) +# +##################################################################### +[scheduler] +#policy = time_pf +#policy_args = 2 +#min_aggr_level = 0 +#max_aggr_level = 3 +#adaptive_aggr_level = false +#pdsch_mcs = -1 +#pdsch_max_mcs = -1 +#pusch_mcs = -1 +#pusch_max_mcs = 16 +#min_nof_ctrl_symbols = 1 +#max_nof_ctrl_symbols = 3 +#pucch_multiplex_enable = false +#pucch_harq_max_rb = 0 +#target_bler = 0.05 +#max_delta_dl_cqi = 5 +#max_delta_ul_snr = 5 +#adaptive_dl_mcs_step_size = 0.001 +#adaptive_ul_mcs_step_size = 0.001 +#min_tpc_tti_interval = 1 +#ul_snr_avg_alpha=0.05 +#init_ul_snr_value=5 +#init_dl_cqi=5 +#max_sib_coderate=0.3 +#pdcch_cqi_offset=0 +nr_pdsch_mcs=28 +#nr_pusch_mcs=28 + +##################################################################### +# eMBMS configuration options +# +# enable: Enable MBMS transmission in the eNB +# m1u_multiaddr: Multicast address the M1-U socket will register to +# m1u_if_addr: Address of the interface the M1-U interface will listen to for multicast packets +# mcs: Modulation and Coding scheme for MBMS traffic +# +##################################################################### +[embms] +#enable = false +#m1u_multiaddr = 239.255.0.1 +#m1u_if_addr = 127.0.1.201 +#mcs = 20 + + + +##################################################################### +# Channel emulator options: +# enable: Enable/disable internal Downlink/Uplink channel emulator +# +# -- AWGN Generator +# awgn.enable: Enable/disable AWGN generator +# awgn.snr: Target SNR in dB +# +# -- Fading emulator +# fading.enable: Enable/disable fading simulator +# fading.model: Fading model + maximum doppler (E.g. none, epa5, eva70, etu300, etc) +# +# -- Delay Emulator delay(t) = delay_min + (delay_max - delay_min) * (1 + sin(2pi*t/period)) / 2 +# Maximum speed [m/s]: (delay_max - delay_min) * pi * 300 / period +# delay.enable: Enable/disable delay simulator +# delay.period_s: Delay period in seconds +# delay.init_time_s: Delay initial time in seconds +# delay.maximum_us: Maximum delay in microseconds +# delay.minumum_us: Minimum delay in microseconds +# +# -- Radio-Link Failure (RLF) Emulator +# rlf.enable: Enable/disable RLF simulator +# rlf.t_on_ms: Time for On state of the channel (ms) +# rlf.t_off_ms: Time for Off state of the channel (ms) +# +# -- High Speed Train Doppler model simulator +# hst.enable: Enable/disable HST simulator +# hst.period_s: HST simulation period in seconds +# hst.fd_hz: Doppler frequency in Hz +# hst.init_time_s: Initial time in seconds +##################################################################### +[channel.dl] +#enable = false + +[channel.dl.awgn] +#enable = false +#snr = 30 + +[channel.dl.fading] +#enable = false +#model = none + +[channel.dl.delay] +#enable = false +#period_s = 3600 +#init_time_s = 0 +#maximum_us = 100 +#minimum_us = 10 + +[channel.dl.rlf] +#enable = false +#t_on_ms = 10000 +#t_off_ms = 2000 + +[channel.dl.hst] +#enable = false +#period_s = 7.2 +#fd_hz = 750.0 +#init_time_s = 0.0 + +[channel.ul] +#enable = false + +[channel.ul.awgn] +#enable = false +#n0 = -30 + +[channel.ul.fading] +#enable = false +#model = none + +[channel.ul.delay] +#enable = false +#period_s = 3600 +#init_time_s = 0 +#maximum_us = 100 +#minimum_us = 10 + +[channel.ul.rlf] +#enable = false +#t_on_ms = 10000 +#t_off_ms = 2000 + +[channel.ul.hst] +#enable = false +#period_s = 7.2 +#fd_hz = -750.0 +#init_time_s = 0.0 + +##################################################################### +# CFR configuration options +# +# The CFR module provides crest factor reduction for the transmitted signal. +# +# enable: Enable or disable the CFR. Default: disabled +# +# mode: manual: CFR threshold is set by cfr_manual_thres (default). +# auto_ema: CFR threshold is adaptive based on the signal PAPR. Power avg. with Exponential Moving Average. +# The time constant of the averaging can be tweaked with the ema_alpha parameter. +# auto_cma: CFR threshold is adaptive based on the signal PAPR. Power avg. with Cumulative Moving Average. +# Use with care, as CMA's increasingly slow response may be unsuitable for most use cases. +# +# strength: Ratio between amplitude-limited vs unprocessed signal (0 to 1). Default: 1 +# manual_thres: Fixed manual clipping threshold for CFR manual mode. Default: 0.5 +# auto_target_papr: Signal PAPR target (in dB) in CFR auto modes. output PAPR can be higher due to peak smoothing. Default: 8 +# ema_alpha: Alpha coefficient for the power average in auto_ema mode. Default: 1/7 +# +##################################################################### +[cfr] +#enable = false +#mode = manual +#manual_thres = 0.5 +#strength = 1 +#auto_target_papr = 8 +#ema_alpha = 0.0143 + +##################################################################### +# Expert configuration options +# +# pusch_max_its: Maximum number of turbo decoder iterations (default: 4) +# nr_pusch_max_its: Maximum number of LDPC iterations for NR (Default 10) +# pusch_8bit_decoder: Use 8-bit for LLR representation and turbo decoder trellis computation (experimental) +# nof_phy_threads: Selects the number of PHY threads (maximum: 4, minimum: 1, default: 3) +# metrics_period_secs: Sets the period at which metrics are requested from the eNB +# metrics_csv_enable: Write eNB metrics to CSV file. +# metrics_csv_filename: File path to use for CSV metrics +# report_json_enable: Write eNB report to JSON file (default: disabled) +# report_json_filename: Report JSON filename (default: /mnt/srslte/enb_report.json) +# report_json_asn1_oct: Prints ASN1 messages encoded as an octet string instead of plain text in the JSON report file +# alarms_log_enable: Enable Alarms logging (default: disabled) +# alarms_filename: Alarms logging filename (default: /mnt/srslte/alarms.log) +# tracing_enable: Write source code tracing information to a file +# tracing_filename: File path to use for tracing information +# tracing_buffcapacity: Maximum capacity in bytes the tracing framework can store +# stdout_ts_enable: Prints once per second the timestamp into stdout +# tx_amplitude: Transmit amplitude factor (set 0-1 to reduce PAPR) +# rrc_inactivity_timer Inactivity timeout used to remove UE context from RRC (in milliseconds) +# max_mac_dl_kos: Maximum number of consecutive KOs in DL before triggering the UE's release (default: 100) +# max_mac_ul_kos: Maximum number of consecutive KOs in UL before triggering the UE's release (default: 100) +# max_prach_offset_us: Maximum allowed RACH offset (in us) +# nof_prealloc_ues: Number of UE memory resources to preallocate during eNB initialization for faster UE creation (default: 8) +# rlf_release_timer_ms: Time taken by eNB to release UE context after it detects an RLF +# eea_pref_list: Ordered preference list for the selection of encryption algorithm (EEA) (default: EEA0, EEA2, EEA1) +# eia_pref_list: Ordered preference list for the selection of integrity algorithm (EIA) (default: EIA2, EIA1, EIA0) +# gtpu_tunnel_timeout: Time that GTPU takes to release indirect forwarding tunnel since the last received GTPU PDU (0 for no timer) +# ts1_reloc_prep_timeout: S1AP TS 36.413 TS1RelocPrep Expiry Timeout value in milliseconds +# ts1_reloc_overall_timeout: S1AP TS 36.413 TS1RelocOverall Expiry Timeout value in milliseconds +# rlf_release_timer_ms: Time taken by eNB to release UE context after it detects a RLF +# rlf_min_ul_snr_estim: SNR threshold in dB below which the enb is notified with RLF ko +# s1_setup_max_retries: Maximum amount of retries to setup the S1AP connection. If this value is exceeded, an alarm is written to the log. -1 means infinity. +# rx_gain_offset: RX Gain offset to add to rx_gain to calibrate RSRP readings +##################################################################### +[expert] +#pusch_max_its = 8 # These are half iterations +#nr_pusch_max_its = 10 +#pusch_8bit_decoder = false +#nof_phy_threads = 3 +#metrics_period_secs = 1 +#metrics_csv_enable = false +#metrics_csv_filename = /mnt/srslte/enb_metrics.csv +#report_json_enable = true +#report_json_filename = /mnt/srslte/enb_report.json +#report_json_asn1_oct = false +#alarms_log_enable = true +#alarms_filename = /mnt/srslte/enb_alarms.log +#tracing_enable = true +#tracing_filename = /mnt/srslte/enb_tracing.log +#tracing_buffcapacity = 1000000 +#stdout_ts_enable = false +#tx_amplitude = 0.6 +#rrc_inactivity_timer = 30000 +#max_mac_dl_kos = 100 +#max_mac_ul_kos = 100 +#max_prach_offset_us = 30 +#nof_prealloc_ues = 8 +#rlf_release_timer_ms = 4000 +#lcid_padding = 3 +#eea_pref_list = EEA0, EEA2, EEA1 +#eia_pref_list = EIA2, EIA1, EIA0 +#gtpu_tunnel_timeout = 0 +#extended_cp = false +#ts1_reloc_prep_timeout = 10000 +#ts1_reloc_overall_timeout = 10000 +#rlf_release_timer_ms = 4000 +#rlf_min_ul_snr_estim = -2 +#s1_setup_max_retries = -1 +#rx_gain_offset = 62 diff --git a/srslte/rr_gnb_zmq.conf b/srslte/rr_gnb_zmq.conf new file mode 100644 index 0000000..4f48fb0 --- /dev/null +++ b/srslte/rr_gnb_zmq.conf @@ -0,0 +1,70 @@ +mac_cnfg = +{ + phr_cnfg = + { + dl_pathloss_change = "dB3"; // Valid: 1, 3, 6 or INFINITY + periodic_phr_timer = 50; + prohibit_phr_timer = 0; + }; + ulsch_cnfg = + { + max_harq_tx = 4; + periodic_bsr_timer = 20; // in ms + retx_bsr_timer = 320; // in ms + }; + + time_alignment_timer = -1; // -1 is infinity +}; + +phy_cnfg = +{ + phich_cnfg = + { + duration = "Normal"; + resources = "1/6"; + }; + + pusch_cnfg_ded = + { + beta_offset_ack_idx = 6; + beta_offset_ri_idx = 6; + beta_offset_cqi_idx = 6; + }; + + // PUCCH-SR resources are scheduled on time-frequeny domain first, then multiplexed in the same resource. + sched_request_cnfg = + { + dsr_trans_max = 64; + period = 20; // in ms + //subframe = [1, 11]; // Optional vector of subframe indices allowed for SR transmissions (default uses all) + nof_prb = 1; // number of PRBs on each extreme used for SR (total prb is twice this number) + }; + cqi_report_cnfg = + { + mode = "periodic"; + simultaneousAckCQI = true; + period = 40; // in ms + //subframe = [0, 10, 20, 30]; // Optional vector of subframe indices every period where CQI resources will be allocated (default uses all) + m_ri = 8; // RI period in CQI period + //subband_k = 1; // If enabled and > 0, configures sub-band CQI reporting and defines K (see 36.213 7.2.2). If disabled, configures wideband CQI + }; +}; + +cell_list = +( + +); + +nr_cell_list = +( + { + rf_port = 0; + cell_id = 1; + root_seq_idx = 1; + tac = 1; + pci = 500; + dl_arfcn = 368500; + coreset0_idx = 12; + band = 3; + } +); diff --git a/srslte/srslte_init.sh b/srslte/srslte_init.sh index fbc4619..b4f994c 100755 --- a/srslte/srslte_init.sh +++ b/srslte/srslte_init.sh @@ -52,8 +52,8 @@ elif [[ "$COMPONENT_NAME" =~ ^(enb_zmq$) ]]; then sed -i 's|MME_IP|'$MME_IP'|g' /etc/srsran/enb.conf elif [[ "$COMPONENT_NAME" =~ ^(gnb_zmq$) ]]; then echo "Configuring component: '$COMPONENT_NAME'" - cp /mnt/srslte/rr_gnb.conf /etc/srsran/rr.conf - cp /mnt/srslte/enb_zmq.conf /etc/srsran/enb.conf + cp /mnt/srslte/rr_gnb_zmq.conf /etc/srsran/rr.conf + cp /mnt/srslte/gnb_zmq.conf /etc/srsran/enb.conf sed -i 's|MME_IP|'$AMF_IP'|g' /etc/srsran/enb.conf elif [[ "$COMPONENT_NAME" =~ ^(ue_zmq$) ]]; then echo "Configuring component: '$COMPONENT_NAME'" diff --git a/srslte/ue_5g_zmq.conf b/srslte/ue_5g_zmq.conf index ae18971..6ad33dc 100644 --- a/srslte/ue_5g_zmq.conf +++ b/srslte/ue_5g_zmq.conf @@ -27,7 +27,7 @@ freq_offset = 0 tx_gain = 80 #rx_gain = 40 -srate = 11.52e6 +srate = 23.04e6 #nof_antennas = 1 @@ -43,7 +43,7 @@ srate = 11.52e6 # Example for ZMQ-based operation with TCP transport for I/Q samples device_name = zmq -device_args = tx_port=tcp://SRS_UE_IP:2001,rx_port=tcp://SRS_GNB_IP:2000,id=ue,base_srate=11.52e6 +device_args = tx_port=tcp://SRS_UE_IP:2001,rx_port=tcp://SRS_GNB_IP:2000,id=ue,base_srate=23.04e6 ##################################################################### # EUTRA RAT configuration @@ -71,6 +71,8 @@ bands = 3 nof_carriers = 1 dl_nr_arfcn = 368500 ssb_nr_arfcn = 368410 +max_nof_prb = 106 +nof_prb = 106 ##################################################################### # Packet capture configuration diff --git a/srsran/Dockerfile b/srsran/Dockerfile index 893beb2..e4445c6 100644 --- a/srsran/Dockerfile +++ b/srsran/Dockerfile @@ -40,7 +40,7 @@ RUN add-apt-repository ppa:ettusresearch/uhd && \ # Get srsRAN_Project, compile and install RUN git clone https://github.com/srsran/srsRAN_Project.git && \ - cd srsRAN_Project && git checkout tags/release_23_10 && \ + cd srsRAN_Project && git checkout 55c984b55736d0dd2d2ee328f1ae8d9de97e3e19 && \ mkdir build && cd build && \ cmake ../ -DENABLE_EXPORT=ON -DENABLE_ZEROMQ=ON && make -j`nproc` && make install && \ ldconfig diff --git a/srsran/gnb_zmq.yml b/srsran/gnb_zmq.yml index cfeed96..1107d7f 100644 --- a/srsran/gnb_zmq.yml +++ b/srsran/gnb_zmq.yml @@ -4,15 +4,15 @@ amf: ru_sdr: device_driver: zmq # The RF driver name. - device_args: tx_port=tcp://SRS_GNB_IP:2000,rx_port=tcp://SRS_UE_IP:2001,base_srate=11.52e6 # Optionally pass arguments to the selected RF driver. - srate: 11.52 # RF sample rate might need to be adjusted according to selected bandwidth. + device_args: tx_port=tcp://SRS_GNB_IP:2000,rx_port=tcp://SRS_UE_IP:2001,base_srate=23.04e6 # Optionally pass arguments to the selected RF driver. + srate: 23.04 # RF sample rate might need to be adjusted according to selected bandwidth. tx_gain: 75 # Transmit gain of the RF might need to adjusted to the given situation. rx_gain: 75 # Receive gain of the RF might need to adjusted to the given situation. cell_cfg: dl_arfcn: 368500 # ARFCN of the downlink carrier (center frequency). band: 3 # The NR band. - channel_bandwidth_MHz: 10 # Bandwith in MHz. Number of PRBs will be automatically derived. + channel_bandwidth_MHz: 20 # Bandwith in MHz. Number of PRBs will be automatically derived. common_scs: 15 # Subcarrier spacing in kHz used for data. plmn: "PLMN" # PLMN broadcasted by the gNB. tac: 1 # Tracking area code (needs to match the core configuration). @@ -23,7 +23,7 @@ cell_cfg: dci_format_0_1_and_1_1: false # Set correct DCI format (fallback) common: ss0_index: 0 - coreset0_index: 6 + coreset0_index: 13 prach: prach_config_index: 1 diff --git a/srsran/qos.yml b/srsran/qos.yml index ca336ab..7d839b1 100644 --- a/srsran/qos.yml +++ b/srsran/qos.yml @@ -2,9 +2,7 @@ # Based on 5QI characteristics in TS 23.501 table 5.7.4-1 # This is a supplementary configuration to modify the RLC and PDCP radio bearers on -# a per 5QI basis. This file will be passed to the gNB along with the base configuration -# at start-up. The following command may be used to run the gNB with this configuration file: -# sudo ./gnb -c gnb_ru_ran550_tdd_n78_100mhz_2x2.yml -c qos.yml +# a per 5QI basis. qos: - @@ -14,6 +12,7 @@ qos: um-bidir: tx: sn: 12 + queue-size: 4096 rx: sn: 12 t-reassembly: 50 @@ -30,7 +29,12 @@ qos: f1u_du: backoff_timer: 10 f1u_cu_up: - backoff_timer: 10 + backoff_timer: 10 + mac: + lc_priority: 4 + lc_group_id: 1 + bucket_size_duration_ms: 5 + prioritized_bit_rate_kBps: 65537 - five_qi: 2 # E.g. Conversational Video rlc: @@ -38,6 +42,7 @@ qos: um-bidir: tx: sn: 12 + queue-size: 4096 rx: sn: 12 t-reassembly: 50 @@ -54,7 +59,12 @@ qos: f1u_du: backoff_timer: 10 f1u_cu_up: - backoff_timer: 10 + backoff_timer: 10 + mac: + lc_priority: 4 + lc_group_id: 1 + bucket_size_duration_ms: 5 + prioritized_bit_rate_kBps: 65537 - five_qi: 5 # E.g. IMS signaling rlc: @@ -66,6 +76,7 @@ qos: max-retx-threshold: 4 poll-pdu: 64 poll-byte: 125 + queue-size: 4096 rx: sn: 12 t-reassembly: 80 @@ -83,7 +94,12 @@ qos: f1u_du: backoff_timer: 10 f1u_cu_up: - backoff_timer: 10 + backoff_timer: 10 + mac: + lc_priority: 5 + lc_group_id: 2 + bucket_size_duration_ms: 5 + prioritized_bit_rate_kBps: 65537 - five_qi: 7 # E.g. Voice, Video (live streaming) rlc: @@ -91,6 +107,7 @@ qos: um-bidir: tx: sn: 12 + queue-size: 4096 rx: sn: 12 t-reassembly: 50 @@ -107,7 +124,12 @@ qos: f1u_du: backoff_timer: 10 f1u_cu_up: - backoff_timer: 10 + backoff_timer: 10 + mac: + lc_priority: 4 + lc_group_id: 1 + bucket_size_duration_ms: 5 + prioritized_bit_rate_kBps: 65537 - five_qi: 9 # E.g. Buffered video streaming, TCP-based traffic rlc: @@ -119,6 +141,7 @@ qos: max-retx-threshold: 4 poll-pdu: 64 poll-byte: 125 + queue-size: 4096 rx: sn: 12 t-reassembly: 80 @@ -137,3 +160,8 @@ qos: backoff_timer: 10 f1u_cu_up: backoff_timer: 10 + mac: + lc_priority: 5 + lc_group_id: 2 + bucket_size_duration_ms: 5 + prioritized_bit_rate_kBps: 65537