Changes of Revision 7
open5gs_2.5.1.tar.xz/docs/_posts/2022-10-25-release-v2.5.0.md
Deleted
x
1
2
----
3
-title: "v2.5.0 - SCP for Indirect Communication"
4
-date: 2022-10-25 22:54:00 +0900
5
-categories:
6
- - Release
7
-tags:
8
- - News
9
- - Release
10
-head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
11
----
12
-
13
-#### New Feature
14
-
15
-SCP(Service Communication Proxy) is added to support Indirect Communication based on TS29.500. The default Open5GS configuration is provided as an indirect communication using SCP.
16
-
17
-- amf.yaml If NFs are configured to use Delegated Discovery through the SCP, you do not need to set up NRF.
18
-
19
-```
20
-amf:
21
- sbi:
22
- - addr: 127.0.0.5
23
- port: 7777
24
-
25
-scp:
26
- sbi:
27
- - addr: 127.0.1.10
28
- port: 7777
29
-
30
-#nrf:
31
-# sbi:
32
-# - addr:
33
-# - 127.0.0.10
34
-# - ::1
35
-# port: 7777
36
-```
37
-
38
-- scp.yaml NRF is needed for Delegated Discovery in SCP configuration.
39
-
40
-```
41
-scp:
42
- sbi:
43
- - addr: 127.0.1.10
44
- port: 7777
45
-
46
-#
47
-# next_scp:
48
-# sbi:
49
-# addr: 127.0.1.11
50
-# port: 7777
51
-#
52
-
53
-nrf:
54
- sbi:
55
- - addr:
56
- - 127.0.0.10
57
- - ::1
58
- port: 7777
59
-```
60
-
61
-- nrf.yaml If there is an SCP in the NRF configuration, a notification(nnrf-nfm/nf-status-notify) is sent through an indirect communication.
62
-
63
-```
64
-nrf:
65
- sbi:
66
- addr:
67
- - 127.0.0.10
68
- - ::1
69
- port: 7777
70
-
71
-scp:
72
- sbi:
73
- - addr: 127.0.1.10
74
- port: 7777
75
-```
76
-
77
-
78
-#### Enhancements
79
-- WebUI/DB Fixed the WebUI to Support MongoDB 6.0( (#1824(https://github.com/open5gs/open5gs/issues/1824)) -- bmeglicit(https://github.com/bmeglicit)
80
-- DBI Disable Changes Streams with mongo Version (#1833(https://github.com/open5gs/open5gs/pull/1833)) -- jmasterfunk84(https://github.com/jmasterfunk84)
81
-- SBI Added 3gpp-Sbi-Sender-Timestamp and 3gpp-Sbi-Max-Rsp-Time -- 7c8722d(https://github.com/open5gs/open5gs/commit/7c8722d9d4d2db13d889be1e5e37bc062f069396)
82
-- MME Cancel Location while Idle (#1797(https://github.com/open5gs/open5gs/pull/1797)) -- jmasterfunk84(https://github.com/jmasterfunk84)
83
-- MME Support for Insert Subscriber Data (#1794(https://github.com/open5gs/open5gs/pull/1794)) -- jmasterfunk84(https://github.com/jmasterfunk84)
84
-
85
-#### Bug Fixes
86
-- SGW-C Fixed the bug of SGW-C session deletion (#1825(https://github.com/open5gs/open5gs/pull/1825)) -- dai9000(https://github.com/dai9000), cmmacneill53(https://github.com/cmmacneill53)
87
-- AMF Reject registration requests when pool for UE context is empty (#1828(https://github.com/open5gs/open5gs/pull/1828)) -- bmeglicit(https://github.com/bmeglicit)
88
-- AMF Increase size of TMSI pool (#1827(https://github.com/open5gs/open5gs/pull/1827)) -- bmeglicit(https://github.com/bmeglicit)
89
-- AMF/UDM Added support to subscribe to SDM changes (#1820(https://github.com/open5gs/open5gs/pull/1820)) -- bmeglicit(https://github.com/bmeglicit)
90
-- PFCP Do not check qos_flow in PFCP Report message (#1819(https://github.com/open5gs/open5gs/pull/1819)) -- ssafaorhan(https://github.com/ssafaorhan)
91
-- PFCP Fixed invalid message of Dropped DL Traffic threshold (#1817(https://github.com/open5gs/open5gs/pull/1817)) -- ssafaorhan(https://github.com/ssafaorhan)
92
-
93
-Download -- v2.5.0.tar.gz(https://github.com/open5gs/open5gs/archive/v2.5.0.tar.gz)
94
-{: .notice--info}
95
open5gs_2.5.1.dsc -> open5gs_2.5.3.dsc
Changed
22
1
2
Source: open5gs
3
Binary: open5gs-common, open5gs-mme, open5gs-sgwc, open5gs-smf, open5gs-amf, open5gs-sgwu, open5gs-upf, open5gs-hss, open5gs-pcrf, open5gs-nrf, open5gs-scp, open5gs-ausf, open5gs-udm, open5gs-pcf, open5gs-nssf, open5gs-bsf, open5gs-udr, open5gs, open5gs-dbg
4
Architecture: any
5
-Version: 2.5.1
6
+Version: 2.5.3
7
Maintainer: Harald Welte <laforge@gnumonks.org>
8
Uploaders: Sukchan Lee <acetcom@gmail.com>
9
Homepage: https://open5gs.org
10
11
open5gs-udr deb net optional arch=any
12
open5gs-upf deb net optional arch=any
13
Checksums-Sha1:
14
- ce7282c6d728e0e24c12487198e02d80ff7db19d 11488092 open5gs_2.5.1.tar.xz
15
+ fe7094b8aa8cffcb542434f24e6e5b0512f73743 11489140 open5gs_2.5.3.tar.xz
16
Checksums-Sha256:
17
- b0ce7529d667390338917126ad7075601b686138086dde6e4f6beb83797e05a5 11488092 open5gs_2.5.1.tar.xz
18
+ 9708b442e700b18e633a886fd350f80eab024c7726fcae56d0d56ca192dc7443 11489140 open5gs_2.5.3.tar.xz
19
Files:
20
- 754d8509044142ce18f5c925f7885a64 11488092 open5gs_2.5.1.tar.xz
21
+ 454edc0994b134140320fd3dc41f0639 11489140 open5gs_2.5.3.tar.xz
22
open5gs_2.5.1.tar.xz/.tarball-version -> open5gs_2.5.3.tar.xz/.tarball-version
Changed
4
1
2
-2.5.1
3
+2.5.3
4
open5gs_2.5.1.tar.xz/configs/logrotate/open5gs.in -> open5gs_2.5.3.tar.xz/configs/logrotate/open5gs.in
Changed
10
1
2
create 640 open5gs open5gs
3
4
postrotate
5
- for i in nrfd pcrfd hssd ausfd udmd udrd upfd sgwcd sgwud smfd mmed amfd; do
6
+ for i in nrfd scpd pcrfd hssd ausfd udmd udrd upfd sgwcd sgwud smfd mmed amfd; do
7
systemctl reload open5gs-$i
8
done
9
endscript
10
open5gs_2.5.1.tar.xz/configs/newsyslog/open5gs.conf.in -> open5gs_2.5.3.tar.xz/configs/newsyslog/open5gs.conf.in
Changed
9
1
2
#
3
# logfilename owner:group mode count size when flags /pid_file sig_num
4
@localstatedir@/log/open5gs/nrf.log 644 14 * $D0 GZ @localstatedir@/run/open5gs-nrfd/pid`
5
+@localstatedir@/log/open5gs/scp.log 644 14 * $D0 GZ @localstatedir@/run/open5gs-scpd/pid`
6
@localstatedir@/log/open5gs/pcrf.log 644 14 * $D0 GZ @localstatedir@/run/open5gs-pcrfd/pid`
7
@localstatedir@/log/open5gs/hss.log 644 14 * $D0 GZ @localstatedir@/run/open5gs-hssd/pid`
8
@localstatedir@/log/open5gs/ausf.log 644 14 * $D0 GZ @localstatedir@/run/open5gs-ausfd/pid`
9
open5gs_2.5.1.tar.xz/configs/open5gs/smf.yaml.in -> open5gs_2.5.3.tar.xz/configs/open5gs/smf.yaml.in
Changed
23
1
2
# mnc: 70
3
# tac: 99
4
#
5
-
6
+# <Security Indication - 5G Core only>
7
+#
8
+# According to 3GPP TS38.413 Section 9.3.1.27,
9
+# Security Indication IE may be instructed to 5G gNB.
10
+#
11
+# If you set the security_indication in smf.yaml,
12
+# this information is delivered using PDU Session Resource Request Transfer IE
13
+#
14
+# security_indication:
15
+# integrity_protection_indication: required|preferred|not-needed
16
+# confidentiality_protection_indication: required|preferred|not-needed
17
+# maximum_integrity_protected_data_rate_uplink: bitrate64kbs|maximum-UE-rate
18
+# maximum_integrity_protected_data_rate_downlink: bitrate64kbs|maximum-UE-rate
19
+#
20
smf:
21
sbi:
22
- addr: 127.0.0.4
23
open5gs_2.5.1.tar.xz/configs/systemd/open5gs-scpd.service.in -> open5gs_2.5.3.tar.xz/configs/systemd/open5gs-scpd.service.in
Changed
10
1
2
Group=open5gs
3
4
Restart=always
5
-ExecStart=@bindir@/open5gs-nrfd -c @sysconfdir@/open5gs/nrf.yaml
6
+ExecStart=@bindir@/open5gs-scpd -c @sysconfdir@/open5gs/scp.yaml
7
RestartSec=2
8
RestartPreventExitStatus=1
9
ExecReload=/bin/kill -HUP $MAINPID
10
open5gs_2.5.1.tar.xz/debian/changelog -> open5gs_2.5.3.tar.xz/debian/changelog
Changed
96
1
2
+open5gs (2.5.3) unstable; urgency=medium
3
+
4
+ * New NF - SCP(Service Communication Proxy)
5
+
6
+ -- Sukchan Lee <acetcom@gmail.com> Mon, 31 Oct 2022 07:25:06 +0900
7
+
8
+open5gs (2.5.3~kinetic) kinetic; urgency=medium
9
+
10
+ * New NF - SCP(Service Communication Proxy)
11
+
12
+ -- Sukchan Lee <acetcom@gmail.com> Mon, 31 Oct 2022 07:23:45 +0900
13
+
14
+open5gs (2.5.3~jammy) jammy; urgency=medium
15
+
16
+ * New NF - SCP(Service Communication Proxy)
17
+
18
+ -- Sukchan Lee <acetcom@gmail.com> Mon, 31 Oct 2022 07:22:25 +0900
19
+
20
+open5gs (2.5.3~focal) focal; urgency=medium
21
+
22
+ * New NF - SCP(Service Communication Proxy)
23
+
24
+ -- Sukchan Lee <acetcom@gmail.com> Mon, 31 Oct 2022 07:20:57 +0900
25
+
26
+open5gs (2.5.3~bionic) bionic; urgency=medium
27
+
28
+ * New NF - SCP(Service Communication Proxy)
29
+
30
+ -- Sukchan Lee <acetcom@gmail.com> Mon, 31 Oct 2022 07:19:26 +0900
31
+
32
+open5gs (2.5.2) unstable; urgency=medium
33
+
34
+ * New NF - SCP(Service Communication Proxy)
35
+
36
+ -- Sukchan Lee <acetcom@gmail.com> Sun, 30 Oct 2022 14:18:50 +0900
37
+
38
+open5gs (2.5.2~kinetic) kinetic; urgency=medium
39
+
40
+ * New NF - SCP(Service Communication Proxy)
41
+
42
+ -- Sukchan Lee <acetcom@gmail.com> Sun, 30 Oct 2022 14:15:19 +0900
43
+
44
+open5gs (2.5.2~jammy) jammy; urgency=medium
45
+
46
+ * New NF - SCP(Service Communication Proxy)
47
+
48
+ -- Sukchan Lee <acetcom@gmail.com> Sun, 30 Oct 2022 14:13:53 +0900
49
+
50
+open5gs (2.5.2~focal) focal; urgency=medium
51
+
52
+ * New NF - SCP(Service Communication Proxy)
53
+
54
+ -- Sukchan Lee <acetcom@gmail.com> Sun, 30 Oct 2022 14:12:34 +0900
55
+
56
+open5gs (2.5.2~bionic) bionic; urgency=medium
57
+
58
+ * New NF - SCP(Service Communication Proxy)
59
+
60
+ -- Sukchan Lee <acetcom@gmail.com> Sun, 30 Oct 2022 14:11:04 +0900
61
+
62
open5gs (2.5.1) unstable; urgency=medium
63
64
- * Automatically generated changelog entry for building the Osmocom latest feed
65
+ * New NF - SCP(Service Communication Proxy)
66
+
67
+ -- Sukchan Lee <acetcom@gmail.com> Sat, 29 Oct 2022 12:37:52 +0900
68
+
69
+open5gs (2.5.1~kinetic) kinetic; urgency=medium
70
+
71
+ * New NF - SCP(Service Communication Proxy)
72
+
73
+ -- Sukchan Lee <acetcom@gmail.com> Sat, 29 Oct 2022 12:36:17 +0900
74
+
75
+open5gs (2.5.1~jammy) jammy; urgency=medium
76
+
77
+ * New NF - SCP(Service Communication Proxy)
78
+
79
+ -- Sukchan Lee <acetcom@gmail.com> Sat, 29 Oct 2022 12:34:51 +0900
80
+
81
+open5gs (2.5.1~focal) focal; urgency=medium
82
+
83
+ * New NF - SCP(Service Communication Proxy)
84
+
85
+ -- Sukchan Lee <acetcom@gmail.com> Sat, 29 Oct 2022 12:32:53 +0900
86
+
87
+open5gs (2.5.1~bionic) bionic; urgency=medium
88
+
89
+ * New NF - SCP(Service Communication Proxy)
90
91
- -- Osmocom OBS scripts <info@osmocom.org> Fri, 28 Oct 2022 00:28:30 +0000
92
+ -- Sukchan Lee <acetcom@gmail.com> Sat, 29 Oct 2022 12:31:01 +0900
93
94
open5gs (2.5.0) unstable; urgency=medium
95
96
open5gs_2.5.1.tar.xz/docker/webui/Dockerfile -> open5gs_2.5.3.tar.xz/docker/webui/Dockerfile
Changed
10
1
2
MAINTAINER Sukchan Lee <acetcom@gmail.com>
3
4
ARG PACKAGE=open5gs
5
-ARG VERSION=2.5.1
6
+ARG VERSION=2.5.3
7
8
RUN set -e; \
9
cd /usr/src; \
10
open5gs_2.5.1.tar.xz/docs/_docs/guide/01-quickstart.md -> open5gs_2.5.3.tar.xz/docs/_docs/guide/01-quickstart.md
Changed
10
1
2
```bash
3
$ sudo apt update
4
$ sudo apt install curl
5
- $ curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
6
+ $ curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
7
$ sudo apt install nodejs
8
```
9
10
open5gs_2.5.1.tar.xz/docs/_docs/guide/02-building-open5gs-from-sources.md -> open5gs_2.5.3.tar.xz/docs/_docs/guide/02-building-open5gs-from-sources.md
Changed
10
1
2
3
```bash
4
$ sudo apt install curl
5
-$ curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
6
+$ curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
7
$ sudo apt install nodejs
8
```
9
10
open5gs_2.5.1.tar.xz/docs/_docs/tutorial/01-your-first-lte.md -> open5gs_2.5.3.tar.xz/docs/_docs/tutorial/01-your-first-lte.md
Changed
10
1
2
The following shows how to install the Web UI of Open5GS.
3
4
```bash
5
-$ curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
6
+$ curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
7
$ sudo apt install nodejs
8
$ curl -fsSL https://open5gs.org/open5gs/assets/webui/install | sudo -E bash -
9
```
10
open5gs_2.5.3.tar.xz/docs/_posts/2022-10-31-release-v2.5.3.md
Added
98
1
2
+---
3
+title: "v2.5.3 - SCP for Indirect Communication"
4
+date: 2022-10-31 07:17:00 +0900
5
+categories:
6
+ - Release
7
+tags:
8
+ - News
9
+ - Release
10
+head_inline: "<style> ul { padding-bottom: 1em; } .blue { color: blue; }</style>"
11
+---
12
+
13
+#### New Feature
14
+
15
+SCP(Service Communication Proxy) is added to support Indirect Communication based on TS29.500. The default Open5GS configuration is provided as an indirect communication using SCP.
16
+
17
+- amf.yaml If NFs are configured to use Delegated Discovery through the SCP, you do not need to set up NRF.
18
+
19
+```
20
+amf:
21
+ sbi:
22
+ - addr: 127.0.0.5
23
+ port: 7777
24
+
25
+scp:
26
+ sbi:
27
+ - addr: 127.0.1.10
28
+ port: 7777
29
+
30
+#nrf:
31
+# sbi:
32
+# - addr:
33
+# - 127.0.0.10
34
+# - ::1
35
+# port: 7777
36
+```
37
+
38
+- scp.yaml NRF is needed for Delegated Discovery in SCP configuration.
39
+
40
+```
41
+scp:
42
+ sbi:
43
+ - addr: 127.0.1.10
44
+ port: 7777
45
+
46
+#
47
+# next_scp:
48
+# sbi:
49
+# addr: 127.0.1.11
50
+# port: 7777
51
+#
52
+
53
+nrf:
54
+ sbi:
55
+ - addr:
56
+ - 127.0.0.10
57
+ - ::1
58
+ port: 7777
59
+```
60
+
61
+- nrf.yaml If there is an SCP in the NRF configuration, a notification(nnrf-nfm/nf-status-notify) is sent through an indirect communication.
62
+
63
+```
64
+nrf:
65
+ sbi:
66
+ addr:
67
+ - 127.0.0.10
68
+ - ::1
69
+ port: 7777
70
+
71
+scp:
72
+ sbi:
73
+ - addr: 127.0.1.10
74
+ port: 7777
75
+```
76
+
77
+
78
+#### Enhancements
79
+- WebUI/DB Fixed the WebUI to Support MongoDB 6.0 (#1824(https://github.com/open5gs/open5gs/issues/1824)) -- bmeglicit(https://github.com/bmeglicit)
80
+- NAS Discard NAS message if integrity is failed (#1848(https://github.com/open5gs/open5gs/pull/1848)) -- jmasterfunk84(https://github.com/jmasterfunk84)
81
+- AMF Support REREGISTRATION_REQUIRED in dereg notify (#1858(https://github.com/open5gs/open5gs/pull/1858)) -- mitmitmitm(https://github.com/mitmitmitm)
82
+- SMF Support Security Indication IE for 5G-SA UP integrity and confidentiality(#1851(https://github.com/open5gs/open5gs/discussions/1851)) -- irazairspan(https://github.com/irazairspan)
83
+- DBI Disable Changes Streams with mongo Version (#1833(https://github.com/open5gs/open5gs/pull/1833)) -- jmasterfunk84(https://github.com/jmasterfunk84)
84
+- SBI Added 3gpp-Sbi-Sender-Timestamp and 3gpp-Sbi-Max-Rsp-Time -- 7c8722d(https://github.com/open5gs/open5gs/commit/7c8722d9d4d2db13d889be1e5e37bc062f069396)
85
+- MME Cancel Location while Idle (#1797(https://github.com/open5gs/open5gs/pull/1797)) -- jmasterfunk84(https://github.com/jmasterfunk84)
86
+- MME Support for Insert Subscriber Data (#1794(https://github.com/open5gs/open5gs/pull/1794)) -- jmasterfunk84(https://github.com/jmasterfunk84)
87
+
88
+#### Bug Fixes
89
+- SGW-C Fixed the bug of SGW-C session deletion (#1825(https://github.com/open5gs/open5gs/pull/1825)) -- dai9000(https://github.com/dai9000), cmmacneill53(https://github.com/cmmacneill53)
90
+- AMF Reject registration requests when pool for UE context is empty (#1828(https://github.com/open5gs/open5gs/pull/1828)) -- bmeglicit(https://github.com/bmeglicit)
91
+- AMF Increase size of TMSI pool (#1827(https://github.com/open5gs/open5gs/pull/1827)) -- bmeglicit(https://github.com/bmeglicit)
92
+- AMF/UDM Added support to subscribe to SDM changes (#1820(https://github.com/open5gs/open5gs/pull/1820)) -- bmeglicit(https://github.com/bmeglicit)
93
+- PFCP Do not check qos_flow in PFCP Report message (#1819(https://github.com/open5gs/open5gs/pull/1819)) -- ssafaorhan(https://github.com/ssafaorhan)
94
+- PFCP Fixed invalid message of Dropped DL Traffic threshold (#1817(https://github.com/open5gs/open5gs/pull/1817)) -- ssafaorhan(https://github.com/ssafaorhan)
95
+
96
+Download -- v2.5.2.tar.gz(https://github.com/open5gs/open5gs/archive/v2.5.2.tar.gz)
97
+{: .notice--info}
98
open5gs_2.5.1.tar.xz/docs/assets/webui/install -> open5gs_2.5.3.tar.xz/docs/assets/webui/install
Changed
10
1
2
#
3
4
PACKAGE="open5gs"
5
-VERSION="2.5.1"
6
+VERSION="2.5.3"
7
8
print_status() {
9
echo
10
open5gs_2.5.1.tar.xz/lib/sbi/nf-sm.c -> open5gs_2.5.3.tar.xz/lib/sbi/nf-sm.c
Changed
14
1
2
break;
3
4
case OGS_TIMER_NF_INSTANCE_NO_HEARTBEAT:
5
- ogs_error("%s No heartbeat",
6
- NF_INSTANCE_ID(ogs_sbi_self()->nf_instance));
7
+ ogs_error("%s:%s No heartbeat",
8
+ NF_INSTANCE_ID(ogs_sbi_self()->nf_instance),
9
+ OpenAPI_nf_type_ToString(
10
+ NF_INSTANCE_TYPE(ogs_sbi_self()->nf_instance)));
11
OGS_FSM_TRAN(s, &ogs_sbi_nf_state_will_register);
12
break;
13
14
open5gs_2.5.1.tar.xz/meson.build -> open5gs_2.5.3.tar.xz/meson.build
Changed
19
1
2
# along with this program. If not, see <https://www.gnu.org/licenses/>.
3
4
project('open5gs', 'c', 'cpp',
5
- version : '2.5.0',
6
+ version : '2.5.3',
7
license : 'AGPL-3.0-or-later',
8
meson_version : '>= 0.43.0',
9
default_options :
10
11
,
12
)
13
14
-libogslib_version = '2.5.0'
15
+libogslib_version = '2.5.3'
16
17
prefix = get_option('prefix')
18
bindir = join_paths(prefix, get_option('bindir'))
19
open5gs_2.5.1.tar.xz/src/amf/gmm-sm.c -> open5gs_2.5.3.tar.xz/src/amf/gmm-sm.c
Changed
49
1
2
case OGS_NAS_5GS_SECURITY_MODE_COMPLETE:
3
ogs_debug("%s Security mode complete", amf_ue->supi);
4
5
- CLEAR_AMF_UE_TIMER(amf_ue->t3560);
6
-
7
- /* Now, We will check the MAC in the NAS message*/
8
+ /*
9
+ * TS24.501
10
+ * Section 4.4.4.3
11
+ * Integrity checking of NAS signalling messages in the AMF
12
+ *
13
+ * Once the secure exchange of NAS messages has been established
14
+ * for the NAS signalling connection, the receiving 5GMM entity
15
+ * in the AMF shall not process any NAS signalling messages
16
+ * unless they have been successfully integrity checked by the NAS.
17
+ * If any NAS signalling message, having not successfully passed
18
+ * the integrity check, is received, then the NAS in the AMF shall
19
+ * discard that message. If any NAS signalling message is received,
20
+ * as not integrity protected even though the secure exchange
21
+ * of NAS messages has been established, then the NAS shall discard
22
+ * this message.
23
+ */
24
if (h.integrity_protected == 0) {
25
ogs_error("%s Security-mode : No Integrity Protected",
26
amf_ue->supi);
27
-
28
- ogs_assert(OGS_OK ==
29
- nas_5gs_send_gmm_reject(amf_ue,
30
- OGS_5GMM_CAUSE_SECURITY_MODE_REJECTED_UNSPECIFIED));
31
- OGS_FSM_TRAN(s, &gmm_state_exception);
32
break;
33
}
34
35
if (!SECURITY_CONTEXT_IS_VALID(amf_ue)) {
36
ogs_warn("%s No Security Context", amf_ue->supi);
37
- ogs_assert(OGS_OK ==
38
- nas_5gs_send_gmm_reject(amf_ue,
39
- OGS_5GMM_CAUSE_SECURITY_MODE_REJECTED_UNSPECIFIED));
40
- OGS_FSM_TRAN(s, &gmm_state_exception);
41
break;
42
}
43
44
+ CLEAR_AMF_UE_TIMER(amf_ue->t3560);
45
+
46
gmm_cause = gmm_handle_security_mode_complete(
47
amf_ue, &nas_message->gmm.security_mode_complete);
48
if (gmm_cause != OGS_5GMM_CAUSE_REQUEST_ACCEPTED) {
49
open5gs_2.5.1.tar.xz/src/mme/emm-sm.c -> open5gs_2.5.3.tar.xz/src/mme/emm-sm.c
Changed
142
1
2
3
CLEAR_MME_UE_TIMER(mme_ue->t3460);
4
5
- /* Now, We will check the MAC in the NAS message*/
6
+ /*
7
+ * TS24.301
8
+ * Section 4.4.4.3
9
+ * Integrity checking of NAS signalling messages in the MME:
10
+ *
11
+ * Once the secure exchange of NAS messages has been established
12
+ * for the NAS signalling connection, the receiving EMM or ESM entity
13
+ * in the MME shall not process any NAS signalling messages
14
+ * unless they have been successfully integrity checked by the NAS.
15
+ * If any NAS signalling message, having not successfully passed
16
+ * the integrity check, is received, then the NAS in the MME shall
17
+ * discard that message. If any NAS signalling message is received,
18
+ * as not integrity protected even though the secure exchange
19
+ * of NAS messages has been established, then the NAS shall discard
20
+ * this message.
21
+ */
22
h.type = e->nas_type;
23
if (h.integrity_protected == 0) {
24
ogs_error("%s No Integrity Protected", mme_ue->imsi_bcd);
25
-
26
- ogs_assert(OGS_OK ==
27
- nas_eps_send_attach_reject(mme_ue,
28
- OGS_NAS_EMM_CAUSE_SECURITY_MODE_REJECTED_UNSPECIFIED,
29
- OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED));
30
- OGS_FSM_TRAN(s, &emm_state_exception);
31
break;
32
}
33
34
if (!SECURITY_CONTEXT_IS_VALID(mme_ue)) {
35
ogs_warn("%s No Security Context", mme_ue->imsi_bcd);
36
- ogs_assert(OGS_OK ==
37
- nas_eps_send_attach_reject(mme_ue,
38
- OGS_NAS_EMM_CAUSE_SECURITY_MODE_REJECTED_UNSPECIFIED,
39
- OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED));
40
- OGS_FSM_TRAN(s, &emm_state_exception);
41
break;
42
}
43
44
45
case OGS_NAS_EPS_ATTACH_COMPLETE:
46
ogs_info("%s Attach complete", mme_ue->imsi_bcd);
47
48
- CLEAR_MME_UE_TIMER(mme_ue->t3450);
49
-
50
+ /*
51
+ * TS24.301
52
+ * Section 4.4.4.3
53
+ * Integrity checking of NAS signalling messages in the MME:
54
+ *
55
+ * Once the secure exchange of NAS messages has been established
56
+ * for the NAS signalling connection, the receiving EMM or ESM entity
57
+ * in the MME shall not process any NAS signalling messages
58
+ * unless they have been successfully integrity checked by the NAS.
59
+ * If any NAS signalling message, having not successfully passed
60
+ * the integrity check, is received, then the NAS in the MME shall
61
+ * discard that message. If any NAS signalling message is received,
62
+ * as not integrity protected even though the secure exchange
63
+ * of NAS messages has been established, then the NAS shall discard
64
+ * this message.
65
+ */
66
h.type = e->nas_type;
67
if (h.integrity_protected == 0) {
68
ogs_error("%s No Integrity Protected", mme_ue->imsi_bcd);
69
-
70
- ogs_assert(OGS_OK ==
71
- nas_eps_send_attach_reject(mme_ue,
72
- OGS_NAS_EMM_CAUSE_SECURITY_MODE_REJECTED_UNSPECIFIED,
73
- OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED));
74
- OGS_FSM_TRAN(s, &emm_state_exception);
75
break;
76
}
77
78
if (!SECURITY_CONTEXT_IS_VALID(mme_ue)) {
79
ogs_warn("%s No Security Context", mme_ue->imsi_bcd);
80
- ogs_assert(OGS_OK ==
81
- nas_eps_send_attach_reject(mme_ue,
82
- OGS_NAS_EMM_CAUSE_SECURITY_MODE_REJECTED_UNSPECIFIED,
83
- OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED));
84
- OGS_FSM_TRAN(s, &emm_state_exception);
85
break;
86
}
87
88
+ CLEAR_MME_UE_TIMER(mme_ue->t3450);
89
+
90
rv = emm_handle_attach_complete(
91
mme_ue, &message->emm.attach_complete);
92
if (rv != OGS_OK) {
93
94
case OGS_NAS_EPS_TRACKING_AREA_UPDATE_COMPLETE:
95
ogs_debug("%s Tracking area update complete", mme_ue->imsi_bcd);
96
97
- CLEAR_MME_UE_TIMER(mme_ue->t3450);
98
-
99
+ /*
100
+ * TS24.301
101
+ * Section 4.4.4.3
102
+ * Integrity checking of NAS signalling messages in the MME:
103
+ *
104
+ * Once the secure exchange of NAS messages has been established
105
+ * for the NAS signalling connection, the receiving EMM or ESM entity
106
+ * in the MME shall not process any NAS signalling messages
107
+ * unless they have been successfully integrity checked by the NAS.
108
+ * If any NAS signalling message, having not successfully passed
109
+ * the integrity check, is received, then the NAS in the MME shall
110
+ * discard that message. If any NAS signalling message is received,
111
+ * as not integrity protected even though the secure exchange
112
+ * of NAS messages has been established, then the NAS shall discard
113
+ * this message.
114
+ */
115
h.type = e->nas_type;
116
if (h.integrity_protected == 0) {
117
ogs_error("%s No Integrity Protected", mme_ue->imsi_bcd);
118
-
119
- ogs_assert(OGS_OK ==
120
- nas_eps_send_attach_reject(mme_ue,
121
- OGS_NAS_EMM_CAUSE_SECURITY_MODE_REJECTED_UNSPECIFIED,
122
- OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED));
123
- OGS_FSM_TRAN(s, &emm_state_exception);
124
break;
125
}
126
127
if (!SECURITY_CONTEXT_IS_VALID(mme_ue)) {
128
ogs_warn("%s No Security Context", mme_ue->imsi_bcd);
129
- ogs_assert(OGS_OK ==
130
- nas_eps_send_attach_reject(mme_ue,
131
- OGS_NAS_EMM_CAUSE_SECURITY_MODE_REJECTED_UNSPECIFIED,
132
- OGS_NAS_ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED));
133
- OGS_FSM_TRAN(s, &emm_state_exception);
134
break;
135
}
136
137
+ CLEAR_MME_UE_TIMER(mme_ue->t3450);
138
+
139
/* Confirm GUTI */
140
if (mme_ue->next.m_tmsi)
141
mme_ue_confirm_guti(mme_ue);
142
open5gs_2.5.1.tar.xz/src/scp/sbi-path.c -> open5gs_2.5.3.tar.xz/src/scp/sbi-path.c
Changed
18
1
2
3
v_start = v_end = NULL;
4
5
- while (*p++) {
6
+ while (*p) {
7
if (*p == ';') {
8
if ((v_start && v_end) || !v_start) {
9
p++;
10
11
if (!v_start) v_start = p+1;
12
else if (!v_end) v_end = p;
13
}
14
+ p++;
15
}
16
17
if (v_start && v_end) {
18
open5gs_2.5.1.tar.xz/src/smf/context.c -> open5gs_2.5.3.tar.xz/src/smf/context.c
Changed
169
1
2
}
3
}
4
5
+ if (self.security_indication.integrity_protection_indication ||
6
+ self.security_indication.confidentiality_protection_indication) {
7
+ if (!self.security_indication.integrity_protection_indication ||
8
+ !self.security_indication.confidentiality_protection_indication) {
9
+ ogs_error("Invalid security_indication %s,%s",
10
+ self.security_indication.integrity_protection_indication ?
11
+ self.security_indication.integrity_protection_indication :
12
+ "No integrity_protection_indication",
13
+ self.security_indication.confidentiality_protection_indication ?
14
+ self.security_indication.confidentiality_protection_indication :
15
+ "No confidentiality_protection_indication");
16
+ return OGS_ERROR;
17
+ }
18
+ if (smf_integrity_protection_indication_value2enum(
19
+ self.security_indication.integrity_protection_indication) < 0) {
20
+ ogs_error("Invalid integrity_protection_indication %s",
21
+ self.security_indication.integrity_protection_indication);
22
+ return OGS_ERROR;
23
+ }
24
+ if (smf_confidentiality_protection_indication_value2enum(
25
+ self.security_indication.
26
+ confidentiality_protection_indication) < 0) {
27
+ ogs_error("Invalid confidentiality_protection_indication %s",
28
+ self.security_indication.confidentiality_protection_indication);
29
+ return OGS_ERROR;
30
+ }
31
+ }
32
+
33
+ if (self.security_indication.maximum_integrity_protected_data_rate_uplink) {
34
+ NGAP_IntegrityProtectionIndication_t integrityProtectionIndication;
35
+ if (smf_maximum_integrity_protected_data_rate_uplink_value2enum(
36
+ self.security_indication.
37
+ maximum_integrity_protected_data_rate_uplink) < 0) {
38
+ ogs_error("Invalid "
39
+ "maximum_integrity_protected_data_rate_uplink %s",
40
+ self.security_indication.
41
+ maximum_integrity_protected_data_rate_uplink);
42
+ return OGS_ERROR;
43
+ }
44
+ integrityProtectionIndication =
45
+ smf_integrity_protection_indication_value2enum(
46
+ self.security_indication.integrity_protection_indication);
47
+ if (integrityProtectionIndication ==
48
+ NGAP_IntegrityProtectionIndication_required ||
49
+ integrityProtectionIndication ==
50
+ NGAP_IntegrityProtectionIndication_preferred) {
51
+ } else {
52
+ ogs_error("Invalid security_indication %s:UL-%s",
53
+ self.security_indication.integrity_protection_indication ?
54
+ self.security_indication.integrity_protection_indication :
55
+ "No integrity_protection_indication",
56
+ self.security_indication.
57
+ maximum_integrity_protected_data_rate_uplink ?
58
+ self.security_indication.
59
+ maximum_integrity_protected_data_rate_uplink :
60
+ "No integrity_protection_indication");
61
+ return OGS_ERROR;
62
+ }
63
+ }
64
+
65
+ if (self.security_indication.maximum_integrity_protected_data_rate_downlink) {
66
+ if (smf_maximum_integrity_protected_data_rate_downlink_value2enum(
67
+ self.security_indication.
68
+ maximum_integrity_protected_data_rate_downlink) < 0) {
69
+ ogs_error("Invalid "
70
+ "maximum_integrity_protected_data_rate_downlink %s",
71
+ self.security_indication.
72
+ maximum_integrity_protected_data_rate_downlink);
73
+ return OGS_ERROR;
74
+ }
75
+ if (!self.security_indication.
76
+ maximum_integrity_protected_data_rate_uplink) {
77
+ ogs_error("No maximum_integrity_protected_data_rate_uplink");
78
+ return OGS_ERROR;
79
+ }
80
+ }
81
+
82
return OGS_OK;
83
}
84
85
86
} while (ogs_yaml_iter_type(&info_array) ==
87
YAML_SEQUENCE_NODE);
88
89
+ } else if (!strcmp(smf_key, "security_indication")) {
90
+ ogs_yaml_iter_t security_indication_iter;
91
+ ogs_yaml_iter_recurse(
92
+ &smf_iter, &security_indication_iter);
93
+ while (ogs_yaml_iter_next(&security_indication_iter)) {
94
+ const char *security_indication_key =
95
+ ogs_yaml_iter_key(&security_indication_iter);
96
+ ogs_assert(security_indication_key);
97
+ if (!strcmp(security_indication_key,
98
+ "integrity_protection_indication")) {
99
+ self.security_indication.
100
+ integrity_protection_indication =
101
+ ogs_yaml_iter_value(
102
+ &security_indication_iter);
103
+ } else if (!strcmp(security_indication_key,
104
+ "confidentiality_protection_indication")) {
105
+ self.security_indication.
106
+ confidentiality_protection_indication =
107
+ ogs_yaml_iter_value(
108
+ &security_indication_iter);
109
+ } else if (!strcmp(security_indication_key,
110
+ "maximum_integrity_protected_data_rate_uplink")) {
111
+ self.security_indication.
112
+ maximum_integrity_protected_data_rate_uplink =
113
+ ogs_yaml_iter_value(
114
+ &security_indication_iter);
115
+ } else if (!strcmp(security_indication_key,
116
+ "maximum_integrity_protected_data_rate_downlink")) {
117
+ self.security_indication.
118
+ maximum_integrity_protected_data_rate_downlink =
119
+ ogs_yaml_iter_value(
120
+ &security_indication_iter);
121
+ }
122
+ }
123
} else if (!strcmp(smf_key, "pfcp")) {
124
/* handle config in pfcp library */
125
} else if (!strcmp(smf_key, "subnet")) {
126
127
num_of_smf_sess = num_of_smf_sess - 1;
128
ogs_info("Removed Number of SMF-Sessions is now %d", num_of_smf_sess);
129
}
130
+
131
+int smf_integrity_protection_indication_value2enum(const char *value)
132
+{
133
+ ogs_assert(value);
134
+ if (!strcmp(value, "required"))
135
+ return NGAP_IntegrityProtectionIndication_required;
136
+ else if (!strcmp(value, "preferred"))
137
+ return NGAP_IntegrityProtectionIndication_preferred;
138
+ else if (!strcmp(value, "not-needed"))
139
+ return NGAP_IntegrityProtectionIndication_not_needed;
140
+ else {
141
+ ogs_error("Invalid value%s", value);
142
+ return -1;
143
+ }
144
+}
145
+int smf_confidentiality_protection_indication_value2enum(const char *value)
146
+{
147
+ ogs_assert(value);
148
+ return smf_integrity_protection_indication_value2enum(value);
149
+}
150
+int smf_maximum_integrity_protected_data_rate_uplink_value2enum(
151
+ const char *value)
152
+{
153
+ ogs_assert(value);
154
+ if (!strcmp(value, "bitrate64kbs"))
155
+ return NGAP_MaximumIntegrityProtectedDataRate_bitrate64kbs;
156
+ else if (!strcmp(value, "maximum-UE-rate"))
157
+ return NGAP_MaximumIntegrityProtectedDataRate_maximum_UE_rate;
158
+ else {
159
+ ogs_error("Invalid value%s", value);
160
+ return -1;
161
+ }
162
+}
163
+int smf_maximum_integrity_protected_data_rate_downlink_value2enum(
164
+ const char *value)
165
+{
166
+ ogs_assert(value);
167
+ return smf_maximum_integrity_protected_data_rate_uplink_value2enum(value);
168
+}
169
open5gs_2.5.1.tar.xz/src/smf/context.h -> open5gs_2.5.3.tar.xz/src/smf/context.h
Changed
29
1
2
3
uint16_t mtu; /* MTU to advertise in PCO */
4
5
+ struct {
6
+ const char *integrity_protection_indication;
7
+ const char *confidentiality_protection_indication;
8
+ const char *maximum_integrity_protected_data_rate_uplink;
9
+ const char *maximum_integrity_protected_data_rate_downlink;
10
+ } security_indication;
11
+
12
#define SMF_UE_IS_LAST_SESSION(__sMF) \
13
((__sMF) && (ogs_list_count(&(__sMF)->sess_list)) == 1)
14
ogs_list_t smf_ue_list;
15
16
void smf_pf_precedence_pool_init(smf_sess_t *sess);
17
void smf_pf_precedence_pool_final(smf_sess_t *sess);
18
19
+int smf_integrity_protection_indication_value2enum(const char *value);
20
+int smf_confidentiality_protection_indication_value2enum(const char *value);
21
+int smf_maximum_integrity_protected_data_rate_uplink_value2enum(
22
+ const char *value);
23
+int smf_maximum_integrity_protected_data_rate_downlink_value2enum(
24
+ const char *value);
25
+
26
#ifdef __cplusplus
27
}
28
#endif
29
open5gs_2.5.1.tar.xz/src/smf/ngap-build.c -> open5gs_2.5.3.tar.xz/src/smf/ngap-build.c
Changed
99
1
2
NGAP_GTPTunnel_t *gTPTunnel = NULL;
3
NGAP_DataForwardingNotPossible_t *DataForwardingNotPossible = NULL;
4
NGAP_PDUSessionType_t *PDUSessionType = NULL;
5
+ NGAP_SecurityIndication_t *SecurityIndication = NULL;
6
NGAP_QosFlowSetupRequestList_t *QosFlowSetupRequestList = NULL;
7
NGAP_QosFlowSetupRequestItem_t *QosFlowSetupRequestItem = NULL;
8
NGAP_QosFlowIdentifier_t *qosFlowIdentifier = NULL;
9
10
ogs_assert_if_reached();
11
}
12
13
+ if (smf_self()->security_indication.integrity_protection_indication &&
14
+ smf_self()->security_indication.confidentiality_protection_indication) {
15
+
16
+ ie = CALLOC(1,
17
+ sizeof(NGAP_PDUSessionResourceSetupRequestTransferIEs_t));
18
+ ogs_assert(ie);
19
+ ASN_SEQUENCE_ADD(&message.protocolIEs, ie);
20
+
21
+ ie->id = NGAP_ProtocolIE_ID_id_SecurityIndication;
22
+ ie->criticality = NGAP_Criticality_reject;
23
+ ie->value.present = NGAP_PDUSessionResourceSetupRequestTransferIEs__value_PR_SecurityIndication;
24
+
25
+ SecurityIndication = &ie->value.choice.SecurityIndication;
26
+
27
+ SecurityIndication->integrityProtectionIndication =
28
+ smf_integrity_protection_indication_value2enum(
29
+ smf_self()->security_indication.
30
+ integrity_protection_indication);
31
+ ogs_assert(SecurityIndication->integrityProtectionIndication >= 0);
32
+
33
+ SecurityIndication->confidentialityProtectionIndication =
34
+ smf_confidentiality_protection_indication_value2enum(
35
+ smf_self()->security_indication.
36
+ confidentiality_protection_indication);
37
+ ogs_assert(SecurityIndication->
38
+ confidentialityProtectionIndication >= 0);
39
+
40
+ if (smf_self()->security_indication.
41
+ maximum_integrity_protected_data_rate_uplink) {
42
+
43
+ ogs_assert(
44
+ SecurityIndication->integrityProtectionIndication ==
45
+ NGAP_IntegrityProtectionIndication_required ||
46
+ SecurityIndication->integrityProtectionIndication ==
47
+ NGAP_IntegrityProtectionIndication_preferred);
48
+
49
+ SecurityIndication->maximumIntegrityProtectedDataRate_UL =
50
+ CALLOC(1, sizeof(NGAP_MaximumIntegrityProtectedDataRate_t));
51
+ ogs_assert(SecurityIndication->
52
+ maximumIntegrityProtectedDataRate_UL);
53
+ *(SecurityIndication->maximumIntegrityProtectedDataRate_UL) =
54
+ smf_maximum_integrity_protected_data_rate_uplink_value2enum(
55
+ smf_self()->security_indication.
56
+ maximum_integrity_protected_data_rate_uplink);
57
+ ogs_assert(
58
+ *(SecurityIndication->
59
+ maximumIntegrityProtectedDataRate_UL) >= 0);
60
+
61
+ if (smf_self()->security_indication.
62
+ maximum_integrity_protected_data_rate_downlink) {
63
+ NGAP_ProtocolExtensionContainer_9625P229_t *extContainer = NULL;
64
+ NGAP_SecurityIndication_ExtIEs_t *extIe = NULL;
65
+ NGAP_MaximumIntegrityProtectedDataRate_t
66
+ *MaximumIntegrityProtectedDataRate = NULL;
67
+
68
+ extContainer = CALLOC(1,
69
+ sizeof(NGAP_ProtocolExtensionContainer_9625P229_t));
70
+ ogs_assert(extContainer);
71
+ SecurityIndication->iE_Extensions =
72
+ (struct NGAP_ProtocolExtensionContainer *)extContainer;
73
+
74
+ extIe = CALLOC(1, sizeof(NGAP_SecurityIndication_ExtIEs_t));
75
+ ogs_assert(extIe);
76
+ ASN_SEQUENCE_ADD(&extContainer->list, extIe);
77
+
78
+ extIe->id =
79
+ NGAP_ProtocolIE_ID_id_MaximumIntegrityProtectedDataRate_DL;
80
+ extIe->criticality = NGAP_Criticality_ignore;
81
+ extIe->extensionValue.present = NGAP_SecurityIndication_ExtIEs__extensionValue_PR_MaximumIntegrityProtectedDataRate;
82
+
83
+ MaximumIntegrityProtectedDataRate =
84
+ &extIe->extensionValue.choice.
85
+ MaximumIntegrityProtectedDataRate;
86
+
87
+ *MaximumIntegrityProtectedDataRate =
88
+ smf_maximum_integrity_protected_data_rate_downlink_value2enum(
89
+ smf_self()->security_indication.
90
+ maximum_integrity_protected_data_rate_downlink);
91
+ ogs_assert(*MaximumIntegrityProtectedDataRate >= 0);
92
+ }
93
+ }
94
+ }
95
+
96
ie = CALLOC(1, sizeof(NGAP_PDUSessionResourceSetupRequestTransferIEs_t));
97
ogs_assert(ie);
98
ASN_SEQUENCE_ADD(&message.protocolIEs, ie);
99
open5gs_2.5.1.tar.xz/tests/core/poll-test.c -> open5gs_2.5.3.tar.xz/tests/core/poll-test.c
Changed
10
1
2
3
#define DATASTR "This is a test"
4
#define STRLEN 8092
5
-#define PORT 7777
6
+#define PORT 47777
7
#define NUM 100
8
9
#ifndef AI_PASSIVE
10
open5gs_2.5.1.tar.xz/tests/core/socket-test.c -> open5gs_2.5.3.tar.xz/tests/core/socket-test.c
Changed
12
1
2
3
#define DATASTR "This is a test"
4
#define STRLEN 8092
5
-#define PORT 7777
6
-#define PORT2 7778
7
+#define PORT 47777
8
+#define PORT2 47778
9
10
#ifndef AI_PASSIVE
11
#define AI_PASSIVE 1
12
open5gs_2.5.1.tar.xz/webui/package-lock.json -> open5gs_2.5.3.tar.xz/webui/package-lock.json
Changed
16
1
2
{
3
"name": "open5gs",
4
- "version": "2.5.1",
5
+ "version": "2.5.3",
6
"lockfileVersion": 2,
7
"requires": true,
8
"packages": {
9
"": {
10
"name": "open5gs",
11
- "version": "2.5.1",
12
+ "version": "2.5.3",
13
"license": "AGPL-3.0",
14
"dependencies": {
15
"axios": "^0.27.2",
16
open5gs_2.5.1.tar.xz/webui/package.json -> open5gs_2.5.3.tar.xz/webui/package.json
Changed
9
1
2
{
3
"name": "open5gs",
4
- "version": "2.5.1",
5
+ "version": "2.5.3",
6
"description": "Open5gs",
7
"main": "index.js",
8
"repository": "https://github.com/open5gs/open5gs/webui",
9