srsENB — Конфігурація

Детальне налаштування srsENB (eNodeB).

Огляд enb.conf

Структура файлу

[enb]           # Загальні параметри eNB
[enb_files]     # Шляхи до додаткових конфігів
[rf]            # RF/SDR параметри
[pcap]          # Захоплення пакетів
[log]           # Логування
[gui]           # GUI (опціонально)
[scheduler]     # Планувальник
[expert]        # Експертні налаштування

Секція [enb]

Базові параметри

[enb]
# ID базової станції
enb_id = 0x19B

# MCC + MNC (має співпадати з SIM та EPC!)
mcc = 001
mnc = 01

# Ім'я для ідентифікації
mme_addr = 127.0.1.100    # IP адреса MME (Open5GS або srsEPC)
gtp_bind_addr = 127.0.1.1 # IP для GTP трафіку
s1c_bind_addr = 127.0.1.1 # IP для S1-MME
s1c_bind_port = 0         # Авто-вибір порту

# Кількість PRB (визначає bandwidth)
n_prb = 25                # 25 PRB = 5 MHz

Bandwidth та PRB

PRB Bandwidth Застосування
6 1.4 MHz IoT, тести
15 3 MHz Мала ємність
25 5 MHz Стабільно для LimeSDR Mini
50 10 MHz Середня ємність
75 15 MHz Висока ємність
100 20 MHz Максимальна

Секція [rf]

Налаштування для LimeSDR Mini

[rf]
# Драйвер SDR
device_name = soapy
device_args = driver=lime,rxant=LNAW,txant=BAND2

# Частота (EARFCN або прямо в Hz)
dl_earfcn = 3350          # Band 7: 2680 MHz DL
# або
# dl_freq = 2680e6
# ul_freq = 2560e6

# Підсилення
tx_gain = 60              # 0-70 для LimeSDR
rx_gain = 40              # 0-70 для LimeSDR

# Часова синхронізація
time_adv_nsamples = auto

Налаштування для LimeSDR USB

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

# Для MIMO (2x2)
# device_args = driver=lime,rxant=LNAW,txant=BAND2,channels=0,1

dl_earfcn = 3350
tx_gain = 60
rx_gain = 40

# Для 10 MHz bandwidth
# Потребує кращого охолодження

Налаштування для USRP

[rf]
device_name = uhd
device_args = type=b200,num_recv_frames=64,num_send_frames=64

dl_earfcn = 3350
tx_gain = 70              # 0-89 для B200
rx_gain = 50              # 0-76 для B200

ZeroMQ (без SDR)

[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

EARFCN та частоти

Популярні Band

Band DL (MHz) UL (MHz) EARFCN Примітка
3 1805-1880 1710-1785 1200-1949 FDD
7 2620-2690 2500-2570 2750-3449 FDD, наш вибір
20 791-821 832-862 6150-6449 FDD
38 2570-2620 2570-2620 37750-38249 TDD

Розрахунок частоти з EARFCN

Band 7:
DL = 2620 + 0.1 * (EARFCN - 2750)

EARFCN 3350:
DL = 2620 + 0.1 * (3350 - 2750) = 2680 MHz
UL = DL - 120 = 2560 MHz

Секція [enb_files]

[enb_files]
sib_config = sib.conf     # System Information Blocks
rr_config = rr.conf       # Radio Resource config
rb_config = rb.conf       # Radio Bearer config

Важливі параметри в rr.conf

[rr]
# MAC конфігурація
mac_config = {
  ul_max_harq_tx = 4;
  dl_max_harq_tx = 4;
};

# PHY конфігурація
phy_config = {
  pdsch_cnfg = {
    p_b = 1;
    rs_power = 0;
  };
  pusch_cnfg_ded = {
    beta_offset_ack_idx = 6;
    beta_offset_ri_idx = 6;
    beta_offset_cqi_idx = 6;
  };
};

Секція [pcap]

[pcap]
enable = false
filename = /tmp/enb.pcap

# MAC layer
mac_enable = false
mac_filename = /tmp/enb_mac.pcap

# NAS layer
nas_enable = false
nas_filename = /tmp/enb_nas.pcap

Секція [log]

[log]
# Рівні: none, error, warning, info, debug
all_level = info

# Окремі компоненти
phy_level = warning
mac_level = info
rlc_level = info
pdcp_level = info
rrc_level = info
gtpu_level = info
s1ap_level = info
stack_level = info

# Hex dump (для debug)
all_hex_limit = 32

# Файл логу
filename = /tmp/enb.log
file_max_size = -1        # Без обмеження

Секція [scheduler]

[scheduler]
# Максимум UE
max_nof_users = 16

# Політика планування
policy = time_rr          # time_rr, time_pf

# Guard period для TDD
# nof_ctrl_symbols = 3

Секція [expert]

[expert]
# PRACH конфігурація
prach_freq_offset = 4

# UE-specific
# Збільшити якщо проблеми з синхронізацією
pregenerate_signals = false

# Для LimeSDR Mini важливо!
tx_amplitude = 0.6        # Зменшити якщо перевантаження

# Metrics
metrics_period_secs = 1
metrics_csv_enable = false
metrics_csv_filename = /tmp/enb_metrics.csv

Повний приклад для LimeSDR Mini

#####################################################################
# srsENB configuration for LimeSDR Mini
#####################################################################

[enb]
enb_id = 0x19B
mcc = 001
mnc = 01
mme_addr = 127.0.1.100
gtp_bind_addr = 127.0.1.1
s1c_bind_addr = 127.0.1.1
s1c_bind_port = 0
n_prb = 25

[enb_files]
sib_config = sib.conf
rr_config = rr.conf
rb_config = rb.conf

[rf]
device_name = soapy
device_args = driver=lime,rxant=LNAW,txant=BAND2
tx_gain = 60
rx_gain = 40
dl_earfcn = 3350
time_adv_nsamples = auto

[pcap]
enable = false

[log]
all_level = warning
phy_level = warning
mac_level = info
rlc_level = warning
pdcp_level = warning
rrc_level = info
gtpu_level = warning
s1ap_level = info
filename = /tmp/enb.log

[scheduler]
policy = time_rr
max_nof_users = 10

[expert]
tx_amplitude = 0.6
metrics_period_secs = 1
pregenerate_signals = false

Запуск

Базовий

sudo srsenb ~/.config/srsran/enb.conf

З підвищеним пріоритетом

sudo chrt -r 99 srsenb ~/.config/srsran/enb.conf

З GUI

sudo srsenb --gui.enable

Підключення до Open5GS

[enb]
# IP адреса де працює Open5GS MME
mme_addr = 192.168.1.10

# Локальні адреси eNB
gtp_bind_addr = 192.168.1.20
s1c_bind_addr = 192.168.1.20

# PLMN має співпадати з Open5GS!
mcc = 001
mnc = 01

Типові помилки

"Error binding S1-MME"

Перевірити:
1. MME запущений
2. mme_addr правильна
3. Firewall не блокує порт 36412

"Error opening RF device"

Перевірити:
1. SDR підключений (LimeUtil --find)
2. device_name та device_args правильні
3. Права доступу до USB

"Late packet"

Рішення:
1. Зменшити tx_gain
2. Зменшити n_prb (5 MHz = 25 PRB)
3. Зменшити tx_amplitude
4. Перевірити CPU навантаження

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

UMTC Wiki © 2026 | Ukrainian Military Tactical Communications