Add docker files related to srslte eNB
This commit is contained in:
25
srsenb.yaml
Normal file
25
srsenb.yaml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
version: '3'
|
||||||
|
services:
|
||||||
|
srsenb:
|
||||||
|
build: ./srslte
|
||||||
|
image: docker_srslte
|
||||||
|
container_name: srsenb
|
||||||
|
privileged: true
|
||||||
|
devices:
|
||||||
|
- "/dev/bus"
|
||||||
|
volumes:
|
||||||
|
- /dev/serial:/dev/serial:ro
|
||||||
|
- /dev/bus/usb:/dev/bus/usb:ro
|
||||||
|
- ./srslte:/mnt/srslte
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
expose:
|
||||||
|
- "36412/sctp"
|
||||||
|
- "2152/udp"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipv4_address: ${ENB_IP}
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
external:
|
||||||
|
name: docker_open5gs_default
|
||||||
71
srslte/Dockerfile
Normal file
71
srslte/Dockerfile
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
# BSD 2-Clause License
|
||||||
|
|
||||||
|
# Copyright (c) 2020, Supreeth Herle
|
||||||
|
# All rights reserved.
|
||||||
|
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
# 1. Redistributions of source code must retain the above copyright notice, this
|
||||||
|
# list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
# this list of conditions and the following disclaimer in the documentation
|
||||||
|
# and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
FROM ubuntu:bionic
|
||||||
|
|
||||||
|
# Install updates and dependencies
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get -y install cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev git \
|
||||||
|
libzmq3-dev libboost-system-dev libboost-test-dev libboost-thread-dev libqwt-qt5-dev qtbase5-dev \
|
||||||
|
software-properties-common g++ make pkg-config libpython-dev python-numpy swig libi2c-dev \
|
||||||
|
libboost-program-options-dev libconfig++-dev
|
||||||
|
|
||||||
|
# Install dependencies to build SoapySDR and Lime Suite
|
||||||
|
RUN add-apt-repository -y ppa:myriadrf/drivers && \
|
||||||
|
apt update && \
|
||||||
|
apt -y install libi2c-dev libusb-1.0-0-dev git g++ cmake libsqlite3-dev libwxgtk3.0-dev freeglut3-dev
|
||||||
|
|
||||||
|
# Install SoapySDR from Source
|
||||||
|
RUN git clone https://github.com/pothosware/SoapySDR.git && \
|
||||||
|
cd SoapySDR && \
|
||||||
|
git checkout tags/soapy-sdr-0.7.2 -b soapy-sdr-0.7.2 && \
|
||||||
|
mkdir build && cd build && cmake .. && \
|
||||||
|
make && make install && ldconfig
|
||||||
|
|
||||||
|
# Install LimeSuite
|
||||||
|
RUN git clone https://github.com/myriadrf/LimeSuite.git && \
|
||||||
|
cd LimeSuite && \
|
||||||
|
git checkout tags/v20.07.1 -b v20.07.1 && \
|
||||||
|
mkdir builddir && cd builddir && cmake .. && \
|
||||||
|
make && make install && ldconfig && \
|
||||||
|
cd ../udev-rules && sh ./install.sh
|
||||||
|
|
||||||
|
# Get srsGUI, compile and install
|
||||||
|
RUN git clone https://github.com/srsLTE/srsGUI && \
|
||||||
|
cd srsGUI/ && \
|
||||||
|
mkdir build && cd build && \
|
||||||
|
cmake ../ && make && make install && ldconfig
|
||||||
|
|
||||||
|
# Get srsLTE, compile and install
|
||||||
|
RUN git clone https://github.com/srsLTE/srsLTE.git && \
|
||||||
|
cd srsLTE && \
|
||||||
|
git checkout tags/release_19_12 && \
|
||||||
|
mkdir build && cd build && \
|
||||||
|
cmake ../ && make && make install && \
|
||||||
|
ldconfig && srslte_install_configs.sh service
|
||||||
|
|
||||||
|
CMD /mnt/srslte/enb_init.sh && \
|
||||||
|
/usr/local/bin/srsenb
|
||||||
101
srslte/drb.conf
Normal file
101
srslte/drb.conf
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
|
||||||
|
// All times are in ms. Use -1 for infinity, where available
|
||||||
|
|
||||||
|
qci_config = (
|
||||||
|
|
||||||
|
{
|
||||||
|
qci=1;
|
||||||
|
pdcp_config = {
|
||||||
|
discard_timer = 100;
|
||||||
|
pdcp_sn_size = 12;
|
||||||
|
}
|
||||||
|
rlc_config = {
|
||||||
|
ul_um = {
|
||||||
|
sn_field_length = 10;
|
||||||
|
};
|
||||||
|
dl_um = {
|
||||||
|
sn_field_length = 10;
|
||||||
|
t_reordering = 50;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
logical_channel_config = {
|
||||||
|
priority = 6;
|
||||||
|
prioritized_bit_rate = -1;
|
||||||
|
bucket_size_duration = 100;
|
||||||
|
log_chan_group = 1;
|
||||||
|
};
|
||||||
|
},
|
||||||
|
{
|
||||||
|
qci=5;
|
||||||
|
pdcp_config = {
|
||||||
|
discard_timer = -1;
|
||||||
|
status_report_required = true;
|
||||||
|
}
|
||||||
|
rlc_config = {
|
||||||
|
ul_am = {
|
||||||
|
t_poll_retx = 80;
|
||||||
|
poll_pdu = 128;
|
||||||
|
poll_byte = 125;
|
||||||
|
max_retx_thresh = 4;
|
||||||
|
};
|
||||||
|
dl_am = {
|
||||||
|
t_reordering = 80;
|
||||||
|
t_status_prohibit = 60;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
logical_channel_config = {
|
||||||
|
priority = 13;
|
||||||
|
prioritized_bit_rate = -1;
|
||||||
|
bucket_size_duration = 100;
|
||||||
|
log_chan_group = 2;
|
||||||
|
};
|
||||||
|
},
|
||||||
|
{
|
||||||
|
qci=7;
|
||||||
|
pdcp_config = {
|
||||||
|
discard_timer = 100;
|
||||||
|
pdcp_sn_size = 12;
|
||||||
|
}
|
||||||
|
rlc_config = {
|
||||||
|
ul_um = {
|
||||||
|
sn_field_length = 10;
|
||||||
|
};
|
||||||
|
dl_um = {
|
||||||
|
sn_field_length = 10;
|
||||||
|
t_reordering = 45;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
logical_channel_config = {
|
||||||
|
priority = 13;
|
||||||
|
prioritized_bit_rate = -1;
|
||||||
|
bucket_size_duration = 100;
|
||||||
|
log_chan_group = 2;
|
||||||
|
};
|
||||||
|
},
|
||||||
|
{
|
||||||
|
qci=9;
|
||||||
|
pdcp_config = {
|
||||||
|
discard_timer = -1;
|
||||||
|
status_report_required = true;
|
||||||
|
}
|
||||||
|
rlc_config = {
|
||||||
|
ul_am = {
|
||||||
|
t_poll_retx = 120;
|
||||||
|
poll_pdu = 64;
|
||||||
|
poll_byte = 750;
|
||||||
|
max_retx_thresh = 16;
|
||||||
|
};
|
||||||
|
dl_am = {
|
||||||
|
t_reordering = 50;
|
||||||
|
t_status_prohibit = 50;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
logical_channel_config = {
|
||||||
|
priority = 11;
|
||||||
|
prioritized_bit_rate = -1;
|
||||||
|
bucket_size_duration = 100;
|
||||||
|
log_chan_group = 3;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
);
|
||||||
284
srslte/enb.conf
Normal file
284
srslte/enb.conf
Normal file
@@ -0,0 +1,284 @@
|
|||||||
|
#####################################################################
|
||||||
|
# srsENB configuration file
|
||||||
|
#####################################################################
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# eNB configuration
|
||||||
|
#
|
||||||
|
# enb_id: 20-bit eNB identifier.
|
||||||
|
# cell_id: 8-bit cell identifier.
|
||||||
|
# tac: 16-bit Tracking Area Code.
|
||||||
|
# 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
|
||||||
|
# s1c_bind_addr: Local IP address to bind for S1AP connection
|
||||||
|
# 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
|
||||||
|
cell_id = 0x01
|
||||||
|
phy_cell_id = 1
|
||||||
|
tac = 0x0001
|
||||||
|
mcc = MCC
|
||||||
|
mnc = MNC
|
||||||
|
mme_addr = MME_IP
|
||||||
|
gtp_bind_addr = ENB_IP
|
||||||
|
s1c_bind_addr = ENB_IP
|
||||||
|
n_prb = 25
|
||||||
|
#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
|
||||||
|
# drb_config: DRB configuration file
|
||||||
|
#####################################################################
|
||||||
|
[enb_files]
|
||||||
|
sib_config = sib.conf
|
||||||
|
rr_config = rr.conf
|
||||||
|
drb_config = drb.conf
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# RF configuration
|
||||||
|
#
|
||||||
|
# dl_earfcn: EARFCN code for DL
|
||||||
|
# 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 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: ""
|
||||||
|
# #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.
|
||||||
|
# burst_preamble_us: Preamble length to transmit before start of burst.
|
||||||
|
# Default "auto". B210 USRP: 400 us, bladeRF: 0 us.
|
||||||
|
#####################################################################
|
||||||
|
[rf]
|
||||||
|
#dl_earfcn = 3150
|
||||||
|
tx_gain = 80
|
||||||
|
rx_gain = 40
|
||||||
|
dl_earfcn = 6200
|
||||||
|
#tx_gain = 56
|
||||||
|
#rx_gain = 38
|
||||||
|
#device_name = soapy
|
||||||
|
#device_args = rxant=LNAW,txant=BAND2
|
||||||
|
|
||||||
|
#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
|
||||||
|
|
||||||
|
# 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
|
||||||
|
#burst_preamble_us = auto
|
||||||
|
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# MAC-layer packet capture configuration
|
||||||
|
#
|
||||||
|
# Packets are captured to file in the compact format decoded by
|
||||||
|
# the Wireshark mac-lte-framed dissector and with DLT 147.
|
||||||
|
# To use the dissector, edit the preferences for DLT_USER to
|
||||||
|
# add an entry with DLT=147, Payload Protocol=mac-lte-framed.
|
||||||
|
# For more information see: https://wiki.wireshark.org/MAC-LTE
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# enable: Enable MAC layer packet captures (true/false)
|
||||||
|
# filename: File path to use for packet captures
|
||||||
|
#####################################################################
|
||||||
|
[pcap]
|
||||||
|
enable = false
|
||||||
|
filename = /tmp/enb.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, phy_lib, mac, rlc, pdcp, rrc, gtpu, s1ap, 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 = info
|
||||||
|
all_hex_limit = 32
|
||||||
|
filename = /tmp/enb.log
|
||||||
|
file_max_size = -1
|
||||||
|
|
||||||
|
[gui]
|
||||||
|
enable = false
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# Scheduler configuration options
|
||||||
|
#
|
||||||
|
# max_aggr_level: Optional maximum aggregation level index (l=log2(L) can be 0, 1, 2 or 3)
|
||||||
|
# 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
|
||||||
|
# #nof_ctrl_symbols: Number of control symbols
|
||||||
|
#
|
||||||
|
#####################################################################
|
||||||
|
[scheduler]
|
||||||
|
#max_aggr_level = -1
|
||||||
|
#pdsch_mcs = -1
|
||||||
|
#pdsch_max_mcs = -1
|
||||||
|
#pusch_mcs = -1
|
||||||
|
pusch_max_mcs = 16
|
||||||
|
nof_ctrl_symbols = 3
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# eMBMS configuration options
|
||||||
|
#
|
||||||
|
# enable: Enable MBMS transmission in the eNB
|
||||||
|
# m1u_multiaddr: Multicast addres the M1-U socket will register to
|
||||||
|
# m1u_if_addr: Address of the inteferface the M1-U interface will listen for multicast packets.
|
||||||
|
#
|
||||||
|
#####################################################################
|
||||||
|
[embms]
|
||||||
|
#enable = false
|
||||||
|
#m1u_multiaddr = 239.255.0.1
|
||||||
|
#m1u_if_addr = 127.0.1.201
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# Channel emulator options:
|
||||||
|
# enable: Enable/Disable internal Downlink/Uplink channel emulator
|
||||||
|
#
|
||||||
|
# -- 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.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.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
|
||||||
|
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# Expert configuration options
|
||||||
|
#
|
||||||
|
# pusch_max_its: Maximum number of turbo decoder iterations (Default 4)
|
||||||
|
# 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 2)
|
||||||
|
# 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.
|
||||||
|
# pregenerate_signals: Pregenerate uplink signals after attach. Improves CPU performance.
|
||||||
|
# tx_amplitude: Transmit amplitude factor (set 0-1 to reduce PAPR)
|
||||||
|
# link_failure_nof_err: Number of PUSCH failures after which a radio-link failure is triggered.
|
||||||
|
# a link failure is when SNR<0 and CRC=KO
|
||||||
|
# max_prach_offset_us: Maximum allowed RACH offset (in us)
|
||||||
|
# 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).
|
||||||
|
#
|
||||||
|
#####################################################################
|
||||||
|
[expert]
|
||||||
|
#pusch_max_its = 8 # These are half iterations
|
||||||
|
#pusch_8bit_decoder = false
|
||||||
|
#nof_phy_threads = 3
|
||||||
|
#metrics_period_secs = 1
|
||||||
|
#metrics_csv_enable = false
|
||||||
|
#metrics_csv_filename = /tmp/enb_metrics.csv
|
||||||
|
#pregenerate_signals = false
|
||||||
|
#tx_amplitude = 0.6
|
||||||
|
#link_failure_nof_err = 50
|
||||||
|
#rrc_inactivity_timer = 60000
|
||||||
|
#max_prach_offset_us = 30
|
||||||
|
#eea_pref_list = EEA0, EEA2, EEA1
|
||||||
|
#eia_pref_list = EIA2, EIA1, EIA0
|
||||||
42
srslte/enb_init.sh
Executable file
42
srslte/enb_init.sh
Executable file
@@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# BSD 2-Clause License
|
||||||
|
|
||||||
|
# Copyright (c) 2020, Supreeth Herle
|
||||||
|
# All rights reserved.
|
||||||
|
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
# 1. Redistributions of source code must retain the above copyright notice, this
|
||||||
|
# list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
# this list of conditions and the following disclaimer in the documentation
|
||||||
|
# and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||||
|
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||||
|
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
export IP_ADDR=$(awk 'END{print $1}' /etc/hosts)
|
||||||
|
|
||||||
|
cp /mnt/srslte/enb.conf /etc/srslte
|
||||||
|
cp /mnt/srslte/drb.conf /etc/srslte
|
||||||
|
cp /mnt/srslte/epc.conf /etc/srslte
|
||||||
|
cp /mnt/srslte/mbms.conf /etc/srslte
|
||||||
|
cp /mnt/srslte/rr.conf /etc/srslte
|
||||||
|
cp /mnt/srslte/sib.conf /etc/srslte
|
||||||
|
cp /mnt/srslte/ue.conf /etc/srslte
|
||||||
|
cp /mnt/srslte/user_db.csv /etc/srslte
|
||||||
|
sed -i 's|MNC|'$MNC'|g' /etc/srslte/enb.conf
|
||||||
|
sed -i 's|MCC|'$MCC'|g' /etc/srslte/enb.conf
|
||||||
|
sed -i 's|MME_IP|'$MME_IP'|g' /etc/srslte/enb.conf
|
||||||
|
sed -i 's|ENB_IP|'$ENB_IP'|g' /etc/srslte/enb.conf
|
||||||
106
srslte/epc.conf
Normal file
106
srslte/epc.conf
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
#####################################################################
|
||||||
|
# srsEPC configuration file
|
||||||
|
#####################################################################
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# MME configuration
|
||||||
|
#
|
||||||
|
# mme_code: 8-bit MME code identifies the MME within a group.
|
||||||
|
# mme_group: 16-bit MME group identifier.
|
||||||
|
# tac: 16-bit Tracking Area Code.
|
||||||
|
# mcc: Mobile Country Code
|
||||||
|
# mnc: Mobile Network Code
|
||||||
|
# apn: Set Access Point Name (APN)
|
||||||
|
# mme_bind_addr: IP bind addr to listen for eNB S1-MME connnections
|
||||||
|
# dns_addr: DNS server address for the UEs
|
||||||
|
# encryption_algo: Preferred encryption algorithm for NAS layer
|
||||||
|
# (default: EEA0, support: EEA1, EEA2)
|
||||||
|
# integrity_algo: Preferred integrity protection algorithm for NAS
|
||||||
|
# (default: EIA1, support: EIA1, EIA2 (EIA0 not support)
|
||||||
|
# paging_timer: Value of paging timer in seconds (T3413)
|
||||||
|
#
|
||||||
|
#####################################################################
|
||||||
|
[mme]
|
||||||
|
mme_code = 0x1a
|
||||||
|
mme_group = 0x0001
|
||||||
|
tac = 0x0007
|
||||||
|
mcc = 001
|
||||||
|
mnc = 01
|
||||||
|
mme_bind_addr = 127.0.1.100
|
||||||
|
apn = srsapn
|
||||||
|
dns_addr = 8.8.8.8
|
||||||
|
encryption_algo = EEA0
|
||||||
|
integrity_algo = EIA1
|
||||||
|
paging_timer = 2
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# HSS configuration
|
||||||
|
#
|
||||||
|
# db_file: Location of .csv file that stores UEs information.
|
||||||
|
#
|
||||||
|
#####################################################################
|
||||||
|
[hss]
|
||||||
|
db_file = user_db.csv
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# SP-GW configuration
|
||||||
|
#
|
||||||
|
# gtpu_bind_addr: GTP-U bind address.
|
||||||
|
# sgi_if_addr: SGi TUN interface IP address.
|
||||||
|
# sgi_if_name: SGi TUN interface name.
|
||||||
|
# max_paging_queue: Maximum packets in paging queue (per UE).
|
||||||
|
#
|
||||||
|
#####################################################################
|
||||||
|
|
||||||
|
[spgw]
|
||||||
|
gtpu_bind_addr = 127.0.1.100
|
||||||
|
sgi_if_addr = 172.16.0.1
|
||||||
|
sgi_if_name = srs_spgw_sgi
|
||||||
|
max_paging_queue = 100
|
||||||
|
|
||||||
|
####################################################################
|
||||||
|
# PCAP configuration
|
||||||
|
#
|
||||||
|
# Packets are captured to file in the compact format decoded by
|
||||||
|
# the Wireshark s1ap dissector and with DLT 150.
|
||||||
|
# To use the dissector, edit the preferences for DLT_USER to
|
||||||
|
# add an entry with DLT=150, Payload Protocol=s1ap.
|
||||||
|
#
|
||||||
|
# enable: Enable or disable the PCAP.
|
||||||
|
# filename: File name where to save the PCAP.
|
||||||
|
#
|
||||||
|
####################################################################
|
||||||
|
[pcap]
|
||||||
|
enable = false
|
||||||
|
filename = /tmp/epc.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. s1ap_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. s1ap_hex_limit = 32
|
||||||
|
#
|
||||||
|
# Logging layers: nas, s1ap, mme_gtpc, spgw_gtpc, gtpu, spgw, hss, 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
|
||||||
|
#####################################################################
|
||||||
|
[log]
|
||||||
|
all_level = info
|
||||||
|
all_hex_limit = 32
|
||||||
|
filename = /tmp/epc.log
|
||||||
|
|
||||||
|
#nas_level = debug
|
||||||
|
#s1ap_level = debug
|
||||||
|
#mme_gtpc_level = debug
|
||||||
|
#spgw_gtpc_level = debug
|
||||||
|
#gtpu_level = debug
|
||||||
|
#spgw_level = debug
|
||||||
|
#hss_level = debug
|
||||||
47
srslte/mbms.conf
Normal file
47
srslte/mbms.conf
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
#####################################################################
|
||||||
|
# srsMBMS configuration file
|
||||||
|
#####################################################################
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# MBMS-GW configuration
|
||||||
|
#
|
||||||
|
# name: MBMS-GW name
|
||||||
|
# sgi_mb_if_name: SGi-mb TUN interface name
|
||||||
|
# sgi_mb_if_addr: SGi-mb interface IP address
|
||||||
|
# sgi_mb_if_mask: SGi-mb interface IP mask
|
||||||
|
# m1u_multi_addr: Multicast group for eNBs (TODO this should be setup with M2/M3)
|
||||||
|
# m1u_multi_if: IP of local interface for multicast traffic
|
||||||
|
# m1u_multi_ttl: TTL for M1-U multicast traffic
|
||||||
|
#
|
||||||
|
#####################################################################
|
||||||
|
[mbms_gw]
|
||||||
|
name = srsmbmsgw01
|
||||||
|
sgi_mb_if_name = sgi_mb
|
||||||
|
sgi_mb_if_addr = 172.16.0.254
|
||||||
|
sgi_mb_if_mask = 255.255.255.255
|
||||||
|
m1u_multi_addr = 239.255.0.1
|
||||||
|
m1u_multi_if = 127.0.1.200
|
||||||
|
m1u_multi_ttl = 1
|
||||||
|
|
||||||
|
####################################################################
|
||||||
|
# Log configuration
|
||||||
|
#
|
||||||
|
# Log levels can be set for individual layers. "all_level" sets log
|
||||||
|
# level for all layers unless otherwise configured.
|
||||||
|
# Format: e.g. s1ap_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. s1ap_hex_limit = 32
|
||||||
|
#
|
||||||
|
# Logging layers: mbms_gw, 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
|
||||||
|
#####################################################################
|
||||||
|
[log]
|
||||||
|
all_level = debug
|
||||||
|
all_hex_limit = 32
|
||||||
|
filename = /tmp/mbms.log
|
||||||
90
srslte/rr.conf
Normal file
90
srslte/rr.conf
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
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]; // vector of subframe indices allowed for SR transmissions
|
||||||
|
nof_prb = 2; // 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];
|
||||||
|
nof_prb = 2;
|
||||||
|
m_ri = 8; // RI period in CQI period
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
cell_list =
|
||||||
|
(
|
||||||
|
{
|
||||||
|
// rf_port = 0;
|
||||||
|
// cell_id = 0x01;
|
||||||
|
// tac = 0x0001;
|
||||||
|
// pci = 1;
|
||||||
|
// root_seq_idx = 204;
|
||||||
|
// dl_earfcn = 3400;
|
||||||
|
// ul_earfcn = 474;
|
||||||
|
ho_active = false;
|
||||||
|
|
||||||
|
// CA cells
|
||||||
|
scell_list = (
|
||||||
|
{cell_id = 0x02; cross_carrier_scheduling = false; scheduling_cell_id = 0x02; ul_allowed = true}
|
||||||
|
)
|
||||||
|
|
||||||
|
// Cells available for handover
|
||||||
|
meas_cell_list =
|
||||||
|
(
|
||||||
|
{
|
||||||
|
eci = 0x19C02;
|
||||||
|
dl_earfcn = 2850;
|
||||||
|
pci = 2;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
// ReportCfg (only A3 supported)
|
||||||
|
meas_report_desc = {
|
||||||
|
a3_report_type = "RSRP";
|
||||||
|
a3_offset = 6;
|
||||||
|
a3_hysteresis = 0;
|
||||||
|
a3_time_to_trigger = 480;
|
||||||
|
rsrq_config = 4;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// Add here more cells
|
||||||
|
);
|
||||||
118
srslte/sib.conf
Normal file
118
srslte/sib.conf
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
sib1 =
|
||||||
|
{
|
||||||
|
intra_freq_reselection = "Allowed";
|
||||||
|
q_rx_lev_min = -65;
|
||||||
|
//p_max = 3;
|
||||||
|
cell_barred = "NotBarred"
|
||||||
|
si_window_length = 20;
|
||||||
|
sched_info =
|
||||||
|
(
|
||||||
|
{
|
||||||
|
si_periodicity = 16;
|
||||||
|
si_mapping_info = []; // comma-separated array of SIB-indexes (from 3 to 13).
|
||||||
|
// Leave empty or commented to just scheduler sib2
|
||||||
|
}
|
||||||
|
);
|
||||||
|
system_info_value_tag = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
sib2 =
|
||||||
|
{
|
||||||
|
rr_config_common_sib =
|
||||||
|
{
|
||||||
|
rach_cnfg =
|
||||||
|
{
|
||||||
|
num_ra_preambles = 52;
|
||||||
|
preamble_init_rx_target_pwr = -104;
|
||||||
|
pwr_ramping_step = 6; // in dB
|
||||||
|
preamble_trans_max = 10;
|
||||||
|
ra_resp_win_size = 10; // in ms
|
||||||
|
mac_con_res_timer = 64; // in ms
|
||||||
|
max_harq_msg3_tx = 4;
|
||||||
|
};
|
||||||
|
bcch_cnfg =
|
||||||
|
{
|
||||||
|
modification_period_coeff = 16; // in ms
|
||||||
|
};
|
||||||
|
pcch_cnfg =
|
||||||
|
{
|
||||||
|
default_paging_cycle = 32; // in rf
|
||||||
|
nB = "1";
|
||||||
|
};
|
||||||
|
prach_cnfg =
|
||||||
|
{
|
||||||
|
root_sequence_index = 128;
|
||||||
|
prach_cnfg_info =
|
||||||
|
{
|
||||||
|
high_speed_flag = false;
|
||||||
|
prach_config_index = 3;
|
||||||
|
prach_freq_offset = 2;
|
||||||
|
zero_correlation_zone_config = 5;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
pdsch_cnfg =
|
||||||
|
{
|
||||||
|
/* Warning: Currently disabled and forced to p_b=1 for TM2/3/4 and p_b=0 for TM1
|
||||||
|
*/
|
||||||
|
p_b = 1;
|
||||||
|
rs_power = 0;
|
||||||
|
};
|
||||||
|
pusch_cnfg =
|
||||||
|
{
|
||||||
|
n_sb = 1;
|
||||||
|
hopping_mode = "inter-subframe";
|
||||||
|
pusch_hopping_offset = 2;
|
||||||
|
enable_64_qam = false; // 64QAM PUSCH is not currently enabled
|
||||||
|
ul_rs =
|
||||||
|
{
|
||||||
|
cyclic_shift = 0;
|
||||||
|
group_assignment_pusch = 0;
|
||||||
|
group_hopping_enabled = false;
|
||||||
|
sequence_hopping_enabled = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
pucch_cnfg =
|
||||||
|
{
|
||||||
|
delta_pucch_shift = 2;
|
||||||
|
n_rb_cqi = 2;
|
||||||
|
n_cs_an = 0;
|
||||||
|
n1_pucch_an = 12;
|
||||||
|
};
|
||||||
|
ul_pwr_ctrl =
|
||||||
|
{
|
||||||
|
p0_nominal_pusch = -85;
|
||||||
|
alpha = 0.7;
|
||||||
|
p0_nominal_pucch = -107;
|
||||||
|
delta_flist_pucch =
|
||||||
|
{
|
||||||
|
format_1 = 0;
|
||||||
|
format_1b = 3;
|
||||||
|
format_2 = 1;
|
||||||
|
format_2a = 2;
|
||||||
|
format_2b = 2;
|
||||||
|
};
|
||||||
|
delta_preamble_msg3 = 6;
|
||||||
|
};
|
||||||
|
ul_cp_length = "len1";
|
||||||
|
};
|
||||||
|
|
||||||
|
ue_timers_and_constants =
|
||||||
|
{
|
||||||
|
t300 = 2000; // in ms
|
||||||
|
t301 = 100; // in ms
|
||||||
|
t310 = 1000; // in ms
|
||||||
|
n310 = 1;
|
||||||
|
t311 = 1000; // in ms
|
||||||
|
n311 = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
freqInfo =
|
||||||
|
{
|
||||||
|
ul_carrier_freq_present = true;
|
||||||
|
ul_bw_present = true;
|
||||||
|
additional_spectrum_emission = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
time_alignment_timer = "INFINITY"; // use "sf500", "sf750", etc.
|
||||||
|
};
|
||||||
|
|
||||||
345
srslte/ue.conf
Normal file
345
srslte/ue.conf
Normal file
@@ -0,0 +1,345 @@
|
|||||||
|
#####################################################################
|
||||||
|
# srsUE configuration file
|
||||||
|
#####################################################################
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# RF configuration
|
||||||
|
#
|
||||||
|
# dl_earfcn: Downlink EARFCN code.
|
||||||
|
# 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
|
||||||
|
#
|
||||||
|
# Optional parameters:
|
||||||
|
# dl_freq: Override DL frequency corresponding to dl_earfcn
|
||||||
|
# ul_freq: Override UL frequency corresponding to dl_earfcn
|
||||||
|
# nof_radios: Number of available RF devices
|
||||||
|
# nof_rf_channels: Number of RF channels per radio
|
||||||
|
# nof_rx_ant: Number of RX antennas per channel
|
||||||
|
# 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.
|
||||||
|
# burst_preamble_us: Preamble length to transmit before start of burst.
|
||||||
|
# Default "auto". B210 USRP: 400 us, bladeRF: 0 us.
|
||||||
|
# continuous_tx: Transmit samples continuously to the radio or on bursts (auto/yes/no).
|
||||||
|
# Default is auto (yes for UHD, no for rest)
|
||||||
|
#####################################################################
|
||||||
|
[rf]
|
||||||
|
dl_earfcn = 3400
|
||||||
|
freq_offset = 0
|
||||||
|
tx_gain = 80
|
||||||
|
#rx_gain = 40
|
||||||
|
|
||||||
|
#nof_radios = 1
|
||||||
|
#nof_rx_ant = 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
|
||||||
|
#burst_preamble_us = auto
|
||||||
|
#continuous_tx = auto
|
||||||
|
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# Packet capture configuration
|
||||||
|
#
|
||||||
|
# Packet capture is supported at both MAC and NAS layers.
|
||||||
|
# MAC-layer packets are captured to file in the compact format
|
||||||
|
# decoded by the Wireshark mac-lte-framed dissector.
|
||||||
|
# To use this dissector, edit the preferences for DLT_USER to
|
||||||
|
# add an entry with DLT=147, Payload Protocol=mac-lte-framed.
|
||||||
|
# For more information see: https://wiki.wireshark.org/MAC-LTE
|
||||||
|
# NAS-layer packets are dissected with DLT=148, and
|
||||||
|
# Payload Protocol = nas-eps.
|
||||||
|
#
|
||||||
|
# enable: Enable MAC layer packet captures (true/false)
|
||||||
|
# filename: File path to use for MAC packet captures
|
||||||
|
# nas_enable: Enable NAS layer packet captures (true/false)
|
||||||
|
# nas_filename: File path to use for NAS packet captures
|
||||||
|
#####################################################################
|
||||||
|
[pcap]
|
||||||
|
enable = false
|
||||||
|
filename = /tmp/ue.pcap
|
||||||
|
nas_enable = false
|
||||||
|
nas_filename = /tmp/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, 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 = /tmp/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 = xor
|
||||||
|
#opc = 63BFA50EE6523365FF14C1F45F88737D
|
||||||
|
k = 00112233445566778899aabbccddeeff
|
||||||
|
imsi = 001010123456789
|
||||||
|
imei = 353490069873319
|
||||||
|
#reader =
|
||||||
|
#pin = 1234
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# RRC configuration
|
||||||
|
#
|
||||||
|
# ue_category: Sets UE category (range 1-5). Default: 4
|
||||||
|
# release: UE Release (8 to 10)
|
||||||
|
# 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
|
||||||
|
#####################################################################
|
||||||
|
[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
|
||||||
|
# eea: List of ciphering algorithms included in UE capabilities
|
||||||
|
# Supported: 0 - NULL, 1 - Snow3G, 2 - AES
|
||||||
|
#####################################################################
|
||||||
|
[nas]
|
||||||
|
#apn = internetinternet
|
||||||
|
#apn_protocol = ipv4
|
||||||
|
#user = srsuser
|
||||||
|
#pass = srspass
|
||||||
|
#force_imsi_attach = false
|
||||||
|
#eia = 1,2
|
||||||
|
#eea = 0,1,2
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# GW configuration
|
||||||
|
#
|
||||||
|
# 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]
|
||||||
|
#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
|
||||||
|
#
|
||||||
|
# -- 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.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.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)
|
||||||
|
# nof_phy_threads: Selects the number of PHY threads (maximum 4, minimum 1, default 2)
|
||||||
|
# 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.
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# pregenerate_signals: Pregenerate uplink signals after attach. Improves CPU performance.
|
||||||
|
#
|
||||||
|
# interpolate_subframe_enabled: Interpolates in the time domain the channel estimates within 1 subframe. Default is to average.
|
||||||
|
#
|
||||||
|
# sic_pss_enabled: Applies Successive Interference Cancellation to PSS signals when searching for neighbour cells.
|
||||||
|
# Must be disabled if cells have identical channel and timing, for instance if generated from
|
||||||
|
# the same source.
|
||||||
|
#
|
||||||
|
# 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)
|
||||||
|
#
|
||||||
|
#####################################################################
|
||||||
|
[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
|
||||||
|
#nof_phy_threads = 3
|
||||||
|
#equalizer_mode = mmse
|
||||||
|
#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
|
||||||
|
#sic_pss_enabled = true
|
||||||
|
#pregenerate_signals = false
|
||||||
|
#pdsch_csi_enabled = true
|
||||||
|
#pdsch_8bit_decoder = false
|
||||||
|
#force_ul_amplitude = 0
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
#####################################################################
|
||||||
|
[general]
|
||||||
|
#metrics_csv_enable = false
|
||||||
|
#metrics_period_secs = 1
|
||||||
|
#metrics_csv_filename = /tmp/ue_metrics.csv
|
||||||
21
srslte/user_db.csv
Normal file
21
srslte/user_db.csv
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
#
|
||||||
|
# .csv to store UE's information in HSS
|
||||||
|
# Kept in the following format: "Name,Auth,IMSI,Key,OP_Type,OP,AMF,SQN,QCI,IP_alloc"
|
||||||
|
#
|
||||||
|
# Name: Human readable name to help distinguish UE's. Ignored by the HSS
|
||||||
|
# IMSI: UE's IMSI value
|
||||||
|
# Auth: Authentication algorithm used by the UE. Valid algorithms are XOR
|
||||||
|
# (xor) and MILENAGE (mil)
|
||||||
|
# Key: UE's key, where other keys are derived from. Stored in hexadecimal
|
||||||
|
# OP_Type: Operator's code type, either OP or OPc
|
||||||
|
# OP/OPc: Operator Code/Cyphered Operator Code, stored in hexadecimal
|
||||||
|
# AMF: Authentication management field, stored in hexadecimal
|
||||||
|
# SQN: UE's Sequence number for freshness of the authentication
|
||||||
|
# QCI: QoS Class Identifier for the UE's default bearer.
|
||||||
|
# IP_alloc: IP allocation stratagy for the SPGW.
|
||||||
|
# With 'dynamic' the SPGW will automatically allocate IPs
|
||||||
|
# With a valid IPv4 (e.g. '172.16.0.2') the UE will have a statically assigned IP.
|
||||||
|
#
|
||||||
|
# Note: Lines starting by '#' are ignored and will be overwritten
|
||||||
|
ue1,xor,001010123456789,00112233445566778899aabbccddeeff,opc,63bfa50ee6523365ff14c1f45f88737d,9001,000000001234,7,dynamic
|
||||||
|
ue2,mil,001010123456780,00112233445566778899aabbccddeeff,opc,63bfa50ee6523365ff14c1f45f88737d,8000,000000001234,7,dynamic
|
||||||
|
Can't render this file because it contains an unexpected character in line 3 and column 33.
|
Reference in New Issue
Block a user