本記事は、4G/5Gモバイルネットワークに関する幾つかのオープンソースの一部機能を簡単に動作確認した際のメモです。環境によっては動作しない場合もありますのでご了承下さい。
最新の情報は、元記事のGithubを参照して下さい。
バージョンとリソースの要件
Open5GS
| Role | Ver | Commit & Date | OS | CPU | Mem | HDD |
|---|---|---|---|---|---|---|
| C-Plane | 2.7.2+ |
deef017dfeb276f5f6a17c286df0646c17e9b2012024.08.27 |
Ubuntu 24.04 |
1 | 2 GB | 20 GB |
| UPF | 2.7.2+ |
deef017dfeb276f5f6a17c286df0646c17e9b2012024.08.27 |
Ubuntu 24.04 |
1 | 1 GB | 20 GB |
free5GC
| Role | Ver | Commit & Date | OS | CPU | Mem | HDD |
|---|---|---|---|---|---|---|
| C-Plane | 3.4.3 |
e76c358019c975f61f5d661165eae37efe3b75da2024.09.05 |
Ubuntu 24.04 |
1 | 2 GB | 20 GB |
| UPF | 1.2.3 |
922281ba58b6ca42d73be218671c8feae36584202024.05.11 |
Ubuntu 24.04 |
1 | 1 GB | 10 GB |
| 1.2.1 (for ULCL) |
44a445df3d80b3c3052dea80c3ac112ebc73cbff2023.12.19 |
Ubuntu 24.04 |
1 | 1 GB | 10 GB | |
|
gtp5g (UPF) |
0.8.10 |
3ee1a5262c5b4dc2ba118b7cb1ed0ba842d3b07b2024.06.03 |
-- | -- | -- | -- |
UPG-VPP
| Role | Ver | Commit & Date | OS | CPU | Mem | HDD |
|---|---|---|---|---|---|---|
| UPF | 1.13.0 |
dfdf64000566d35955d7c180720ff66086bd35722024.03.25 |
Ubuntu 22.04 |
2 | 8 GB | 20 GB |
eUPF
| Role | Ver | Commit & Date | OS | CPU | Mem | HDD |
|---|---|---|---|---|---|---|
| UPF | 0.6.4 |
0f704deaca67766733a447f4680cf4d77e6389342024.05.01 |
Ubuntu 24.04 |
1 | 2 GB | 20 GB |
UERANSIM
| Role | Ver | Commit & Date | OS | CPU | Mem | HDD |
|---|---|---|---|---|---|---|
| RAN & UE | 3.2.6+ |
528061fe10389876da58d3bd15e8cba6d7c152a92024.08.27 |
Ubuntu 24.04 |
1 | 1 GB | 10 GB |
srsRAN_Project
| Role | Ver | Commit & Date | OS | CPU | Mem | HDD |
|---|---|---|---|---|---|---|
| RAN | 24.04+ |
4ac5300d4927b5199af69e6bc2e55d061fc336522024.07.31 |
Ubuntu 24.04 |
2 | 4 GB | 10 GB |
srsRAN_4G
| Role | Ver | Commit & Date | OS | CPU | Mem | HDD |
|---|---|---|---|---|---|---|
| RAN & UE | 23.11+ |
ec29b0c1ff79cebcbe66caa6d6b90778261c42b82024.02.01 |
Ubuntu 22.04 |
1 | 2 GB | 10 GB |
PacketRusher
| Role | Ver | Commit & Date | OS | CPU | Mem | HDD |
|---|---|---|---|---|---|---|
| RAN & UE | 20240521+ |
32a08fa9fb2d83b654628b5187a0244a66b737b22024.06.24 |
Ubuntu 24.04 |
1 | 1GB | 10GB |
|
gtp5g (RAN) |
0.8.6 |
d8818ee80a9a004ea0fac37154153958106669212024.02.18 |
-- | -- | -- | -- |
| 0.9.1+ [1] |
02ac100d8fb71e8dd00d2421a4914dd504b913dd2024.08.15 |
-- | -- | -- | -- |
[1] gtp5g v0.8.7以降では、GTP-Uシーケンス番号がデフォルトで有効になっています。この場合、eUPFはGTP-Uパケットを正しく処理できない可能性があります。そのため、eUPFに接続する場合は、PacketRusherが使用するgtp5gのGTP-Uシーケンス番号を以下のように無効にしてください。
# echo 0 > /proc/gtp5g/seq
なお、iperf3を使用したUPFパフォーマンス測定では、GTP-Uシーケンス番号が無効になっている場合の方がパフォーマンスが向上する傾向がありました。(例: UPG-VPP)
PingとiPerf3
以下はこちらの環境でpingとiperf3の動作を確認した結果です。
5Gの場合
| UE | RAN | C-Plane | UPF | N3/N4/N6 | Ping | iPerf3 |
|---|---|---|---|---|---|---|
| UERANSIM | UERANSIM | Open5GS | Open5GS | Separate | OK | OK |
| Same | OK | OK | ||||
| UPG-VPP | Separate | OK | OK | |||
| eUPF | Separate | OK | OK | |||
| free5GC | free5GC | Separate | OK | OK | ||
| Same | OK | OK | ||||
| UPG-VPP | Separate | OK | OK | |||
| eUPF | Separate | OK | OK | |||
| srsRAN_4G | srsRAN_Project | Open5GS | Open5GS | Separate | OK | OK |
| Same | OK | OK | ||||
| UPG-VPP | Separate | OK [2] | OK [2] | |||
| eUPF | Separate | OK | OK [3] | |||
| free5GC | free5GC | Separate | OK | OK | ||
| Same | OK | OK | ||||
| UPG-VPP | Separate | OK [2] | OK [2] | |||
| eUPF | Separate | OK | OK [3] | |||
| PacketRusher | PacketRusher | Open5GS | Open5GS | Separate | OK | OK |
| Same | OK | OK | ||||
| UPG-VPP | Separate | OK | OK | |||
| eUPF | Separate | OK [1] | OK [1] | |||
| free5GC | free5GC | Separate | OK | OK | ||
| Same | OK | OK | ||||
| UPG-VPP | Separate | OK | OK | |||
| eUPF | Separate | OK [1] | OK [1] |
4Gの場合
| UE | RAN | C-Plane | SGW-U | PGW-U (UPF) | S5u/Sxb/SGi | Ping | iPerf3 |
|---|---|---|---|---|---|---|---|
| srsRAN_4G | srsRAN_4G | Open5GS | Open5GS | Open5GS | Separate | OK | OK |
| Same | OK | OK | |||||
| UPG-VPP | Separate | OK | OK | ||||
| eUPF | Separate | OK | OK [3] |
[2] UPG-VPP v1.13.0はPDU Session containerをサポートしていません。そのため、srsRAN_Projectなどの一部のgNodeBはUPG-VPPからのGTPトラフィックを受け入れない可能性があります。その場合は、こちらの注意事項を参照して下さい。今回の結果では、この暫定パッチを適用し、srsRAN_ProjectのgNodeBで動作することを確認しました。
[3] IPフラグメンテーションを回避するには、eUPFのN6またはSGiインターフェイスとsrsRAN_4G UEの tun_srsueインターフェイスの両方のMTUを次のように変更します。
- eUPFのN6またはSGiインターフェースの場合:
# ip link set <N6 or SGi interface of eUPF> mtu 1450
- srsRAN_4G UE の
tun_srsueインターフェイスの場合:
# ip link set tun_srsue mtu 1400
最後に
UEをコア網に接続してPDUセッションを確立できても、pingやiperf3を試すと、必ずしもGTP-Uトンネルを正常に張れていないことや、指定したルートでパケットが流れないこと等がありました。OSSは試してみないと分からないことが多いですね。
最後に、元記事はGithubに書いたものです。
主な変更履歴
- [2024.09.12] 初版。