srsRAN 4G — Огляд¶
Архітектура та компоненти srsRAN 4G.
Що таке srsRAN¶
srsRAN — це повна реалізація 4G LTE стеку на C++:
mindmap
root((srsRAN 4G))
srsENB
eNodeB
Базова станція
PHY/MAC/RLC/PDCP
srsEPC
Embedded EPC
MME + HSS + SPGW
Тестування
srsUE
Software UE
Емулятор телефону
End-to-end тестІсторія¶
- 2012 — Початок як srsLTE
- 2020 — Ребрендинг на srsRAN
- 2023 — srsRAN Project (окремі 4G/5G репозиторії)
Ліцензія¶
AGPL-3.0 (srsRAN 4G)
Apache 2.0 (srsRAN Project / 5G)
Компоненти та їх роль¶
srsENB¶
eNodeB — базова станція LTE.
┌─────────────────────────────────────────────┐
│ srsENB │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ PHY │ │ MAC │ │ RLC │ │
│ │(фізичний│→ │(Medium │→ │(Radio │ │
│ │ рівень) │ │ Access) │ │ Link) │ │
│ └─────────┘ └─────────┘ └────┬────┘ │
│ │ │
│ ┌─────────┐ ┌─────────┐ ┌────↓────┐ │
│ │ RRC │← │ PDCP │← │ PDCP │ │
│ │(Radio │ │(Packet │ │ │ │
│ │Resource)│ │ Data) │ │ │ │
│ └─────────┘ └─────────┘ └─────────┘ │
│ │
│ ↓ S1-MME, S1-U │
│ До EPC (Open5GS або srsEPC) │
└─────────────────────────────────────────────┘
Функції:
- Передача/прийом радіосигналу
- Планування ресурсів (scheduler)
- Управління з'єднаннями
- Handover
- Шифрування
srsEPC¶
Embedded EPC — мініатюрне ядро мережі.
┌─────────────────────────────────────────────┐
│ srsEPC │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ MME │ │ HSS │ │ SPGW │ │
│ │ │ │ │ │(SGW+PGW)│ │
│ └────┬────┘ └────┬────┘ └────┬────┘ │
│ │ │ │ │
│ └────────────┼────────────┘ │
│ │ │
│ user_db.csv │
│ (база абонентів) │
└─────────────────────────────────────────────┘
Компоненти:
- MME — Mobility Management Entity
- HSS — Home Subscriber Server
- SPGW — Combined SGW + PGW
Коли використовувати:
- Швидке тестування
- Демонстрації
- Навчання
Коли НЕ використовувати:
- Production (використати Open5GS)
- Складні сценарії
- Інтеграція з зовнішніми системами
srsUE¶
Software UE — програмний емулятор телефону.
┌─────────────────────────────────────────────┐
│ srsUE │
│ │
│ ┌─────────┐ │
│ │ NAS │ ← Attach, Authentication │
│ └────┬────┘ │
│ ↓ │
│ ┌─────────┐ │
│ │ RRC │ ← Connection setup │
│ └────┬────┘ │
│ ↓ │
│ ┌─────────┐ │
│ │ PHY │ → SDR │
│ └─────────┘ │
│ │
│ ↑ │
│ TUN interface (tun_srsue) │
│ IP трафік через мережу │
└─────────────────────────────────────────────┘
Застосування:
- Тестування eNB без реального телефону
- End-to-end перевірка
- Автоматизоване тестування
Підтримувані SDR¶
LimeSDR Mini¶
Наше основне обладнання!
Характеристики:
- Частоти: 10 MHz - 3.5 GHz
- Bandwidth: до 30.72 MHz
- USB 3.0
- 1x1 SISO
Для srsRAN:
- 5 MHz → працює стабільно
- 10 MHz → потребує оптимізації
LimeSDR USB¶
Розширена версія:
- 2x2 MIMO
- Кращий temperature stability
- Більший bandwidth
USRP B200/B210¶
Професійний вибір:
- Ettus Research
- Кращі характеристики
- Вища ціна ($700-1500)
- UHD драйвер
BladeRF¶
Альтернатива:
- Nuand
- x40 (40k LE FPGA)
- x115 (115k LE FPGA)
Системні вимоги¶
CPU¶
Мінімум: 4 ядра, 3+ GHz
Рекомендовано: 8 ядер, 4+ GHz
PHY обробка real-time:
- 5 MHz: ~30% одного ядра
- 10 MHz: ~60% одного ядра
- 20 MHz: ~100%+ (потрібен потужний CPU)
Пам'ять¶
RAM: 8 GB мінімум, 16 GB рекомендовано
Swap: відключити для real-time!
USB¶
USB 3.0 обов'язково!
- Окремий контролер
- Не через хаб
- Якісний кабель
Real-time налаштування¶
# Перевірити rt пріоритети
ulimit -r
# Додати права
sudo usermod -aG dialout $USER
echo "@realtime - rtprio 99" | sudo tee /etc/security/limits.d/realtime.conf
Обмеження¶
Кількість UE¶
Теоретично: 65535 (RNTI range)
Практично: 5-20 UE (залежить від CPU)
Причини:
- CPU для PHY
- Scheduler overhead
- Memory bandwidth
Bandwidth¶
| SDR | Max BW | Стабільно |
|---|---|---|
| LimeSDR Mini | 20 MHz | 5-10 MHz |
| LimeSDR USB | 20 MHz | 10-15 MHz |
| USRP B210 | 20 MHz | 15-20 MHz |
MIMO¶
SISO: 1 антена TX, 1 антена RX
- LimeSDR Mini
- USRP B200
2x2 MIMO: 2 антени TX, 2 антени RX
- LimeSDR USB
- USRP B210
Duplex¶
FDD: Frequency Division Duplex
- Окремі частоти для UL/DL
- Підтримується
TDD: Time Division Duplex
- Одна частота, поділ в часі
- Підтримується (з обмеженнями)
Порівняння з комерційними рішеннями¶
| Аспект | srsRAN | Комерційні |
|---|---|---|
| Вартість | Безкоштовно | $50k-500k+ |
| Гнучкість | Повна | Обмежена |
| Підтримка | Спільнота | Вендор |
| Масштаб | Малий | Великий |
| Сертифікація | Немає | Є |
Troubleshooting¶
srsENB стартує, але PHY сигналізує "Late" або "Underflow" постійно
- Симптом: в логах [PHY] Late! TTI=X або U (underflow) символи; UE attach fails або rvert/reject
- Причина: CPU не встигає обробляти IQ samples real-time — недостатні ядра/частота; або працює swap; або ядро не RT-преемптивне; USB підключений не через USB 3.0
- Рішення: swapoff -a; встановити CPU performance governor (cpupower frequency-set -g performance); chrt -f 99 для srsenb процесу; зменшити n_prb з 50 (10 MHz) до 25 (5 MHz) щоб знизити навантаження; перевірити lsusb -t — LimeSDR має бути на 5000M/10000M USB 3.0 bus
srsUE не видно через srsENB (0 UE connected) при ZMQ симуляції
- Симптом: в ZMQ тесті srsENB піднімається, srsUE запускається, але connect ніколи не відбувається
- Причина: неправильна пара ZMQ портів між enb.conf (tx_port=5000, rx_port=5001) та ue.conf (має бути навпаки — tx_port=5001, rx_port=5000); або запущені на різних IP без localhost
- Рішення: уважно звірити конфіги — ENB_TX ↔ UE_RX на однаковому порту; перезапустити обидва процеси; перевірити netstat -tulnp | grep 500 — порти зайняті srsenb/srsue
Неможливо використати bandwidth >5 MHz на LimeSDR Mini
- Симптом: при спробі n_prb=50 або n_prb=100 srsenb падає або UE не attach
- Причина: LimeSDR Mini має практичний ліміт стабільної роботи ~5 MHz з srsRAN; 10 MHz вимагає тонкого тюнінгу USB/CPU; 20 MHz — потрібен USRP B210 або LimeSDR USB
- Рішення: для mission-critical залишитись на 5 MHz (n_prb=25); для 10 MHz — оптимізувати систему (realtime kernel, isolated CPU cores, USB 3.0 без hub); розглянути апгрейд hardware на USRP якщо потрібно 15-20 MHz. Див. /ran/troubleshooting
Пов'язані теми¶
- Встановлення srsRAN — покрокова інструкція
- srsENB — налаштування базової станції
- srsEPC — вбудований EPC для тестування
- LimeSDR — наше основне SDR обладнання
- Теорія LTE — концепції приватних мереж
Зовнішні ресурси¶
Шлях: ran/srsran-overview.md