Introduce srsRAN ZMQ mode (eNB, gNB, 4G UE, 5G UE)
This commit is contained in:
3
.env
3
.env
@@ -107,3 +107,6 @@ OSMOHLR_IP=172.22.0.32
|
||||
|
||||
# SMSC
|
||||
SMSC_IP=172.22.0.33
|
||||
|
||||
# SRSLTE UE
|
||||
SRS_UE_IP=172.22.0.34
|
||||
|
13
README.md
13
README.md
@@ -31,6 +31,9 @@ docker build --no-cache --force-rm -t docker_open5gs .
|
||||
cd ../ims_base
|
||||
docker build --no-cache --force-rm -t docker_kamailio .
|
||||
|
||||
cd ../srslte
|
||||
docker build --no-cache --force-rm -t docker_srslte .
|
||||
|
||||
cd ../ueransim
|
||||
docker build --no-cache --force-rm -t docker_ueransim .
|
||||
```
|
||||
@@ -45,10 +48,18 @@ docker-compose build --no-cache
|
||||
docker-compose up
|
||||
|
||||
# srsRAN eNB
|
||||
docker-compose -f srsenb.yaml build --no-cache
|
||||
docker-compose -f srsenb.yaml up -d && docker attach srsenb
|
||||
# srsRAN gNB
|
||||
docker-compose -f srsgnb.yaml up -d && docker attach srsgnb
|
||||
# srsRAN ZMQ based setup
|
||||
# eNB
|
||||
docker-compose -f srsenb_zmq.yaml up -d && docker attach srsenb_zmq
|
||||
# gNB
|
||||
docker-compose -f srsgnb_zmq.yaml up -d && docker attach srsgnb_zmq
|
||||
# 4G UE
|
||||
docker-compose -f srsue_zmq.yaml up -d && docker attach srsue_zmq
|
||||
# 5G UE
|
||||
docker-compose -f srsue_5g_zmq.yaml up -d && docker attach srsue_5g_zmq
|
||||
|
||||
# UERANSIM gNB
|
||||
docker-compose -f nr-gnb.yaml up -d && docker attach nr_gnb
|
||||
|
@@ -1,7 +1,6 @@
|
||||
version: '3'
|
||||
services:
|
||||
srsenb:
|
||||
build: ./srslte
|
||||
image: docker_srslte
|
||||
container_name: srsenb
|
||||
stdin_open: true
|
||||
|
28
srsenb_zmq.yaml
Normal file
28
srsenb_zmq.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
version: '3'
|
||||
services:
|
||||
srsenb_zmq:
|
||||
image: docker_srslte
|
||||
container_name: srsenb_zmq
|
||||
stdin_open: true
|
||||
tty: true
|
||||
privileged: true
|
||||
volumes:
|
||||
- ./srslte:/mnt/srslte
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
- COMPONENT_NAME=enb_zmq
|
||||
expose:
|
||||
- "36412/sctp"
|
||||
- "2152/udp"
|
||||
- "2000/tcp"
|
||||
- "2001/tcp"
|
||||
networks:
|
||||
default:
|
||||
ipv4_address: ${SRS_ENB_IP}
|
||||
networks:
|
||||
default:
|
||||
external:
|
||||
name: docker_open5gs_default
|
@@ -1,7 +1,6 @@
|
||||
version: '3'
|
||||
services:
|
||||
srsgnb:
|
||||
build: ./srslte
|
||||
image: docker_srslte
|
||||
container_name: srsgnb
|
||||
stdin_open: true
|
||||
|
28
srsgnb_zmq.yaml
Normal file
28
srsgnb_zmq.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
version: '3'
|
||||
services:
|
||||
srsgnb_zmq:
|
||||
image: docker_srslte
|
||||
container_name: srsgnb_zmq
|
||||
stdin_open: true
|
||||
tty: true
|
||||
privileged: true
|
||||
volumes:
|
||||
- ./srslte:/mnt/srslte
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
- COMPONENT_NAME=gnb_zmq
|
||||
expose:
|
||||
- "38412/sctp"
|
||||
- "2152/udp"
|
||||
- "2000/tcp"
|
||||
- "2001/tcp"
|
||||
networks:
|
||||
default:
|
||||
ipv4_address: ${SRS_ENB_IP}
|
||||
networks:
|
||||
default:
|
||||
external:
|
||||
name: docker_open5gs_default
|
@@ -67,7 +67,6 @@ RUN cd srsRAN/build && srsran_install_configs.sh service
|
||||
|
||||
ENV UHD_IMAGES_DIR=/usr/share/uhd/images/
|
||||
|
||||
CMD /mnt/srslte/enb_init.sh && \
|
||||
cd /mnt/srslte && /usr/local/bin/srsenb
|
||||
CMD cd /mnt/srslte && /mnt/srslte/srslte_init.sh
|
||||
|
||||
#gdb /usr/local/bin/srsenb
|
||||
|
426
srslte/enb_zmq.conf
Normal file
426
srslte/enb_zmq.conf
Normal file
@@ -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 = 50
|
||||
#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
|
@@ -64,6 +64,7 @@ nr_cell_list =
|
||||
tac = 1;
|
||||
pci = 500;
|
||||
dl_arfcn = 368500;
|
||||
coreset0_idx = 6;
|
||||
band = 3;
|
||||
}
|
||||
);
|
||||
|
118
srslte/sib.conf
118
srslte/sib.conf
@@ -137,12 +137,130 @@ sib3 =
|
||||
}
|
||||
};
|
||||
|
||||
#####################################################################
|
||||
# sib5 configuration options (See TS 36.331)
|
||||
# Contains information relevant for inter-frequency cell re-selection.
|
||||
# Must be added to sib1::sched_info::si_mapping_info array parameter to be transmitted
|
||||
#
|
||||
# inter_freq_carrier_freq_list: A list of neighbouring inter-frequencies.
|
||||
# dl_carrier_freq: The EARFCN for the EUTRA carrier frequency.
|
||||
# q_rx_lev_min: Minimum received RSRP level in the E-UTRA cell, ([field_val] * 2) = [level in dBm].
|
||||
# p_max: Optional maximum allowed transmission power for the neighbouring E-UTRA cells on this carrier frequency.
|
||||
# t_resel_eutra: Cell reselection timer (seconds).
|
||||
# t_resel_eutra_sf: Optional speed dependent ScalingFactor for t_resel_eutra.
|
||||
# sf_medium: Scaling factor if the UE is in Medium Mobility state, one of "0.25", "0.5", "0.75" or "1.0".
|
||||
# sf_high: Scaling factor if the UE is in High Mobility state, one of "0.25", "0.5", "0.75" or "1.0".
|
||||
# thresh_x_high: Srclev threshold (dB) to select to a higher-priority RAT/Frequency.
|
||||
# thresh_x_low: Srclev threshold (dB) to select to a lower-priority RAT/Frequency.
|
||||
# allowed_meas_bw: Maximum allowed measurement bandwidth on a carrier frequency .
|
||||
# presence_ant_port_1: whether all the neighbouring cells use Antenna Port 1.
|
||||
# cell_resel_prio: Optional absolute priority of the carrier frequency group.
|
||||
# neigh_cell_cfg: Information related to MBSFN and TDD UL/DL configuration of neighbour cells.
|
||||
# q_offset_freq: Frequency specific offset for equal priority E-UTRAN frequencies.
|
||||
# inter_freq_neigh_cell_list: A List of inter-frequency neighbouring cells with specific cell re-selection parameters.
|
||||
# phys_cell_id: Physical layer identity of the cell.
|
||||
# q_offset_cell: Cell spcific offset.
|
||||
# inter_freq_black_cell_list: A List of blacklisted inter-frequency neighbouring cells.
|
||||
# start: The lowest physical cell identity in the range.
|
||||
# range: The number of physical cell identities in the range.
|
||||
#
|
||||
#####################################################################
|
||||
sib5 =
|
||||
{
|
||||
inter_freq_carrier_freq_list =
|
||||
(
|
||||
{
|
||||
dl_carrier_freq = 1450;
|
||||
q_rx_lev_min = -70;
|
||||
t_resel_eutra = 2;
|
||||
t_resel_eutra_sf = {
|
||||
sf_medium = "0.25";
|
||||
sf_high = "1.0";
|
||||
};
|
||||
thresh_x_high = 3;
|
||||
thresh_x_low = 2;
|
||||
allowed_meas_bw = 75;
|
||||
presence_ant_port_1 = True;
|
||||
cell_resel_prio = 4;
|
||||
neigh_cell_cfg = 2;
|
||||
q_offset_freq = -6;
|
||||
inter_freq_neigh_cell_list =
|
||||
(
|
||||
{
|
||||
phys_cell_id = 500;
|
||||
q_offset_cell = 2;
|
||||
}
|
||||
);
|
||||
inter_freq_black_cell_list =
|
||||
(
|
||||
{
|
||||
start = 123;
|
||||
range = 4;
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
#####################################################################
|
||||
# sib6 configuration options (See TS 36.331)
|
||||
# Contains UTRA neighbor information for inter-rat handover.
|
||||
# Must be added to sib1::sched_info::si_mapping_info array parameter to be transmitted
|
||||
#
|
||||
# t_resel_utra: Cell reselection timer (seconds)
|
||||
# t_resel_utra_sf: Optional speed dependent ScalingFactor for t_resel_utra.
|
||||
# sf_medium: Scaling factor if the UE is in Medium Mobility state, one of "0.25", "0.5", "0.75" or "1.0".
|
||||
# sf_high: Scaling factor if the UE is in High Mobility state, one of "0.25", "0.5", "0.75" or "1.0".
|
||||
# carrier_freq_list_utra_fdd / carrier_freq_list_utra_tdd: A list of carrier frequencies of UTRA FDD / TDD.
|
||||
# carrier_freq: The UARFCN for the UTRA carrier frequency.
|
||||
# cell_resel_prio: Optional absolute priority of the carrier frequency group.
|
||||
# thresh_x_high: Srclev threshold (dB) to select to a higher-priority RAT/Frequency.
|
||||
# thresh_x_low: Srclev threshold (dB) to select to a lower-priority RAT/Frequency.
|
||||
# q_rx_lev_min: Minimum receive level in UTRA cell, ([field_val] * 2) + 1 = [level in dBm].
|
||||
# p_max_utra: The maximum allowed transmission power on the (uplink) carrier frequency.
|
||||
# q_qual_min: Minimum required quality leve in UTRA cell, applicable only for FDD cells.
|
||||
#
|
||||
#####################################################################
|
||||
sib6 =
|
||||
{
|
||||
t_resel_utra = 1;
|
||||
t_resel_utra_sf = {
|
||||
sf_medium = "0.25";
|
||||
sf_high = "1.0";
|
||||
}
|
||||
carrier_freq_list_utra_fdd =
|
||||
(
|
||||
{
|
||||
carrier_freq = 9613;
|
||||
cell_resel_prio = 6;
|
||||
thresh_x_high = 3;
|
||||
thresh_x_low = 2;
|
||||
q_rx_lev_min = -50;
|
||||
p_max_utra = 4;
|
||||
q_qual_min = -10;
|
||||
}
|
||||
);
|
||||
carrier_freq_list_utra_tdd =
|
||||
(
|
||||
{
|
||||
carrier_freq = 9505;
|
||||
thresh_x_high = 1;
|
||||
thresh_x_low = 2;
|
||||
q_rx_lev_min = -50;
|
||||
p_max_utra = -3;
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
#####################################################################
|
||||
# sib7 configuration options (See TS 36.331)
|
||||
# Contains GERAN neighbor information for CSFB and inter-rat handover.
|
||||
# Must be added to sib1::sched_info::si_mapping_info array parameter to be transmitted
|
||||
#
|
||||
# t_resel_geran: Cell reselection timer (seconds)
|
||||
# t_resel_geran_sf: Optional speed dependent ScalingFactor for t_resel_geran.
|
||||
# sf_medium: Scaling factor if the UE is in Medium Mobility state, one of "0.25", "0.5", "0.75" or "1.0".
|
||||
# sf_high: Scaling factor if the UE is in High Mobility state, one of "0.25", "0.5", "0.75" or "1.0".
|
||||
# carrier_freqs_info_list: A list of carrier frequency groups.
|
||||
# cell_resel_prio: Absolute priority of the carrier frequency group
|
||||
# ncc_permitted: 8-bit bitmap of NCC carriers permitted for monitoring
|
||||
|
@@ -30,20 +30,37 @@ export IP_ADDR=$(awk 'END{print $1}' /etc/hosts)
|
||||
|
||||
mkdir -p /etc/srsran
|
||||
|
||||
cp /mnt/srslte/enb.conf /etc/srsran
|
||||
cp /mnt/srslte/rb.conf /etc/srsran
|
||||
cp /mnt/srslte/sib.conf /etc/srsran
|
||||
|
||||
if [[ -z "$COMPONENT_NAME" ]]; then
|
||||
echo "Error: COMPONENT_NAME environment variable not set"; exit 1;
|
||||
elif [[ "$COMPONENT_NAME" =~ ^(gnb$) ]]; then
|
||||
echo "Deploying component: '$COMPONENT_NAME'"
|
||||
echo "Configuring component: '$COMPONENT_NAME'"
|
||||
cp /mnt/srslte/rr_gnb.conf /etc/srsran/rr.conf
|
||||
cp /mnt/srslte/enb.conf /etc/srsran
|
||||
sed -i 's|MME_IP|'$AMF_IP'|g' /etc/srsran/enb.conf
|
||||
elif [[ "$COMPONENT_NAME" =~ ^(enb$) ]]; then
|
||||
echo "Deploying component: '$COMPONENT_NAME'"
|
||||
echo "Configuring component: '$COMPONENT_NAME'"
|
||||
cp /mnt/srslte/rr.conf /etc/srsran
|
||||
cp /mnt/srslte/enb.conf /etc/srsran
|
||||
sed -i 's|MME_IP|'$MME_IP'|g' /etc/srsran/enb.conf
|
||||
elif [[ "$COMPONENT_NAME" =~ ^(enb_zmq$) ]]; then
|
||||
echo "Configuring component: '$COMPONENT_NAME'"
|
||||
cp /mnt/srslte/rr.conf /etc/srsran
|
||||
cp /mnt/srslte/enb_zmq.conf /etc/srsran/enb.conf
|
||||
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
|
||||
sed -i 's|MME_IP|'$AMF_IP'|g' /etc/srsran/enb.conf
|
||||
elif [[ "$COMPONENT_NAME" =~ ^(ue_zmq$) ]]; then
|
||||
echo "Configuring component: '$COMPONENT_NAME'"
|
||||
cp /mnt/srslte/ue_zmq.conf /etc/srsran/ue.conf
|
||||
elif [[ "$COMPONENT_NAME" =~ ^(ue_5g_zmq$) ]]; then
|
||||
echo "Configuring component: '$COMPONENT_NAME'"
|
||||
cp /mnt/srslte/ue_5g_zmq.conf /etc/srsran/ue.conf
|
||||
else
|
||||
echo "Error: Invalid component name: '$COMPONENT_NAME'"
|
||||
fi
|
||||
@@ -51,8 +68,27 @@ fi
|
||||
sed -i 's|MNC|'$MNC'|g' /etc/srsran/enb.conf
|
||||
sed -i 's|MCC|'$MCC'|g' /etc/srsran/enb.conf
|
||||
sed -i 's|SRS_ENB_IP|'$SRS_ENB_IP'|g' /etc/srsran/enb.conf
|
||||
sed -i 's|SRS_UE_IP|'$SRS_UE_IP'|g' /etc/srsran/enb.conf
|
||||
sed -i 's|UE1_KI|'$UE1_KI'|g' /etc/srsran/ue.conf
|
||||
sed -i 's|UE1_OP|'$UE1_OP'|g' /etc/srsran/ue.conf
|
||||
sed -i 's|UE1_IMSI|'$UE1_IMSI'|g' /etc/srsran/ue.conf
|
||||
sed -i 's|SRS_UE_IP|'$SRS_UE_IP'|g' /etc/srsran/ue.conf
|
||||
sed -i 's|SRS_ENB_IP|'$SRS_ENB_IP'|g' /etc/srsran/ue.conf
|
||||
|
||||
# For dbus not started issue when host machine is running Ubuntu 22.04
|
||||
service dbus start && service avahi-daemon start
|
||||
|
||||
if [[ -z "$COMPONENT_NAME" ]]; then
|
||||
echo "Error: COMPONENT_NAME environment variable not set"; exit 1;
|
||||
elif [[ "$COMPONENT_NAME" =~ ^(gnb$) || "$COMPONENT_NAME" =~ ^(enb$) || "$COMPONENT_NAME" =~ ^(enb_zmq$) || "$COMPONENT_NAME" =~ ^(gnb_zmq$) ]]; then
|
||||
echo "Deploying component: '$COMPONENT_NAME'"
|
||||
/usr/local/bin/srsenb
|
||||
elif [[ "$COMPONENT_NAME" =~ ^(ue_zmq$) || "$COMPONENT_NAME" =~ ^(ue_5g_zmq$) ]]; then
|
||||
echo "Deploying component: '$COMPONENT_NAME'"
|
||||
/usr/local/bin/srsue
|
||||
else
|
||||
echo "Error: Invalid component name: '$COMPONENT_NAME'"
|
||||
fi
|
||||
|
||||
# Sync docker time
|
||||
#ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
467
srslte/ue_5g_zmq.conf
Normal file
467
srslte/ue_5g_zmq.conf
Normal file
@@ -0,0 +1,467 @@
|
||||
#####################################################################
|
||||
# srsUE configuration file
|
||||
#####################################################################
|
||||
|
||||
#####################################################################
|
||||
# RF configuration
|
||||
#
|
||||
# freq_offset: Uplink and Downlink optional frequency offset (in Hz)
|
||||
# tx_gain: Transmit gain (dB).
|
||||
# rx_gain: Optional receive gain (dB). If disabled, AGC if enabled
|
||||
# srate: Optional fixed sampling rate (Hz), corresponding to cell bandwidth. Must be set for 5G-SA.
|
||||
#
|
||||
# nof_antennas: Number of antennas per carrier (all carriers have the same number of antennas)
|
||||
# device_name: Device driver family. Supported options: "auto" (uses first found), "UHD" or "bladeRF"
|
||||
# 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: ""
|
||||
# device_args_2: Arguments for the RF device driver 2.
|
||||
# device_args_3: Arguments for the RF device driver 3.
|
||||
# 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.
|
||||
# continuous_tx: Transmit samples continuously to the radio or on bursts (auto/yes/no).
|
||||
# Default is auto (yes for UHD, no for rest)
|
||||
#####################################################################
|
||||
[rf]
|
||||
freq_offset = 0
|
||||
tx_gain = 80
|
||||
#rx_gain = 40
|
||||
srate = 11.52e6
|
||||
|
||||
#nof_antennas = 1
|
||||
|
||||
# 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
|
||||
|
||||
# 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
|
||||
#continuous_tx = auto
|
||||
|
||||
# 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_ENB_IP:2000,id=ue,base_srate=23.04e6
|
||||
|
||||
#####################################################################
|
||||
# EUTRA RAT configuration
|
||||
#
|
||||
# dl_earfcn: Downlink EARFCN list.
|
||||
#
|
||||
# Optional parameters:
|
||||
# dl_freq: Override DL frequency corresponding to dl_earfcn
|
||||
# ul_freq: Override UL frequency corresponding to dl_earfcn
|
||||
# nof_carriers: Number of carriers
|
||||
#####################################################################
|
||||
[rat.eutra]
|
||||
#dl_earfcn = 3350
|
||||
nof_carriers = 0
|
||||
|
||||
#####################################################################
|
||||
# NR RAT configuration
|
||||
#
|
||||
# Optional parameters:
|
||||
# bands: List of support NR bands seperated by a comma (default 78)
|
||||
# nof_carriers: Number of NR carriers (must be at least 1 for NR support)
|
||||
#####################################################################
|
||||
[rat.nr]
|
||||
bands = 3
|
||||
nof_carriers = 1
|
||||
|
||||
#####################################################################
|
||||
# Packet capture configuration
|
||||
#
|
||||
# Packet capture is supported at the MAC, MAC_NR, and NAS layer.
|
||||
# MAC-layer packets are captured to file a the compact format decoded
|
||||
# by the 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
|
||||
# Using the same filename for mac_filename and mac_nr_filename writes both
|
||||
# MAC-LTE and MAC-NR to the same file allowing a better analysis.
|
||||
# NAS-layer packets are dissected with DLT=148, and Protocol = nas-eps.
|
||||
#
|
||||
# enable: Enable packet captures of layers (mac/mac_nr/nas/none) multiple option list
|
||||
# mac_filename: File path to use for MAC packet capture
|
||||
# mac_nr_filename: File path to use for MAC NR packet capture
|
||||
# nas_filename: File path to use for NAS packet capture
|
||||
#####################################################################
|
||||
[pcap]
|
||||
enable = none
|
||||
mac_filename = /mnt/srslte/ue_mac.pcap
|
||||
mac_nr_filename = /mnt/srslte/ue_mac_nr.pcap
|
||||
nas_filename = /mnt/srslte/ue_nas.pcap
|
||||
|
||||
#####################################################################
|
||||
# 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, mac, rlc, pdcp, rrc, nas, gw, usim, 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
|
||||
phy_lib_level = none
|
||||
all_hex_limit = 32
|
||||
filename = /mnt/srslte/ue.log
|
||||
file_max_size = -1
|
||||
|
||||
#####################################################################
|
||||
# USIM configuration
|
||||
#
|
||||
# mode: USIM mode (soft/pcsc)
|
||||
# algo: Authentication algorithm (xor/milenage)
|
||||
# op/opc: 128-bit Operator Variant Algorithm Configuration Field (hex)
|
||||
# - Specify either op or opc (only used in milenage)
|
||||
# k: 128-bit subscriber key (hex)
|
||||
# imsi: 15 digit International Mobile Subscriber Identity
|
||||
# imei: 15 digit International Mobile Station Equipment Identity
|
||||
# pin: PIN in case real SIM card is used
|
||||
# reader: Specify card reader by it's name as listed by 'pcsc_scan'. If empty, try all available readers.
|
||||
#####################################################################
|
||||
[usim]
|
||||
mode = soft
|
||||
algo = milenage
|
||||
op = UE1_OP
|
||||
k = UE1_KI
|
||||
imsi = UE1_IMSI
|
||||
imei = 353490069873319
|
||||
#reader =
|
||||
#pin = 1234
|
||||
|
||||
#####################################################################
|
||||
# RRC configuration
|
||||
#
|
||||
# ue_category: Sets UE category (range 1-5). Default: 4
|
||||
# release: UE Release (8 to 15)
|
||||
# feature_group: Hex value of the featureGroupIndicators field in the
|
||||
# UECapabilityInformation message. Default 0xe6041000
|
||||
# mbms_service_id: MBMS service id for autostarting MBMS reception
|
||||
# (default -1 means disabled)
|
||||
# mbms_service_port: Port of the MBMS service
|
||||
# nr_measurement_pci: NR PCI for the simulated NR measurement. Default: 500
|
||||
# nr_short_sn_support: Announce PDCP short SN support. Default: true
|
||||
#####################################################################
|
||||
[rrc]
|
||||
#ue_category = 4
|
||||
release = 15
|
||||
#feature_group = 0xe6041000
|
||||
#mbms_service_id = -1
|
||||
#mbms_service_port = 4321
|
||||
|
||||
#####################################################################
|
||||
# NAS configuration
|
||||
#
|
||||
# apn: Set Access Point Name (APN)
|
||||
# apn_protocol: Set APN protocol (IPv4, IPv6 or IPv4v6.)
|
||||
# user: Username for CHAP authentication
|
||||
# pass: Password for CHAP authentication
|
||||
# force_imsi_attach: Whether to always perform an IMSI attach
|
||||
# eia: List of integrity algorithms included in UE capabilities
|
||||
# Supported: 1 - Snow3G, 2 - AES, 3 - ZUC
|
||||
# eea: List of ciphering algorithms included in UE capabilities
|
||||
# Supported: 0 - NULL, 1 - Snow3G, 2 - AES, 3 - ZUC
|
||||
#####################################################################
|
||||
[nas]
|
||||
apn = internet
|
||||
apn_protocol = ipv4
|
||||
#user = srsuser
|
||||
#pass = srspass
|
||||
#force_imsi_attach = false
|
||||
#eia = 1,2,3
|
||||
#eea = 0,1,2,3
|
||||
|
||||
#####################################################################
|
||||
# GW configuration
|
||||
#
|
||||
# netns: Network namespace to create TUN device. Default: empty
|
||||
# ip_devname: Name of the tun_srsue device. Default: tun_srsue
|
||||
# ip_netmask: Netmask of the tun_srsue device. Default: 255.255.255.0
|
||||
#####################################################################
|
||||
[gw]
|
||||
#netns =
|
||||
#ip_devname = tun_srsue
|
||||
#ip_netmask = 255.255.255.0
|
||||
|
||||
#####################################################################
|
||||
# GUI configuration
|
||||
#
|
||||
# Simple GUI displaying PDSCH constellation and channel freq response.
|
||||
# (Requires building with srsGUI)
|
||||
# enable: Enable the graphical interface (true/false)
|
||||
#####################################################################
|
||||
[gui]
|
||||
enable = false
|
||||
|
||||
#####################################################################
|
||||
# Channel emulator options:
|
||||
# enable: Enable/Disable internal Downlink/Uplink channel emulator
|
||||
#
|
||||
# -- AWGN Generator
|
||||
# awgn.enable: Enable/disable AWGN generator
|
||||
# awgn.snr: SNR in dB
|
||||
# awgn.signal_power: Received signal power in decibels full scale (dBfs)
|
||||
#
|
||||
# -- 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
|
||||
|
||||
#####################################################################
|
||||
# PHY configuration options
|
||||
#
|
||||
# rx_gain_offset: RX Gain offset to add to rx_gain to calibrate RSRP readings
|
||||
# prach_gain: PRACH gain (dB). If defined, forces a gain for the tranmsission of PRACH only.,
|
||||
# Default is to use tx_gain in [rf] section.
|
||||
# cqi_max: Upper bound on the maximum CQI to be reported. Default 15.
|
||||
# cqi_fixed: Fixes the reported CQI to a constant value. Default disabled.
|
||||
# snr_ema_coeff: Sets the SNR exponential moving average coefficient (Default 0.1)
|
||||
# snr_estim_alg: Sets the noise estimation algorithm. (Default refs)
|
||||
# Options: pss: use difference between received and known pss signal,
|
||||
# refs: use difference between noise references and noiseless (after filtering)
|
||||
# empty: use empty subcarriers in the boarder of pss/sss signal
|
||||
# pdsch_max_its: Maximum number of turbo decoder iterations (Default 4)
|
||||
# pdsch_meas_evm: Measure PDSCH EVM, increases CPU load (default false)
|
||||
# nof_phy_threads: Selects the number of PHY threads (maximum 4, minimum 1, default 3)
|
||||
# equalizer_mode: Selects equalizer mode. Valid modes are: "mmse", "zf" or any
|
||||
# non-negative real number to indicate a regularized zf coefficient.
|
||||
# Default is MMSE.
|
||||
# correct_sync_error: Channel estimator measures and pre-compensates time synchronization error. Increases CPU usage,
|
||||
# improves PDSCH decoding in high SFO and high speed UE scenarios.
|
||||
# sfo_ema: EMA coefficient to average sample offsets used to compute SFO
|
||||
# sfo_correct_period: Period in ms to correct sample time to adjust for SFO
|
||||
# sss_algorithm: Selects the SSS estimation algorithm. Can choose between
|
||||
# {full, partial, diff}.
|
||||
# estimator_fil_auto: The channel estimator smooths the channel estimate with an adaptative filter.
|
||||
# estimator_fil_stddev: Sets the channel estimator smooth gaussian filter standard deviation.
|
||||
# estimator_fil_order: Sets the channel estimator smooth gaussian filter order (even values perform better).
|
||||
# The taps are [w, 1-2w, w]
|
||||
#
|
||||
# snr_to_cqi_offset: Sets an offset in the SNR to CQI table. This is used to adjust the reported CQI.
|
||||
#
|
||||
# interpolate_subframe_enabled: Interpolates in the time domain the channel estimates within 1 subframe. Default is to average.
|
||||
#
|
||||
# pdsch_csi_enabled: Stores the Channel State Information and uses it for weightening the softbits. It is only
|
||||
# used in TM1. It is True by default.
|
||||
#
|
||||
# pdsch_8bit_decoder: Use 8-bit for LLR representation and turbo decoder trellis computation (Experimental)
|
||||
# force_ul_amplitude: Forces the peak amplitude in the PUCCH, PUSCH and SRS (set 0.0 to 1.0, set to 0 or negative for disabling)
|
||||
#
|
||||
# in_sync_rsrp_dbm_th: RSRP threshold (in dBm) above which the UE considers to be in-sync
|
||||
# in_sync_snr_db_th: SNR threshold (in dB) above which the UE considers to be in-sync
|
||||
# nof_in_sync_events: Number of PHY in-sync events before sending an in-sync event to RRC
|
||||
# nof_out_of_sync_events: Number of PHY out-sync events before sending an out-sync event to RRC
|
||||
#
|
||||
# force_N_id_2: Force using a specific PSS (set to -1 to allow all PSSs).
|
||||
# force_N_id_1: Force using a specific SSS (set to -1 to allow all SSSs).
|
||||
#
|
||||
#####################################################################
|
||||
[phy]
|
||||
#rx_gain_offset = 62
|
||||
#prach_gain = 30
|
||||
#cqi_max = 15
|
||||
#cqi_fixed = 10
|
||||
#snr_ema_coeff = 0.1
|
||||
#snr_estim_alg = refs
|
||||
#pdsch_max_its = 8 # These are half iterations
|
||||
#pdsch_meas_evm = false
|
||||
#nof_phy_threads = 3
|
||||
#equalizer_mode = mmse
|
||||
#correct_sync_error = false
|
||||
#sfo_ema = 0.1
|
||||
#sfo_correct_period = 10
|
||||
#sss_algorithm = full
|
||||
#estimator_fil_auto = false
|
||||
#estimator_fil_stddev = 1.0
|
||||
#estimator_fil_order = 4
|
||||
#snr_to_cqi_offset = 0.0
|
||||
#interpolate_subframe_enabled = false
|
||||
#pdsch_csi_enabled = true
|
||||
#pdsch_8bit_decoder = false
|
||||
#force_ul_amplitude = 0
|
||||
#detect_cp = false
|
||||
|
||||
#in_sync_rsrp_dbm_th = -130.0
|
||||
#in_sync_snr_db_th = 3.0
|
||||
#nof_in_sync_events = 10
|
||||
#nof_out_of_sync_events = 20
|
||||
|
||||
#force_N_id_2 = 1
|
||||
#force_N_id_1 = 10
|
||||
|
||||
#####################################################################
|
||||
# PHY NR specific configuration options
|
||||
#
|
||||
# store_pdsch_ko: Dumps the PDSCH baseband samples into a file on KO reception
|
||||
#
|
||||
#####################################################################
|
||||
[phy.nr]
|
||||
#store_pdsch_ko = false
|
||||
|
||||
#####################################################################
|
||||
# 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: 2
|
||||
# auto_target_papr: Signal PAPR target (in dB) in CFR auto modes. output PAPR can be higher due to peak smoothing. Default: 7
|
||||
# ema_alpha: Alpha coefficient for the power average in auto_ema mode. Default: 1/7
|
||||
#
|
||||
#####################################################################
|
||||
[cfr]
|
||||
#enable = false
|
||||
#mode = manual
|
||||
#manual_thres = 2.0
|
||||
#strength = 1.0
|
||||
#auto_target_papr = 7.0
|
||||
#ema_alpha = 0.0143
|
||||
|
||||
#####################################################################
|
||||
# Simulation configuration options
|
||||
#
|
||||
# The UE simulation supports turning on and off airplane mode in the UE.
|
||||
# The actions are carried periodically until the UE is stopped.
|
||||
#
|
||||
# airplane_t_on_ms: Time to leave airplane mode turned on (in ms)
|
||||
#
|
||||
# airplane_t_off_ms: Time to leave airplane mode turned off (in ms)
|
||||
#
|
||||
#####################################################################
|
||||
[sim]
|
||||
#airplane_t_on_ms = -1
|
||||
#airplane_t_off_ms = -1
|
||||
|
||||
#####################################################################
|
||||
# General configuration options
|
||||
#
|
||||
# metrics_csv_enable: Write UE metrics to CSV file.
|
||||
#
|
||||
# metrics_period_secs: Sets the period at which metrics are requested from the UE.
|
||||
#
|
||||
# metrics_csv_filename: File path to use for CSV metrics.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# have_tti_time_stats: Calculate TTI execution statistics using system clock
|
||||
#
|
||||
# metrics_json_enable: Write UE metrics to JSON file.
|
||||
#
|
||||
# metrics_json_filename: File path to use for JSON metrics.
|
||||
#
|
||||
#####################################################################
|
||||
[general]
|
||||
#metrics_csv_enable = false
|
||||
#metrics_period_secs = 1
|
||||
#metrics_csv_filename = /mnt/srslte/ue_metrics.csv
|
||||
#have_tti_time_stats = true
|
||||
#tracing_enable = true
|
||||
#tracing_filename = /mnt/srslte/ue_tracing.log
|
||||
#tracing_buffcapacity = 1000000
|
||||
#metrics_json_enable = false
|
||||
#metrics_json_filename = /mnt/srslte/ue_metrics.json
|
BIN
srslte/ue_mac_nr.pcap
Normal file
BIN
srslte/ue_mac_nr.pcap
Normal file
Binary file not shown.
0
srslte/ue_nas.pcap
Normal file
0
srslte/ue_nas.pcap
Normal file
467
srslte/ue_zmq.conf
Normal file
467
srslte/ue_zmq.conf
Normal file
@@ -0,0 +1,467 @@
|
||||
#####################################################################
|
||||
# srsUE configuration file
|
||||
#####################################################################
|
||||
|
||||
#####################################################################
|
||||
# RF configuration
|
||||
#
|
||||
# freq_offset: Uplink and Downlink optional frequency offset (in Hz)
|
||||
# tx_gain: Transmit gain (dB).
|
||||
# rx_gain: Optional receive gain (dB). If disabled, AGC if enabled
|
||||
# srate: Optional fixed sampling rate (Hz), corresponding to cell bandwidth. Must be set for 5G-SA.
|
||||
#
|
||||
# nof_antennas: Number of antennas per carrier (all carriers have the same number of antennas)
|
||||
# device_name: Device driver family. Supported options: "auto" (uses first found), "UHD" or "bladeRF"
|
||||
# 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: ""
|
||||
# device_args_2: Arguments for the RF device driver 2.
|
||||
# device_args_3: Arguments for the RF device driver 3.
|
||||
# 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.
|
||||
# continuous_tx: Transmit samples continuously to the radio or on bursts (auto/yes/no).
|
||||
# Default is auto (yes for UHD, no for rest)
|
||||
#####################################################################
|
||||
[rf]
|
||||
freq_offset = 0
|
||||
tx_gain = 80
|
||||
#rx_gain = 40
|
||||
#srate = 11.52e6
|
||||
|
||||
#nof_antennas = 1
|
||||
|
||||
# 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
|
||||
|
||||
# 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
|
||||
#continuous_tx = auto
|
||||
|
||||
# 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_ENB_IP:2000,id=ue,base_srate=23.04e6
|
||||
|
||||
#####################################################################
|
||||
# EUTRA RAT configuration
|
||||
#
|
||||
# dl_earfcn: Downlink EARFCN list.
|
||||
#
|
||||
# Optional parameters:
|
||||
# dl_freq: Override DL frequency corresponding to dl_earfcn
|
||||
# ul_freq: Override UL frequency corresponding to dl_earfcn
|
||||
# nof_carriers: Number of carriers
|
||||
#####################################################################
|
||||
[rat.eutra]
|
||||
dl_earfcn = 3150
|
||||
#nof_carriers = 1
|
||||
|
||||
#####################################################################
|
||||
# NR RAT configuration
|
||||
#
|
||||
# Optional parameters:
|
||||
# bands: List of support NR bands seperated by a comma (default 78)
|
||||
# nof_carriers: Number of NR carriers (must be at least 1 for NR support)
|
||||
#####################################################################
|
||||
[rat.nr]
|
||||
# bands = 78
|
||||
# nof_carriers = 0
|
||||
|
||||
#####################################################################
|
||||
# Packet capture configuration
|
||||
#
|
||||
# Packet capture is supported at the MAC, MAC_NR, and NAS layer.
|
||||
# MAC-layer packets are captured to file a the compact format decoded
|
||||
# by the 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
|
||||
# Using the same filename for mac_filename and mac_nr_filename writes both
|
||||
# MAC-LTE and MAC-NR to the same file allowing a better analysis.
|
||||
# NAS-layer packets are dissected with DLT=148, and Protocol = nas-eps.
|
||||
#
|
||||
# enable: Enable packet captures of layers (mac/mac_nr/nas/none) multiple option list
|
||||
# mac_filename: File path to use for MAC packet capture
|
||||
# mac_nr_filename: File path to use for MAC NR packet capture
|
||||
# nas_filename: File path to use for NAS packet capture
|
||||
#####################################################################
|
||||
[pcap]
|
||||
enable = none
|
||||
mac_filename = /mnt/srslte/ue_mac.pcap
|
||||
mac_nr_filename = /mnt/srslte/ue_mac_nr.pcap
|
||||
nas_filename = /mnt/srslte/ue_nas.pcap
|
||||
|
||||
#####################################################################
|
||||
# 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, mac, rlc, pdcp, rrc, nas, gw, usim, 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
|
||||
phy_lib_level = none
|
||||
all_hex_limit = 32
|
||||
filename = /mnt/srslte/ue.log
|
||||
file_max_size = -1
|
||||
|
||||
#####################################################################
|
||||
# USIM configuration
|
||||
#
|
||||
# mode: USIM mode (soft/pcsc)
|
||||
# algo: Authentication algorithm (xor/milenage)
|
||||
# op/opc: 128-bit Operator Variant Algorithm Configuration Field (hex)
|
||||
# - Specify either op or opc (only used in milenage)
|
||||
# k: 128-bit subscriber key (hex)
|
||||
# imsi: 15 digit International Mobile Subscriber Identity
|
||||
# imei: 15 digit International Mobile Station Equipment Identity
|
||||
# pin: PIN in case real SIM card is used
|
||||
# reader: Specify card reader by it's name as listed by 'pcsc_scan'. If empty, try all available readers.
|
||||
#####################################################################
|
||||
[usim]
|
||||
mode = soft
|
||||
algo = milenage
|
||||
op = UE1_OP
|
||||
k = UE1_KI
|
||||
imsi = UE1_IMSI
|
||||
imei = 353490069873319
|
||||
#reader =
|
||||
#pin = 1234
|
||||
|
||||
#####################################################################
|
||||
# RRC configuration
|
||||
#
|
||||
# ue_category: Sets UE category (range 1-5). Default: 4
|
||||
# release: UE Release (8 to 15)
|
||||
# feature_group: Hex value of the featureGroupIndicators field in the
|
||||
# UECapabilityInformation message. Default 0xe6041000
|
||||
# mbms_service_id: MBMS service id for autostarting MBMS reception
|
||||
# (default -1 means disabled)
|
||||
# mbms_service_port: Port of the MBMS service
|
||||
# nr_measurement_pci: NR PCI for the simulated NR measurement. Default: 500
|
||||
# nr_short_sn_support: Announce PDCP short SN support. Default: true
|
||||
#####################################################################
|
||||
[rrc]
|
||||
#ue_category = 4
|
||||
#release = 8
|
||||
#feature_group = 0xe6041000
|
||||
#mbms_service_id = -1
|
||||
#mbms_service_port = 4321
|
||||
|
||||
#####################################################################
|
||||
# NAS configuration
|
||||
#
|
||||
# apn: Set Access Point Name (APN)
|
||||
# apn_protocol: Set APN protocol (IPv4, IPv6 or IPv4v6.)
|
||||
# user: Username for CHAP authentication
|
||||
# pass: Password for CHAP authentication
|
||||
# force_imsi_attach: Whether to always perform an IMSI attach
|
||||
# eia: List of integrity algorithms included in UE capabilities
|
||||
# Supported: 1 - Snow3G, 2 - AES, 3 - ZUC
|
||||
# eea: List of ciphering algorithms included in UE capabilities
|
||||
# Supported: 0 - NULL, 1 - Snow3G, 2 - AES, 3 - ZUC
|
||||
#####################################################################
|
||||
[nas]
|
||||
apn = internet
|
||||
apn_protocol = ipv4
|
||||
#user = srsuser
|
||||
#pass = srspass
|
||||
#force_imsi_attach = false
|
||||
#eia = 1,2,3
|
||||
#eea = 0,1,2,3
|
||||
|
||||
#####################################################################
|
||||
# GW configuration
|
||||
#
|
||||
# netns: Network namespace to create TUN device. Default: empty
|
||||
# ip_devname: Name of the tun_srsue device. Default: tun_srsue
|
||||
# ip_netmask: Netmask of the tun_srsue device. Default: 255.255.255.0
|
||||
#####################################################################
|
||||
[gw]
|
||||
#netns =
|
||||
#ip_devname = tun_srsue
|
||||
#ip_netmask = 255.255.255.0
|
||||
|
||||
#####################################################################
|
||||
# GUI configuration
|
||||
#
|
||||
# Simple GUI displaying PDSCH constellation and channel freq response.
|
||||
# (Requires building with srsGUI)
|
||||
# enable: Enable the graphical interface (true/false)
|
||||
#####################################################################
|
||||
[gui]
|
||||
enable = false
|
||||
|
||||
#####################################################################
|
||||
# Channel emulator options:
|
||||
# enable: Enable/Disable internal Downlink/Uplink channel emulator
|
||||
#
|
||||
# -- AWGN Generator
|
||||
# awgn.enable: Enable/disable AWGN generator
|
||||
# awgn.snr: SNR in dB
|
||||
# awgn.signal_power: Received signal power in decibels full scale (dBfs)
|
||||
#
|
||||
# -- 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
|
||||
|
||||
#####################################################################
|
||||
# PHY configuration options
|
||||
#
|
||||
# rx_gain_offset: RX Gain offset to add to rx_gain to calibrate RSRP readings
|
||||
# prach_gain: PRACH gain (dB). If defined, forces a gain for the tranmsission of PRACH only.,
|
||||
# Default is to use tx_gain in [rf] section.
|
||||
# cqi_max: Upper bound on the maximum CQI to be reported. Default 15.
|
||||
# cqi_fixed: Fixes the reported CQI to a constant value. Default disabled.
|
||||
# snr_ema_coeff: Sets the SNR exponential moving average coefficient (Default 0.1)
|
||||
# snr_estim_alg: Sets the noise estimation algorithm. (Default refs)
|
||||
# Options: pss: use difference between received and known pss signal,
|
||||
# refs: use difference between noise references and noiseless (after filtering)
|
||||
# empty: use empty subcarriers in the boarder of pss/sss signal
|
||||
# pdsch_max_its: Maximum number of turbo decoder iterations (Default 4)
|
||||
# pdsch_meas_evm: Measure PDSCH EVM, increases CPU load (default false)
|
||||
# nof_phy_threads: Selects the number of PHY threads (maximum 4, minimum 1, default 3)
|
||||
# equalizer_mode: Selects equalizer mode. Valid modes are: "mmse", "zf" or any
|
||||
# non-negative real number to indicate a regularized zf coefficient.
|
||||
# Default is MMSE.
|
||||
# correct_sync_error: Channel estimator measures and pre-compensates time synchronization error. Increases CPU usage,
|
||||
# improves PDSCH decoding in high SFO and high speed UE scenarios.
|
||||
# sfo_ema: EMA coefficient to average sample offsets used to compute SFO
|
||||
# sfo_correct_period: Period in ms to correct sample time to adjust for SFO
|
||||
# sss_algorithm: Selects the SSS estimation algorithm. Can choose between
|
||||
# {full, partial, diff}.
|
||||
# estimator_fil_auto: The channel estimator smooths the channel estimate with an adaptative filter.
|
||||
# estimator_fil_stddev: Sets the channel estimator smooth gaussian filter standard deviation.
|
||||
# estimator_fil_order: Sets the channel estimator smooth gaussian filter order (even values perform better).
|
||||
# The taps are [w, 1-2w, w]
|
||||
#
|
||||
# snr_to_cqi_offset: Sets an offset in the SNR to CQI table. This is used to adjust the reported CQI.
|
||||
#
|
||||
# interpolate_subframe_enabled: Interpolates in the time domain the channel estimates within 1 subframe. Default is to average.
|
||||
#
|
||||
# pdsch_csi_enabled: Stores the Channel State Information and uses it for weightening the softbits. It is only
|
||||
# used in TM1. It is True by default.
|
||||
#
|
||||
# pdsch_8bit_decoder: Use 8-bit for LLR representation and turbo decoder trellis computation (Experimental)
|
||||
# force_ul_amplitude: Forces the peak amplitude in the PUCCH, PUSCH and SRS (set 0.0 to 1.0, set to 0 or negative for disabling)
|
||||
#
|
||||
# in_sync_rsrp_dbm_th: RSRP threshold (in dBm) above which the UE considers to be in-sync
|
||||
# in_sync_snr_db_th: SNR threshold (in dB) above which the UE considers to be in-sync
|
||||
# nof_in_sync_events: Number of PHY in-sync events before sending an in-sync event to RRC
|
||||
# nof_out_of_sync_events: Number of PHY out-sync events before sending an out-sync event to RRC
|
||||
#
|
||||
# force_N_id_2: Force using a specific PSS (set to -1 to allow all PSSs).
|
||||
# force_N_id_1: Force using a specific SSS (set to -1 to allow all SSSs).
|
||||
#
|
||||
#####################################################################
|
||||
[phy]
|
||||
#rx_gain_offset = 62
|
||||
#prach_gain = 30
|
||||
#cqi_max = 15
|
||||
#cqi_fixed = 10
|
||||
#snr_ema_coeff = 0.1
|
||||
#snr_estim_alg = refs
|
||||
#pdsch_max_its = 8 # These are half iterations
|
||||
#pdsch_meas_evm = false
|
||||
#nof_phy_threads = 3
|
||||
#equalizer_mode = mmse
|
||||
#correct_sync_error = false
|
||||
#sfo_ema = 0.1
|
||||
#sfo_correct_period = 10
|
||||
#sss_algorithm = full
|
||||
#estimator_fil_auto = false
|
||||
#estimator_fil_stddev = 1.0
|
||||
#estimator_fil_order = 4
|
||||
#snr_to_cqi_offset = 0.0
|
||||
#interpolate_subframe_enabled = false
|
||||
#pdsch_csi_enabled = true
|
||||
#pdsch_8bit_decoder = false
|
||||
#force_ul_amplitude = 0
|
||||
#detect_cp = false
|
||||
|
||||
#in_sync_rsrp_dbm_th = -130.0
|
||||
#in_sync_snr_db_th = 3.0
|
||||
#nof_in_sync_events = 10
|
||||
#nof_out_of_sync_events = 20
|
||||
|
||||
#force_N_id_2 = 1
|
||||
#force_N_id_1 = 10
|
||||
|
||||
#####################################################################
|
||||
# PHY NR specific configuration options
|
||||
#
|
||||
# store_pdsch_ko: Dumps the PDSCH baseband samples into a file on KO reception
|
||||
#
|
||||
#####################################################################
|
||||
[phy.nr]
|
||||
#store_pdsch_ko = false
|
||||
|
||||
#####################################################################
|
||||
# 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: 2
|
||||
# auto_target_papr: Signal PAPR target (in dB) in CFR auto modes. output PAPR can be higher due to peak smoothing. Default: 7
|
||||
# ema_alpha: Alpha coefficient for the power average in auto_ema mode. Default: 1/7
|
||||
#
|
||||
#####################################################################
|
||||
[cfr]
|
||||
#enable = false
|
||||
#mode = manual
|
||||
#manual_thres = 2.0
|
||||
#strength = 1.0
|
||||
#auto_target_papr = 7.0
|
||||
#ema_alpha = 0.0143
|
||||
|
||||
#####################################################################
|
||||
# Simulation configuration options
|
||||
#
|
||||
# The UE simulation supports turning on and off airplane mode in the UE.
|
||||
# The actions are carried periodically until the UE is stopped.
|
||||
#
|
||||
# airplane_t_on_ms: Time to leave airplane mode turned on (in ms)
|
||||
#
|
||||
# airplane_t_off_ms: Time to leave airplane mode turned off (in ms)
|
||||
#
|
||||
#####################################################################
|
||||
[sim]
|
||||
#airplane_t_on_ms = -1
|
||||
#airplane_t_off_ms = -1
|
||||
|
||||
#####################################################################
|
||||
# General configuration options
|
||||
#
|
||||
# metrics_csv_enable: Write UE metrics to CSV file.
|
||||
#
|
||||
# metrics_period_secs: Sets the period at which metrics are requested from the UE.
|
||||
#
|
||||
# metrics_csv_filename: File path to use for CSV metrics.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# have_tti_time_stats: Calculate TTI execution statistics using system clock
|
||||
#
|
||||
# metrics_json_enable: Write UE metrics to JSON file.
|
||||
#
|
||||
# metrics_json_filename: File path to use for JSON metrics.
|
||||
#
|
||||
#####################################################################
|
||||
[general]
|
||||
#metrics_csv_enable = false
|
||||
#metrics_period_secs = 1
|
||||
#metrics_csv_filename = /mnt/srslte/ue_metrics.csv
|
||||
#have_tti_time_stats = true
|
||||
#tracing_enable = true
|
||||
#tracing_filename = /mnt/srslte/ue_tracing.log
|
||||
#tracing_buffcapacity = 1000000
|
||||
#metrics_json_enable = false
|
||||
#metrics_json_filename = /mnt/srslte/ue_metrics.json
|
28
srsue_5g_zmq.yaml
Normal file
28
srsue_5g_zmq.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
version: '3'
|
||||
services:
|
||||
srsue_5g_zmq:
|
||||
image: docker_srslte
|
||||
container_name: srsue_5g_zmq
|
||||
stdin_open: true
|
||||
tty: true
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
privileged: true
|
||||
volumes:
|
||||
- ./srslte:/mnt/srslte
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
- COMPONENT_NAME=ue_5g_zmq
|
||||
expose:
|
||||
- "2000/tcp"
|
||||
- "2001/tcp"
|
||||
networks:
|
||||
default:
|
||||
ipv4_address: ${SRS_UE_IP}
|
||||
networks:
|
||||
default:
|
||||
external:
|
||||
name: docker_open5gs_default
|
28
srsue_zmq.yaml
Normal file
28
srsue_zmq.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
version: '3'
|
||||
services:
|
||||
srsue_zmq:
|
||||
image: docker_srslte
|
||||
container_name: srsue_zmq
|
||||
stdin_open: true
|
||||
tty: true
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
privileged: true
|
||||
volumes:
|
||||
- ./srslte:/mnt/srslte
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
- COMPONENT_NAME=ue_zmq
|
||||
expose:
|
||||
- "2000/tcp"
|
||||
- "2001/tcp"
|
||||
networks:
|
||||
default:
|
||||
ipv4_address: ${SRS_UE_IP}
|
||||
networks:
|
||||
default:
|
||||
external:
|
||||
name: docker_open5gs_default
|
Reference in New Issue
Block a user