Home

Awesome

Open5GS EPC & srsRAN 4G with ZeroMQ UE / RAN Sample Configuration - Select nearby UPF(PGW-U) according to the connected eNodeB

On 2023.05.05, Open5GS MME has a function to select SMF(PGW-C) by TAC and e_CellID. Therefore I describe a very simple configuration that uses Open5GS and srsRAN 4G to select a nearby UPF(PGW-U) according to the connected eNodeB.


Sample Configurations and Miscellaneous for Mobile Network


<a id="toc"></a>

Table of Contents


<a id="overview"></a>

Overview of Open5GS CUPS-enabled EPC Simulation Mobile Network

The following minimum configuration was set as a condition.

In this example, TAC is matched to connect eNodeB and MME, and MME selects SGW-C/SMF(PGW-C) using TAC.

The built simulation environment is as follows.

<img src="./images/network-overview.png" title="./images/network-overview.png" width=1000px></img>

The EPC / UE / RAN used are as follows.

Each VMs are as follows.

VM#SW & RoleIP addressOSMemory (Min)HDD (Min)
VM1Open5GS EPC C-Plane192.168.0.111/24 <br> 192.168.0.112/24 <br> 192.168.0.113/24 <br> 192.168.0.114/24 <br> 192.168.0.115/24Ubuntu 22.042GB20GB
VM2Open5GS EPC U-Plane1192.168.0.116/24 <br> 192.168.0.117/24Ubuntu 22.041GB20GB
VM3Open5GS EPC U-Plane2192.168.0.118/24 <br> 192.168.0.119/24Ubuntu 22.041GB20GB
VM4srsRAN 4G ZMQ RAN (eNodeB1)192.168.0.121/24Ubuntu 22.042GB10GB
VM5srsRAN 4G ZMQ RAN (eNodeB2)192.168.0.122/24Ubuntu 22.042GB10GB
VM6srsRAN 4G ZMQ UE192.168.0.123/24 <br> 192.168.0.124/24Ubuntu 22.042GB10GB

MME, SGW-C, SMF(PGW-C) and PCRF addresses are as follows.

NFIP addressLocal addressSupported TACs
MME192.168.0.111127.0.0.21, 2
SGW-C1192.168.0.112127.0.0.31
SMF1(PGW-C)192.168.0.113127.0.0.41
PCRF1--127.0.0.9--
SGW-C2192.168.0.114127.0.0.232
SMF2(PGW-C)192.168.0.115127.0.0.242
PCRF2--127.0.0.29--

The main information of eNodeBs is as follows.

eNodeB#Location#IP addressMCCMNCTACeNodeB IDCell IDE-UTRAN Cell ID
eNodeB1Loc1192.168.0.1210010110x19b0x010x19b01
eNodeB2Loc2192.168.0.1220010120x19c0x010x19c01

Subscriber Information (other information is the same) is as follows.

UEIMSIPDNOP/OPceNodeB#IP address in ue.conf of srsRAN UE
UE001010000000100internetOPceNodeB1 in Loc1 <br> eNodeB2 in Loc2192.168.0.123 in ue-loc1.conf <br> 192.168.0.124 in ue-loc2.conf

I registered these information with the Open5GS WebUI. In addition, 3GPP TS 35.208 "4.3 Test Sets" is published by 3GPP as test data for the 3GPP authentication and key generation functions (MILENAGE).

Each PDNs are as follows.

PDNLocation#TUNnel interface of PDNAPNTUNnel interface of UEU-Plane#
10.45.0.0/16Loc1ogstuninternettun_srsueU-Plane1
10.46.0.0/16Loc2ogstuninternettun_srsueU-Plane2

<a id="changes"></a>

Changes in configuration files of Open5GS EPC and srsRAN 4G ZMQ UE / RAN

Please refer to the following for building Open5GS and srsRAN 4G ZMQ UE / RAN respectively.

<a id="changes_cp"></a>

Changes in configuration files of Open5GS EPC C-Plane

--- mme.yaml.orig       2024-03-26 21:08:49.043124819 +0900
+++ mme.yaml    2024-03-26 21:15:04.190099414 +0900
@@ -11,30 +11,36 @@
   freeDiameter: /root/open5gs/install/etc/freeDiameter/mme.conf
   s1ap:
     server:
-      - address: 127.0.0.2
+      - address: 192.168.0.111
   gtpc:
     server:
       - address: 127.0.0.2
     client:
       sgwc:
         - address: 127.0.0.3
+          tac: 1
+        - address: 127.0.0.23
+          tac: 2
       smf:
         - address: 127.0.0.4
+          tac: 1
+        - address: 127.0.0.24
+          tac: 2
   metrics:
     server:
       - address: 127.0.0.2
         port: 9090
   gummei:
     - plmn_id:
-        mcc: 999
-        mnc: 70
+        mcc: 001
+        mnc: 01
       mme_gid: 2
       mme_code: 1
   tai:
     - plmn_id:
-        mcc: 999
-        mnc: 70
-      tac: 1
+        mcc: 001
+        mnc: 01
+      tac: [1, 2]
   security:
     integrity_order : [ EIA2, EIA1, EIA0 ]
     ciphering_order : [ EEA0, EEA1, EEA2 ]
--- sgwc.yaml.orig      2024-03-24 15:36:48.000000000 +0900
+++ sgwc1.yaml  2024-03-26 21:23:17.961823380 +0900
@@ -1,5 +1,5 @@
 logger:
-  file: /root/open5gs/install/var/log/open5gs/sgwc.log
+  file: /root/open5gs/install/var/log/open5gs/sgwc1.log
 #  level: info   # fatal|error|warn|info(default)|debug|trace
 
 global:
@@ -13,10 +13,11 @@
       - address: 127.0.0.3
   pfcp:
     server:
-      - address: 127.0.0.3
+      - address: 192.168.0.112
     client:
       sgwu:
-        - address: 127.0.0.6
+        - address: 192.168.0.116
+          apn: internet
 
 ################################################################################
 # GTP-C Server
--- sgwc.yaml.orig      2024-03-24 15:36:48.000000000 +0900
+++ sgwc2.yaml  2024-03-26 21:24:49.360916445 +0900
@@ -1,5 +1,5 @@
 logger:
-  file: /root/open5gs/install/var/log/open5gs/sgwc.log
+  file: /root/open5gs/install/var/log/open5gs/sgwc2.log
 #  level: info   # fatal|error|warn|info(default)|debug|trace
 
 global:
@@ -10,13 +10,14 @@
 sgwc:
   gtpc:
     server:
-      - address: 127.0.0.3
+      - address: 127.0.0.23
   pfcp:
     server:
-      - address: 127.0.0.3
+      - address: 192.168.0.114
     client:
       sgwu:
-        - address: 127.0.0.6
+        - address: 192.168.0.118
+          apn: internet
 
 ################################################################################
 # GTP-C Server
--- smf.yaml.orig       2024-03-24 15:36:48.000000000 +0900
+++ smf1.yaml   2024-03-26 21:40:41.665942424 +0900
@@ -1,5 +1,5 @@
 logger:
-  file: /root/open5gs/install/var/log/open5gs/smf.log
+  file: /root/open5gs/install/var/log/open5gs/smf1.log
 #  level: info   # fatal|error|warn|info(default)|debug|trace
 
 global:
@@ -8,46 +8,36 @@
 #    peer: 64
 
 smf:
-  sbi:
-    server:
-      - address: 127.0.0.4
-        port: 7777
-    client:
-#      nrf:
-#        - uri: http://127.0.0.10:7777
-      scp:
-        - uri: http://127.0.0.200:7777
   pfcp:
     server:
-      - address: 127.0.0.4
+      - address: 192.168.0.113
     client:
       upf:
-        - address: 127.0.0.7
+        - address: 192.168.0.117
+          dnn: internet
   gtpc:
     server:
       - address: 127.0.0.4
   gtpu:
     server:
-      - address: 127.0.0.4
+      - address: 192.168.0.113
   metrics:
     server:
       - address: 127.0.0.4
         port: 9090
   session:
     - subnet: 10.45.0.1/16
-    - subnet: 2001:db8:cafe::1/48
+      dnn: internet
   dns:
     - 8.8.8.8
     - 8.8.4.4
-    - 2001:4860:4860::8888
-    - 2001:4860:4860::8844
   mtu: 1400
 #  p-cscf:
 #    - 127.0.0.1
 #    - ::1
 #  ctf:
 #    enabled: auto   # auto(default)|yes|no
-  freeDiameter: /root/open5gs/install/etc/freeDiameter/smf.conf
+  freeDiameter: /root/open5gs/install/etc/freeDiameter/smf1.conf
 
 ################################################################################
 # SMF Info
--- smf.yaml.orig       2024-03-24 15:36:48.000000000 +0900
+++ smf2.yaml   2024-03-26 21:43:03.901126326 +0900
@@ -1,5 +1,5 @@
 logger:
-  file: /root/open5gs/install/var/log/open5gs/smf.log
+  file: /root/open5gs/install/var/log/open5gs/smf2.log
 #  level: info   # fatal|error|warn|info(default)|debug|trace
 
 global:
@@ -8,46 +8,36 @@
 #    peer: 64
 
 smf:
-  sbi:
-    server:
-      - address: 127.0.0.4
-        port: 7777
-    client:
-#      nrf:
-#        - uri: http://127.0.0.10:7777
-      scp:
-        - uri: http://127.0.0.200:7777
   pfcp:
     server:
-      - address: 127.0.0.4
+      - address: 192.168.0.115
     client:
       upf:
-        - address: 127.0.0.7
+        - address: 192.168.0.119
+          dnn: internet
   gtpc:
     server:
-      - address: 127.0.0.4
+      - address: 127.0.0.24
   gtpu:
     server:
-      - address: 127.0.0.4
+      - address: 192.168.0.115
   metrics:
     server:
-      - address: 127.0.0.4
+      - address: 127.0.0.24
         port: 9090
   session:
-    - subnet: 10.45.0.1/16
-    - subnet: 2001:db8:cafe::1/48
+    - subnet: 10.46.0.1/16
+      dnn: internet
   dns:
     - 8.8.8.8
     - 8.8.4.4
-    - 2001:4860:4860::8888
-    - 2001:4860:4860::8844
   mtu: 1400
 #  p-cscf:
 #    - 127.0.0.1
 #    - ::1
 #  ctf:
 #    enabled: auto   # auto(default)|yes|no
-  freeDiameter: /root/open5gs/install/etc/freeDiameter/smf.conf
+  freeDiameter: /root/open5gs/install/etc/freeDiameter/smf2.conf
 
 ################################################################################
 # SMF Info
--- pcrf.yaml.orig      2024-03-24 15:36:48.000000000 +0900
+++ pcrf1.yaml  2024-03-26 21:20:14.892315834 +0900
@@ -1,6 +1,6 @@
 db_uri: mongodb://localhost/open5gs
 logger:
-  file: /root/open5gs/install/var/log/open5gs/pcrf.log
+  file: /root/open5gs/install/var/log/open5gs/pcrf1.log
 #  level: info   # fatal|error|warn|info(default)|debug|trace
 
 global:
@@ -8,7 +8,7 @@
     ue: 1024  # The number of UE can be increased depending on memory size.
 #    peer: 64
 pcrf:
-  freeDiameter: /root/open5gs/install/etc/freeDiameter/pcrf.conf
+  freeDiameter: /root/open5gs/install/etc/freeDiameter/pcrf1.conf
 
 ################################################################################
 # Locally configured policy
--- pcrf.yaml.orig      2024-03-24 15:36:48.000000000 +0900
+++ pcrf2.yaml  2024-03-26 21:20:44.598488192 +0900
@@ -1,6 +1,6 @@
 db_uri: mongodb://localhost/open5gs
 logger:
-  file: /root/open5gs/install/var/log/open5gs/pcrf.log
+  file: /root/open5gs/install/var/log/open5gs/pcrf2.log
 #  level: info   # fatal|error|warn|info(default)|debug|trace
 
 global:
@@ -8,7 +8,7 @@
     ue: 1024  # The number of UE can be increased depending on memory size.
 #    peer: 64
 pcrf:
-  freeDiameter: /root/open5gs/install/etc/freeDiameter/pcrf.conf
+  freeDiameter: /root/open5gs/install/etc/freeDiameter/pcrf2.conf
 
 ################################################################################
 # Locally configured policy
--- smf.conf.orig       2023-04-30 00:53:22.000000000 +0900
+++ smf2.conf   2023-05-03 11:20:46.000000000 +0900
@@ -79,7 +79,7 @@
 #ListenOn = "202.249.37.5";
 #ListenOn = "2001:200:903:2::202:1";
 #ListenOn = "fe80::21c:5ff:fe98:7d62%eth0";
-ListenOn = "127.0.0.4";
+ListenOn = "127.0.0.24";
 
 
 ##############################################################
@@ -261,7 +261,7 @@
 # Examples:
 #ConnectPeer = "aaa.wide.ad.jp";
 #ConnectPeer = "old.diameter.serv" { TcTimer = 60; TLS_old_method; No_SCTP; Port=3868; } ;
-ConnectPeer = "pcrf.localdomain" { ConnectTo = "127.0.0.9"; No_TLS; };
+ConnectPeer = "pcrf.localdomain" { ConnectTo = "127.0.0.29"; No_TLS; };
 
 
 ##############################################################
--- pcrf.conf.orig      2023-04-30 00:53:22.000000000 +0900
+++ pcrf2.conf  2023-05-07 18:32:04.246141671 +0900
@@ -79,7 +79,7 @@
 #ListenOn = "202.249.37.5";
 #ListenOn = "2001:200:903:2::202:1";
 #ListenOn = "fe80::21c:5ff:fe98:7d62%eth0";
-ListenOn = "127.0.0.9";
+ListenOn = "127.0.0.29";
 
 
 ##############################################################
@@ -261,6 +261,6 @@
 # Examples:
 #ConnectPeer = "aaa.wide.ad.jp";
 #ConnectPeer = "old.diameter.serv" { TcTimer = 60; TLS_old_method; No_SCTP; Port=3868; } ;
-ConnectPeer = "smf.localdomain" { ConnectTo = "127.0.0.4"; No_TLS; };
+ConnectPeer = "smf.localdomain" { ConnectTo = "127.0.0.24"; No_TLS; };

<a id="changes_up1"></a>

Changes in configuration files of Open5GS EPC U-Plane1

--- sgwu.yaml.orig      2024-03-24 15:36:48.000000000 +0900
+++ sgwu.yaml   2024-03-26 21:27:23.904812158 +0900
@@ -10,13 +10,13 @@
 sgwu:
   pfcp:
     server:
-      - address: 127.0.0.6
+      - address: 192.168.0.116
     client:
 #      sgwc:    # SGW-U PFCP Client try to associate SGW-C PFCP Server
 #        - address: 127.0.0.3
   gtpu:
     server:
-      - address: 127.0.0.6
+      - address: 192.168.0.116
 
 ################################################################################
 # PFCP Server
--- upf.yaml.orig       2024-03-24 15:36:48.000000000 +0900
+++ upf.yaml    2024-03-26 21:28:47.034199450 +0900
@@ -10,16 +10,17 @@
 upf:
   pfcp:
     server:
-      - address: 127.0.0.7
+      - address: 192.168.0.117
     client:
 #      smf:     #  UPF PFCP Client try to associate SMF PFCP Server
 #        - address: 127.0.0.4
   gtpu:
     server:
-      - address: 127.0.0.7
+      - address: 192.168.0.117
   session:
     - subnet: 10.45.0.1/16
-    - subnet: 2001:db8:cafe::1/48
+      dnn: internet
+      dev: ogstun
   metrics:
     server:
       - address: 127.0.0.7

<a id="changes_up2"></a>

Changes in configuration files of Open5GS EPC U-Plane2

--- sgwu.yaml.orig      2024-03-24 15:36:48.000000000 +0900
+++ sgwu.yaml   2024-03-26 21:30:55.482070178 +0900
@@ -10,13 +10,13 @@
 sgwu:
   pfcp:
     server:
-      - address: 127.0.0.6
+      - address: 192.168.0.118
     client:
 #      sgwc:    # SGW-U PFCP Client try to associate SGW-C PFCP Server
 #        - address: 127.0.0.3
   gtpu:
     server:
-      - address: 127.0.0.6
+      - address: 192.168.0.118
 
 ################################################################################
 # PFCP Server
--- upf.yaml.orig       2024-03-24 15:36:48.000000000 +0900
+++ upf.yaml    2024-03-26 21:32:08.918140789 +0900
@@ -10,16 +10,17 @@
 upf:
   pfcp:
     server:
-      - address: 127.0.0.7
+      - address: 192.168.0.119
     client:
 #      smf:     #  UPF PFCP Client try to associate SMF PFCP Server
 #        - address: 127.0.0.4
   gtpu:
     server:
-      - address: 127.0.0.7
+      - address: 192.168.0.119
   session:
-    - subnet: 10.45.0.1/16
-    - subnet: 2001:db8:cafe::1/48
+    - subnet: 10.46.0.1/16
+      dnn: internet
+      dev: ogstun
   metrics:
     server:
       - address: 127.0.0.7

<a id="changes_srs"></a>

Changes in configuration files of srsRAN 4G ZMQ UE / RAN

<a id="changes_ran1"></a>

Changes in configuration files of RAN (eNodeB1)

--- enb.conf.example    2024-02-03 23:26:02.000000000 +0900
+++ enb.conf    2024-03-26 22:22:42.897283128 +0900
@@ -22,9 +22,9 @@
 enb_id = 0x19B
 mcc = 001
 mnc = 01
-mme_addr = 127.0.1.100
-gtp_bind_addr = 127.0.1.1
-s1c_bind_addr = 127.0.1.1
+mme_addr = 192.168.0.111
+gtp_bind_addr = 192.168.0.121
+s1c_bind_addr = 192.168.0.121
 s1c_bind_port = 0
 n_prb = 50
 #tm = 4
@@ -80,8 +80,8 @@
 #time_adv_nsamples = auto
 
 # Example for ZMQ-based operation with TCP transport for I/Q samples
-#device_name = zmq
-#device_args = fail_on_disconnect=true,tx_port=tcp://*:2000,rx_port=tcp://localhost:2001,id=enb,base_srate=23.04e6
+device_name = zmq
+device_args = fail_on_disconnect=true,tx_port=tcp://192.168.0.121:2000,rx_port=tcp://192.168.0.123:2001,id=enb,base_srate=23.04e6
 
 #####################################################################
 # Packet capture configuration
--- rr.conf.example     2024-02-03 23:26:02.000000000 +0900
+++ rr.conf     2023-05-02 11:52:54.000000000 +0900
@@ -55,7 +55,7 @@
   {
     // rf_port = 0;
     cell_id = 0x01;
-    tac = 0x0007;
+    tac = 0x0001;
     pci = 1;
     // root_seq_idx = 204;
     dl_earfcn = 3350;

<a id="changes_ran2"></a>

Changes in configuration files of RAN (eNodeB2)

--- enb.conf.example    2024-02-03 23:26:02.000000000 +0900
+++ enb.conf    2024-03-26 22:22:23.396225954 +0900
@@ -19,12 +19,12 @@
 #
 #####################################################################
 [enb]
-enb_id = 0x19B
+enb_id = 0x19C
 mcc = 001
 mnc = 01
-mme_addr = 127.0.1.100
-gtp_bind_addr = 127.0.1.1
-s1c_bind_addr = 127.0.1.1
+mme_addr = 192.168.0.111
+gtp_bind_addr = 192.168.0.122
+s1c_bind_addr = 192.168.0.122
 s1c_bind_port = 0
 n_prb = 50
 #tm = 4
@@ -80,8 +80,8 @@
 #time_adv_nsamples = auto
 
 # Example for ZMQ-based operation with TCP transport for I/Q samples
-#device_name = zmq
-#device_args = fail_on_disconnect=true,tx_port=tcp://*:2000,rx_port=tcp://localhost:2001,id=enb,base_srate=23.04e6
+device_name = zmq
+device_args = fail_on_disconnect=true,tx_port=tcp://192.168.0.122:2000,rx_port=tcp://192.168.0.124:2001,id=enb,base_srate=23.04e6
 
 #####################################################################
 # Packet capture configuration
--- rr.conf.example     2024-02-03 23:26:02.000000000 +0900
+++ rr.conf     2024-03-26 22:05:16.860031943 +0900
@@ -55,7 +55,7 @@
   {
     // rf_port = 0;
     cell_id = 0x01;
-    tac = 0x0007;
+    tac = 0x0002;
     pci = 1;
     // root_seq_idx = 204;
     dl_earfcn = 3350;

<a id="changes_ue_loc1"></a>

Changes in configuration files of UE for Loc1 (IMSI-001010000000100)

--- ue.conf.example     2024-02-03 23:26:02.000000000 +0900
+++ ue-loc1.conf        2024-03-26 22:07:25.360060344 +0900
@@ -42,8 +42,8 @@
 #continuous_tx     = auto
 
 # Example for ZMQ-based operation with TCP transport for I/Q samples
-#device_name = zmq
-#device_args = tx_port=tcp://*:2001,rx_port=tcp://localhost:2000,id=ue,base_srate=23.04e6
+device_name = zmq
+device_args = tx_port=tcp://192.168.0.123:2001,rx_port=tcp://192.168.0.121:2000,id=ue,base_srate=23.04e6
 
 #####################################################################
 # EUTRA RAT configuration
@@ -139,9 +139,9 @@
 [usim]
 mode = soft
 algo = milenage
-opc  = 63BFA50EE6523365FF14C1F45F88737D
-k    = 00112233445566778899aabbccddeeff
-imsi = 001010123456780
+opc  = E8ED289DEBA952E4283B54E88E6183CA
+k    = 465B5CE8B199B49FAA5F0A2EE238A6BC
+imsi = 001010000000100
 imei = 353490069873319
 #reader =
 #pin  = 1234
@@ -180,8 +180,8 @@
 #                      Supported: 0 - NULL, 1 - Snow3G, 2 - AES, 3 - ZUC
 #####################################################################
 [nas]
-#apn = internetinternet
-#apn_protocol = ipv4
+apn = internet
+apn_protocol = ipv4
 #user = srsuser
 #pass = srspass
 #force_imsi_attach = false

<a id="changes_ue_loc2"></a>

Changes in configuration files of UE for Loc2 (IMSI-001010000000100)

--- ue.conf.example     2024-02-03 23:26:02.000000000 +0900
+++ ue-loc2.conf        2024-03-26 22:10:41.453215867 +0900
@@ -42,8 +42,8 @@
 #continuous_tx     = auto
 
 # Example for ZMQ-based operation with TCP transport for I/Q samples
-#device_name = zmq
-#device_args = tx_port=tcp://*:2001,rx_port=tcp://localhost:2000,id=ue,base_srate=23.04e6
+device_name = zmq
+device_args = tx_port=tcp://192.168.0.124:2001,rx_port=tcp://192.168.0.122:2000,id=ue,base_srate=23.04e6
 
 #####################################################################
 # EUTRA RAT configuration
@@ -139,9 +139,9 @@
 [usim]
 mode = soft
 algo = milenage
-opc  = 63BFA50EE6523365FF14C1F45F88737D
-k    = 00112233445566778899aabbccddeeff
-imsi = 001010123456780
+opc  = E8ED289DEBA952E4283B54E88E6183CA
+k    = 465B5CE8B199B49FAA5F0A2EE238A6BC
+imsi = 001010000000100
 imei = 353490069873319
 #reader =
 #pin  = 1234
@@ -180,8 +180,8 @@
 #                      Supported: 0 - NULL, 1 - Snow3G, 2 - AES, 3 - ZUC
 #####################################################################
 [nas]
-#apn = internetinternet
-#apn_protocol = ipv4
+apn = internet
+apn_protocol = ipv4
 #user = srsuser
 #pass = srspass
 #force_imsi_attach = false

<a id="network_settings"></a>

Network settings of Open5GS EPC and srsRAN 4G ZMQ UE / RAN

<a id="network_settings_cp"></a>

Network settings of Open5GS EPC C-Plane

Add IP addresses for SGW-C1/SMF1(PGW-C) and SGW-C2/SMF2(PGW-C).

ip addr add 192.168.0.112/24 dev enp0s8
ip addr add 192.168.0.113/24 dev enp0s8
ip addr add 192.168.0.114/24 dev enp0s8
ip addr add 192.168.0.115/24 dev enp0s8

Note. enp0s8 is the network interface of 192.168.0.0/24 in my VirtualBox environment. Please change it according to your environment.

<a id="network_settings_up1"></a>

Network settings of Open5GS EPC U-Plane1

First, uncomment the next line in the /etc/sysctl.conf file and reflect it in the OS.

net.ipv4.ip_forward=1
# sysctl -p

Next, add IP address for UPF(PGW-U) and configure the TUNnel interface and NAPT.

ip addr add 192.168.0.117/24 dev enp0s8

ip tuntap add name ogstun mode tun
ip addr add 10.45.0.1/16 dev ogstun
ip link set ogstun up

iptables -t nat -A POSTROUTING -s 10.45.0.0/16 ! -o ogstun -j MASQUERADE

<a id="network_settings_up2"></a>

Network settings of Open5GS EPC U-Plane2

First, uncomment the next line in the /etc/sysctl.conf file and reflect it in the OS.

net.ipv4.ip_forward=1
# sysctl -p

Next, add IP address for UPF(PGW-U) and configure the TUNnel interface and NAPT.

ip addr add 192.168.0.119/24 dev enp0s8

ip tuntap add name ogstun mode tun
ip addr add 10.46.0.1/16 dev ogstun
ip link set ogstun up

iptables -t nat -A POSTROUTING -s 10.46.0.0/16 ! -o ogstun -j MASQUERADE

<a id="network_settings_ue"></a>

Network settings of srsRAN 4G ZMQ UE

Add IP address for UE in Loc2.

ip addr add 192.168.0.124/24 dev enp0s8

<a id="build"></a>

Build Open5GS and srsRAN 4G ZMQ UE / RAN

Please refer to the following for building Open5GS and srsRAN 4G ZMQ UE / RAN respectively.

Install MongoDB on Open5GS EPC C-Plane machine. It is not necessary to install MongoDB on Open5GS EPC U-Plane machines. MongoDB Compass is a convenient tool to look at the MongoDB database.

<a id="run"></a>

Run Open5GS EPC and srsRAN 4G ZMQ UE / RAN

I will confirm in the following scenario. The reasons to confirm in such a scenario are as follows:

The reason for Open5GS

The reason for srsRAN 4G with ZMQ

This scenario:

1) EPC start

     C-Plane start
               |
               V
    U-Plane1 start
               |
               V
    U-Plane2 start

2) eNodeB1/UE(Loc1) start, ping and eNodeB1/UE(Loc1) stop

     eNodeB1 start
               |
               V
    UE(Loc1) start
               |
               V
             ping google.com -I tun_srsue -n
               |
               V
    UE(Loc1) stop
               |
               V
     eNodeB1 stop

3) MME restart

4) eNodeB2/UE(Loc2) start, ping and eNodeB2/UE(Loc2) stop

     eNodeB2 start
               |
               V
    UE(Loc2) start
               |
               V
             ping google.com -I tun_srsue -n
               |
               V
    UE(Loc2) stop
               |
               V
     eNodeB2 stop

Note. This scenario is just for confirming the function, and I think that restarting MME to change SGW is not proper for real usage.

<a id="run_cp"></a>

Run Open5GS EPC C-Plane

First, run Open5GS EPC C-Plane.

./install/bin/open5gs-mmed &
./install/bin/open5gs-sgwcd -c install/etc/open5gs/sgwc1.yaml &
./install/bin/open5gs-sgwcd -c install/etc/open5gs/sgwc2.yaml &
./install/bin/open5gs-smfd -c install/etc/open5gs/smf1.yaml &
./install/bin/open5gs-smfd -c install/etc/open5gs/smf2.yaml &
./install/bin/open5gs-hssd &
./install/bin/open5gs-pcrfd -c install/etc/open5gs/pcrf1.yaml &
./install/bin/open5gs-pcrfd -c install/etc/open5gs/pcrf2.yaml &

<a id="run_up"></a>

Run Open5GS EPC U-Plane1 & U-Plane2

Next, run Open5GS EPC U-Planes.

./install/bin/open5gs-sgwud &
./install/bin/open5gs-upfd &
./install/bin/open5gs-sgwud &
./install/bin/open5gs-upfd &

Then run tcpdump on one more terminal for each U-Plane.

# tcpdump -i ogstun -n
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on ogstun, link-type RAW (Raw IP), snapshot length 262144 bytes
# tcpdump -i ogstun -n
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on ogstun, link-type RAW (Raw IP), snapshot length 262144 bytes

<a id="confirm_loc1"></a>

Confirm in Loc1 (TAC=1)

<a id="run_ran1"></a>

Run srsRAN 4G ZMQ RAN (eNodeB1) with TAC=1 in Loc1

Run srsRAN 4G ZMQ RAN (eNodeB1) and connect to Open5GS EPC.

# cd srsRAN_4G/build/srsenb
# ./src/srsenb enb.conf
---  Software Radio Systems LTE eNodeB  ---

Reading configuration file enb.conf...

Built in Release mode using commit ec29b0c1f on branch master.

Opening 1 channels in RF device=zmq with args=fail_on_disconnect=true,tx_port=tcp://192.168.0.121:2000,rx_port=tcp://192.168.0.123:2001,id=enb,base_srate=23.04e6
Supported RF device list: zmq file
CHx base_srate=23.04e6
CHx id=enb
Current sample rate is 1.92 MHz with a base rate of 23.04 MHz (x12 decimation)
CH0 rx_port=tcp://192.168.0.123:2001
CH0 tx_port=tcp://192.168.0.121:2000
CH0 fail_on_disconnect=true

==== eNodeB started ===
Type <t> to view trace
Current sample rate is 11.52 MHz with a base rate of 23.04 MHz (x2 decimation)
Current sample rate is 11.52 MHz with a base rate of 23.04 MHz (x2 decimation)
Setting frequency: DL=2680.0 Mhz, UL=2560.0 MHz for cc_idx=0 nof_prb=50

The Open5GS C-Plane log when executed is as follows.

03/26 22:52:28.575: [mme] INFO: eNB-S1 accepted[192.168.0.121]:46778 in s1_path module (../src/mme/s1ap-sctp.c:114)
03/26 22:52:28.575: [mme] INFO: eNB-S1 accepted[192.168.0.121] in master_sm module (../src/mme/mme-sm.c:108)
03/26 22:52:28.575: [mme] INFO: [Added] Number of eNBs is now 1 (../src/mme/mme-context.c:2829)
03/26 22:52:28.575: [mme] INFO: eNB-S1[192.168.0.121] max_num_of_ostreams : 30 (../src/mme/mme-sm.c:150)

<a id="run_ue1"></a>

Run srsRAN 4G ZMQ UE (ue-loc1.conf) connected to eNodeB1 in Loc1

Run srsRAN 4G ZMQ UE (ue-loc1.conf), connect to eNodeB1 in Loc1 and connect to Open5GS EPC.

# cd srsRAN_4G/build/srsue
# ./src/srsue ue-loc1.conf
Reading configuration file ue-loc1.conf...

Built in Release mode using commit ec29b0c1f on branch master.

Opening 1 channels in RF device=zmq with args=tx_port=tcp://192.168.0.123:2001,rx_port=tcp://192.168.0.121:2000,id=ue,base_srate=23.04e6
Supported RF device list: zmq file
CHx base_srate=23.04e6
CHx id=ue
Current sample rate is 1.92 MHz with a base rate of 23.04 MHz (x12 decimation)
CH0 rx_port=tcp://192.168.0.121:2000
CH0 tx_port=tcp://192.168.0.123:2001
Waiting PHY to initialize ... done!
Attaching UE...
Current sample rate is 1.92 MHz with a base rate of 23.04 MHz (x12 decimation)
Current sample rate is 1.92 MHz with a base rate of 23.04 MHz (x12 decimation)
.
Found Cell:  Mode=FDD, PCI=1, PRB=50, Ports=1, CP=Normal, CFO=-0.2 KHz
Current sample rate is 11.52 MHz with a base rate of 23.04 MHz (x2 decimation)
Current sample rate is 11.52 MHz with a base rate of 23.04 MHz (x2 decimation)
Found PLMN:  Id=00101, TAC=1
Random Access Transmission: seq=35, tti=181, ra-rnti=0x2
RRC Connected
Random Access Complete.     c-rnti=0x46, ta=0
Network attach successful. IP: 10.45.0.2
 nTp) ((t) 26/3/2024 13:53:21 TZ:99

The Open5GS C-Plane log when executed is as follows.

03/26 22:53:20.522: [mme] INFO: InitialUEMessage (../src/mme/s1ap-handler.c:406)
03/26 22:53:20.522: [mme] INFO: [Added] Number of eNB-UEs is now 1 (../src/mme/mme-context.c:4735)
03/26 22:53:20.522: [mme] INFO: Unknown UE by S_TMSI[G:2,C:1,M_TMSI:0xc0000146] (../src/mme/s1ap-handler.c:485)
03/26 22:53:20.522: [mme] INFO:     ENB_UE_S1AP_ID[1] MME_UE_S1AP_ID[1] TAC[1] CellID[0x19b01] (../src/mme/s1ap-handler.c:585)
03/26 22:53:20.522: [mme] INFO: Unknown UE by GUTI[G:2,C:1,M_TMSI:0xc0000146] (../src/mme/mme-context.c:3586)
03/26 22:53:20.523: [mme] INFO: [Added] Number of MME-UEs is now 1 (../src/mme/mme-context.c:3379)
03/26 22:53:20.523: [emm] INFO: [] Attach request (../src/mme/emm-sm.c:423)
03/26 22:53:20.523: [emm] INFO:     GUTI[G:2,C:1,M_TMSI:0xc0000146] IMSI[Unknown IMSI] (../src/mme/emm-handler.c:236)
03/26 22:53:20.587: [emm] INFO: Identity response (../src/mme/emm-sm.c:393)
03/26 22:53:20.587: [emm] INFO:     IMSI[001010000000100] (../src/mme/emm-handler.c:428)
03/26 22:53:20.689: [mme] INFO: [Added] Number of MME-Sessions is now 1 (../src/mme/mme-context.c:4749)
03/26 22:53:20.753: [sgwc] INFO: [Added] Number of SGWC-UEs is now 1 (../src/sgwc/context.c:239)
03/26 22:53:20.753: [sgwc] INFO: [Added] Number of SGWC-Sessions is now 1 (../src/sgwc/context.c:882)
03/26 22:53:20.753: [sgwc] INFO: UE IMSI[001010000000100] APN[internet] (../src/sgwc/s11-handler.c:239)
03/26 22:53:20.754: [gtp] INFO: gtp_connect() [127.0.0.4]:2123 (../lib/gtp/path.c:60)
03/26 22:53:20.754: [smf] INFO: [Added] Number of SMF-UEs is now 1 (../src/smf/context.c:1019)
03/26 22:53:20.754: [smf] INFO: [Added] Number of SMF-Sessions is now 1 (../src/smf/context.c:3090)
03/26 22:53:20.754: [smf] INFO: UE IMSI[001010000000100] APN[internet] IPv4[10.45.0.2] IPv6[] (../src/smf/s5c-handler.c:275)
03/26 22:53:20.758: [gtp] INFO: gtp_connect() [192.168.0.117]:2152 (../lib/gtp/path.c:60)
03/26 22:53:21.058: [emm] INFO: [001010000000100] Attach complete (../src/mme/emm-sm.c:1384)
03/26 22:53:21.059: [emm] INFO:     IMSI[001010000000100] (../src/mme/emm-handler.c:275)
03/26 22:53:21.059: [emm] INFO:     UTC [2024-03-26T13:53:21] Timezone[0]/DST[0] (../src/mme/emm-handler.c:281)
03/26 22:53:21.059: [emm] INFO:     LOCAL [2024-03-26T22:53:21] Timezone[32400]/DST[0] (../src/mme/emm-handler.c:285)

The Open5GS U-Plane1 log when executed is as follows.

03/26 22:53:20.769: [sgwu] INFO: UE F-SEID[UP:0x180 CP:0x3e4] (../src/sgwu/context.c:171)
03/26 22:53:20.769: [sgwu] INFO: [Added] Number of SGWU-Sessions is now 1 (../src/sgwu/context.c:176)
03/26 22:53:20.773: [upf] INFO: [Added] Number of UPF-Sessions is now 1 (../src/upf/context.c:208)
03/26 22:53:20.773: [gtp] INFO: gtp_connect() [192.168.0.116]:2152 (../lib/gtp/path.c:60)
03/26 22:53:20.773: [gtp] INFO: gtp_connect() [192.168.0.113]:2152 (../lib/gtp/path.c:60)
03/26 22:53:20.773: [upf] INFO: UE F-SEID[UP:0x6cd CP:0x8da] APN[internet] PDN-Type[1] IPv4[10.45.0.2] IPv6[] (../src/upf/context.c:485)
03/26 22:53:20.773: [upf] INFO: UE F-SEID[UP:0x6cd CP:0x8da] APN[internet] PDN-Type[1] IPv4[10.45.0.2] IPv6[] (../src/upf/context.c:485)
03/26 22:53:20.774: [gtp] INFO: gtp_connect() [192.168.0.117]:2152 (../lib/gtp/path.c:60)
03/26 22:53:21.076: [gtp] INFO: gtp_connect() [192.168.0.121]:2152 (../lib/gtp/path.c:60)

The result of ip addr show on VM6 (UE) is as follows.

# ip addr show
...
8: tun_srsue: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 500
    link/none 
    inet 10.45.0.2/24 scope global tun_srsue
       valid_lft forever preferred_lft forever
...

<a id="ping_ue1"></a>

Ping google.com going through PDN=10.45.0.0/16 on Loc1

Confirm by using tcpdump that the packet goes through if=ogstun on U-Plane1.

# ping google.com -I tun_srsue -n
PING google.com (142.250.207.14) from 10.45.0.2 tun_srsue: 56(84) bytes of data.
64 bytes from 142.250.207.14: icmp_seq=1 ttl=61 time=371 ms
64 bytes from 142.250.207.14: icmp_seq=2 ttl=61 time=86.4 ms
64 bytes from 142.250.207.14: icmp_seq=3 ttl=61 time=97.0 ms

The tcpdump log on U-Plane1 is as follows.

22:55:00.370286 IP 10.45.0.2 > 142.250.207.14: ICMP echo request, id 5, seq 1, length 64
22:55:00.419638 IP 142.250.207.14 > 10.45.0.2: ICMP echo reply, id 5, seq 1, length 64
22:55:01.181410 IP 10.45.0.2 > 142.250.207.14: ICMP echo request, id 5, seq 2, length 64
22:55:01.217645 IP 142.250.207.14 > 10.45.0.2: ICMP echo reply, id 5, seq 2, length 64
22:55:02.193876 IP 10.45.0.2 > 142.250.207.14: ICMP echo request, id 5, seq 3, length 64
22:55:02.228175 IP 142.250.207.14 > 10.45.0.2: ICMP echo reply, id 5, seq 3, length 64

Note. Make sure the packet does not go through U-Plane2. The UE connects to the PDN of U-Plane1 in the same Loc1 according to the connected eNodeB1 in Loc1.

After this, stop eNodeB1 and UE in preparation for confirming Loc2 with TAC=2.

<a id="restart_mme"></a>

Restart Open5GS MME

Restart Open5GS MME in preparation for confirming Loc2 with TAC=2.

pkill open5gs-mmed
./install/bin/open5gs-mmed &

<a id="confirm_loc2"></a>

Confirm in Loc2 (TAC=2)

<a id="run_ran2"></a>

Run srsRAN 4G ZMQ RAN (eNodeB2) with TAC=2 in Loc2

Run srsRAN 4G ZMQ RAN (eNodeB2) and connect to Open5GS EPC.

# cd srsRAN_4G/build/srsenb
# ./src/srsenb enb.conf
---  Software Radio Systems LTE eNodeB  ---

Reading configuration file enb.conf...

Built in Release mode using commit ec29b0c1f on branch master.

Opening 1 channels in RF device=zmq with args=fail_on_disconnect=true,tx_port=tcp://192.168.0.122:2000,rx_port=tcp://192.168.0.124:2001,id=enb,base_srate=23.04e6
Supported RF device list: zmq file
CHx base_srate=23.04e6
CHx id=enb
Current sample rate is 1.92 MHz with a base rate of 23.04 MHz (x12 decimation)
CH0 rx_port=tcp://192.168.0.124:2001
CH0 tx_port=tcp://192.168.0.122:2000
CH0 fail_on_disconnect=true

==== eNodeB started ===
Type <t> to view trace
Current sample rate is 11.52 MHz with a base rate of 23.04 MHz (x2 decimation)
Current sample rate is 11.52 MHz with a base rate of 23.04 MHz (x2 decimation)
Setting frequency: DL=2680.0 Mhz, UL=2560.0 MHz for cc_idx=0 nof_prb=50

The Open5GS C-Plane log when executed is as follows.

03/26 22:59:43.919: [mme] INFO: eNB-S1 accepted[192.168.0.122]:35945 in s1_path module (../src/mme/s1ap-sctp.c:114)
03/26 22:59:43.919: [mme] INFO: eNB-S1 accepted[192.168.0.122] in master_sm module (../src/mme/mme-sm.c:108)
03/26 22:59:43.919: [mme] INFO: [Added] Number of eNBs is now 1 (../src/mme/mme-context.c:2829)
03/26 22:59:43.919: [mme] INFO: eNB-S1[192.168.0.122] max_num_of_ostreams : 30 (../src/mme/mme-sm.c:150)

<a id="run_ue2"></a>

Run srsRAN 4G ZMQ UE (ue-loc2.conf) connected to eNodeB2 in Loc2

Run srsRAN 4G ZMQ UE (ue-loc2.conf), connect to eNodeB2 in Loc2 and connect to Open5GS EPC.

# cd srsRAN_4G/build/srsue
# ./src/srsue ue-loc2.conf
Reading configuration file ue-loc2.conf...

Built in Release mode using commit ec29b0c1f on branch master.

Opening 1 channels in RF device=zmq with args=tx_port=tcp://192.168.0.124:2001,rx_port=tcp://192.168.0.122:2000,id=ue,base_srate=23.04e6
Supported RF device list: zmq file
CHx base_srate=23.04e6
CHx id=ue
Current sample rate is 1.92 MHz with a base rate of 23.04 MHz (x12 decimation)
CH0 rx_port=tcp://192.168.0.122:2000
CH0 tx_port=tcp://192.168.0.124:2001
Waiting PHY to initialize ... done!
Attaching UE...
Current sample rate is 1.92 MHz with a base rate of 23.04 MHz (x12 decimation)
Current sample rate is 1.92 MHz with a base rate of 23.04 MHz (x12 decimation)
.
Found Cell:  Mode=FDD, PCI=1, PRB=50, Ports=1, CP=Normal, CFO=-0.2 KHz
Current sample rate is 11.52 MHz with a base rate of 23.04 MHz (x2 decimation)
Current sample rate is 11.52 MHz with a base rate of 23.04 MHz (x2 decimation)
Found PLMN:  Id=00101, TAC=2
Random Access Transmission: seq=14, tti=181, ra-rnti=0x2
RRC Connected
Random Access Complete.     c-rnti=0x46, ta=0
Network attach successful. IP: 10.46.0.2
 nTp) ((t) 26/3/2024 14:1:15 TZ:99

The Open5GS C-Plane log when executed is as follows.

03/26 23:01:14.682: [mme] INFO: InitialUEMessage (../src/mme/s1ap-handler.c:406)
03/26 23:01:14.682: [mme] INFO: [Added] Number of eNB-UEs is now 1 (../src/mme/mme-context.c:4735)
03/26 23:01:14.682: [mme] INFO: Unknown UE by S_TMSI[G:2,C:1,M_TMSI:0xc0000614] (../src/mme/s1ap-handler.c:485)
03/26 23:01:14.682: [mme] INFO:     ENB_UE_S1AP_ID[1] MME_UE_S1AP_ID[1] TAC[2] CellID[0x19c01] (../src/mme/s1ap-handler.c:585)
03/26 23:01:14.682: [mme] INFO: Unknown UE by GUTI[G:2,C:1,M_TMSI:0xc0000614] (../src/mme/mme-context.c:3586)
03/26 23:01:14.682: [mme] INFO: [Added] Number of MME-UEs is now 1 (../src/mme/mme-context.c:3379)
03/26 23:01:14.682: [emm] INFO: [] Attach request (../src/mme/emm-sm.c:423)
03/26 23:01:14.682: [emm] INFO:     GUTI[G:2,C:1,M_TMSI:0xc0000614] IMSI[Unknown IMSI] (../src/mme/emm-handler.c:236)
03/26 23:01:14.720: [emm] INFO: Identity response (../src/mme/emm-sm.c:393)
03/26 23:01:14.721: [emm] INFO:     IMSI[001010000000100] (../src/mme/emm-handler.c:428)
03/26 23:01:14.839: [mme] INFO: [Added] Number of MME-Sessions is now 1 (../src/mme/mme-context.c:4749)
03/26 23:01:14.910: [sgwc] INFO: [Added] Number of SGWC-UEs is now 1 (../src/sgwc/context.c:239)
03/26 23:01:14.910: [sgwc] INFO: [Added] Number of SGWC-Sessions is now 1 (../src/sgwc/context.c:882)
03/26 23:01:14.910: [sgwc] INFO: UE IMSI[001010000000100] APN[internet] (../src/sgwc/s11-handler.c:239)
03/26 23:01:14.911: [gtp] INFO: gtp_connect() [127.0.0.24]:2123 (../lib/gtp/path.c:60)
03/26 23:01:14.911: [smf] INFO: [Added] Number of SMF-UEs is now 1 (../src/smf/context.c:1019)
03/26 23:01:14.911: [smf] INFO: [Added] Number of SMF-Sessions is now 1 (../src/smf/context.c:3090)
03/26 23:01:14.912: [smf] INFO: UE IMSI[001010000000100] APN[internet] IPv4[10.46.0.2] IPv6[] (../src/smf/s5c-handler.c:275)
03/26 23:01:14.915: [gtp] INFO: gtp_connect() [192.168.0.119]:2152 (../lib/gtp/path.c:60)
03/26 23:01:15.226: [emm] INFO: [001010000000100] Attach complete (../src/mme/emm-sm.c:1384)
03/26 23:01:15.227: [emm] INFO:     IMSI[001010000000100] (../src/mme/emm-handler.c:275)
03/26 23:01:15.227: [emm] INFO:     UTC [2024-03-26T14:01:15] Timezone[0]/DST[0] (../src/mme/emm-handler.c:281)
03/26 23:01:15.227: [emm] INFO:     LOCAL [2024-03-26T23:01:15] Timezone[32400]/DST[0] (../src/mme/emm-handler.c:285)

The Open5GS U-Plane2 log when executed is as follows.

03/26 23:01:14.958: [sgwu] INFO: UE F-SEID[UP:0xae0 CP:0x712] (../src/sgwu/context.c:171)
03/26 23:01:14.958: [sgwu] INFO: [Added] Number of SGWU-Sessions is now 1 (../src/sgwu/context.c:176)
03/26 23:01:14.961: [upf] INFO: [Added] Number of UPF-Sessions is now 1 (../src/upf/context.c:208)
03/26 23:01:14.961: [gtp] INFO: gtp_connect() [192.168.0.118]:2152 (../lib/gtp/path.c:60)
03/26 23:01:14.961: [gtp] INFO: gtp_connect() [192.168.0.115]:2152 (../lib/gtp/path.c:60)
03/26 23:01:14.961: [upf] INFO: UE F-SEID[UP:0x714 CP:0xa94] APN[internet] PDN-Type[1] IPv4[10.46.0.2] IPv6[] (../src/upf/context.c:485)
03/26 23:01:14.961: [upf] INFO: UE F-SEID[UP:0x714 CP:0xa94] APN[internet] PDN-Type[1] IPv4[10.46.0.2] IPv6[] (../src/upf/context.c:485)
03/26 23:01:14.962: [gtp] INFO: gtp_connect() [192.168.0.119]:2152 (../lib/gtp/path.c:60)
03/26 23:01:15.274: [gtp] INFO: gtp_connect() [192.168.0.122]:2152 (../lib/gtp/path.c:60)

The result of ip addr show on VM6 (UE) is as follows.

# ip addr show
...
10: tun_srsue: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 500
    link/none 
    inet 10.46.0.2/24 scope global tun_srsue
       valid_lft forever preferred_lft forever
...

<a id="ping_ue2"></a>

Ping google.com going through PDN=10.46.0.0/16 on Loc2

Confirm by using tcpdump that the packet goes through if=ogstun on U-Plane2.

# ping google.com -I tun_srsue -n
PING google.com (142.250.207.14) from 10.46.0.2 tun_srsue: 56(84) bytes of data.
64 bytes from 142.250.207.14: icmp_seq=1 ttl=61 time=401 ms
64 bytes from 142.250.207.14: icmp_seq=2 ttl=61 time=117 ms
64 bytes from 142.250.207.14: icmp_seq=3 ttl=61 time=74.4 ms

The tcpdump log on U-Plane2 is as follows.

23:02:55.655558 IP 10.46.0.2 > 142.250.207.14: ICMP echo request, id 7, seq 1, length 64
23:02:55.696997 IP 142.250.207.14 > 10.46.0.2: ICMP echo reply, id 7, seq 1, length 64
23:02:56.486725 IP 10.46.0.2 > 142.250.207.14: ICMP echo request, id 7, seq 2, length 64
23:02:56.538326 IP 142.250.207.14 > 10.46.0.2: ICMP echo reply, id 7, seq 2, length 64
23:02:57.482311 IP 10.46.0.2 > 142.250.207.14: ICMP echo request, id 7, seq 3, length 64
23:02:57.497455 IP 142.250.207.14 > 10.46.0.2: ICMP echo reply, id 7, seq 3, length 64

Note. Make sure the packet does not go through U-Plane1. The UE connects to the PDN of U-Plane2 in the same Loc2 according to the connected eNodeB2 in Loc2.


This makes it to confirm that at Initial Attach, MME can select SMF(PGW-C) by TAC according to the connected eNodeB, and UE connects to SGW-U/UPF(PGW-U) in the same location. I would like to thank the excellent developers and all the contributors of Open5GS and srsRAN 4G.

<a id="changelog"></a>

Changelog (summary)