Update Document for v2.0.0

This commit is contained in:
Sukchan Lee 2020-08-22 12:44:11 -04:00
parent cfd59c7cee
commit db488bc4dd
14 changed files with 625 additions and 324 deletions

View File

@ -76,20 +76,132 @@ $ sudo zypper install open5gs
### Configure Open5GS
---
**Note:** The IP address will be configured by referring to [this diagram](https://open5gs.org/open5gs/assets/Open5GS-Diagram.pdf) provided by [@kbarlee](https://github.com/kbarlee) in issue [#528](https://github.com/open5gs/open5gs/issues/528).
From now on, we'll use MCC-MNC of 901-70 and set the IP address as below.
#### 5G Core
_Cloud Authentication and Session Management Server_
```
MongoDB = 127.0.0.1 (subscriber data) - http://localhost:3000
MME-s1ap = 10.10.0.2 :36412 (authVPN) for S1-MME
MME-gtpc = 127.0.0.2 :any for S11
MME-frDi = 127.0.0.2 :3868 for S6a auth
SGWC-gtpc = 127.0.0.3 :2123 for S11
SGWC-pfcp = 10.10.0.3 :8805 (authVPN) for Sxa
SMF-gtpc = 127.0.0.4 :2123 for S5/8c, N11
SMF-pfcp = 10.10.0.4 :8805 (authVPN) for N4
SMF-frDi = 127.0.0.4 :3868 for Gx auth
SMF-sbi = 127.0.0.4 :7777 for 5G SBI (N7,N10,N11)
AMF-ngap = 10.10.0.5 :36412 (authVPN) for N2
AMF-sbi = 127.0.0.5 :7777 for 5G SBI (N8,N12,N11)
HSS-frDi = 127.0.0.8 :3868 for S6a auth
PCRF-frDi = 127.0.0.9 :3868 for Gx auth
NRF-sbi = 127.0.0.10:7777 for 5G SBI
AUSF-sbi = 127.0.0.11:7777 for 5G SBI
UDM-sbi = 127.0.0.12:7777 for 5G SBI
UDR-sbi = 127.0.0.13:7777 for 5G SBI
```
_Cloud Userplane Server (to host IMS etc)_
```
SGWU-pfcp = 10.10.0.6 :8805 (authVPN) for Sxa
SGWU-gtpu = 10.11.0.6 :2152 (userplaneVPN) for S1-U, S5/8u
UPF-pfcp = 10.10.0.7 :8805 (authVPN) for N4
UPF-gtpu = 10.11.0.7 :2152 (userplaneVPN) for S5/8u, N3
```
You can refer to the network settings at [https://open5gs.org/open5gs/assets/Open5GS-Diagram.pdf](https://open5gs.org/open5gs/assets/Open5GS-Diagram.pdf) provided by [@kbarlee](https://github.com/kbarlee) in issue [#528](https://github.com/open5gs/open5gs/issues/528)
{: .notice--danger}
Modify [install/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/mme.yaml.in) to set the S1AP IP address, PLMN ID, and TAC.
```diff
$ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
--- mme.yaml.old 2020-08-22 11:36:40.512418765 -0400
+++ mme.yaml 2020-08-22 11:36:27.081466682 -0400
@@ -204,20 +204,20 @@
mme:
freeDiameter: /home/acetcom/Documents/git/open5gs/install/etc/freeDiameter/mme.conf
s1ap:
- addr: 127.0.0.2
+ addr: 10.10.0.2
gtpc:
addr: 127.0.0.2
gummei:
plmn_id:
- mcc: 001
- mnc: 01
+ mcc: 901
+ mnc: 70
mme_gid: 2
mme_code: 1
tai:
plmn_id:
- mcc: 001
- mnc: 01
- tac: 7
+ mcc: 901
+ mnc: 70
+ tac: 1
security:
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
```
Modify [install/etc/open5gs/sgwc.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/sgwc.yaml.in) to set the PFCP IP address.
```diff
$ diff -u /etc/open5gs/sgwc.yaml.old /etc/open5gs/sgwc.yaml
@@ -49,7 +49,7 @@
gtpc:
addr: 127.0.0.3
pfcp:
- addr: 127.0.0.3
+ addr: 10.10.0.3
#
# sgwu:
@@ -100,7 +100,7 @@
#
sgwu:
pfcp:
- addr: 127.0.0.6
+ addr: 10.10.0.6
#
# parameter:
```
Modify [install/etc/open5gs/smf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/smf.yaml.in) to set the PFCP IP address.
```diff
$ diff -u /etc/open5gs/smf.yaml.old /etc/open5gs/smf.yaml
--- smf.yaml.old 2020-08-22 11:37:39.990816411 -0400
+++ smf.yaml 2020-08-22 11:38:18.647999952 -0400
@@ -187,8 +187,7 @@
- addr: 127.0.0.4
- addr: ::1
pfcp:
- - addr: 127.0.0.4
- - addr: ::1
+ - addr: 10.10.0.4
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
@@ -282,7 +281,7 @@
#
upf:
pfcp:
- - addr: 127.0.0.7
+ - addr: 10.10.0.7
#
# parameter:
```
Modify [install/etc/open5gs/amf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/amf.yaml.in) to set the NGAP IP address, PLMN ID, TAC and NSSAI.
In the below example we
- use MCC-MNC of 901-70, as this is the home network of the default IMSIs of the sysmoUSIM-SJS1 cards.
- use 10.10.0.5 for the NGAP connection of AMF to the gNB
- use 10.11.0.7 for the GTP-U connection of UPF to the gNB
```diff
diff -u amf.yaml.old amf.yaml
diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
--- amf.yaml.old 2020-06-21 23:34:14.643114779 -0400
+++ amf.yaml 2020-06-21 23:34:28.718482095 -0400
@@ -67,25 +67,25 @@
@ -129,92 +241,55 @@ diff -u amf.yaml.old amf.yaml
ciphering_order : [ NEA0, NEA1, NEA2 ]
```
Modify [install/etc/open5gs/upf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/upf.yaml.in) to set the GTP-U IP address.
Modify [install/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/sgwu.yaml.in) to set the GTP-U and PFCP IP address.
```diff
diff -u upf.yaml.old upf.yaml
--- upf.yaml.old 2020-06-21 23:35:54.378631781 -0400
+++ upf.yaml 2020-06-21 23:36:02.978245251 -0400
@@ -61,6 +61,7 @@
pfcp:
- addr: 127.0.0.7
gtpu:
- - addr: 127.0.0.7
+ - addr: 10.11.0.7
pdn:
```
After changing conf files, please restart Open5GS daemons.
```bash
$ sudo systemctl restart open5gs-amfd
$ sudo systemctl restart open5gs-upfd
```
#### EPC
Modify [install/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/mme.yaml.in) to set the S1AP IP address, PLMN ID, and TAC.
In the below example we
- use MCC-MNC of 901-70, as this is the home network of the default IMSIs of the sysmoUSIM-SJS1 cards.
- use 10.10.0.2 for the S1AP connection of MME to the eNB
- use 10.11.0.6 for the GTP-U connection of SGW-U to the eNB
```diff
diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
--- mme.yaml.old 2018-04-15 18:28:31.000000000 +0900
+++ mme.yaml 2018-04-15 19:53:10.000000000 +0900
@@ -204,20 +204,20 @@ logger:
mme:
freeDiameter: @sysconfdir@/freeDiameter/mme.conf
s1ap:
- addr: 127.0.0.2
+ addr: 10.10.0.2
gtpc:
addr: 127.0.0.2
gummei:
plmn_id:
- mcc: 001
- mnc: 01
+ mcc: 901
+ mnc: 70
mme_gid: 2
mme_code: 1
tai:
plmn_id:
- mcc: 001
- mnc: 01
- tac: 7
+ mcc: 901
+ mnc: 70
+ tac: 1
security:
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
```
Modify [install/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/sgwu.yaml.in) to set the GTP-U IP address.
```diff
diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml
--- sgwu.yaml.old 2018-04-15 18:30:25.000000000 +0900
+++ sgwu.yaml 2018-04-15 18:30:30.000000000 +0900
@@ -51,7 +51,7 @@ logger:
$ diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml
--- sgwu.yaml.old 2020-08-22 11:41:09.214670723 -0400
+++ sgwu.yaml 2020-08-22 11:41:27.433937124 -0400
@@ -51,9 +51,9 @@
#
sgwu:
gtpu:
- addr: 127.0.0.6
+ addr: 10.11.0.6
pfcp:
addr: 127.0.0.6
- addr: 127.0.0.6
+ addr: 10.10.0.6
#
# sgwc:
```
Modify [install/etc/open5gs/upf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/upf.yaml.in) to set the GTP-U and PFCP IP address.
```diff
$ diff -u /etc/open5gs/upf.yaml.old /etc/open5gs/upf.yaml
--- upf.yaml.old 2020-08-22 11:42:57.781750067 -0400
+++ upf.yaml 2020-08-22 11:43:13.268901616 -0400
@@ -59,11 +59,9 @@
#
upf:
pfcp:
- - addr: 127.0.0.7
+ - addr: 10.10.0.7
gtpu:
- - addr:
- - 127.0.0.7
- - ::1
+ - addr: 10.11.0.7
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
```
After changing conf files, please restart Open5GS daemons.
```bash
$ sudo systemctl restart open5gs-mmed
$ sudo systemctl restart open5gs-sgwud
$ sudo systemctl restart open5gs-mmed.service
$ sudo systemctl restart open5gs-sgwcd.service
$ sudo systemctl restart open5gs-smfd.service
$ sudo systemctl restart open5gs-amfd.service
$ sudo systemctl restart open5gs-upfd.service
$ sudo systemctl restart open5gs-sgwud.service
```
### Install WebUI of Open5GS
@ -306,9 +381,9 @@ $ sudo iptables -t nat -A POSTROUTING -s 10.45.0.0/16 ! -o ogstun -j MASQUERADE
**Note:** For the first time, it is a good condition if you do not have any rules in the IP/NAT tables. If a program such as docker has already set up a rule, you will need to add a rule differently.
{: .notice--danger}
### Turn on your eNodeB and Phone
### Turn on your gNB/eNB and Phone
---
- Connect your eNodeB to the IP of your server via the standard S1AP port of SCTP 36412 (for MME)
- Connect your gNB/eNB to the IP of your server via the standard NGAP/S1AP port of SCTP 38412/36412 (for AMF/MME)
- You can see actual traffic through wireshark -- [[srsenb.pcapng]]({{ site.url }}{{ site.baseurl }}/assets/pcapng/srsenb.pcapng).
- You can view the log at `/var/log/open5gs/*.log`.

View File

@ -59,10 +59,17 @@ $ ninja -C build
Check whether the compilation is correct.
```bash
$ ninja -C build test
$ ./build/test/attach/attach ## EPC Only
$ ./build/test/registration/registration ## 5G Core Only
```
**Tip:** You can also check the result of `ninja -C build test` with a tool that captures packets. If you are running `wireshark`, select the `loopback` interface and set FILTER to `s1ap || gtpv2 || pfcp || diameter || gtp`. You can see the virtually created packets. [[testsimple.pcapng]]({{ site.url }}{{ site.baseurl }}/assets/pcapng/testsimple.pcapng)
Run all test programs as below.
```bash
$ cd build
$ meson test -v
```
**Tip:** You can also check the result of `ninja -C build test` with a tool that captures packets. If you are running `wireshark`, select the `loopback` interface and set FILTER to `s1ap || gtpv2 || pfcp || diameter || gtp || ngap || http`. You can see the virtually created packets. [testattach.pcapng]({{ site.url }}{{ site.baseurl }}/assets/pcapng/testattach.pcapng)/[testregistration.pcapng]({{ site.url }}{{ site.baseurl }}/assets/pcapng/testregistration.pcapng)
{: .notice--info}
You need to perform the **installation process**.
@ -75,20 +82,132 @@ $ cd ../
### Configure Open5GS
---
**Note:** The IP address will be configured by referring to [this diagram](https://open5gs.org/open5gs/assets/Open5GS-Diagram.pdf) provided by [@kbarlee](https://github.com/kbarlee) in issue [#528](https://github.com/open5gs/open5gs/issues/528).
From now on, we'll use MCC-MNC of 901-70 and set the IP address as below.
#### 5G Core
_Cloud Authentication and Session Management Server_
```
MongoDB = 127.0.0.1 (subscriber data) - http://localhost:3000
MME-s1ap = 10.10.0.2 :36412 (authVPN) for S1-MME
MME-gtpc = 127.0.0.2 :any for S11
MME-frDi = 127.0.0.2 :3868 for S6a auth
SGWC-gtpc = 127.0.0.3 :2123 for S11
SGWC-pfcp = 10.10.0.3 :8805 (authVPN) for Sxa
SMF-gtpc = 127.0.0.4 :2123 for S5/8c, N11
SMF-pfcp = 10.10.0.4 :8805 (authVPN) for N4
SMF-frDi = 127.0.0.4 :3868 for Gx auth
SMF-sbi = 127.0.0.4 :7777 for 5G SBI (N7,N10,N11)
AMF-ngap = 10.10.0.5 :36412 (authVPN) for N2
AMF-sbi = 127.0.0.5 :7777 for 5G SBI (N8,N12,N11)
HSS-frDi = 127.0.0.8 :3868 for S6a auth
PCRF-frDi = 127.0.0.9 :3868 for Gx auth
NRF-sbi = 127.0.0.10:7777 for 5G SBI
AUSF-sbi = 127.0.0.11:7777 for 5G SBI
UDM-sbi = 127.0.0.12:7777 for 5G SBI
UDR-sbi = 127.0.0.13:7777 for 5G SBI
```
_Cloud Userplane Server (to host IMS etc)_
```
SGWU-pfcp = 10.10.0.6 :8805 (authVPN) for Sxa
SGWU-gtpu = 10.11.0.6 :2152 (userplaneVPN) for S1-U, S5/8u
UPF-pfcp = 10.10.0.7 :8805 (authVPN) for N4
UPF-gtpu = 10.11.0.7 :2152 (userplaneVPN) for S5/8u, N3
```
You can refer to the network settings at [https://open5gs.org/open5gs/assets/Open5GS-Diagram.pdf](https://open5gs.org/open5gs/assets/Open5GS-Diagram.pdf) provided by [@kbarlee](https://github.com/kbarlee) in issue [#528](https://github.com/open5gs/open5gs/issues/528)
{: .notice--danger}
Modify [install/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/mme.yaml.in) to set the S1AP IP address, PLMN ID, and TAC.
```diff
$ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
--- mme.yaml.old 2020-08-22 11:36:40.512418765 -0400
+++ mme.yaml 2020-08-22 11:36:27.081466682 -0400
@@ -204,20 +204,20 @@
mme:
freeDiameter: /home/acetcom/Documents/git/open5gs/install/etc/freeDiameter/mme.conf
s1ap:
- addr: 127.0.0.2
+ addr: 10.10.0.2
gtpc:
addr: 127.0.0.2
gummei:
plmn_id:
- mcc: 001
- mnc: 01
+ mcc: 901
+ mnc: 70
mme_gid: 2
mme_code: 1
tai:
plmn_id:
- mcc: 001
- mnc: 01
- tac: 7
+ mcc: 901
+ mnc: 70
+ tac: 1
security:
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
```
Modify [install/etc/open5gs/sgwc.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/sgwc.yaml.in) to set the PFCP IP address.
```diff
$ diff -u /etc/open5gs/sgwc.yaml.old /etc/open5gs/sgwc.yaml
@@ -49,7 +49,7 @@
gtpc:
addr: 127.0.0.3
pfcp:
- addr: 127.0.0.3
+ addr: 10.10.0.3
#
# sgwu:
@@ -100,7 +100,7 @@
#
sgwu:
pfcp:
- addr: 127.0.0.6
+ addr: 10.10.0.6
#
# parameter:
```
Modify [install/etc/open5gs/smf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/smf.yaml.in) to set the PFCP IP address.
```diff
$ diff -u /etc/open5gs/smf.yaml.old /etc/open5gs/smf.yaml
--- smf.yaml.old 2020-08-22 11:37:39.990816411 -0400
+++ smf.yaml 2020-08-22 11:38:18.647999952 -0400
@@ -187,8 +187,7 @@
- addr: 127.0.0.4
- addr: ::1
pfcp:
- - addr: 127.0.0.4
- - addr: ::1
+ - addr: 10.10.0.4
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
@@ -282,7 +281,7 @@
#
upf:
pfcp:
- - addr: 127.0.0.7
+ - addr: 10.10.0.7
#
# parameter:
```
Modify [install/etc/open5gs/amf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/amf.yaml.in) to set the NGAP IP address, PLMN ID, TAC and NSSAI.
In the below example we
- use MCC-MNC of 901-70, as this is the home network of the default IMSIs of the sysmoUSIM-SJS1 cards.
- use 10.10.0.5 for the NGAP connection of AMF to the gNB
- use 10.11.0.7 for the GTP-U connection of UPF to the gNB
```diff
diff -u amf.yaml.old amf.yaml
diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
--- amf.yaml.old 2020-06-21 23:34:14.643114779 -0400
+++ amf.yaml 2020-06-21 23:34:28.718482095 -0400
@@ -67,25 +67,25 @@
@ -128,79 +247,44 @@ diff -u amf.yaml.old amf.yaml
ciphering_order : [ NEA0, NEA1, NEA2 ]
```
Modify [install/etc/open5gs/upf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/upf.yaml.in) to set the GTP-U IP address.
Modify [install/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/sgwu.yaml.in) to set the GTP-U and PFCP IP address.
```diff
diff -u upf.yaml.old upf.yaml
--- upf.yaml.old 2020-06-21 23:35:54.378631781 -0400
+++ upf.yaml 2020-06-21 23:36:02.978245251 -0400
@@ -61,6 +61,7 @@
pfcp:
- addr: 127.0.0.7
gtpu:
- - addr: 127.0.0.7
+ - addr: 10.11.0.7
pdn:
```
If you modify the config files while Open5GS daemons are running, please restart them
#### EPC
Modify [install/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/mme.yaml.in) to set the S1AP IP address, PLMN ID, and TAC.
In the below example we
- use MCC-MNC of 901-70, as this is the home network of the default IMSIs of the sysmoUSIM-SJS1 cards.
- use 10.10.0.2 for the S1AP connection of MME to the eNB
- use 10.11.0.6 for the GTP-U connection of SGW-U to the eNB
```diff
diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
--- mme.yaml.old 2018-04-15 18:28:31.000000000 +0900
+++ mme.yaml 2018-04-15 19:53:10.000000000 +0900
@@ -204,20 +204,20 @@ logger:
mme:
freeDiameter: @sysconfdir@/freeDiameter/mme.conf
s1ap:
- addr: 127.0.0.2
+ addr: 10.10.0.2
gtpc:
addr: 127.0.0.2
gummei:
plmn_id:
- mcc: 001
- mnc: 01
+ mcc: 901
+ mnc: 70
mme_gid: 2
mme_code: 1
tai:
plmn_id:
- mcc: 001
- mnc: 01
- tac: 7
+ mcc: 901
+ mnc: 70
+ tac: 1
security:
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
```
Modify [install/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/sgwu.yaml.in) to set the GTP-U IP address.
```diff
diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml
--- sgwu.yaml.old 2018-04-15 18:30:25.000000000 +0900
+++ sgwu.yaml 2018-04-15 18:30:30.000000000 +0900
@@ -51,7 +51,7 @@ logger:
$ diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml
--- sgwu.yaml.old 2020-08-22 11:41:09.214670723 -0400
+++ sgwu.yaml 2020-08-22 11:41:27.433937124 -0400
@@ -51,9 +51,9 @@
#
sgwu:
gtpu:
- addr: 127.0.0.6
+ addr: 10.11.0.6
pfcp:
addr: 127.0.0.6
- addr: 127.0.0.6
+ addr: 10.10.0.6
#
# sgwc:
```
Modify [install/etc/open5gs/upf.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/upf.yaml.in) to set the GTP-U and PFCP IP address.
```diff
$ diff -u /etc/open5gs/upf.yaml.old /etc/open5gs/upf.yaml
--- upf.yaml.old 2020-08-22 11:42:57.781750067 -0400
+++ upf.yaml 2020-08-22 11:43:13.268901616 -0400
@@ -59,11 +59,9 @@
#
upf:
pfcp:
- - addr: 127.0.0.7
+ - addr: 10.10.0.7
gtpu:
- - addr:
- - 127.0.0.7
- - ::1
+ - addr: 10.11.0.7
pdn:
- addr: 10.45.0.1/16
- addr: cafe::1/64
```
If you modify the config files while Open5GS daemons are running, please restart them
@ -370,14 +454,9 @@ $ cp open5gs* /usr/bin/
For convenience, you can execute all NFs at once by using the following command.
```bash
$ cd build
$ cat configs/sample.yaml ## check the configuration
$ ./test/app/5gc ## 5G Core Only with sample.yaml
OR
$ ./test/app/epc -c ./config/srslte.yaml ## EPC Only with srslte.yaml
OR
$ ./test/app/app ## Both 5G Core and EPC with sample.yaml
$ ./build/test/app/5gc ## 5G Core Only with ./build/config/sample.yaml
$ ./build/test/app/epc -c ./build/config/srslte.yaml ## EPC Only with ./build/config/srslte.yaml
$ ./build/test/app/app ## Both 5G Core and EPC with ./build/config/sample.yaml
```
### Building the WebUI of Open5GS

View File

@ -55,7 +55,7 @@ Update ConnectPeer to connect to the PCRF on it's IP.
### Restart Services
Restart Open5GS SMF Daemon:
``` $ sudo systemctl restart open5gs-smfd ```
``` $ sudo systemctl restart open5gs-smfd.service ```
# External SGW-C
@ -75,7 +75,7 @@ sgwc:
Restart Open5GS SGW-C Daemon:
``` $ sudo systemctl restart open5gs-sgwcd ```
``` $ sudo systemctl restart open5gs-sgwcd.service ```
# External PCRF
@ -98,7 +98,7 @@ Edit the ```db_uri:``` to point at the Open5GS: ```db_uri: mongodb://10.0.1.118/
Restart Open5GS PCRF Daemon:
``` $ sudo systemctl restart open5gs-pcrfd ```
``` $ sudo systemctl restart open5gs-pcrfd.service ```
# External HSS
In it's simplest form the HSS has 1 network interface:
@ -117,7 +117,7 @@ Update ConnectPeer to connect to the MME.
Restart Open5GS HSS Daemon:
``` $ sudo systemctl restart open5gs-hssd ```
``` $ sudo systemctl restart open5gs-hssd.service ```
### MongoDB Interface Configuration (Open5GS specific)
If you are using Open5GS's HSS you may need to enable MongoDB access from the PCRF. This is done by editing ''/etc/mongodb.conf'' and changing the bind IP to:
@ -161,5 +161,5 @@ Update ConnectPeer to connect to the PCRF on it's IP.
### Restart Services
Restart Open5GS MME Daemon:
``` $ sudo systemctl restart open5gs-mmed ```
``` $ sudo systemctl restart open5gs-mmed.service ```

View File

@ -123,16 +123,24 @@ $ ninja -C build
Check whether the compilation is correct.
```bash
$ ninja -C build test
$ ./build/test/attach/attach ## EPC Only
$ ./build/test/registration/registration ## 5G Core Only
```
**Tip:** You can also check the result of `ninja -C build test` with a tool that captures packets. If you are running `wireshark`, select the `loopback` interface and set FILTER to `s1ap || gtpv2 || diameter || gtp`. You can see the virtually created packets. [[testsimple.pcapng]]({{ site.url }}{{ site.baseurl }}/assets/pcapng/testsimple.pcapng)
Run all test programs as below.
```bash
$ cd build
$ meson test -v
```
**Tip:** You can also check the result of `ninja -C build test` with a tool that captures packets. If you are running `wireshark`, select the `loopback` interface and set FILTER to `s1ap || gtpv2 || pfcp || diameter || gtp || ngap || http`. You can see the virtually created packets. [testattach.pcapng]({{ site.url }}{{ site.baseurl }}/assets/pcapng/testattach.pcapng)/[testregistration.pcapng]({{ site.url }}{{ site.baseurl }}/assets/pcapng/testregistration.pcapng)
{: .notice--info}
You need to perform the **installation process**.
```bash
$ cd build
$ ninja install
$ cd ../
```
### Building WebUI of Open5GS

View File

@ -91,16 +91,24 @@ $ ninja -C build
Check whether the compilation is correct.
```bash
$ ninja -C build test
$ ./build/test/attach/attach ## EPC Only
$ ./build/test/registration/registration ## 5G Core Only
```
**Tip:** You can also check the result of `ninja -C build test` with a tool that captures packets. If you are running `wireshark`, select the `loopback` interface and set FILTER to `s1ap || gtpv2 || diameter || gtp`. You can see the virtually created packets. [[testsimple.pcapng]]({{ site.url }}{{ site.baseurl }}/assets/pcapng/testsimple.pcapng)
Run all test programs as below.
```bash
$ cd build
$ meson test -v
```
**Tip:** You can also check the result of `ninja -C build test` with a tool that captures packets. If you are running `wireshark`, select the `loopback` interface and set FILTER to `s1ap || gtpv2 || pfcp || diameter || gtp || ngap || http`. You can see the virtually created packets. [testattach.pcapng]({{ site.url }}{{ site.baseurl }}/assets/pcapng/testattach.pcapng)/[testregistration.pcapng]({{ site.url }}{{ site.baseurl }}/assets/pcapng/testregistration.pcapng)
{: .notice--info}
You need to perform **the installation process**.
You need to perform the **installation process**.
```bash
$ cd build
$ ninja install
$ cd ../
```
### Building WebUI of Open5GS

View File

@ -60,7 +60,7 @@ Git clone.
$ git clone https://github.com/{{ site.github_username }}/open5gs
```
To compile with autotools:
To compile with meson:
```bash
$ cd open5gs
@ -72,17 +72,30 @@ Check whether the compilation is correct.
**Note:** This should require *sudo* due to access `/dev/tun0`.
{: .notice--danger}
```bash
$ sudo ninja -C build test
$ sudo ./build/test/attach/attach ## EPC Only
$ sudo ./build/test/registration/registration ## 5G Core Only
```
**Tip:** You can also check the result of `sudo ninja -C build test` with a tool that captures packets. If you are running `wireshark`, select the `loopback` interface and set FILTER to `s1ap || gtpv2 || diameter || gtp`. You can see the virtually created packets. [[testsimple.pcapng]]({{ site.url }}{{ site.baseurl }}/assets/pcapng/testsimple.pcapng)
Run all test programs as below.
**Note:** This should require *sudo* due to access `/dev/tun0`.
{: .notice--danger}
```bash
$ cd build
$ sudo meson test -v
```
**Tip:** You can also check the result of `ninja -C build test` with a tool that captures packets. If you are running `wireshark`, select the `loopback` interface and set FILTER to `s1ap || gtpv2 || pfcp || diameter || gtp || ngap || http`. You can see the virtually created packets. [testattach.pcapng]({{ site.url }}{{ site.baseurl }}/assets/pcapng/testattach.pcapng)/[testregistration.pcapng]({{ site.url }}{{ site.baseurl }}/assets/pcapng/testregistration.pcapng)
{: .notice--info}
You need to perform **the installation process**.
You need to perform the **installation process**.
```bash
$ cd build
$ ninja install
$ cd ../
```
### Building WebUI of Open5GS

View File

@ -81,27 +81,41 @@ To compile with meson:
```bash
$ cd open5gs
$ meson build --prefix=`pwd`/install -D c_std=c99
$ meson build --prefix=`pwd`/install
$ ninja -C build
```
Check whether the compilation is correct.
**Note:** This should require `sudo` due to access `/dev/tun0`.
**Note:** This should require *sudo* due to access `/dev/tun0`.
{: .notice--danger}
```bash
$ sudo ninja -C build test
$ sudo ./build/test/attach/attach ## EPC Only
$ sudo ./build/test/registration/registration ## 5G Core Only
```
**Tip:** You can also check the result of `sudo ninja -C build test` with a tool that captures packets. If you are running `wireshark`, select the `loopback` interface and set FILTER to `s1ap || gtpv2 || diameter || gtp`. You can see the virtually created packets. [[testsimple.pcapng]]({{ site.url }}{{ site.baseurl }}/assets/pcapng/testsimple.pcapng)
Run all test programs as below.
**Note:** This should require *sudo* due to access `/dev/tun0`.
{: .notice--danger}
```bash
$ cd build
$ sudo meson test -v
```
**Tip:** You can also check the result of `ninja -C build test` with a tool that captures packets. If you are running `wireshark`, select the `loopback` interface and set FILTER to `s1ap || gtpv2 || pfcp || diameter || gtp || ngap || http`. You can see the virtually created packets. [testattach.pcapng]({{ site.url }}{{ site.baseurl }}/assets/pcapng/testattach.pcapng)/[testregistration.pcapng]({{ site.url }}{{ site.baseurl }}/assets/pcapng/testregistration.pcapng)
{: .notice--info}
You need to perform **the installation process**.
You need to perform the **installation process**.
```bash
$ cd build
$ ninja install
$ cd ../
```
### Building WebUI of Open5GS
---

View File

@ -11,25 +11,42 @@ title: Simple Issue
Before we get too far in troubleshooting let's first check all our services are running.
```bash
$ ps aux | grep open5gs
open5gs 3434 0.2 2.8 1074020 27972 ? Ssl 02:39 0:00 /usr/bin/open5gs-pgwd -c /etc/open5gs/pgw.yaml
open5gs 3672 0.0 1.0 922972 10408 ? Ssl 02:39 0:00 /usr/bin/open5gs-sgwd -c /etc/open5gs/sgw.yaml
open5gs 3893 0.1 1.3 958412 13260 ? Ssl 02:39 0:00 /usr/bin/open5gs-hssd -c /etc/open5gs/hss.yaml
open5gs 4011 0.1 1.3 956320 13140 ? Ssl 02:39 0:00 /usr/bin/open5gs-pcrfd -c /etc/open5gs/pcrf.yaml
open5gs 4138 0.3 1.2 986524 12608 ? Ssl 02:40 0:00 /usr/bin/open5gs-mmed -c /etc/open5gs/mme.yaml
root 4198 0.0 0.1 13136 1060 pts/0 S+ 02:40 0:00 grep --color=auto open5gs
ps aux | grep open5gs
open5gs 26633 0.1 0.0 2890828 12308 ? Ssl 12:13 0:00 /usr/bin/open5gs-mmed -c /etc/open5gs/mme.yaml
open5gs 26784 0.0 0.1 1534456 18344 ? Ssl 12:13 0:00 /usr/bin/open5gs-sgwcd -c /etc/open5gs/sgwc.yaml
open5gs 27076 0.1 0.2 3811148 42192 ? Ssl 12:13 0:00 /usr/bin/open5gs-smfd -c /etc/open5gs/smf.yaml
open5gs 27174 0.0 0.0 258096 12720 ? Ssl 12:13 0:00 /usr/bin/open5gs-amfd -c /etc/open5gs/amf.yaml
open5gs 26844 0.0 0.0 1237524 14084 ? Ssl 12:13 0:00 /usr/bin/open5gs-sgwud -c /etc/open5gs/sgwu.yaml
open5gs 26934 0.0 0.0 707472 12732 ? Ssl 12:13 0:00 /usr/bin/open5gs-upfd -c /etc/open5gs/upf.yaml
open5gs 27244 0.2 0.0 2861424 13584 ? Ssl 12:13 0:00 /usr/bin/open5gs-hssd -c /etc/open5gs/hss.yaml
open5gs 27366 0.0 0.0 2890772 14380 ? Ssl 12:13 0:00 /usr/bin/open5gs-pcrfd -c /etc/open5gs/pcrf.yaml
open5gs 27485 0.0 0.0 243816 15064 ? Ssl 12:13 0:00 /usr/bin/open5gs-nrfd -c /etc/open5gs/nrf.yaml
open5gs 27543 0.0 0.0 222416 9672 ? Ssl 12:13 0:00 /usr/bin/open5gs-ausfd -c /etc/open5gs/ausf.yaml
open5gs 27600 0.0 0.0 222328 9668 ? Ssl 12:13 0:00 /usr/bin/open5gs-udmd -c /etc/open5gs/udm.yaml
open5gs 27697 0.0 0.0 243976 13716 ? Ssl 12:13 0:00 /usr/bin/open5gs-udrd -c /etc/open5gs/udr.yaml
```
You should see each of the services above, PGW, SGW, HSS, PCRF & MME all running.
You should see each of the services above, MME, SGW-C, SMF, AMF, SGW-U, UPF, HSS, PCRF, NRF, AUSF, UDM & UDR all running.
If your instance doesn't show this make sure you're started each service:
```bash
$ systemctl start open5gs-*
$ systemctl start open5gs-mmed.service
$ systemctl start open5gs-sgwcd.service
$ systemctl start open5gs-smfd.service
$ systemctl start open5gs-amfd.service
$ systemctl start open5gs-sgwud.service
$ systemctl start open5gs-upfd.service
$ systemctl start open5gs-hssd.service
$ systemctl start open5gs-pcrfd.service
$ systemctl start open5gs-nrfd.service
$ systemctl start open5gs-ausfd.service
$ systemctl start open5gs-udmd.service
$ systemctl start open5gs-udrd.service
```
#### Finding out why a Service isn't Starting
If a service isn't running check the log for that service - logs for each service live in */var/log/open5gs/* where each service logs to it's own file - MME logs in mme.log, PGW logs in pgw.log, and so on.
If a service isn't running check the log for that service - logs for each service live in */var/log/open5gs/* where each service logs to it's own file - MME logs in mme.log, AMF logs in amf.log, and so on.
```bash
$ cat /var/log/open5gs/mme.log
@ -37,7 +54,7 @@ Open5GS daemon v1.0.0
[app] INFO: Configuration: '/etc/open5gs/mme.yaml' (../src/main.c:54)
[app] INFO: File Logging: '/var/log/open5gs/mme.log' (../src/main.c:57)
[mme] ERROR: No sgw.gtpc in '/etc/open5gs/mme.yaml' (../src/mme/mme-context.c:192)
[mme] ERROR: No sgwc.gtpc in '/etc/open5gs/mme.yaml' (../src/mme/mme-context.c:192)
[app] ERROR: Failed to intialize MME (../src/mme/app-init.c:30)
[app] FATAL: Open5GS initialization failed. Aborted (../src/main.c:222)
```
@ -48,36 +65,36 @@ Or, you can use `journalctl` like below to view live log.
$ journalctl -u open5gs-mmed.service --since today -f
```
In the example above we can see the error - no SGW GTPC address is configured in the mme.yaml file, meaning Open5GS MME is failing to start.
In the example above we can see the error - no SGW-C GTP-C address is configured in the mme.yaml file, meaning Open5GS MME is failing to start.
The errors you experience may be different, but if a service is failing to start it's most often due to a misconfiguration issue in one or more of the Open5GS *.yaml* configuration files. The log should tell you which section of the yaml file is missing or invalid.
## eNB Connection Issues
## gNB/eNB Connection Issues
---
When a UE connects to Open5GS MME the log shows the presence of a new S1AP connection the log at */var/log/open5gs/mme.log*:
When a UE connects to Open5GS AMF/MME the log shows the presence of a new NGAP/S1AP connection the log at */var/log/open5gs/mme.log*:
##### No S1AP Connection
If you're not seeing any S1AP connection attempts check the eNB can contact the IP the MME is on (No firewall / ACLs etc blocking) and that SCTP Traffic is able to be carried across your transmission network.
##### No NGAP/S1AP Connection
If you're not seeing any NGAP/S1AP connection attempts check the gNB/eNB can contact the IP the AMF/MME is on (No firewall / ACLs etc blocking) and that SCTP Traffic is able to be carried across your transmission network.
**Note:** 3GPP defines SCTP as the transport protocol for S1-AP/S1-CP traffic (not TCP/UDP). Not all devices / routers support S1AP, particularly over the Internet.
**Note:** 3GPP defines SCTP as the transport protocol for NGAP/S1AP traffic (not TCP/UDP). Not all devices / routers support NGAP/S1AP, particularly over the Internet.
If you're confident the service is running and connectivity is able to be established across your transmission network, you should see the *SCTP INIT* packets in Wireshark. If you're not seeing these packets go back and check your network.
If you are seeing the SCTP INIT messages and seeing an ABORT after each one, that suggests the SCTP connection is trying to be established. Check that the MME service is started and listening on the interface / IP you're sending traffic to.
If you are seeing the SCTP INIT messages and seeing an ABORT after each one, that suggests the SCTP connection is trying to be established. Check that the AMF/MME service is started and listening on the interface / IP you're sending traffic to.
##### S1AP Connection Rejected
If you're seeing S1AP Connection attempts but seeing them rejected by Open5GS, the S1AP message show in a packet capture will indicate the rejection reason, as well as in the mme log.
##### NGAP/S1AP Connection Rejected
If you're seeing NGAP/S1AP Connection attempts but seeing them rejected by Open5GS, the NGAP/S1AP message show in a packet capture will indicate the rejection reason, as well as in the mme log.
```
$ tail -f /var/log/open5gs/mme.log
[mme] INFO: eNB-S1[10.0.1.14] connection refused!!! (mme-sm.c:176)
```
Typically S1AP connections are rejected due to one of these reasons:
* MNC / MCC in eNB does not match *gummei* and *tai* MCC/MNC pair in (mme.yaml*.
* Tracking Area Code does not match configured TACs in *mme.yaml*.
Typically NGAP/S1AP connections are rejected due to one of these reasons:
* MNC / MCC in gNB/eNB does not match *guami/gummei* and *tai* MCC/MNC pair in amf.yaml/mme.yaml*.
* Tracking Area Code does not match configured TACs in *amf.yaml/mme.yaml*.
Each of these can be addressed by editing the relevant section in the MME config in */etc/open5gs/mme.yaml*
Each of these can be addressed by editing the relevant section in the AMF/MME config in */etc/open5gs/amf.yaml* OR */etc/open5gs/mme.yaml*
__Example of sucesful eNB connection to MME:__
```
@ -92,42 +109,42 @@ If your network is setup there are a variety of reasons your network may not per
#### UE cannot See Network
If while scanning for the networks on your UE / Phone you're not seeing your network, there's a few things to check:
* Check your eNB is connected to the MME
* Check the eNB status
* Check your gNB/eNB is connected to the AMF/MME
* Check the gNB/eNB status
* Check the UE you are scanning with is capable of working on the frequencies / bands and duplex mode (TDD or FDD) used by the UE
* Check UE is within range of eNB
* Check UE is within range of gNB/eNB
* Check PLMN is not forbidden on USIM (F-PLMN List)
#### UE Fails to Attach to the Network
Assuming while scanning for networks the UE can see the network, but not connect, the most common issues stem from Authentication.
LTE/E-UTRAN employs *Mutual Authentication* of both the network and the subscriber. This means the credentials in the HSS must match the credentials on the USIM and the credentials in the USIM must match those in the HSS. This means unlike GSM, you cannot use just any SIM and disable crypto, you have to know the details on the USIM or be able to program this yourself in order to authenticate.
NR/LTE employs *Mutual Authentication* of both the network and the subscriber. This means the credentials in the UDM/HSS must match the credentials on the USIM and the credentials in the USIM must match those in the UDM/HSS. This means unlike GSM, you cannot use just any SIM and disable crypto, you have to know the details on the USIM or be able to program this yourself in order to authenticate.
If the issue is authentication, the mme and hss log will give you an indication as to which side is rejecting the authentication, the UE or the Network (Open5GS);
If the issue is authentication, the amf/mme and udm/hss log will give you an indication as to which side is rejecting the authentication, the UE or the Network (Open5GS);
__IMSI/Subscriber not present in HSS:__
If the USIM's IMSI is not present in the HSS the HSS will reject the Authentication.
__IMSI/Subscriber not present in UDM/HSS:__
If the USIM's IMSI is not present in the UDM/HSS the UDM/HSS will reject the Authentication.
```
$ tail -f /var/log/open5gs/hss.log
[hss] WARNING: Cannot find IMSI in DB : 001000000000001 (hss-context.c:309)
```
__IMSI/Subscriber configured in HSS with wrong credentails:__
If the credentials on the HSS do not match what is configured on the USIM, the USIM will reject the connection (MAC Error).
__IMSI/Subscriber configured in UDM/HSS with wrong credentails:__
If the credentials on the UDM/HSS do not match what is configured on the USIM, the USIM will reject the connection (MAC Error).
```
$ tail -f /var/log/open5gs/mme.log
[emm] WARNING: Authentication failure(MAC failure) (emm-sm.c:573)
```
__APN Requested by UE not present in HSS:__
Ensure the APNs requested by the UE are present in the HSS.
__DNN/APN Requested by UE not present in UDM/HSS:__
Ensure the DNNs/APNs requested by the UE are present in the UDM/HSS.
#### UE shows "4G" or "LTE" Connection but has no IP Connectivity to the outside World
If your device shows as connected (Includes LTE/4G symbol) there are a few simple things to check to diagnose connectivity issues:
* The PGW can contact the outside world (Can resolve DNS, browse, etc)
#### UE shows "5G" or "LTE" Connection but has no IP Connectivity to the outside World
If your device shows as connected (Includes 5G/LTE symbol) there are a few simple things to check to diagnose connectivity issues:
* The UPF can contact the outside world (Can resolve DNS, browse, etc)
* Check if the interface connected to the internet is correctly `NAT` with the `ogstun` interface.
- Ensure that the packets in the `INPUT` chain to the `ogstun` interface are accepted
```
@ -152,22 +169,22 @@ Problem with Open5GS can be filed as [GitHub Issues](https://github.com/open5gs/
You can modify the configuration file to record more logs.
```diff
diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
--- mme.yaml.old 2018-04-15 18:28:31.000000000 +0900
+++ mme.yaml 2018-04-15 19:53:10.000000000 +0900
@@ -2,6 +2,7 @@
$ diff -u /etc/open5gs/amf.yaml.old /etc/open5gs/amf.yaml
--- amf.yaml.old 2020-08-22 12:26:56.132213488 -0400
+++ amf.yaml 2020-08-22 12:27:04.135901201 -0400
@@ -20,6 +20,7 @@
#
logger:
file: /var/log/open5gs/mme.log
file: /home/acetcom/Documents/git/open5gs/install/var/log/open5gs/amf.log
+ level: debug
parameter:
#
# amf:
#
```
After changing conf files, please restart Open5GS daemons.
```bash
$ sudo systemctl restart open5gs-mmed
$ sudo systemctl restart open5gs-sgwd
$ sudo systemctl restart open5gs-amfd.service
```

View File

@ -3,33 +3,34 @@ title: Now in the Github Issue
head_inline: "<style> .blue { color: blue; } </style>"
---
#### Test failed (e.g. `meson test`)
#### Test failed (e.g. `meson test -v`)
Sometimes you may get a message like the one below due to a problem with the freeDiameter library.
```
$ meson test
$ meson test -v
...
5/8 open5gs:epc / simple OK 7.69 s
--- command ---
08:06:23 /home/parallels/open5gs/build/tests/epc/simple
--- stdout ---
s1setup-test : SUCCESS
attach-test : SUCCESS
volte-test : SUCCESS
handover-test : SUCCESS
crash-test : SUCCESS
5/10 open5gs:5gc / registration OK 4.98 s
s1setup-test : SUCCESS
guti-test : SUCCESS
auth-test : SUCCESS
idle-test : SUCCESS
emm-status-test : SUCCESS
reset-test : SUCCESS
ue-context-test : SUCCESS
All tests passed.
-------
6/8 open5gs:system / mnc3 FAIL 12.80 s (exit status 1)
6/10 open5gs:epc / attach OK 4.68 s
bearer-test : SUCCESS
session-test : SUCCESS
rx-test : SUCCESS
All tests passed.
7/10 open5gs:epc / volte OK 4.33 s
--- command ---
08:06:31 /home/parallels/open5gs/build/tests/mnc3/mnc3
08:06:31 /home/parallels/open5gs/build/tests/csfb/csfb
--- stdout ---
mnc3-test : ERROR: ../subprojects/freeDiameter/extensions/dbg_msg_dumps/dbg_msg_dumps.c:112 ROUTING ERROR 'No remaining suitable candidate to route the message to' for: (../lib/diameter/common/init.c:116)
csfb-test : ERROR: ../subprojects/freeDiameter/extensions/dbg_msg_dumps/dbg_msg_dumps.c:112 ROUTING ERROR 'No remaining suitable candidate to route the message to' for: (../lib/diameter/common/init.c:116)
: ../subprojects/freeDiameter/extensions/dbg_msg_dumps/dbg_msg_dumps.c:113 'Credit-Control-Request' (../lib/diameter/common/init.c:116)
: ../subprojects/freeDiameter/extensions/dbg_msg_dumps/dbg_msg_dumps.c:113 Version: 0x01 (../lib/diameter/common/init.c:116)
: ../subprojects/freeDiameter/extensions/dbg_msg_dumps/dbg_msg_dumps.c:113 Length: 20 (../lib/diameter/common/init.c:116)
@ -80,14 +81,13 @@ mnc3-test : ERROR: ../subprojects/freeDiameter/extensions/dbg_msg_dum
FAILED 1 of 1
Failed Tests Total Fail Failed %
===================================================
mnc3-test 1 1 100.00%
csfb-test 1 1 100.00%
--- stderr ---
03/26 16:06:43.681: [ERROR: GTP Timeout : IMSI[310014987654004] Message-Type[32] (../src/mme/mme-gtp-path.c:110)
Line 202: Condition is false, but expected true
-------
7/8 open5gs:system / volte FAIL 10.57 s (killed by signal 6 SIGABRT)
8/10 open5gs:epc / csfb FAIL 10.57 s (killed by signal 6 SIGABRT)
...
```
@ -121,28 +121,93 @@ $ sudo pkill -9 open5gs-udmd
$ sudo pkill -9 open5gs-udrd
```
Run `meson test` again
Run `meson test -v` again
```
$ meson test
ninja: Entering directory `/Users/acetcom/Documents/git/open5gs/build'
$ meson test -v
ninja: Entering directory `/home/acetcom/Documents/git/open5gs/build'
ninja: no work to do.
1/8 open5gs:unit / core OK 6.93 s
2/8 open5gs:unit / crypt OK 0.08 s
3/8 open5gs:system / sctp OK 1.09 s
4/8 open5gs:unit / unit OK 0.04 s
5/8 open5gs:epc / simple OK 5.07 s
6/8 open5gs:epc / mnc3 OK 1.18 s
7/8 open5gs:epc / volte OK 2.99 s
8/8 open5gs:epc / csfb OK 6.53 s
list-test : SUCCESS
pool-test : SUCCESS
strings-test : SUCCESS
time-test : SUCCESS
conv-test : SUCCESS
log-test : SUCCESS
pkbuf-test : SUCCESS
memory-test : SUCCESS
rbtree-test : SUCCESS
timer-test : SUCCESS
thread-test : SUCCESS
socket-test : SUCCESS
queue-test : SUCCESS
poll-test : SUCCESS
tlv-test : SUCCESS
fsm-test : SUCCESS
hash-test : SUCCESS
uuid-test : SUCCESS
All tests passed.
1/10 open5gs:unit / core OK 6.89 s
aes-test : SUCCESS
sha-test : SUCCESS
base64-test : SUCCESS
All tests passed.
2/10 open5gs:unit / crypt OK 0.12 s
sctp-test : SUCCESS
All tests passed.
3/10 open5gs:app / sctp OK 0.02 s
s1ap-message-test : SUCCESS
nas-message-test : SUCCESS
gtp-message-test : SUCCESS
sbi-message-test : SUCCESS
security-test : SUCCESS
crash-test : SUCCESS
All tests passed.
4/10 open5gs:unit / unit OK 0.03 s
guti-test : SUCCESS
auth-test : SUCCESS
idle-test : SUCCESS
dereg-test : SUCCESS
identity-test : SUCCESS
gmm-status-test : SUCCESS
ue-context-test : SUCCESS
All tests passed.
5/10 open5gs:5gc / registration OK 4.98 s
s1setup-test : SUCCESS
guti-test : SUCCESS
auth-test : SUCCESS
idle-test : SUCCESS
emm-status-test : SUCCESS
reset-test : SUCCESS
ue-context-test : SUCCESS
All tests passed.
6/10 open5gs:epc / attach OK 4.68 s
bearer-test : SUCCESS
session-test : SUCCESS
rx-test : SUCCESS
All tests passed.
7/10 open5gs:epc / volte OK 4.33 s
mo-idle-test : SUCCESS
mt-idle-test : SUCCESS
mo-active-test : SUCCESS
mt-active-test : SUCCESS
mo-sms-test : SUCCESS
mt-sms-test : SUCCESS
crash-test : SUCCESS
All tests passed.
8/10 open5gs:epc / csfb OK 4.08 s
epc-test : SUCCESS
All tests passed.
9/10 open5gs:app / 310014 OK 2.37 s
epc-x2-test : SUCCESS
epc-s1-test : SUCCESS
All tests passed.
10/10 open5gs:app / handover OK 4.78 s
Ok: 8
Ok: 10
Expected Fail: 0
Fail: 0
Unexpected Pass: 0
Skipped: 0
Timeout: 0
Full log written to /Users/acetcom/Documents/git/open5gs/build/meson-logs/testlog.txt
```
**Note:** If your test result more than once is same as above, there should be no problem with code you modified.
@ -262,64 +327,70 @@ $ sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
$ sudo iptables -t nat -A POSTROUTING -s 10.45.0.0/16 ! -o ogstun -j MASQUERADE
```
#### How to use a different APN for each PGW
#### How to use a different APN for each SMF
By default, MME selects the PGW as the first PGW node. To use a different APN for each PGW, specify gtpc.apn as the APN name. If the HSS uses WebUI to set the PGW IP for each UE, you can use a specific PGW node for each UE.
By default, MME selects the SMF as the first SMF node. To use a different APN for each SMF, specify gtpc.apn as the APN name. If the HSS uses WebUI to set the SMF IP for each UE, you can use a specific SMF node for each UE.
See the following example.
```
### For reference, see `pgw.yaml`
#------------------------ MME --------------------------
### For reference, see `smf.yaml`
#
# o Two PGW are defined. 127.0.0.3:2123 is used.
# [fe80::3%lo]:2123 is ignored.
# smf:
#
# <GTP-C Client>
#
# o By default, the SMF uses the first SMF node.
# - To use a different APN for each SMF, specify gtpc.apn as the APN name.
# - If the HSS uses WebUI to set the SMF IP for each UE,
# you can use a specific SMF node for each UE.
#
# o Two SMF are defined. 127.0.0.4:2123 is used.
# [fe80::3%@loopback_devname@]:2123 is ignored.
# gtpc:
# - addr: 127.0.0.3
# - addr: fe80::3%lo
# - addr: 127.0.0.4
# - addr: fe80::3%@loopback_devname@
#
# o One PGW is defined. if prefer_ipv4 is not true,
# [fe80::3%lo] is selected.
# o One SMF is defined. if prefer_ipv4 is not true,
# [fe80::3%@loopback_devname@] is selected.
# gtpc:
# - addr:
# - 127.0.0.3
# - fe80::3%lo
# - 127.0.0.4
# - fe80::3%@loopback_devname@
#
# o Two PGW are defined with a different APN.
# - Note that if PGW IP for UE is configured in HSS,
# o Two SMF are defined with a different APN.
# - Note that if SMF IP for UE is configured in HSS,
# the following configurion for this UE is ignored.
# gtpc:
# - addr: 127.0.0.3
# - addr: 127.0.0.4
# apn: internet
# - addr: 127.0.0.5
# apn: volte
#
# o If APN is omitted, the default APN uses the first PGW node.
# o If APN is omitted, the default APN uses the first SMF node.
# gtpc:
# - addr: 127.0.0.3
# - addr: 127.0.0.4
# - addr: 127.0.0.5
# apn: volte
#
```
The IP address of the UE can also use a different UE pool depending on the APN.
```
### For reference, see `pgw.yaml`
#
# <UE Pool>
### For reference, see `smf.yaml`
# <PDN Configuration with UE Pool>
#
# o IPv4 Pool
# $ sudo ip addr add 10.45.0.1/16 dev ogstun
#
# ue_pool:
# pdn:
# addr: 10.45.0.1/16
#
# o IPv4/IPv6 Pool
# $ sudo ip addr add 10.45.0.1/16 dev ogstun
# $ sudo ip addr add cafe:1::1/64 dev ogstun
#
# ue_pool:
# pdn:
# - addr: 10.45.0.1/16
# - addr: cafe:1::1/64
#
@ -331,7 +402,7 @@ The IP address of the UE can also use a different UE pool depending on the APN.
# $ sudo ip addr add cafe:1::1/64 dev ogstun
# $ sudo ip addr add cafe:2::1/64 dev ogstun
#
# ue_pool:
# pdn:
# - addr: 10.45.0.1/16
# - addr: cafe:1::1/64
# - addr: 10.46.0.1/16
@ -345,7 +416,7 @@ The IP address of the UE can also use a different UE pool depending on the APN.
# $ sudo ip addr add 10.46.0.1/16 dev ogstun3
# $ sudo ip addr add cafe:2::1/64 dev ogstun3
#
# ue_pool:
# pdn:
# - addr: 10.45.0.1/16
# - addr: cafe:1::1/64
# dev: ogstun2
@ -356,6 +427,33 @@ The IP address of the UE can also use a different UE pool depending on the APN.
# apn: volte
# dev: ogstun3
#
# o Pool Range Sample
# pdn:
# - addr: 10.45.0.1/24
# range: 10.45.0.100-10.45.0.200
#
# pdn:
# - addr: 10.45.0.1/24
# range:
# - 10.45.0.5-10.45.0.50
# - 10.45.0.100-
#
# pdn:
# - addr: 10.45.0.1/24
# range:
# - -10.45.0.200
# - 10.45.0.210-10.45.0.220
#
# pdn:
# - addr: 10.45.0.1/16
# range:
# - 10.45.0.100-10.45.0.200
# - 10.45.1.100-10.45.1.200
# - addr: cafe::1/64
# range:
# - cafe::a0-cafe:b0
# - cafe::c0-cafe:d0
#
```
#### Failing to run `./open5gs-mmed`
@ -416,15 +514,15 @@ $ mongo
Kill all processes.
```bash
$ ps -ef | grep simple
$ ps -ef | grep attach
$ ps -ef | grep open5gs
$ sudo pkill -9 simple
$ sudo pkill -9 attach
$ sudo pkill -9 open5gs-mmed ...
```
Execute `./build/test/epc/simple`
Execute `./build/test/attach/attach`
```bash
$ ./build/test/epc/simple
$ ./build/test/attach/attach
```
#### My gNB/eNB does not support IPv6.

View File

@ -222,21 +222,21 @@ Then proceed as follows:
3. Fill the IMSI, security context(K, OPc, AMF), and APN of the subscriber.
4. Click `SAVE` Button
Modify [/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/mme.yaml.in) to set the S1AP IP address, PLMN ID, and TAC
Modify [install/etc/open5gs/mme.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/mme.yaml.in) to set the S1AP IP address, PLMN ID, and TAC.
```diff
diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
--- mme.yaml.old 2018-04-15 18:28:31.000000000 +0900
+++ mme.yaml 2018-04-15 19:53:10.000000000 +0900
@@ -204,20 +204,20 @@ logger:
$ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
--- mme.yaml.old 2020-08-22 12:07:32.755250028 -0400
+++ mme.yaml 2020-08-22 12:08:17.309320211 -0400
@@ -204,20 +204,20 @@
mme:
freeDiameter: @sysconfdir@/freeDiameter/mme.conf
freeDiameter: /home/acetcom/Documents/git/open5gs/install/etc/freeDiameter/mme.conf
s1ap:
- addr: 127.0.0.2
+ addr: 127.0.1.100
gtpc:
addr: 127.0.0.2
gummei:
gummei:
plmn_id:
- mcc: 901
- mnc: 70
@ -255,25 +255,14 @@ diff -u /etc/open5gs/mme.yaml.old /etc/open5gs/mme.yaml
security:
integrity_order : [ EIA1, EIA2, EIA0 ]
ciphering_order : [ EEA0, EEA1, EEA2 ]
```
S1AP/GTP-C IP address, PLMN ID, TAC are changed as follows.
```
S1AP address : 127.0.1.100 - srsENB default value
PLMN ID : MNC(310), MCC(789) - Programmed USIM with a card reader
TAC : 7 - srsENB default value
```
The GTP-U IP address will be set to 127.0.0.6. To do this, modify [/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/sgwu.yaml.in) to set the GTP-U IP address.
Modify [install/etc/open5gs/sgwu.yaml](https://github.com/{{ site.github_username }}/open5gs/blob/master/configs/open5gs/sgwu.yaml.in) to set the GTP-U and PFCP IP address.
```diff
diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml
--- sgwu.yaml.old 2018-04-15 18:30:25.000000000 +0900
+++ sgwu.yaml 2018-04-15 18:30:30.000000000 +0900
@@ -51,7 +51,7 @@ logger:
$ diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml
--- sgwu.yaml.old 2020-08-22 12:08:44.782880778 -0400
+++ sgwu.yaml 2020-08-22 12:06:49.809299514 -0400
@@ -51,7 +51,7 @@
#
sgwu:
gtpu:
@ -287,8 +276,8 @@ diff -u /etc/open5gs/sgwu.yaml.old /etc/open5gs/sgwu.yaml
After changing conf files, please restart Open5GS daemons.
```bash
$ sudo systemctl restart open5gs-mmed
$ sudo systemctl restart open5gs-sgwud
$ sudo systemctl restart open5gs-mmed.service
$ sudo systemctl restart open5gs-sgwud.service
```
If your phone can connect to internet, you must run the following command in Open5GS-PGW installed host.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.