srsRAN 4Gソフトウェア スイートには、ZeroMQネットワーキング ライブラリを使用してアプリケーション間で無線サンプルを転送する仮想無線が含まれています。そこで、4G EPCの機能を確認するために、実際のデバイスの代わりに仮想eNodeBとUEを構築する簡単な手順について説明します。なお、構築に際しては、RFプラグインを無効にしてZeroMQ対応機能を仮想eNodeBとUEに静的に組み込んでいることに注意して下さい。
ZeroMQでsrsRAN 4G UE/RANを構築するには以下を参照して下さい。
- srsRAN 4G - https://docs.srsran.com/projects/4g/en/latest/
動作確認したVMの仕様は以下の通りです。
OS | CPU (Min) | Memory (Min) | HDD (Min) |
---|---|---|---|
Ubuntu 22.04 | 1 | 2GB | 10GB |
ビルドには2GB以上のメモリが必要です。
ZeroMQを含む必要なライブラリをインストール
apt install build-essential cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev libzmq3-dev
Git clone srsRAN_4G
git clone https://github.com/srsran/srsRAN_4G.git
Virtualbox VMにRFプラグインを無効にしてsrsRAN 4G UE / RANを構築
ZeroMQライブラリを仮想eNodeBおよびUEに静的にリンクさせるため、RFプラグインを無効にしてビルドします。
cd srsRAN_4G
mkdir build
cd build
cmake ../ -DENABLE_RF_PLUGINS=OFF
make
eNodeBの設定ファイルを作成
雛型の各設定ファイルをコピーして、環境に応じて編集して下さい。
cd srsRAN_4G/srsenb
cp enb.conf.example ../build/srsenb/enb.conf
cp rr.conf.example ../build/srsenb/rr.conf
cp rb.conf.example ../build/srsenb/rb.conf
cp sib.conf.example ../build/srsenb/sib.conf
UEの設定ファイルを作成
雛型の設定ファイルをコピーして、環境に応じて編集して下さい。
cd srsRAN_4G/srsue
cp ue.conf.example ../build/srsue/ue.conf
NR-UEの設定ファイルを作成
UEを5G NR-UEとして使用すると、4GのeNodeBの他にZeroMQ対応のsrsRAN_Project 5G gNodeBに接続することができます。5G NR-UE構成の場合は、ZeroMQ-based SetupのUE config
を雛型のファイルとして取得します。また、このRFシミュレートされたgNodeBの構築方法については、こちらを参照してください。
cd srsRAN_4G/build/srsue
wget <link of "UE config">
参考までに、2023.12.07のue_zmq.conf
は以下の通りです。環境に応じて編集します。
[rf]
freq_offset = 0
tx_gain = 50
rx_gain = 40
srate = 23.04e6
nof_antennas = 1
device_name = zmq
device_args = tx_port=tcp://127.0.0.1:2001,rx_port=tcp://127.0.0.1:2000,base_srate=23.04e6
[rat.eutra]
dl_earfcn = 2850
nof_carriers = 0
[rat.nr]
bands = 3
nof_carriers = 1
max_nof_prb = 106
nof_prb = 106
[pcap]
enable = none
mac_filename = /tmp/ue_mac.pcap
mac_nr_filename = /tmp/ue_mac_nr.pcap
nas_filename = /tmp/ue_nas.pcap
[log]
all_level = info
phy_lib_level = none
all_hex_limit = 32
filename = /tmp/ue.log
file_max_size = -1
[usim]
mode = soft
algo = milenage
opc = 63BFA50EE6523365FF14C1F45F88737D
k = 00112233445566778899aabbccddeeff
imsi = 001010123456780
imei = 353490069873319
[rrc]
release = 15
ue_category = 4
[nas]
apn = srsapn
apn_protocol = ipv4
[gw]
netns = ue1
ip_devname = tun_srsue
ip_netmask = 255.255.255.0
[gui]
enable = false
問題点
- Open5GSへのUEの登録時に、5G NR-UEの設定ファイルの
[slicing]
セクションで問題が発生した場合は、こちら が役に立つかも知れません。NR-UEとしてue_zmq.conf
に[slicing]
セクションを追加してsrsueを使用する場合、3GPP仕様に従って、InitialUEMessage Plain NAS 5GS Message
にNSSAI IE
を含めないようにしますが、srsueはそのようになっていません。free5GCのAMFの場合、この辺のチェックは緩いのですが、Open5GSは厳格にはじきます。そろそろマージして頂けると助かるのですが…
動作確認済みバージョン一覧
以下のバージョンの動作を簡単に確認しました。
Version | Commit | Date | Issues |
---|---|---|---|
23.11+ | ec29b0c1ff79cebcbe66caa6d6b90778261c42b8 |
2024.02.01 | 1 |
23.11 | eea87b1d893ae58e0b08bc381730c502024ae71f |
2023.11.23 | 1 |
23.04.1 | fa56836b14dc6ad7ce0c3484a1944ebe2cdbe63b |
2023.06.19 | 1 |
4G、5Gコア連携の設定例
5Gの場合
- Open5GS 5GC & srsRAN 5G with ZeroMQ UE / RAN Sample Configuration
- free5GC 5GC & srsRAN 5G with ZeroMQ UE / RAN Sample Configuration
4Gの場合
最後に
SRSが開発したsrsRAN_4Gにより、UE、eNodeB、軽量のEPCを備えた完全なLTEモバイルネットワークを実現することができます。ここでは、4Gコア機能を検証する際のRANならびにUEとして使用するため、ZeroMQベースのRFドライバーでeNodeBとsrsUEを接続する構成を想定し、仮想環境で組む時のsrsRAN_4Gのビルド方法について説明しました。これにより、実機のeNodeBとUEが無くても、取り敢えず、4Gコアの機能を幾らか検証することができると思います。
また、5G対応のNR-UEの機能も備えているため、srsRAN_ProjectのgNodeBと連携して、5Gコア機能の検証に使用することもできます。
最後に、元記事はGithubに書いたものです。
主な変更履歴
- [2024.09.12] 初版。