本記事は、4G/5Gモバイルネットワークに関する幾つかのオープンソースの一部機能を簡単に動作確認した際のメモです。環境によっては動作しない場合もありますのでご了承下さい。
バージョンとリソースの要件
Open5GS
Role | Ver | Commit & Date | OS | CPU | Mem | HDD |
---|---|---|---|---|---|---|
C-Plane | 2.7.2+ |
deef017dfeb276f5f6a17c286df0646c17e9b201 2024.08.27 |
Ubuntu 24.04 |
1 | 2 GB | 20 GB |
UPF | 2.7.2+ |
deef017dfeb276f5f6a17c286df0646c17e9b201 2024.08.27 |
Ubuntu 24.04 |
1 | 1 GB | 20 GB |
free5GC
Role | Ver | Commit & Date | OS | CPU | Mem | HDD |
---|---|---|---|---|---|---|
C-Plane | 3.4.3 |
e76c358019c975f61f5d661165eae37efe3b75da 2024.09.05 |
Ubuntu 24.04 |
1 | 2 GB | 20 GB |
UPF | 1.2.3 |
922281ba58b6ca42d73be218671c8feae3658420 2024.05.11 |
Ubuntu 24.04 |
1 | 1 GB | 10 GB |
1.2.1 (for ULCL) |
44a445df3d80b3c3052dea80c3ac112ebc73cbff 2023.12.19 |
Ubuntu 24.04 |
1 | 1 GB | 10 GB | |
gtp5g (UPF) |
0.8.10 |
3ee1a5262c5b4dc2ba118b7cb1ed0ba842d3b07b 2024.06.03 |
-- | -- | -- | -- |
UPG-VPP
Role | Ver | Commit & Date | OS | CPU | Mem | HDD |
---|---|---|---|---|---|---|
UPF | 1.13.0 |
dfdf64000566d35955d7c180720ff66086bd3572 2024.03.25 |
Ubuntu 22.04 |
2 | 8 GB | 20 GB |
eUPF
Role | Ver | Commit & Date | OS | CPU | Mem | HDD |
---|---|---|---|---|---|---|
UPF | 0.6.4 |
0f704deaca67766733a447f4680cf4d77e638934 2024.05.01 |
Ubuntu 24.04 |
1 | 2 GB | 20 GB |
UERANSIM
Role | Ver | Commit & Date | OS | CPU | Mem | HDD |
---|---|---|---|---|---|---|
RAN & UE | 3.2.6+ |
528061fe10389876da58d3bd15e8cba6d7c152a9 2024.08.27 |
Ubuntu 24.04 |
1 | 1 GB | 10 GB |
srsRAN_Project
Role | Ver | Commit & Date | OS | CPU | Mem | HDD |
---|---|---|---|---|---|---|
RAN | 24.04+ |
4ac5300d4927b5199af69e6bc2e55d061fc33652 2024.07.31 |
Ubuntu 24.04 |
2 | 4 GB | 10 GB |
srsRAN_4G
Role | Ver | Commit & Date | OS | CPU | Mem | HDD |
---|---|---|---|---|---|---|
RAN & UE | 23.11+ |
ec29b0c1ff79cebcbe66caa6d6b90778261c42b8 2024.02.01 |
Ubuntu 22.04 |
1 | 2 GB | 10 GB |
PacketRusher
Role | Ver | Commit & Date | OS | CPU | Mem | HDD |
---|---|---|---|---|---|---|
RAN & UE | 20240521+ |
32a08fa9fb2d83b654628b5187a0244a66b737b2 2024.06.24 |
Ubuntu 24.04 |
1 | 1GB | 10GB |
gtp5g (RAN) |
0.8.6 |
d8818ee80a9a004ea0fac3715415395810666921 2024.02.18 |
-- | -- | -- | -- |
0.9.1+ [1] |
02ac100d8fb71e8dd00d2421a4914dd504b913dd 2024.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] 初版。