Быстрый переход
Программа «vBSC» (Virtual Base Station Controller) представляет собой программную реализацию контроллера базовых станций (BSC), предназначенную для управления базовыми станциями (BTS) в сетях GSM. Продукт разработан на языке C++20 с применением современной многопоточной архитектуры и конечных автоматов (FSM).
Область применения
Программное обеспечение предназначено для использования в следующих сценариях:
Развертывание в тестовых и лабораторных средах для отработки сетевых взаимодействий
Обучение и повышение квалификации специалистов в области сетевых технологий GSM
Прототипирование новых сервисов и функций сети
Интеграционное тестирование смежного телекоммуникационного оборудования
Место в сетевой инфраструктуре
В архитектуре сетей мобильной связи vBSC выполняет функции уровня управления радиосетью (Base Station Controller):
Управление одной или несколькими базовыми станциями (BTS) через интерфейс Abis
Взаимодействие с центром коммутации мобильной связи (MSC) через интерфейс A
Обеспечение процедур хэндовера (handover) между сотами и между BSC
Управление радиоресурсами (RRM) — выделение, контроль и освобождение радиоканалов
Объединение этих функций в едином программном продукте позволяет создавать компактные стенды, моделирующие работу контроллера базовых станций без необходимости развертывания распределенной инфраструктуры.
Ключевые особенности
Основными особенностями данной реализации являются:
Многоуровневая архитектура с разделением функций по слоям: начальной загрузки, управления, сигнализации, конечных автоматов, транспорта и наблюдаемости
Поддержка полного набора интерфейсов: A (BSSAP/BSSMAP/SCCP/SIGTRAN), Abis (OML/RSL), VTY/CTRL, CBSP, Lb/LCS, MGCP/LCLS, PCU/GPRS, VGCS/VBS
Управление через VTY (текстовый интерфейс) и CTRL (API статистики)
Возможность изменения конфигурации в реальном времени без перезапуска через динамическую перезагрузку
Хранение и отображение контекстов абонентов и состояний каналов
Модульная структура, допускающая поэтапное наращивание функциональности
Программа vBSC обеспечивает выполнение следующих основных функций:
Управление базовыми станциями (BTS) через интерфейс Abis (OML/RSL)
Сигнализация с центром коммутации MSC через интерфейс A (BSSAP/BSSMAP/SCCP/SIGTRAN)
Управление радиоресурсами (выделение, мониторинг и освобождение каналов)
Поддержка процедур хэндовера (внутри-BSC, меж-BSC)
Обработка широковещательных рассылок через CBSP
Процедуры определения местоположения (LCS) через интерфейс Lb
Управление медиашлюзами (MGCP) и локальной коммутацией каналов (LCLS)
Интеграция с пакетным доменом (PCU/GPRS)
Предоставление интерфейсов оперативного управления (VTY) и сбора статистики (CTRL)
Программная реализация основана на многоуровневой архитектуре:
Слои исполнения:
Слой начальной загрузки — чтение конфигурации, инициализация логирования и контекста выполнения, построение графа внутренних сервисов
Слой управления — управление жизненным циклом BTS, TRX, TS, LCHAN, применение политик аллокации, пейджинга и хэндовера
Слой сигнализации — прием сигнальных сообщений, проверка маршрутов, диспетчеризация событий в FSM
Слой конечных автоматов — явные переходы состояний, поведение по таймаутам и семантика восстановления
Слой транспорта/ввода-вывода — инкапсуляция обмена сокет/сообщение, изоляция фреймирования протокола от бизнес-логики
Слой наблюдаемости — логи, метрики и сигналы здоровья/ошибок для эксплуатации
Общие структуры данных:
Хранилище конфигурационных параметров
Контексты абонентских устройств (UE-контексты)
Контексты радиоканалов (LCHAN)
Журнал событий
Программное обеспечение функционирует в следующих режимах:
Режим ожидания:
Потоки управления ожидают входящих сообщений от BTS и MSC
Сетевые серверы прослушивают заданные порты (VTY, CTRL, SIGTRAN)
VTY/CTRL интерфейсы готовы к приему команд
Режим обработки сигнального трафика:
Прием и разбор входящих сообщений протоколов (OML, RSL, BSSAP, CBSP, LCS, MGCP)
Формирование и отправка ответов
Обновление контекстов каналов и абонентов
Режим конфигурирования:
Изменение параметров работы в реальном времени через VTY
Динамическая перезагрузка конфигурации без остановки основного процесса
Текущая реализация:
Протокол BSSAP (Base Station System Application Part) для сигнализации между BSC и MSC
BSSMAP (Base Station System Management Application Part) для управления радиоресурсами и процедурами мобильности
SCCP (Signalling Connection Control Part) для адресации и мультиплексирования соединений
SIGTRAN (SCTP) для транспортировки сигнализации поверх IP-сетей
Поддержка процедур: установление соединения, передача сообщений, разъединение
Текущая реализация:
OML (Operations and Maintenance Link) — управление конфигурацией BTS, загрузка программного обеспечения, управление состоянием
RSL (Radio Signalling Link) — выделение и освобождение радиоканалов, управление мощностью, измерения
Поддержка трех типов BTS: nanoBTS, RBS2000, osmoBTS
Поддержка 11-битного RACH (Random Access Channel) для современных телефонов
Поддержка OML/RSL поверх IPA/TCP
Текущая реализация:
VTY (Virtual Teletype) — текстовый интерфейс управления, аналогичный Cisco CLI
CTRL (Control Interface) — API для сбора статистики и управления через текстовые команды
Более 40 CTRL-команд для мониторинга состояния, счетчиков производительности и аварий
VTY команды для отображения состояния BTS, каналов, хэндоверов, конфигурации
2.4 Интерфейс CBSP (Cell Broadcast Service Protocol)
Текущая реализация:
Полная реализация протокола CBSP для широковещательной рассылки сообщений по сотам
Поддержка процедур: KEEP_ALIVE, WRITE-REPLACE, KILL, LOAD, RESET, STATUS
Интеграция с SMS-CB (Cell Broadcast Center)
Логирование repetition_period от CBC
Текущая реализация:
Протокол Lb для взаимодействия BSC с SMLC (Serving Mobile Location Centre)
Процедуры определения местоположения: запрос местоположения (Location Request), отчет о времени прибытия (TA Request)
Поддержка таймера T11 для процедур LCS
Полный конечный автомат LCS (5 состояний, 6 событий)
Текущая реализация:
MGCP (Media Gateway Control Protocol) — управление медиашлюзами (CRCX, MDCX, DLCX)
LCLS (Local Call Local Switching) — локальная коммутация вызовов внутри BSC без привлечения медиашлюза
Управление RTP-потоками для каналов
Обработка рассогласования режимов LCLS с fallback на MGW
2.7 Интерфейс PCU/GPRS (Packet Control Unit / GPRS)
Текущая реализация:
Протокол PCU (Packet Control Unit) Socket для взаимодействия с пакетным доменом
Управление NSE (Network Service Entity) и NSVC через конечные автоматы
Поддержка GPRS-ячеек
VTY команда show pcu для отображения состояния соединения и per-BTS статуса GPRS
Текущая реализация:
Полный FSM для групповых и широковещательных вызовов
Поддержка вызовов VGCS (групповой вызов) и VBS (широковещательный вызов)
Управление каналами групповых вызовов (7 состояний FSM)
VTY команда show vgcs для отображения активных вызовов с состоянием, callref и количеством каналов
Программное обеспечение предоставляет VTY (Virtual Teletype) интерфейс на базе TCP-сервера (порт 4242) с поддержкой следующих команд:
Команды мониторинга состояния:
show bts — отображение версии, состояния узла, списка активных BTS
show trx — вывод состояния транспортов и каналов
show lchan — отображение состояния радиоканалов
show stats — вывод всех счетчиков производительности
show smlc — отображение состояния Lb интерфейса (включен, CS7 instance, адреса, состояние сброса BSSMAP)
show pcu — отображение статуса PCU сокета и per-BTS режима GPRS
show vgcs — отображение активных VGCS/VBS вызовов
Команды управления:
bts N trx M timeslot K — конфигурирование таймслотов
handover — управление параметрами хэндовера
logging — управление уровнем логирования
write — запись конфигурации в файл
Программное обеспечение поддерживает следующие параметры настройки в файле конфигурации (формат VTY config):
Параметры сети (BSC):
bts N — идентификатор BTS
type nanoBTS / rbs2000 / osmoBTS — тип базовой станции
cell_identity — идентификатор соты
location_area_code — код зоны расположения (LAC)
base_station_identity_code — BSIC
Параметры трансивера:
trx N — идентификатор трансивера
arfcn — абсолютный номер радиоканала
nominal power — номинальная мощность
Параметры интерфейсов:
bsc_ip — IP-адрес BSC
msc_ip — IP-адрес MSC (для A интерфейса)
smlc_ip — IP-адрес SMLC (для Lb интерфейса)
cbc_ip — IP-адрес CBC (для CBSP интерфейса)
При запуске программа автоматически загружает конфигурацию из файла в рабочей директории (обычно vbsc.cfg).
Поддерживается динамическая перезагрузка конфигурации без остановки процесса через VTY команду «write» с последующей загрузкой.
Программное обеспечение поддерживает уровни серьезности сообщений:
DEBUG — детальная отладочная информация
INFO — информирование о штатных событиях работы системы
WARNING — предупреждения о нештатных ситуациях, не приводящих к отказу
ERROR — ошибки, влияющие на отдельные функции
CRITICAL — критические отказы подсистем
Формат строки вывода:
YYYY-MM-DD HH:MM:SS.mmm [УРОВЕНЬ] [КОМПОНЕНТ] Сообщение
Каждая запись содержит временную метку с точностью до миллисекунды, уровень серьезности, наименование компонента-источника и текст сообщения.
Все события дублируются в файл журнала, расположенный по пути относительно рабочей директории. Формат записи в файле аналогичен консольному выводу без ANSI-кодов.
Уровень логирования задается в файле конфигурации.
Хранилище LCHAN-контекстов предназначено для отслеживания состояния радиоканалов. В текущей реализации структура контекста включает:
Номер BTS, TRX, TS (таймслот)
Тип канала (SDCCH, TCH_F, TCH_H)
Состояние FSM канала
Время выделения
Информация об абоненте (IMSI, TMSI)
Хранилище контекстов вызовов для голосовых и групповых вызовов:
VGCS/VBS контексты (групповые/широковещательные вызовы)
Состояние вызова (активен, устанавливается, завершается)
Список участников (для VGCS)
Хранилище контекстов для процедур определения местоположения:
Тип запроса (Location Request, TA Request)
Состояние FSM LCS (5 состояний)
Таймер T11
Результат измерения
Программное обеспечение поддерживает два режима сборки:
Минимальный загрузчик — компилируется без внешних зависимостей (кроме C++20 toolchain), используется для проверки цепочки инструментов и пути запуска
Полная сборка — включает все ключевые модули (A, Abis, VTY/CTRL, CBSP, Lb, MGCP, PCU, VGCS) и требует библиотеки libosmocore, libosmo-abis, libosmo-netif
Программное обеспечение проходит следующие виды тестирования:
Модульные тесты (unit tests) для LCS FSM, VGCS FSM, PCU сокета
Интеграционные тесты для A интерфейса, Abis интерфейса, Lb интерфейса, VGCS вызовов
VTY транскрипт-тесты для проверки интерфейса управления
Покрытие кода составляет 90% и более
Smoke-скрипты для взаимодействия с Open5GS (NGAP/PDU session)
Набор эталонных трасс (pcap) для регрессионной проверки
Воспроизводимые сценарии с документированными командами запуска
Матрица сборок для Windows (MSVC) и Linux
Публикация тестовых логов и артефактов при падениях
Конвейер статического анализа (clang-tidy/format/lint)
Бенчмарки латентности планировщика и сквозного пути передачи данных
Расширенные метрики (гистограммы латентности, счетчики ошибок на интерфейс)
Автоматическая проверка регрессий производительности
Валидация и лимиты для VTY/CTRL интерфейсов (размер полезной нагрузки, частота запросов)
Негативные и fuzz-тесты для путей парсеров и кодеков
Модель угроз и документация
Текущая реализация (C++):
struct gsm_lchan {
uint8_t bts_nr;
uint8_t trx_nr;
uint8_t ts_nr;
enum lchan_state state;
struct lchan_rtp_info rtp;
struct lchan_lcls lcls;
struct lchan_meas meas;
};
Текущая реализация (C++):
struct vgcs_call {
uint32_t callref;
enum vgcs_call_state state;
struct lchan *chan_list;
time_t start_time;
};
Текущая реализация (C++):
struct lcs_loc_req {
uint32_t locRef;
enum lcs_state state;
uint8_t timer_T11;
struct lcs_ta_measurement ta;
};
Информация
Адрес
242504
Брянская область
Карачевский район, Вишневка
Молодёжная улица, 33
Быстрый переход
Информация
Отдел продаж
+7 (953) 284-42-23
sales@ericssonsoftware.ru
Адрес
242504
Брянская область,
Карачевский район,
Вишневка, Молодёжная улица, 33