srsUE — Емулятор UE

Використання srsUE для тестування без реального телефону.

Призначення

srsUE — програмний емулятор LTE абонентського пристрою:

┌───────────────────────────────────────────────┐
│                    srsUE                       │
│                                               │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐       │
│  │   NAS   │  │   RRC   │  │   PHY   │       │
│  │(Attach, │  │(Radio   │  │(Signal  │──→ SDR│
│  │ Auth)   │  │ Control)│  │Processing)     │
│  └─────────┘  └─────────┘  └─────────┘       │
│                                               │
│       ↑                                       │
│   TUN interface (tun_srsue)                  │
│   IP трафік через LTE мережу                 │
└───────────────────────────────────────────────┘

Сценарії використання

Сценарій Опис
Тестування eNB Перевірка без реального телефону
End-to-end тест Повна перевірка мережі
Автоматизація CI/CD тести
Розробка Debug без hardware
Демонстрація Показ роботи мережі

Конфігурація ue.conf

Базовий приклад

#####################################################################
# srsUE configuration file
#####################################################################

[rf]
device_name = soapy
device_args = driver=lime,rxant=LNAW,txant=BAND2

# Частота (EARFCN або Hz)
dl_earfcn = 3350          # Має співпадати з eNB!
freq_offset = 0

# Gain
tx_gain = 60
rx_gain = 40

[rat.eutra]
dl_earfcn = 3350

[pcap]
enable = false
filename = /tmp/ue.pcap
nas_enable = false
nas_filename = /tmp/ue_nas.pcap

[log]
all_level = info
phy_level = warning
mac_level = info
rlc_level = info
pdcp_level = info
rrc_level = info
nas_level = info
gw_level = info
usim_level = info
filename = /tmp/ue.log

[usim]
mode = soft              # soft = програмна SIM
algo = milenage          # xor або milenage
imsi = 001010000000001
k = 465B5CE8B199B49FAA5F0A2EE238A6BC
opc = E8ED289DEBA952E4283B54E88E6183CA
imei = 353490069873319

[gw]
# TUN інтерфейс
netns =
ip_devname = tun_srsue   # Ім'я інтерфейсу
ip_netmask = 255.255.255.0

[gui]
enable = false

Параметри USIM

[usim]
# Режим
mode = soft              # soft (програмна) або pcsc (реальна SIM)

# Алгоритм автентифікації
algo = milenage          # milenage або xor

# Ідентифікатори (мають співпадати з EPC!)
imsi = 001010000000001
k = 465B5CE8B199B49FAA5F0A2EE238A6BC
opc = E8ED289DEBA952E4283B54E88E6183CA

# IMEI (унікальний для UE)
imei = 353490069873319

RF параметри

[rf]
# Для LimeSDR Mini
device_name = soapy
device_args = driver=lime,rxant=LNAW,txant=BAND2

# Частота та gain
dl_earfcn = 3350
tx_gain = 60
rx_gain = 40

# Корекція частоти (якщо потрібно)
freq_offset = 0

ZeroMQ режим (без SDR)

Навіщо

Тестування eNB ↔ UE без реального радіо:

┌─────────┐     ZeroMQ      ┌─────────┐
│  srsENB │ ←────────────→ │  srsUE  │
│         │   localhost     │         │
└─────────┘                 └─────────┘

Конфігурація eNB

# enb.conf
[rf]
device_name = zmq
device_args = fail_on_disconnect=true,tx_port=tcp://*:2000,rx_port=tcp://localhost:2001,id=enb,base_srate=23.04e6

Конфігурація UE

# ue.conf
[rf]
device_name = zmq
device_args = tx_port=tcp://*:2001,rx_port=tcp://localhost:2000,id=ue,base_srate=23.04e6

Запуск

# Термінал 1: EPC
sudo srsepc

# Термінал 2: eNB
sudo srsenb --rf.device_name=zmq --rf.device_args="fail_on_disconnect=true,tx_port=tcp://*:2000,rx_port=tcp://localhost:2001,id=enb,base_srate=23.04e6"

# Термінал 3: UE
sudo srsue --rf.device_name=zmq --rf.device_args="tx_port=tcp://*:2001,rx_port=tcp://localhost:2000,id=ue,base_srate=23.04e6"

Запуск srsUE

Базовий

sudo srsue ~/.config/srsran/ue.conf

Очікуваний вивід

Reading configuration file /home/user/.config/srsran/ue.conf...

Built in Release mode using commit 2de0bb6c1 on branch master.

Opening 1 channels in RF device=soapy with args=driver=lime
Waiting PHY to initialize ... done!

Attaching UE...
Random Access Transmission: seq=0, ra-rnti=0x2
Random Access Complete.     c-rnti=0x46, ta=0
RRC Connected
Network attach successful. IP: 172.16.0.2

З GUI

sudo srsue --gui.enable

Тестові сценарії

Ping тест

# На машині з srsUE
ping -I tun_srsue 8.8.8.8

# Або через network namespace
sudo ip netns exec ue_ns ping 8.8.8.8

Throughput тест

# На сервері (через EPC)
iperf3 -s

# На UE
iperf3 -c <server_ip> -B 172.16.0.2

# Очікувано для 5 MHz:
# DL: ~15-20 Mbps
# UL: ~5-10 Mbps

HTTP тест

# Через TUN інтерфейс
curl --interface tun_srsue http://example.com

# Або через namespace
sudo ip netns exec ue_ns curl http://example.com

Кілька UE

Різні SDR

# UE1 на LimeSDR #1
sudo srsue --rf.device_args="driver=lime,serial=1234"

# UE2 на LimeSDR #2
sudo srsue --rf.device_args="driver=lime,serial=5678" --usim.imsi=001010000000002

ZeroMQ (кілька UE на одній машині)

# UE1
sudo srsue --rf.device_args="tx_port=tcp://*:2101,rx_port=tcp://localhost:2100" --usim.imsi=001010000000001 --gw.ip_devname=tun_srsue1

# UE2
sudo srsue --rf.device_args="tx_port=tcp://*:2201,rx_port=tcp://localhost:2200" --usim.imsi=001010000000002 --gw.ip_devname=tun_srsue2

Статус та метрики

Інтерактивні команди

Під час роботи srsUE:

Команди (ввести в консоль):
t - показати/сховати метрики
q - вихід

Метрики

---------Signal-----------|-----------------DL-----------------|-----------UL-----------
cc  pci  rsrp   pl   cfo |  mcs   snr   iter   brate   bler  |  mcs   buff   brate   bler
 0    1   -65   65  1.2k |   15  24.1    1.0    5.2M      0% |   15   0.0k    1.2M      0%
Метрика Опис Норма
rsrp Reference Signal Received Power > -80 dBm
snr Signal-to-Noise Ratio > 15 dB
mcs Modulation Coding Scheme Вище = краще
brate Bitrate Залежить від BW
bler Block Error Rate < 10%

Troubleshooting

Не знаходить мережу

Причини:
1. EARFCN не співпадає з eNB
2. eNB не запущений
3. SDR неправильно налаштований
4. Антена не підключена

Перевірити:
- dl_earfcn в ue.conf = dl_earfcn в enb.conf
- Логи eNB (чи передає?)
- Spectrum analyzer

Authentication reject

Причини:
1. IMSI/Ki/OPc не співпадають
2. IMSI не додано в EPC
3. Неправильний algo (mil vs xor)

Перевірити:
- user_db.csv або Open5GS subscribers
- Логи HSS/MME

Низький throughput

Причини:
1. Поганий сигнал (RSRP < -90)
2. Високий BLER
3. Низький MCS
4. Перевантаження CPU

Рішення:
- Покращити антену
- Зменшити відстань
- Налаштувати gain

TUN інтерфейс не створюється

# Перевірити
ip link show tun_srsue

# Створити вручну
sudo ip tuntap add mode tun tun_srsue
sudo ip addr add 172.16.0.100/24 dev tun_srsue
sudo ip link set tun_srsue up

Автоматизація

Скрипт тестування

#!/bin/bash
# test_ue.sh

# Запустити UE
sudo srsue ~/.config/srsran/ue.conf &
UE_PID=$!

# Чекати на підключення
sleep 10

# Тест ping
ping -c 10 -I tun_srsue 8.8.8.8

# Тест throughput
iperf3 -c 192.168.1.1 -B 172.16.0.2 -t 30

# Завершити
kill $UE_PID

CI/CD інтеграція

# .github/workflows/test.yml
- name: Test LTE connection
  run: |
    sudo srsue --rf.device_name=zmq &
    sleep 15
    ping -c 5 -I tun_srsue 172.16.0.1

Шлях: ran/srs-ue.md

UMTC Wiki © 2026 | Ukrainian Military Tactical Communications