Changes of Revision 31
commit_78359374ab9285863b8e23801b858997f86de403.txt
Added
commit_f1c0b6d2398b6b980036024359cfd4f7ccfb1e9b.txt
Deleted
open5gs_2.5.0.3.f1c0.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.0.3.f1c0.dsc -> open5gs_2.5.1.1.78359.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.0.3.f1c0
6
+Version: 2.5.1.1.78359
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
- 651383eaf0e96093cfea4d3fd10eeb922327493a 11487876 open5gs_2.5.0.3.f1c0.tar.xz
15
+ 3333a0a840ff40bb7f529627e91b584010b886ea 11488768 open5gs_2.5.1.1.78359.tar.xz
16
Checksums-Sha256:
17
- d6c69c14b4a60371ce1af4cc554b11ced99fbb967a6d0f5ae8dc4f166ccc5365 11487876 open5gs_2.5.0.3.f1c0.tar.xz
18
+ 232e840a66bb5a6aa5feeffa9557817b3ace05b04c9263776a9c293b6f788a48 11488768 open5gs_2.5.1.1.78359.tar.xz
19
Files:
20
- 0c8c58b76bf5e1a0b4c5c00ccb505d8c 11487876 open5gs_2.5.0.3.f1c0.tar.xz
21
+ 6672b5a81d956147eba953f15b697518 11488768 open5gs_2.5.1.1.78359.tar.xz
22
open5gs_2.5.0.3.f1c0.tar.xz/.tarball-version -> open5gs_2.5.1.1.78359.tar.xz/.tarball-version
Changed
4
1
2
-2.5.0.3-f1c0
3
+2.5.1.1-78359
4
open5gs_2.5.0.3.f1c0.tar.xz/configs/open5gs/smf.yaml.in -> open5gs_2.5.1.1.78359.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.0.3.f1c0.tar.xz/debian/changelog -> open5gs_2.5.1.1.78359.tar.xz/debian/changelog
Changed
42
1
2
-open5gs (2.5.0.3.f1c0) unstable; urgency=medium
3
+open5gs (2.5.1.1.78359) unstable; urgency=medium
4
5
* Automatically generated changelog entry for building the Osmocom master feed
6
7
- -- Osmocom OBS scripts <info@osmocom.org> Fri, 28 Oct 2022 06:12:56 +0000
8
+ -- Osmocom OBS scripts <info@osmocom.org> Sat, 29 Oct 2022 04:10:29 +0000
9
+
10
+open5gs (2.5.1) unstable; urgency=medium
11
+
12
+ * New NF - SCP(Service Communication Proxy)
13
+
14
+ -- Sukchan Lee <acetcom@gmail.com> Sat, 29 Oct 2022 12:37:52 +0900
15
+
16
+open5gs (2.5.1~kinetic) kinetic; urgency=medium
17
+
18
+ * New NF - SCP(Service Communication Proxy)
19
+
20
+ -- Sukchan Lee <acetcom@gmail.com> Sat, 29 Oct 2022 12:36:17 +0900
21
+
22
+open5gs (2.5.1~jammy) jammy; urgency=medium
23
+
24
+ * New NF - SCP(Service Communication Proxy)
25
+
26
+ -- Sukchan Lee <acetcom@gmail.com> Sat, 29 Oct 2022 12:34:51 +0900
27
+
28
+open5gs (2.5.1~focal) focal; urgency=medium
29
+
30
+ * New NF - SCP(Service Communication Proxy)
31
+
32
+ -- Sukchan Lee <acetcom@gmail.com> Sat, 29 Oct 2022 12:32:53 +0900
33
+
34
+open5gs (2.5.1~bionic) bionic; urgency=medium
35
+
36
+ * New NF - SCP(Service Communication Proxy)
37
+
38
+ -- Sukchan Lee <acetcom@gmail.com> Sat, 29 Oct 2022 12:31:01 +0900
39
40
open5gs (2.5.0) unstable; urgency=medium
41
42
open5gs_2.5.1.1.78359.tar.xz/docs/_posts/2022-10-29-release-v2.5.1.md
Added
97
1
2
+---
3
+title: "v2.5.1 - SCP for Indirect Communication"
4
+date: 2022-10-29 12:42: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
+- AMF Support REREGISTRATION_REQUIRED in dereg notify (#1858(https://github.com/open5gs/open5gs/pull/1858)) -- mitmitmitm(https://github.com/mitmitmitm)
81
+- 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)
82
+- DBI Disable Changes Streams with mongo Version (#1833(https://github.com/open5gs/open5gs/pull/1833)) -- jmasterfunk84(https://github.com/jmasterfunk84)
83
+- SBI Added 3gpp-Sbi-Sender-Timestamp and 3gpp-Sbi-Max-Rsp-Time -- 7c8722d(https://github.com/open5gs/open5gs/commit/7c8722d9d4d2db13d889be1e5e37bc062f069396)
84
+- MME Cancel Location while Idle (#1797(https://github.com/open5gs/open5gs/pull/1797)) -- jmasterfunk84(https://github.com/jmasterfunk84)
85
+- MME Support for Insert Subscriber Data (#1794(https://github.com/open5gs/open5gs/pull/1794)) -- jmasterfunk84(https://github.com/jmasterfunk84)
86
+
87
+#### Bug Fixes
88
+- 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)
89
+- AMF Reject registration requests when pool for UE context is empty (#1828(https://github.com/open5gs/open5gs/pull/1828)) -- bmeglicit(https://github.com/bmeglicit)
90
+- AMF Increase size of TMSI pool (#1827(https://github.com/open5gs/open5gs/pull/1827)) -- bmeglicit(https://github.com/bmeglicit)
91
+- AMF/UDM Added support to subscribe to SDM changes (#1820(https://github.com/open5gs/open5gs/pull/1820)) -- bmeglicit(https://github.com/bmeglicit)
92
+- PFCP Do not check qos_flow in PFCP Report message (#1819(https://github.com/open5gs/open5gs/pull/1819)) -- ssafaorhan(https://github.com/ssafaorhan)
93
+- PFCP Fixed invalid message of Dropped DL Traffic threshold (#1817(https://github.com/open5gs/open5gs/pull/1817)) -- ssafaorhan(https://github.com/ssafaorhan)
94
+
95
+Download -- v2.5.1.tar.gz(https://github.com/open5gs/open5gs/archive/v2.5.1.tar.gz)
96
+{: .notice--info}
97
open5gs_2.5.0.3.f1c0.tar.xz/meson.build -> open5gs_2.5.1.1.78359.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.1',
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.1'
16
17
prefix = get_option('prefix')
18
bindir = join_paths(prefix, get_option('bindir'))
19
open5gs_2.5.0.3.f1c0.tar.xz/src/smf/context.c -> open5gs_2.5.1.1.78359.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.0.3.f1c0.tar.xz/src/smf/context.h -> open5gs_2.5.1.1.78359.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.0.3.f1c0.tar.xz/src/smf/ngap-build.c -> open5gs_2.5.1.1.78359.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