Simple Confirmed Information for Mobile Network

May 17, 2026 ยท View on GitHub

This is a memo of environment information when briefly confirming the operation of some functions of each open source. Please note that it may not work depending on the environment. Also, please note that there may be cases where I have not been able to confirm operation due to my settings being incorrect.


Sample Configurations and Miscellaneous for Mobile Network


Table of Contents


Version and Resource requirements

Open5GS

RoleVersionCommit & DateOSCPU
(Min)
Mem
(Min)
HDD
(Min)
C-Plane2.7.7+35a1594a74b0760b0e1122d9393ddf34aa1cf2a4
2026.04.23
Ubuntu
24.04
12GB20GB
UPF2.7.7+35a1594a74b0760b0e1122d9393ddf34aa1cf2a4
2026.04.23
Ubuntu
24.04
11GB10GB

free5GC

RoleVersionCommit & DateOSCPU
(Min)
Mem
(Min)
HDD
(Min)
C-Plane4.2.1+69ba98ff8eba69a8092c56abb80a01fcd483e7b3
2026.03.20
(Latest nightly build on 2026.03.30)
Ubuntu
24.04
12GB20GB
UPF1.2.9ce0108ac97bd41fdd815f38e99c0cb72e597758f
2026.03.02
Ubuntu
24.04
11GB10GB
gtp5g
(UPF)
0.10.2952fb419130f5fc44cac1874e8183312006b746c
2026.03.04
--------

UPG-VPP

RoleVersionCommit & DateOSCPU
(Min)
Mem
(Min)
HDD
(Min)
UPF1.13.0
(+patch)
dfdf64000566d35955d7c180720ff66086bd3572
2024.03.25
Ubuntu
24.04
28GB20GB

eUPF

RoleVersionCommit & DateOSCPU
(Min)
Mem
(Min)
HDD
(Min)
UPF0.7.1+241af932a40582f490b10e4467651bcb0d843a92
2026.02.01
Ubuntu
24.04
12GB10GB

OAI-CN5G-UPF

RoleVersionCommit & DateOSCPU
(Min)
Mem
(Min)
HDD
(Min)
UPF2.2.0+
(+patch)
486acc3b38acc4e17449b29a52fc7581a4af7653
2026.03.26
Ubuntu
24.04
16GB20GB

UERANSIM

RoleVersionCommit & DateOSCPU
(Min)
Mem
(Min)
HDD
(Min)
RAN & UE3.2.8+
(+patch)
4a9013131a364595bffd504f9a32df1ff15340a7
2026.05.03
Ubuntu
24.04
11GB10GB

OCUDU

RoleVersionCommit & DateOSCPU
(Min)
Mem
(Min)
HDD
(Min)
RAN26.04+2563975a74baf94db51b4a41d6ff48e945cbb8f7
2026.05.12
Ubuntu
24.04
54GB10GB

When OCUDU gNodeB is configured with the ZMQ-based RF driver, this constraint regarding the minimum number of CPU cores may be unique to my environment.

srsRAN_Project

srsRAN_Project is now OCUDU.

RoleVersionCommit & DateOSCPU
(Min)
Mem
(Min)
HDD
(Min)
RAN25.10+4bf1543936d062686d64c10724d2f27a9854f065
2026.02.16
Ubuntu
24.04
54GB10GB

When srsRAN_Project gNodeB is configured with the ZMQ-based RF driver, this constraint regarding the minimum number of CPU cores may be unique to my environment.

srsRAN_4G

RoleVersionCommit & DateOSCPU
(Min)
Mem
(Min)
HDD
(Min)
RAN & UE25.106bcbd9e5bf8686aa7085202cd847c5ddd64a9c16
2026.01.18
Ubuntu
24.04
12GB10GB

PacketRusher

RoleVersionCommit & DateOSCPU
(Min)
Mem
(Min)
HDD
(Min)
RAN & UE20250225+5bf8b4ed9350a4dfc732eb6a6074aa97d1426308
2026.03.25
Ubuntu
24.04
11GB10GB
gtp5g
(RAN)
0.10.2952fb419130f5fc44cac1874e8183312006b746c
2026.03.04
--------

Ping and iPerf3

Below are the results of confirming the operation of ping and iperf3 in my environment.

For 5G

UERANC-PlaneUPFN3/N4/N6PingiPerf3
UERANSIM [4]UERANSIMOpen5GSOpen5GSSeparateOKOK
SameOKOK
UPG-VPPSeparateOK [2]OK [2]
eUPFSeparateOKOK
OAI-CN5G-UPF [8]SeparateOK [2]OK [2]
free5GCfree5GCSeparateOKOK
SameOKOK
UPG-VPPSeparateOK [3]OK [3]
eUPFSeparateOKOK
OAI-CN5G-UPF [8]SeparateOKOK
srsRAN_4G [5]OCUDU
(srsRAN_Project)
Open5GSOpen5GSSeparateOKOK
SameOKOK
UPG-VPPSeparateOK [1][2]OK [1][2]
eUPFSeparateOKOK
OAI-CN5G-UPF [8]SeparateOK [2]OK [2]
free5GCfree5GCSeparateOKOK
SameOKOK
UPG-VPPSeparateOK [1][3]OK [1][3]
eUPFSeparateOKOK
OAI-CN5G-UPF [8]SeparateOKOK
PacketRusher [6]PacketRusherOpen5GSOpen5GSSeparateOKOK
SameOKOK
UPG-VPPSeparateOK [2]OK [2]
eUPFSeparateOKOK
OAI-CN5G-UPF [8]SeparateOK [2]OK [2]
free5GCfree5GCSeparateOKOK
SameOKOK
UPG-VPPSeparateOK [3]OK [3]
eUPFSeparateOKOK
OAI-CN5G-UPF [8]SeparateOKOK

For 4G

UERANC-PlaneSGW-UPGW-U (UPF)S5u/Sxb/SGiPingiPerf3
srsRAN_4G [7]srsRAN_4GOpen5GSOpen5GSOpen5GSSeparateOKOK
SameOKOK
UPG-VPPSeparateOK [2]OK [2]
eUPFSeparateOKOK

  1. UPG-VPP v1.13.0 does not support PDU Session container. Therefore, some gNodeBs such as srsRAN_Project, may not accept GTP traffic from UPG-VPP. In that case, please refer to this note. In these results, I applied this temporary patch and confirmed that it worked with the gNodeB of srsRAN_Project.

  2. To connect Open5GS SMF to UPG-VPP, add the following parameter use_upg_vpp: true in smf.yaml. See here for the reason.

    smf.yaml

    global:
      parameter:
        use_upg_vpp: true
    
  3. To connect free5GC SMF to UPG-VPP, add the following parameter nwInstFqdnEncoding: true in smfcfg.yaml. See here for the reason.

    smfcfg.yaml

    configuration:
      nwInstFqdnEncoding: true
    
  4. The MTU of the tunnel interface of UERANSIM is fixed at 1400 bytes.

  5. The MTU of the tunnel interface of srsRAN_4G NR-UE is 1500 bytes by default. With this value, uplink packets are fragmented at srsRAN_Project gNodeB. So for avoiding IP fragmentation, reduce the MTU of the tunnel interface of srsRAN_4G NR-UE to 1456 bytes. This 1456 bytes is 1500 bytes minus 44 bytes. The 44 bytes is the size of the headers added when srsRAN_Project gNodeB encapsulates the uplink packets into GTP-U, and consists of IP Header (20 bytes), UDP Header (8 bytes) and GTP-U Header (12 bytes + 4 bytes) including one GTP-U Extension Header for QFI. See 3GPP TS 29.281 - 5 GTP-U header. For example, if the tunnel interface of srsRAN_4G NR-UE is tun_srsue, set it as follows.

    # ip link set tun_srsue mtu 1456
    
  6. The MTU of the tunnel interface of PacketRusher NR-UE is 1464 bytes by default. With this value, uplink packets are fragmented at the gNodeB equivalent function in PacketRusher. So for avoiding IP fragmentation, reduce the MTU of the tunnel interface of PacketRusher NR-UE to 1456 bytes. This 1456 bytes is the same meaning as the value explained in [5]. For example, if the interface assigned to VRF of PacketRusher is val0000001000, set it as follows.

    # ip link set val0000001000 mtu 1456
    
  7. The MTU of the tunnel interface of srsRAN_4G UE is 1500 bytes by default. With this value, uplink packets are fragmented at srsRAN_4G eNodeB. So for avoiding IP fragmentation, reduce the MTU of the tunnel interface of srsRAN_4G UE to 1464 bytes. This 1464 bytes is 1500 bytes minus 36 bytes. The 36 bytes is the size of the headers added when srsRAN_4G eNodeB encapsulates the uplink packets into GTP-U, and consists of IP Header (20 bytes), UDP Header (8 bytes) and GTP-U Header (8 bytes, No Sequence Number and No GTP-U Extension Header). See 3GPP TS 29.281 - 5 GTP-U header. For example, if the tunnel interface of srsRAN_4G UE is tun_srsue, set it as follows.

    # ip link set tun_srsue mtu 1464
    
  8. In my environment, when try to make OAI-CN5G-UPF work with Open5GS or free5GC C-Plane, the results of a simple operation confirmation were as follows. Please refer to here for the version and detailed build instructions.

    UPF modeOpen5GSfree5GC
    Simple SwitchOK (*i)NG
    eBPF/XDPOKOK
    1. In N3 downlink packets from OAI-CN5G-UPF to gNodeB, the QFI of PDU session container in GTP-U extension header may be 0. In this case, for example, the gNodeB of srsRAN_Project seems to drop such packets. In my environment, the issue has not been solved yet.
      Also, the gNodeBs of UERANSIM and PacketRusher seem to not drop downlink packets with QFI=0.