Changes of Revision 344

commit_a4f8baa1f0c807a801fc7946c51eb428b67c9620.txt Deleted
commit_f68a1f328349f0ef9202c752035ebd00136a6cf5.txt Added
open5gs_2.6.6.42.a4f8ba.dsc -> open5gs_2.6.6.43.f68a1.dsc Changed
x
 
1
@@ -2,7 +2,7 @@
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-sepp, open5gs-ausf, open5gs-udm, open5gs-pcf, open5gs-nssf, open5gs-bsf, open5gs-udr, open5gs, open5gs-dbg
4
 Architecture: any
5
-Version: 2.6.6.42.a4f8ba
6
+Version: 2.6.6.43.f68a1
7
 Maintainer: Harald Welte <laforge@gnumonks.org>
8
 Uploaders: Sukchan Lee <acetcom@gmail.com>
9
 Homepage: https://open5gs.org
10
@@ -32,8 +32,8 @@
11
  open5gs-udr deb net optional arch=any
12
  open5gs-upf deb net optional arch=any
13
 Checksums-Sha1:
14
- 2b79ad42fd197dcf307bf37655bea503d2437bab 14460312 open5gs_2.6.6.42.a4f8ba.tar.xz
15
+ 82d580b16a88987d7d4e57af8b968bd098303539 14459468 open5gs_2.6.6.43.f68a1.tar.xz
16
 Checksums-Sha256:
17
- 3503e99f075ad6fe4ea55c04d92916d85ef0635f7a884757664fd30c5723a14b 14460312 open5gs_2.6.6.42.a4f8ba.tar.xz
18
+ 2340419355005eff0725062f3cd9e78041f9fb7711b6fcf2157de8dcf471cdbb 14459468 open5gs_2.6.6.43.f68a1.tar.xz
19
 Files:
20
- 2fc13aa277c30f85378669e3c5533030 14460312 open5gs_2.6.6.42.a4f8ba.tar.xz
21
+ 8698586ebc7a3b4ea45ae6560907eb72 14459468 open5gs_2.6.6.43.f68a1.tar.xz
22
open5gs_2.6.6.42.a4f8ba.tar.xz/.tarball-version -> open5gs_2.6.6.43.f68a1.tar.xz/.tarball-version Changed
4
 
1
@@ -1 +1 @@
2
-2.6.6.42-a4f8ba
3
+2.6.6.43-f68a1
4
open5gs_2.6.6.42.a4f8ba.tar.xz/debian/changelog -> open5gs_2.6.6.43.f68a1.tar.xz/debian/changelog Changed
12
 
1
@@ -1,8 +1,8 @@
2
-open5gs (2.6.6.42.a4f8ba) unstable; urgency=medium
3
+open5gs (2.6.6.43.f68a1) unstable; urgency=medium
4
 
5
   * Automatically generated changelog entry for building the Osmocom master feed
6
 
7
- -- Osmocom OBS scripts <info@osmocom.org>  Wed, 29 Nov 2023 22:41:59 +0000
8
+ -- Osmocom OBS scripts <info@osmocom.org>  Fri, 01 Dec 2023 14:26:34 +0000
9
 
10
 open5gs (2.6.6) unstable; urgency=medium
11
 
12
open5gs_2.6.6.42.a4f8ba.tar.xz/src/amf/context.h -> open5gs_2.6.6.43.f68a1.tar.xz/src/amf/context.h Changed
13
 
1
@@ -173,6 +173,11 @@
2
     /* UE context */
3
     bool            ue_context_requested;
4
     bool            initial_context_setup_request_sent;
5
+
6
+#define CONTEXT_SETUP_ESTABLISHED(__aMF) \
7
+    CM_CONNECTED(__aMF) && \
8
+    ((__aMF)->ran_ue->initial_context_setup_response_received == true)
9
+    bool            initial_context_setup_response_received;
10
     bool            ue_ambr_sent;
11
 
12
     /* Handover Info */
13
open5gs_2.6.6.42.a4f8ba.tar.xz/src/amf/namf-handler.c -> open5gs_2.6.6.43.f68a1.tar.xz/src/amf/namf-handler.c Changed
45
 
1
@@ -367,10 +367,18 @@
2
             ogs_assert(r != OGS_ERROR);
3
 
4
         } else if (CM_CONNECTED(amf_ue)) {
5
-            r = nas_send_pdu_session_modification_command(sess, n1buf, n2buf);
6
-            ogs_expect(r == OGS_OK);
7
-            ogs_assert(r != OGS_ERROR);
8
-
9
+            if (CONTEXT_SETUP_ESTABLISHED(amf_ue)) {
10
+                r = nas_send_pdu_session_modification_command(
11
+                        sess, n1buf, n2buf);
12
+                ogs_expect(r == OGS_OK);
13
+                ogs_assert(r != OGS_ERROR);
14
+            } else {
15
+                /* Store 5GSM Message */
16
+                ogs_warn("Session MODIFY Context setup is not established");
17
+                AMF_SESS_STORE_5GSM_MESSAGE(sess,
18
+                        OGS_NAS_5GS_PDU_SESSION_MODIFICATION_COMMAND,
19
+                        n1buf, n2buf);
20
+            }
21
         } else {
22
             ogs_fatal("%s Invalid AMF-UE state", amf_ue->supi);
23
             ogs_assert_if_reached();
24
@@ -435,9 +443,17 @@
25
             }
26
 
27
         } else if (CM_CONNECTED(amf_ue)) {
28
-            r = nas_send_pdu_session_release_command(sess, n1buf, n2buf);
29
-            ogs_expect(r == OGS_OK);
30
-            ogs_assert(r != OGS_ERROR);
31
+            if (CONTEXT_SETUP_ESTABLISHED(amf_ue)) {
32
+                r = nas_send_pdu_session_release_command(sess, n1buf, n2buf);
33
+                ogs_expect(r == OGS_OK);
34
+                ogs_assert(r != OGS_ERROR);
35
+            } else {
36
+                /* Store 5GSM Message */
37
+                ogs_warn("Session RELEASE Context setup is not established");
38
+                AMF_SESS_STORE_5GSM_MESSAGE(sess,
39
+                        OGS_NAS_5GS_PDU_SESSION_RELEASE_COMMAND,
40
+                        n1buf, n2buf);
41
+            }
42
         } else {
43
             ogs_fatal("%s Invalid AMF-UE state", amf_ue->supi);
44
             ogs_assert_if_reached();
45
open5gs_2.6.6.42.a4f8ba.tar.xz/src/amf/ngap-handler.c -> open5gs_2.6.6.43.f68a1.tar.xz/src/amf/ngap-handler.c Changed
19
 
1
@@ -934,6 +934,8 @@
2
     ogs_debug("    RAN_UE_NGAP_ID%d AMF_UE_NGAP_ID%lld",
3
             ran_ue->ran_ue_ngap_id, (long long)ran_ue->amf_ue_ngap_id);
4
 
5
+    ran_ue->initial_context_setup_response_received = true;
6
+
7
     amf_ue = ran_ue->amf_ue;
8
     if (!amf_ue) {
9
         ogs_error("Cannot find AMF-UE Context %lld",
10
@@ -3228,6 +3230,8 @@
11
     target_ue->ue_context_requested = source_ue->ue_context_requested;
12
     target_ue->initial_context_setup_request_sent =
13
             source_ue->initial_context_setup_request_sent;
14
+    target_ue->initial_context_setup_response_received =
15
+            source_ue->initial_context_setup_response_received;
16
 
17
     target_ue->psimask.activated = source_ue->psimask.activated;
18
 
19
open5gs_2.6.6.42.a4f8ba.tar.xz/tests/vonr/session-test.c -> open5gs_2.6.6.43.f68a1.tar.xz/tests/vonr/session-test.c Changed
391
 
1
@@ -2301,6 +2301,381 @@
2
     test_ue_remove(test_ue);
3
 }
4
 
5
+static void test7_issues2729_func(abts_case *tc, void *data)
6
+{
7
+    int rv;
8
+    ogs_socknode_t *ngap;
9
+    ogs_socknode_t *gtpu;
10
+    ogs_pkbuf_t *gmmbuf;
11
+    ogs_pkbuf_t *gsmbuf;
12
+    ogs_pkbuf_t *nasbuf;
13
+    ogs_pkbuf_t *sendbuf;
14
+    ogs_pkbuf_t *recvbuf;
15
+    ogs_ngap_message_t message;
16
+    int i;
17
+
18
+    uint8_t tmpOGS_HUGE_LEN;
19
+    char *_gtp_payload = "34ff0024"
20
+        "0000000100000085 010002004500001c 0c0b000040015a7a 0a2d00010a2d0002"
21
+        "00000964cd7c291f";
22
+
23
+    ogs_nas_5gs_mobile_identity_suci_t mobile_identity_suci;
24
+    test_ue_t *test_ue = NULL;
25
+    test_sess_t *sess = NULL;
26
+    test_bearer_t *qos_flow = NULL;
27
+
28
+    bson_t *doc = NULL;
29
+
30
+    /* Setup Test UE & Session Context */
31
+    memset(&mobile_identity_suci, 0, sizeof(mobile_identity_suci));
32
+
33
+    mobile_identity_suci.h.supi_format = OGS_NAS_5GS_SUPI_FORMAT_IMSI;
34
+    mobile_identity_suci.h.type = OGS_NAS_5GS_MOBILE_IDENTITY_SUCI;
35
+    mobile_identity_suci.routing_indicator1 = 0;
36
+    mobile_identity_suci.routing_indicator2 = 0xf;
37
+    mobile_identity_suci.routing_indicator3 = 0xf;
38
+    mobile_identity_suci.routing_indicator4 = 0xf;
39
+    mobile_identity_suci.protection_scheme_id = OGS_PROTECTION_SCHEME_NULL;
40
+    mobile_identity_suci.home_network_pki_value = 0;
41
+
42
+    test_ue = test_ue_add_by_suci(&mobile_identity_suci, "0000203190");
43
+    ogs_assert(test_ue);
44
+
45
+    test_ue->nr_cgi.cell_id = 0x40001;
46
+
47
+    test_ue->nas.registration.tsc = 0;
48
+    test_ue->nas.registration.ksi = OGS_NAS_KSI_NO_KEY_IS_AVAILABLE;
49
+    test_ue->nas.registration.follow_on_request = 1;
50
+    test_ue->nas.registration.value = OGS_NAS_5GS_REGISTRATION_TYPE_INITIAL;
51
+
52
+    test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc";
53
+    test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca";
54
+
55
+    /* gNB connects to AMF */
56
+    ngap = testngap_client(AF_INET);
57
+    ABTS_PTR_NOTNULL(tc, ngap);
58
+
59
+    /* gNB connects to UPF */
60
+    gtpu = test_gtpu_server(1, AF_INET);
61
+    ABTS_PTR_NOTNULL(tc, gtpu);
62
+
63
+    /* Send NG-Setup Reqeust */
64
+    sendbuf = testngap_build_ng_setup_request(0x4000, 22);
65
+    ABTS_PTR_NOTNULL(tc, sendbuf);
66
+    rv = testgnb_ngap_send(ngap, sendbuf);
67
+    ABTS_INT_EQUAL(tc, OGS_OK, rv);
68
+
69
+    /* Receive NG-Setup Response */
70
+    recvbuf = testgnb_ngap_read(ngap);
71
+    ABTS_PTR_NOTNULL(tc, recvbuf);
72
+    testngap_recv(test_ue, recvbuf);
73
+
74
+    /********** Insert Subscriber in Database */
75
+    doc = test_db_new_session(test_ue);
76
+    ABTS_PTR_NOTNULL(tc, doc);
77
+    ABTS_INT_EQUAL(tc, OGS_OK, test_db_insert_ue(test_ue, doc));
78
+
79
+    /* Send Registration request */
80
+    test_ue->registration_request_param.guti = 1;
81
+    gmmbuf = testgmm_build_registration_request(test_ue, NULL, false, false);
82
+    ABTS_PTR_NOTNULL(tc, gmmbuf);
83
+
84
+    test_ue->registration_request_param.gmm_capability = 1;
85
+    test_ue->registration_request_param.requested_nssai = 1;
86
+    test_ue->registration_request_param.last_visited_registered_tai = 1;
87
+    test_ue->registration_request_param.ue_usage_setting = 1;
88
+    nasbuf = testgmm_build_registration_request(test_ue, NULL, false, false);
89
+    ABTS_PTR_NOTNULL(tc, nasbuf);
90
+
91
+    sendbuf = testngap_build_initial_ue_message(test_ue, gmmbuf,
92
+                NGAP_RRCEstablishmentCause_mo_Signalling, false, true);
93
+    ABTS_PTR_NOTNULL(tc, sendbuf);
94
+    rv = testgnb_ngap_send(ngap, sendbuf);
95
+    ABTS_INT_EQUAL(tc, OGS_OK, rv);
96
+
97
+    /* Receive Identity request */
98
+    recvbuf = testgnb_ngap_read(ngap);
99
+    ABTS_PTR_NOTNULL(tc, recvbuf);
100
+    testngap_recv(test_ue, recvbuf);
101
+
102
+    /* Send Identity response */
103
+    gmmbuf = testgmm_build_identity_response(test_ue);
104
+    ABTS_PTR_NOTNULL(tc, gmmbuf);
105
+    sendbuf = testngap_build_uplink_nas_transport(test_ue, gmmbuf);
106
+    ABTS_PTR_NOTNULL(tc, sendbuf);
107
+    rv = testgnb_ngap_send(ngap, sendbuf);
108
+    ABTS_INT_EQUAL(tc, OGS_OK, rv);
109
+
110
+    /* Receive Authentication request */
111
+    recvbuf = testgnb_ngap_read(ngap);
112
+    ABTS_PTR_NOTNULL(tc, recvbuf);
113
+    testngap_recv(test_ue, recvbuf);
114
+
115
+    /* Send Authentication response */
116
+    gmmbuf = testgmm_build_authentication_response(test_ue);
117
+    ABTS_PTR_NOTNULL(tc, gmmbuf);
118
+    sendbuf = testngap_build_uplink_nas_transport(test_ue, gmmbuf);
119
+    ABTS_PTR_NOTNULL(tc, sendbuf);
120
+    rv = testgnb_ngap_send(ngap, sendbuf);
121
+    ABTS_INT_EQUAL(tc, OGS_OK, rv);
122
+
123
+    /* Receive Security mode command */
124
+    recvbuf = testgnb_ngap_read(ngap);
125
+    ABTS_PTR_NOTNULL(tc, recvbuf);
126
+    testngap_recv(test_ue, recvbuf);
127
+
128
+    /* Send Security mode complete */
129
+    gmmbuf = testgmm_build_security_mode_complete(test_ue, nasbuf);
130
+    ABTS_PTR_NOTNULL(tc, gmmbuf);
131
+    sendbuf = testngap_build_uplink_nas_transport(test_ue, gmmbuf);
132
+    ABTS_PTR_NOTNULL(tc, sendbuf);
133
+    rv = testgnb_ngap_send(ngap, sendbuf);
134
+    ABTS_INT_EQUAL(tc, OGS_OK, rv);
135
+
136
+    /* Receive InitialContextSetupRequest +
137
+     * Registration accept */
138
+    recvbuf = testgnb_ngap_read(ngap);
139
+    ABTS_PTR_NOTNULL(tc, recvbuf);
140
+    testngap_recv(test_ue, recvbuf);
141
+    ABTS_INT_EQUAL(tc,
142
+            NGAP_ProcedureCode_id_InitialContextSetup,
143
+            test_ue->ngap_procedure_code);
144
+
145
+    /* Send UERadioCapabilityInfoIndication */
146
+    sendbuf = testngap_build_ue_radio_capability_info_indication(test_ue);
147
+    ABTS_PTR_NOTNULL(tc, sendbuf);
148
+    rv = testgnb_ngap_send(ngap, sendbuf);
149
+    ABTS_INT_EQUAL(tc, OGS_OK, rv);
150
+
151
+    /* Send InitialContextSetupResponse */
152
+    sendbuf = testngap_build_initial_context_setup_response(test_ue, false);
153
+    ABTS_PTR_NOTNULL(tc, sendbuf);
154
+    rv = testgnb_ngap_send(ngap, sendbuf);
155
+    ABTS_INT_EQUAL(tc, OGS_OK, rv);
156
+
157
+    /* Send Registration complete */
158
+    gmmbuf = testgmm_build_registration_complete(test_ue);
159
+    ABTS_PTR_NOTNULL(tc, gmmbuf);
160
+    sendbuf = testngap_build_uplink_nas_transport(test_ue, gmmbuf);
161
+    ABTS_PTR_NOTNULL(tc, sendbuf);
162
+    rv = testgnb_ngap_send(ngap, sendbuf);
163
+    ABTS_INT_EQUAL(tc, OGS_OK, rv);
164
+
165
+    /* Receive Configuration update command */
166
+    recvbuf = testgnb_ngap_read(ngap);
167
+    ABTS_PTR_NOTNULL(tc, recvbuf);
168
+    testngap_recv(test_ue, recvbuf);
169
+
170
+    /* Send PDU session establishment request */
171
+    sess = test_sess_add_by_dnn_and_psi(test_ue, "internet", 5);
172
+    ogs_assert(sess);
173
+
174
+    sess->ul_nas_transport_param.request_type =
175
+        OGS_NAS_5GS_REQUEST_TYPE_INITIAL;
176
+    sess->ul_nas_transport_param.dnn = 1;
177
+    sess->ul_nas_transport_param.s_nssai = 1;
178
+
179
+    sess->pdu_session_establishment_param.ssc_mode = 1;
180
+    sess->pdu_session_establishment_param.epco = 1;
181
+
182
+    gsmbuf = testgsm_build_pdu_session_establishment_request(sess);
183
+    ABTS_PTR_NOTNULL(tc, gsmbuf);
184
+    gmmbuf = testgmm_build_ul_nas_transport(sess,
185
+            OGS_NAS_PAYLOAD_CONTAINER_N1_SM_INFORMATION, gsmbuf);
186
+    ABTS_PTR_NOTNULL(tc, gmmbuf);
187
+    sendbuf = testngap_build_uplink_nas_transport(test_ue, gmmbuf);
188
+    ABTS_PTR_NOTNULL(tc, sendbuf);
189
+    rv = testgnb_ngap_send(ngap, sendbuf);
190
+    ABTS_INT_EQUAL(tc, OGS_OK, rv);
191
+
192
+    /* Receive PDUSessionResourceSetupRequest +
193
+     * DL NAS transport +
194
+     * PDU session establishment accept */
195
+    recvbuf = testgnb_ngap_read(ngap);
196
+    ABTS_PTR_NOTNULL(tc, recvbuf);
197
+    testngap_recv(test_ue, recvbuf);
198
+    ABTS_INT_EQUAL(tc,
199
+            NGAP_ProcedureCode_id_PDUSessionResourceSetup,
200
+            test_ue->ngap_procedure_code);
201
+
202
+    /* Send PDUSessionResourceSetupResponse */
203
+    sendbuf = testngap_sess_build_pdu_session_resource_setup_response(sess);
204
+    ABTS_PTR_NOTNULL(tc, sendbuf);
205
+    rv = testgnb_ngap_send(ngap, sendbuf);
206
+    ABTS_INT_EQUAL(tc, OGS_OK, rv);
207
+
208
+    /* Send UEContextReleaseRequest */
209
+    sendbuf = testngap_build_ue_context_release_request(test_ue,
210
+            NGAP_Cause_PR_radioNetwork, NGAP_CauseRadioNetwork_user_inactivity,
211
+            true);
212
+    ABTS_PTR_NOTNULL(tc, sendbuf);
213
+    rv = testgnb_ngap_send(ngap, sendbuf);
214
+    ABTS_INT_EQUAL(tc, OGS_OK, rv);
215
+
216
+    /* Receive UEContextReleaseCommand */
217
+    recvbuf = testgnb_ngap_read(ngap);
218
+    ABTS_PTR_NOTNULL(tc, recvbuf);
219
+    testngap_recv(test_ue, recvbuf);
220
+    ABTS_INT_EQUAL(tc,
221
+            NGAP_ProcedureCode_id_UEContextRelease,
222
+            test_ue->ngap_procedure_code);
223
+
224
+    /* Send UEContextReleaseComplete */
225
+    sendbuf = testngap_build_ue_context_release_complete(test_ue);
226
+    ABTS_PTR_NOTNULL(tc, sendbuf);
227
+    rv = testgnb_ngap_send(ngap, sendbuf);
228
+    ABTS_INT_EQUAL(tc, OGS_OK, rv);
229
+
230
+    /*
231
+     * Send Service request Using InitialUEMessage
232
+     *  - PSI(5)
233
+     *    Not PDU SESSION INACTIVE
234
+     *  - PSI(6)
235
+     *    Not PDU SESSION INACTIVE
236
+     */
237
+    test_ue->service_request_param.uplink_data_status = 0;
238
+    test_ue->service_request_param.pdu_session_status = 1;
239
+    test_ue->service_request_param.psimask.pdu_session_status = 0x60;
240
+    nasbuf = testgmm_build_service_request(
241
+            test_ue, OGS_NAS_SERVICE_TYPE_SIGNALLING, NULL, false, false);
242
+    ABTS_PTR_NOTNULL(tc, nasbuf);
243
+
244
+    test_ue->service_request_param.uplink_data_status = 0;
245
+    test_ue->service_request_param.pdu_session_status = 0;
246
+    gmmbuf = testgmm_build_service_request(
247
+            test_ue, OGS_NAS_SERVICE_TYPE_SIGNALLING, nasbuf, true, false);
248
+    ABTS_PTR_NOTNULL(tc, gmmbuf);
249
+
250
+    sendbuf = testngap_build_initial_ue_message(test_ue, gmmbuf,
251
+                NGAP_RRCEstablishmentCause_mo_Signalling, true, false);
252
+    ABTS_PTR_NOTNULL(tc, sendbuf);
253
+    rv = testgnb_ngap_send(ngap, sendbuf);
254
+    ABTS_INT_EQUAL(tc, OGS_OK, rv);
255
+
256
+    /* Receive InitialContextSetupRequest +
257
+     * Service accept */
258
+    recvbuf = testgnb_ngap_read(ngap);
259
+    ABTS_PTR_NOTNULL(tc, recvbuf);
260
+    testngap_recv(test_ue, recvbuf);
261
+    ABTS_INT_EQUAL(tc,
262
+            NGAP_ProcedureCode_id_DownlinkNASTransport,
263
+            test_ue->ngap_procedure_code);
264
+    ABTS_INT_EQUAL(tc, 0x2000, test_ue->pdu_session_status);
265
+
266
+    /* Send PDU session establishment request */
267
+    sess = test_sess_add_by_dnn_and_psi(test_ue, "ims", 6);
268
+    ogs_assert(sess);
269
+
270
+    sess->ul_nas_transport_param.request_type =
271
+        OGS_NAS_5GS_REQUEST_TYPE_INITIAL;
272
+    sess->ul_nas_transport_param.dnn = 1;
273
+    sess->ul_nas_transport_param.s_nssai = 1;
274
+
275
+    sess->pdu_session_establishment_param.ssc_mode = 1;
276
+    sess->pdu_session_establishment_param.epco = 1;
277
+
278
+    gsmbuf = testgsm_build_pdu_session_establishment_request(sess);
279
+    ABTS_PTR_NOTNULL(tc, gsmbuf);
280
+    gmmbuf = testgmm_build_ul_nas_transport(sess,
281
+            OGS_NAS_PAYLOAD_CONTAINER_N1_SM_INFORMATION, gsmbuf);
282
+    ABTS_PTR_NOTNULL(tc, gmmbuf);
283
+    sendbuf = testngap_build_uplink_nas_transport(test_ue, gmmbuf);
284
+    ABTS_PTR_NOTNULL(tc, sendbuf);
285
+    rv = testgnb_ngap_send(ngap, sendbuf);
286
+    ABTS_INT_EQUAL(tc, OGS_OK, rv);
287
+
288
+    /* Receive PDU session establishment accept */
289
+    recvbuf = testgnb_ngap_read(ngap);
290
+    ABTS_PTR_NOTNULL(tc, recvbuf);
291
+    testngap_recv(test_ue, recvbuf);
292
+
293
+    /* Delay sending InitialContextSetupResponse */
294
+    ogs_msleep(100);
295
+
296
+    /* Send InitialContextSetupResponse */
297
+    sendbuf = testngap_build_initial_context_setup_response(test_ue, true);
298
+    ABTS_PTR_NOTNULL(tc, sendbuf);
299
+    rv = testgnb_ngap_send(ngap, sendbuf);
300
+    ABTS_INT_EQUAL(tc, OGS_OK, rv);
301
+
302
+    /* Receive PDUSessionResourceModifyRequest +
303
+     * DL NAS transport +
304
+     * PDU session modification command */
305
+    recvbuf = testgnb_ngap_read(ngap);
306
+    ABTS_PTR_NOTNULL(tc, recvbuf);
307
+    testngap_recv(test_ue, recvbuf);
308
+    ABTS_INT_EQUAL(tc,
309
+            NGAP_ProcedureCode_id_PDUSessionResourceModify,
310
+            test_ue->ngap_procedure_code);
311
+
312
+    /* Send PDU session resource modify response */
313
+    qos_flow = test_qos_flow_find_by_qfi(sess, 2);
314
+    ogs_assert(qos_flow);
315
+
316
+    sendbuf = testngap_build_qos_flow_resource_modify_response(qos_flow);
317
+    ABTS_PTR_NOTNULL(tc, sendbuf);
318
+    rv = testgnb_ngap_send(ngap, sendbuf);
319
+    ABTS_INT_EQUAL(tc, OGS_OK, rv);
320
+
321
+    /* Send PDU session resource modify complete */
322
+    sess->ul_nas_transport_param.request_type =
323
+        OGS_NAS_5GS_REQUEST_TYPE_MODIFICATION_REQUEST;
324
+    sess->ul_nas_transport_param.dnn = 0;
325
+    sess->ul_nas_transport_param.s_nssai = 0;
326
+
327
+    sess->pdu_session_establishment_param.ssc_mode = 0;
328
+    sess->pdu_session_establishment_param.epco = 0;
329
+
330
+    gsmbuf = testgsm_build_pdu_session_modification_complete(sess);
331
+    ABTS_PTR_NOTNULL(tc, gsmbuf);
332
+    gmmbuf = testgmm_build_ul_nas_transport(sess,
333
+            OGS_NAS_PAYLOAD_CONTAINER_N1_SM_INFORMATION, gsmbuf);
334
+    ABTS_PTR_NOTNULL(tc, gmmbuf);
335
+    sendbuf = testngap_build_uplink_nas_transport(test_ue, gmmbuf);
336
+    ABTS_PTR_NOTNULL(tc, sendbuf);
337
+    rv = testgnb_ngap_send(ngap, sendbuf);
338
+    ABTS_INT_EQUAL(tc, OGS_OK, rv);
339
+
340
+    /* Waiting for creating dedicated QoS flow in PFCP protocol */
341
+    ogs_msleep(100);
342
+
343
+    /* Send UEContextReleaseRequest */
344
+    sendbuf = testngap_build_ue_context_release_request(test_ue,
345
+            NGAP_Cause_PR_radioNetwork, NGAP_CauseRadioNetwork_user_inactivity,
346
+            true);
347
+    ABTS_PTR_NOTNULL(tc, sendbuf);
348
+    rv = testgnb_ngap_send(ngap, sendbuf);
349
+    ABTS_INT_EQUAL(tc, OGS_OK, rv);
350
+
351
+    /* Receive UEContextReleaseCommand */
352
+    recvbuf = testgnb_ngap_read(ngap);
353
+    ABTS_PTR_NOTNULL(tc, recvbuf);
354
+    testngap_recv(test_ue, recvbuf);
355
+    ABTS_INT_EQUAL(tc,
356
+            NGAP_ProcedureCode_id_UEContextRelease,
357
+            test_ue->ngap_procedure_code);
358
+
359
+    /* Send UEContextReleaseComplete */
360
+    sendbuf = testngap_build_ue_context_release_complete(test_ue);
361
+    ABTS_PTR_NOTNULL(tc, sendbuf);
362
+    rv = testgnb_ngap_send(ngap, sendbuf);
363
+    ABTS_INT_EQUAL(tc, OGS_OK, rv);
364
+
365
+    ogs_msleep(300);
366
+
367
+    /********** Remove Subscriber in Database */
368
+    ABTS_INT_EQUAL(tc, OGS_OK, test_db_remove_ue(test_ue));
369
+
370
+    /* gNB disonncect from UPF */
371
+    testgnb_gtpu_close(gtpu);
372
+
373
+    /* gNB disonncect from AMF */
374
+    testgnb_ngap_close(ngap);
375
+
376
+    /* Clear Test UE Context */
377
+    test_ue_remove(test_ue);
378
+}
379
+
380
 abts_suite *test_session(abts_suite *suite)
381
 {
382
     suite = ADD_SUITE(suite)
383
@@ -2311,6 +2686,7 @@
384
     abts_run_test(suite, test4_func, NULL);
385
     abts_run_test(suite, test5_func, NULL);
386
     abts_run_test(suite, test6_func, NULL);
387
+    abts_run_test(suite, test7_issues2729_func, NULL);
388
 
389
     return suite;
390
 }
391