open5gs/tests/attach/issues-test.c

1992 lines
86 KiB
C

/*
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
*
* This file is part of Open5GS.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include "test-common.h"
static void issues_1431_func(abts_case *tc, void *data)
{
int rv;
ogs_socknode_t *s1ap;
ogs_socknode_t *gtpu;
ogs_pkbuf_t *emmbuf;
ogs_pkbuf_t *esmbuf;
ogs_pkbuf_t *sendbuf;
ogs_pkbuf_t *recvbuf;
ogs_s1ap_message_t message;
ogs_nas_5gs_mobile_identity_suci_t mobile_identity_suci;
test_ue_t *test_ue = NULL;
test_sess_t *sess = NULL;
test_bearer_t *bearer = NULL;
uint32_t old_enb_ue_s1ap_id;
uint64_t old_mme_ue_s1ap_id;
uint32_t new_enb_ue_s1ap_id;
uint64_t new_mme_ue_s1ap_id;
bson_t *doc = NULL;
/* Setup Test UE & Session Context */
memset(&mobile_identity_suci, 0, sizeof(mobile_identity_suci));
mobile_identity_suci.h.supi_format = OGS_NAS_5GS_SUPI_FORMAT_IMSI;
mobile_identity_suci.h.type = OGS_NAS_5GS_MOBILE_IDENTITY_SUCI;
mobile_identity_suci.routing_indicator1 = 0;
mobile_identity_suci.routing_indicator2 = 0xf;
mobile_identity_suci.routing_indicator3 = 0xf;
mobile_identity_suci.routing_indicator4 = 0xf;
mobile_identity_suci.protection_scheme_id = OGS_PROTECTION_SCHEME_NULL;
mobile_identity_suci.home_network_pki_value = 0;
test_ue = test_ue_add_by_suci(&mobile_identity_suci, "3746000006");
ogs_assert(test_ue);
test_ue->e_cgi.cell_id = 0x00003c01;
test_ue->nas.ksi = OGS_NAS_KSI_NO_KEY_IS_AVAILABLE;
test_ue->nas.value = OGS_NAS_ATTACH_TYPE_EPS_ATTACH;
test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc";
test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca";
sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN);
ogs_assert(sess);
/* eNB connects to MME */
s1ap = tests1ap_client(AF_INET);
ABTS_PTR_NOTNULL(tc, s1ap);
/* eNB connects to SGW */
gtpu = test_gtpu_server(1, AF_INET);
ABTS_PTR_NOTNULL(tc, gtpu);
/* Send S1-Setup Reqeust */
sendbuf = test_s1ap_build_s1_setup_request(
S1AP_ENB_ID_PR_macroENB_ID, 0x54f64);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive S1-Setup Response */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(NULL, recvbuf);
/********** Insert Subscriber in Database */
doc = test_db_new_simple(test_ue);
ABTS_PTR_NOTNULL(tc, doc);
ABTS_INT_EQUAL(tc, OGS_OK, test_db_insert_ue(test_ue, doc));
/* Send Attach Request */
memset(&sess->pdn_connectivity_param,
0, sizeof(sess->pdn_connectivity_param));
sess->pdn_connectivity_param.eit = 1;
sess->pdn_connectivity_param.pco = 1;
sess->pdn_connectivity_param.request_type =
OGS_NAS_EPS_REQUEST_TYPE_INITIAL;
esmbuf = testesm_build_pdn_connectivity_request(sess, false);
ABTS_PTR_NOTNULL(tc, esmbuf);
memset(&test_ue->attach_request_param,
0, sizeof(test_ue->attach_request_param));
test_ue->attach_request_param.ue_usage_setting = 1;
test_ue->attach_request_param.ms_network_feature_support = 1;
emmbuf = testemm_build_attach_request(test_ue, esmbuf, false, false);
ABTS_PTR_NOTNULL(tc, emmbuf);
memset(&test_ue->initial_ue_param, 0, sizeof(test_ue->initial_ue_param));
sendbuf = test_s1ap_build_initial_ue_message(
test_ue, emmbuf, S1AP_RRC_Establishment_Cause_mo_Signalling, false);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/*** Store eNB-UE-S1AP-ID */
old_enb_ue_s1ap_id = test_ue->enb_ue_s1ap_id;
/* Receive Authentication Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue, recvbuf);
/*** Store MME-UE-S1AP-ID */
old_mme_ue_s1ap_id = test_ue->mme_ue_s1ap_id;
/* Send Authentication response */
emmbuf = testemm_build_authentication_response(test_ue);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue, emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Security mode Command */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue, recvbuf);
/* Send Security mode complete */
test_ue->mobile_identity_imeisv_presence = true;
emmbuf = testemm_build_security_mode_complete(test_ue);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue, emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive ESM Information Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue, recvbuf);
/* Send ESM Information Response */
sess->esm_information_param.pco = 1;
esmbuf = testesm_build_esm_information_response(sess);
ABTS_PTR_NOTNULL(tc, esmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue, esmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Initial Context Setup Request +
* Attach Accept +
* Activate Default Bearer Context Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue, recvbuf);
/* Send UE Capability Info Indication */
sendbuf = tests1ap_build_ue_radio_capability_info_indication(test_ue);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Send Attach Complete + Activate default EPS bearer cotext accept */
test_ue->nr_cgi.cell_id = 0x1234502;
bearer = test_bearer_find_by_ue_ebi(test_ue, 5);
ogs_assert(bearer);
esmbuf = testesm_build_activate_default_eps_bearer_context_accept(
bearer, false);
ABTS_PTR_NOTNULL(tc, esmbuf);
emmbuf = testemm_build_attach_complete(test_ue, esmbuf);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue, emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive EMM information */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue, recvbuf);
/* Send Initial Context Setup Response */
sendbuf = test_s1ap_build_initial_context_setup_response(test_ue);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Wait for Modify Bearer Request/Response */
ogs_msleep(100);
/* Send PDN Connectivity Request */
sess = test_sess_find_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN);
ogs_assert(sess);
sess->pti = 2;
memset(&sess->pdn_connectivity_param,
0, sizeof(sess->pdn_connectivity_param));
sess->pdn_connectivity_param.apn = 1;
sess->pdn_connectivity_param.pco = 1;
sess->pdn_connectivity_param.request_type =
OGS_NAS_EPS_REQUEST_TYPE_INITIAL;
esmbuf = testesm_build_pdn_connectivity_request(sess, true);
ABTS_PTR_NOTNULL(tc, esmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue, esmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive E-RABSetupRequest +
* Activate default EPS bearer context request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue, recvbuf);
ABTS_INT_EQUAL(tc,
S1AP_ProcedureCode_id_downlinkNASTransport,
test_ue->s1ap_procedure_code);
/* Just Delay */
ogs_msleep(100);
/* Send Attach Request - Integrity */
sess = test_sess_find_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN);
ogs_assert(sess);
sess->pti = 3;
memset(&sess->pdn_connectivity_param,
0, sizeof(sess->pdn_connectivity_param));
sess->pdn_connectivity_param.eit = 1;
sess->pdn_connectivity_param.pco = 1;
sess->pdn_connectivity_param.request_type =
OGS_NAS_EPS_REQUEST_TYPE_INITIAL;
esmbuf = testesm_build_pdn_connectivity_request(sess, false);
ABTS_PTR_NOTNULL(tc, esmbuf);
memset(&test_ue->attach_request_param,
0, sizeof(test_ue->attach_request_param));
test_ue->attach_request_param.guti = 1;
test_ue->attach_request_param.last_visited_registered_tai = 1;
test_ue->attach_request_param.ue_usage_setting = 1;
test_ue->attach_request_param.old_guti_type = 1;
test_ue->attach_request_param.ms_network_feature_support = 1;
emmbuf = testemm_build_attach_request(test_ue, esmbuf, true, false);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_initial_ue_message(
test_ue, emmbuf, S1AP_RRC_Establishment_Cause_mo_Signalling, false);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/*** Store eNB-UE-S1AP-ID */
new_enb_ue_s1ap_id = test_ue->enb_ue_s1ap_id;
/* Receive OLD UE Context Release Command */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue, recvbuf);
/* Receive ESM Information Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue, recvbuf);
/*** Store MME-UE-S1AP-ID */
new_mme_ue_s1ap_id = test_ue->mme_ue_s1ap_id;
/* Send OLD UE Context Release Complete */
test_ue->enb_ue_s1ap_id = old_enb_ue_s1ap_id;
test_ue->mme_ue_s1ap_id = old_mme_ue_s1ap_id;
sendbuf = test_s1ap_build_ue_context_release_complete(test_ue);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Just Delay */
ogs_msleep(100);
/* Send ESM Information Response */
test_ue->enb_ue_s1ap_id = new_enb_ue_s1ap_id;
test_ue->mme_ue_s1ap_id = new_mme_ue_s1ap_id;
sess->esm_information_param.pco = 0;
esmbuf = testesm_build_esm_information_response(sess);
ABTS_PTR_NOTNULL(tc, esmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue, esmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Initial Context Setup Request +
* Attach Accept +
* Activate Default Bearer Context Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue, recvbuf);
/* Send Attach Complete + Activate default EPS bearer cotext accept */
test_ue->nr_cgi.cell_id = 0x1234502;
bearer = test_bearer_find_by_ue_ebi(test_ue, 5);
ogs_assert(bearer);
esmbuf = testesm_build_activate_default_eps_bearer_context_accept(
bearer, false);
ABTS_PTR_NOTNULL(tc, esmbuf);
emmbuf = testemm_build_attach_complete(test_ue, esmbuf);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue, emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive EMM information */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue, recvbuf);
/* Send UE Context Release Request */
sendbuf = test_s1ap_build_ue_context_release_request(test_ue,
S1AP_Cause_PR_radioNetwork, S1AP_CauseRadioNetwork_user_inactivity);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive UE Context Release Command */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue, recvbuf);
/* Send UE Context Release Complete */
sendbuf = test_s1ap_build_ue_context_release_complete(test_ue);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
ogs_msleep(300);
/********** Remove Subscriber in Database */
ABTS_INT_EQUAL(tc, OGS_OK, test_db_remove_ue(test_ue));
/* eNB disonncect from MME */
testenb_s1ap_close(s1ap);
/* eNB disonncect from SGW */
test_gtpu_close(gtpu);
test_ue_remove(test_ue);
}
/*
- v2.6.3 Analysis
05/03 13:01:08.318 1101136515 486875/209 12/322 Attach request
05/03 13:01:08.318 1101136515 486875/209 12/322 emm_state_initial_context_setup(): ENTRY
05/03 13:01:08.318 1101136515 486875/209 12/322 mme_bearer_find_or_add_by_message() [PTI:7, EBI:0]
05/03 13:01:08.318 1101136515 486875/209 12/322 esm_state_inactive(): ENTRY
05/03 13:01:08.318 1101136515 486875/209 12/322 PDN Connectivity request
05/03 13:01:08.318 1101136515 486875/209 12/322 ESM information request
05/03 13:01:08.331 1101133226 486874/881 582/1029 mme_bearer_find_or_add_by_message() [PTI:2, EBI:0]
05/03 13:01:08.331 1101133226 486874/881 582/1029 esm_state_inactive(): ENTRY
05/03 13:01:08.331 1101133226 486874/881 582/1029 PDN Connectivity request
05/03 13:01:08.331 1101133226 486874/881 582/1029 PDN connectivity reject(ims)
05/03 13:01:08.331 1101133226 486874/881 582/1029 esm_state_exception(): ENTRY
05/03 13:01:08.331 1101133226 486874/881 582/1029 [Removed] Number of MME-Sessions is now 28
05/03 13:01:08.335 1101136515 486875/209 12/322 mme_bearer_find_or_add_by_message() [PTI:7, EBI:0]
05/03 13:01:08.335 1101136515 486875/209 12/322 ESM information response
05/03 13:01:08.338 1101136515 486875/209 12/322 Attach accept
05/03 13:01:08.338 1101136515 486875/209 12/322 Activate default bearer context request
05/03 13:01:08.338 1101136515 486875/209 12/322 InitialContextSetupRequest
05/03 13:01:08.631 1101136515 486875/209 12/322 InitialContextSetupResponse
05/03 13:01:08.633 1101136515 486875/209 12/322 UECapabilityInfoIndication
05/03 13:01:08.636 1101136515 486875/209 12/322 emm_state_initial_context_setup(): MME_EVENT_EMM_MESSAGE
05/03 13:01:08.636 1101136515 486875/209 12/322 Attach complete
05/03 13:01:08.636 1101136515 486875/209 12/322 EMM information
05/03 13:01:08.636 1101136515 486875/209 12/322 mme_bearer_find_or_add_by_message() [PTI:0, EBI:5]
05/03 13:01:08.636 1101136515 486875/209 12/322 esm_state_inactive(): MME_EVENT_ESM_MESSAGE
05/03 13:01:08.636 1101136515 486875/209 12/322 Activate default EPS bearer context accept
05/03 13:01:08.636 1101136515 486875/209 12/322 esm_state_active(): ENTRY
05/03 13:01:08.671 1101136515 486875/209 12/322 mme_bearer_find_or_add_by_message() [PTI:8, EBI:0]
05/03 13:01:08.671 1101136515 486875/209 12/322 esm_state_inactive(): ENTRY
05/03 13:01:08.671 1101136515 486875/209 12/322 PDN Connectivity request
05/03 13:01:08.671 1101136515 486875/209 12/322 PDN connectivity reject(ims)
05/03 13:01:08.671 1101136515 486875/209 12/322 esm_state_exception(): ENTRY
05/03 13:01:08.671 1101136515 486875/209 12/322 [Removed] Number of MME-Sessions is now 28
05/03 13:02:09.026 1101136515 655305/195 798/839 Attach request
05/03 13:02:09.026 1101136515 655305/195 798/839 emm_state_initial_context_setup() : ENTRY
05/03 13:02:09.026 1101136515 655305/195 798/839 mme_bearer_find_or_add_by_message() [PTI:21, EBI:0]
05/03 13:02:09.026 1101136515 655305/195 798/839 esm_state_inactive(): ENTRY
05/03 13:02:09.026 1101136515 655305/195 798/839 PDN Connectivity request
05/03 13:02:09.026 1101136515 655305/195 798/839 ESM information request
05/03 13:02:09.042 1101136515 655305/195 798/839 ESM information response
05/03 13:02:09.046 1101136515 655305/195 798/839 Attach accept
05/03 13:02:09.046 1101136515 655305/195 798/839 Activate default bearer context request
05/03 13:02:09.046 1101136515 655305/195 798/839 InitialContextSetupRequest
05/03 13:02:09.289 1101136515 655305/195 798/839 Attach complete
05/03 13:02:09.290 1101136515 655305/195 798/839 mme_bearer_find_or_add_by_message() [PTI:0, EBI:5]
05/03 13:02:09.290 1101136515 655305/195 798/839 Activate default EPS bearer context accept
05/03 13:02:09.290 1101136515 655305/195 798/839 esm_state_active(): ENTRY
05/03 13:02:09.290 1101136515 655305/195 798/839 InitialContextSetupResponse
05/03 13:02:09.209 1101136515 655305/195 798/839 UECapabilityInfoIndication
05/03 13:02:17.442 1101136515 655305/195 798/839 Detach request
05/03 13:02:17.445 1101136515 655305/195 798/839 Detach accept
05/03 13:02:17.445 1101136515 655305/195 798/839 UEContextReleaseCommand
05/03 13:02:17.463 1101136515 655305/195 798/839 UEContextReleaseComplete
05/03 13:02:26.537 1101136519 486875/209 12/322 Detach request
05/03 13:02:26.540 1101136519 486875/209 12/322 Detach accept
05/03 13:02:26.540 1101136519 486875/209 12/322 UEContextReleaseCommand
05/03 13:02:26.542 1101136519 486875/209 12/322 UEContextReleaseComplete
05/03 13:02:27.706 1101136515 655308/176 798/17 Attach request
05/03 13:02:27.706 1101136515 655308/176 798/17 emm_state_initial_context_setup(): ENTRY
05/03 13:02:27.706 1101136515 655308/176 798/17 mme_bearer_find_or_add_by_message() [PTI:22, EBI:0]
05/03 13:02:27.706 1101136515 655308/176 798/17 esm_state_inactive(): ENTRY
05/03 13:02:27.706 1101136515 655308/176 798/17 PDN Connectivity request
05/03 13:02:27.706 1101136515 655308/176 798/17 ESM information request
05/03 13:02:27.918 1101136517 486880/200 995/841 UEContextReleaseRequest
05/03 13:02:27.918 1101136517 486880/200 995/841 UEContextReleaseCommand
05/03 13:02:27.921 1101136517 486880/200 995/841 UEContextReleaseComplete
05/03 13:02:27.936 1101122519 655307/192 314/424 UEContextReleaseRequest
05/03 13:02:27.936 1101122519 655307/192 314/424 UEContextReleaseCommand
05/03 13:02:29.249 1101122519 655307/192 314/424 Detach request
05/03 13:02:29.251 1101122519 655307/192 314/424 Detach accept
05/03 13:02:30.130 1101136512 486719/913 881/969 Implicit MME Detach
05/03 13:02:30.134 1101136512 486719/913 881/969 [MME] Purge-UE-Request
05/03 13:02:30.134 1101136512 486719/913 881/969 [MME] Purge-UE-Answer
05/03 13:02:30.740 1101226519 655307/192 314/424 UEContextReleaseComplete
05/03 13:02:30.756 1101136515 655308/176 798/17 mme_bearer_find_or_add_by_message() [PTI:22, EBI:0]
05/03 13:02:30.756 1101136515 655308/176 798/17 esm_state_inactive(): MME_EVENT_ESM_MESSAGE
05/03 13:02:30.756 1101136515 655308/176 798/17 ESM information response
05/03 13:02:30.756 1101136515 655308/176 798/0/0/47960/22915 Create Session Response
05/03 13:02:30.760 1101136515 655308/176 798/17 Attach accept
05/03 13:02:30.760 1101136515 655308/176 798/17 Activate default bearer context request
05/03 13:02:30.760 1101136515 655308/176 798/0/0/47960 InitialContextSetupRequest
05/03 13:02:32.118 1101136519 486882/214 12/656 InitialUEMessage(M_TMSI:0xc0000428)
05/03 13:02:32.118 1101136519 486882/214 12/656 Attach request
05/03 13:02:32.118 1101136519 486882/214 12/656 emm_state_initial_context_setup(): ENTRY
05/03 13:02:32.118 1101136519 486882/214 12/656 mme_bearer_find_or_add_by_message() [PTI:9, EBI:0]
05/03 13:02:32.118 1101136519 486882/214 12/656 esm_state_inactive(): ENTRY
05/03 13:02:32.118 1101136519 486882/214 12/656 PDN Connectivity request
05/03 13:02:32.118 1101136519 486882/214 12/656 ESM information request
05/03 13:02:32.135 1101136519 486882/214 12/656 mme_bearer_find_or_add_by_message() [PTI:9, EBI:0]
05/03 13:02:32.135 1101136519 486882/214 12/656 esm_state_inactive(): MME_EVENT_ESM_MESSAGE
05/03 13:02:32.135 1101136519 486882/214 12/656 ESM information response
05/03 13:02:32.135 1101136519 486882/214 12/0/0/26037/17607 Create Session Response
05/03 13:02:32.138 1101136519 486882/214 12/656 Attch accept
05/03 13:02:32.138 1101136519 486882/214 12/656 Activate default bearer context request
05/03 13:02:32.139 1101136519 486882/214 12/0/0/26037 InitialContextSetupRequest
05/03 13:02:32.433 1101136519 486882/214 12/656 InitialContextSetupResponse
05/03 13:02:32.434 1101136519 486882/214 12/656 UECapabilityInfoIndication
05/03 13:02:32.455 1101136519 486882/214 12/656 Attach complete
05/03 13:02:32.455 1101136519 486882/214 12/656 mme_bearer_find_or_add_by_message() [PTI:0, EBI:5]
05/03 13:02:32.455 1101136519 486882/214 12/656 esm_state_inactive(): MME_EVENT_ESM_MESSAGE
05/03 13:02:32.455 1101136519 486882/214 12/656/4154952/26037 Activate default EPS bearer context accept
05/03 13:02:32.455 1101136519 486882/214 12/656 esm_state_active(): ENTRY
05/03 13:02:32.511 1101136519 486882/214 12/656 mme_bearer_find_or_add_by_message() [PTI:10, EBI:0]
05/03 13:02:32.511 1101136519 486882/214 12/656 esm_state_inactive(): ENTRY
05/03 13:02:32.511 1101136519 486882/214 12/656 PDN Connectivity request
05/03 13:02:32.511 1101136519 486882/214 12/656 PDN Connectivity reject(ims)
05/03 13:02:32.511 1101136519 486882/214 12/656 esm_state_exception(): ENTRY
05/03 13:02:32.511 1101136519 486882/214 12/656 [Removed] Number of MME-Sessions is now 27
05/03 13:02:33.190 1101136515 655308/176 798/17/55919304/26037 InitialContextSetupResponse
05/03 13:02:33.191 1101136515 655308/176 798/17 UECapabilityInfoIndication
05/03 13:02:33.209 1101136515 655308/176 798/17 Attach complete
05/03 13:02:33.209 1101136515 655308/176 798/17 mme_bearer_find_or_add_by_message() [PTI:0, EBI:5]
05/03 13:02:33.209 1101136515 655308/176 798/17 esm_state_active(): MME_EVENT_ESM_MESSAGE
05/03 13:02:33.209 1101136515 655308/176 798/17 ERROR: Unknown message(type:194)
05/03 13:02:33.636 1101136519 486882/214 12/656 UECapabilityInfoIndication
05/03 13:02:33.713 1101136519 486882/214 12/656 E_RABModificationIndication
05/03 13:02:33.713 1101136519 486882/214 12/656 E-RABModificationConfirm
05/03 13:02:36.067 1101136515 655308/176 798/17 UECapabilityInfoIndication
05/03 13:02:36.067 1101136515 655308/176 798/17 Detach request
05/03 13:02:36.069 1101136519 486882/214 12/656 Detach accept
05/03 13:02:36.069 1101136519 486882/214 12/656 UEContextReleaseCommand
05/03 13:02:36.072 1101136519 486882/214 12/656 UEContextReleaseComplete
05/03 13:02:36.178 1101122519 655309/223 314/412 Attach request
05/03 13:02:36.178 1101122519 655309/223 314/412 emm_state_initial_context_setup(): ENTRY
05/03 13:02:36.178 1101122519 655309/223 314/412 mme_bearer_find_or_add_by_message() [PTI:15, EBI:0]
05/03 13:02:36.178 1101122519 655309/223 314/412 esm_state_inactive()
05/03 13:02:36.178 1101122519 655309/223 314/412 PDN Connectivity request
05/03 13:02:36.178 1101122519 655309/223 314/412 ESM information request
05/03 13:02:36.194 1101122519 655309/223 314/412 ESM information response
05/03 13:02:36.197 1101122519 655309/223 314/412 Attach accept
05/03 13:02:36.197 1101122519 655309/223 314/412 Activate default bearer context request
05/03 13:02:36.197 1101122519 655309/223 314/412 InitialContextSetupRequest
05/03 13:02:36.254 1101136515 655308/176 798/17 E_RABModificationIndication
05/03 13:02:36.254 1101136515 655308/176 798/17 ERROR: No Bearer [5]
05/03 13:02:36.408 1101136519 486883/907 Service request
05/03 13:02:36.408 1101136519 486883/907 ERROR: No Session Context
05/03 13:02:36.408 1101136519 486883/907 Service reject
05/03 13:02:36.408 1101136519 486883/907 UEContextReleaseCommand
05/03 13:02:36.410 1101136519 486883/907 UEContextReleaseComplete
05/03 13:02:36.410 1101122519 655309/223 314/412 [MME] Purge-UE-Request
05/03 13:02:36.413 1101122519 655309/223 314/412 [MME] Purge-UE-Answer
05/03 13:02:36.514 1101122519 655309/223 314/412 InitialContextSetupResponse
05/03 13:02:36.515 1101122519 655309/223 314/412 UECapabilityInfoIndication
05/03 13:02:36.545 1101122519 655309/223 314/412 Attach complete
05/03 13:02:36.545 1101122519 655309/223 314/412 mme_bearer_find_or_add_by_message() [PTI:0, EBI:5]
05/03 13:02:36.545 1101122519 655309/223 314/412 Activate default EPS bearer context accept
05/03 13:02:36.545 1101122519 655309/223 314/412 esm_state_active()
05/03 13:02:36.584 1101136519 486884/261 473/992 Attach request
05/03 13:02:36.587 1101136519 486884/261 473/992 Authentication request
05/03 13:02:36.639 1101136519 486884/261 473/992 Authentication response
05/03 13:02:36.639 1101136519 486884/261 473/992 Security mode command
05/03 13:02:36.656 1101136519 486884/261 473/992 Security mode complete
05/03 13:02:36.661 1101136519 486884/261 473/992 mme_bearer_find_or_add_by_message() [PTI:11, EBI:0]
05/03 13:02:36.661 1101136519 486884/261 473/992 esm_state_inactive()
05/03 13:02:36.661 1101136519 486884/261 473/992 PDN connection request
05/03 13:02:36.661 1101136519 486884/261 473/992 ESM information request
05/03 13:02:36.678 1101136519 486884/261 473/992 ESM information response
05/03 13:02:36.680 1101136519 486884/261 473/992 Attach accept
05/03 13:02:36.680 1101136519 486884/261 473/992 InitialContextSetupRequest
05/03 13:02:36.968 1101136519 486884/261 473/992 InitialContextSetupResponse
05/03 13:02:36.969 1101136519 486884/261 473/992 UECapabilityInfoIndication
05/03 13:02:36.991 1101136519 486884/261 473/992 Attach complete
05/03 13:02:36.991 1101136519 486884/261 473/992 Activate default EPS bearer context accept
05/03 13:02:36.991 1101136519 486884/261 473/992 esm_state_inactive()
05/03 13:02:37.253 1101136515 655308/176 798/17 UECapabilityInfoIndication
05/03 13:02:38.162 1101136519 486884/261 473/992 UECapabilityInfoIndication
05/03 13:02:38.232 1101136519 486884/261 473/992 E_RABModificationIndication
05/03 13:02:38.232 1101136519 486884/261 473/992 E-RABModificationConfirm
05/03 13:02:38.260 1101136515 655308/176 798/17 UEContextReleaseRequest
05/03 13:02:38.767 1101136514 486877/270 874/207 UEContextReleaseRequest
05/03 13:02:38.768 1101136514 486877/270 874/207 UEContextReleaseCommand
05/03 13:02:38.769 1101136514 486877/270 874/207 UEContextReleaseComplete
05/03 13:02:45.768 1101136515 655308/176 798/17 LOCAL No Response. Give up! for step 1 type 170 peer
05/03 13:02:45.768 1101136515 655308/176 798/17 UEContextReleaseCommand
05/03 13:02:45.768 1101136515 655308/176 798/17 GTP Timeout : IMSI[1101136515] Message-Type[170]
05/03 13:02:45.996 1101136515 655310/123 Attach Request
05/03 13:02:45.966 1101136515 655310/123 FATAL
*/
#define NUM_OF_TEST_UE 3
static void issues_2287_v263_func(abts_case *tc, void *data)
{
int rv, i;
ogs_socknode_t *s1ap;
ogs_socknode_t *gtpu;
ogs_pkbuf_t *emmbuf;
ogs_pkbuf_t *esmbuf;
ogs_pkbuf_t *sendbuf;
ogs_pkbuf_t *recvbuf;
ogs_s1ap_message_t message;
ogs_nas_5gs_mobile_identity_suci_t mobile_identity_suci;
test_ue_t *test_ue[NUM_OF_TEST_UE];
test_sess_t *sess = NULL;
test_bearer_t *bearer = NULL;
uint32_t enb_ue_s1ap_id;
uint64_t mme_ue_s1ap_id;
bson_t *doc = NULL;
/* eNB connects to MME */
s1ap = tests1ap_client(AF_INET);
ABTS_PTR_NOTNULL(tc, s1ap);
/* eNB connects to SGW */
gtpu = test_gtpu_server(1, AF_INET);
ABTS_PTR_NOTNULL(tc, gtpu);
/* Send S1-Setup Reqeust */
sendbuf = test_s1ap_build_s1_setup_request(
S1AP_ENB_ID_PR_macroENB_ID, 0x54f64);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive S1-Setup Response */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(NULL, recvbuf);
for (i = 0; i < NUM_OF_TEST_UE; i++) {
const char *scheme_output[] = {
"0000000001",
"0000000002",
"0000000003",
"0000000004",
"0000000005",
};
/* Setup Test UE & Session Context */
memset(&mobile_identity_suci, 0, sizeof(mobile_identity_suci));
mobile_identity_suci.h.supi_format = OGS_NAS_5GS_SUPI_FORMAT_IMSI;
mobile_identity_suci.h.type = OGS_NAS_5GS_MOBILE_IDENTITY_SUCI;
mobile_identity_suci.routing_indicator1 = 0;
mobile_identity_suci.routing_indicator2 = 0xf;
mobile_identity_suci.routing_indicator3 = 0xf;
mobile_identity_suci.routing_indicator4 = 0xf;
mobile_identity_suci.protection_scheme_id = OGS_PROTECTION_SCHEME_NULL;
mobile_identity_suci.home_network_pki_value = 0;
test_ue[i] = test_ue_add_by_suci(
&mobile_identity_suci, scheme_output[i]);
ogs_assert(test_ue[i]);
test_ue[i]->e_cgi.cell_id = 0x54f6401;
test_ue[i]->nas.ksi = OGS_NAS_KSI_NO_KEY_IS_AVAILABLE;
test_ue[i]->nas.value = OGS_NAS_ATTACH_TYPE_COMBINED_EPS_IMSI_ATTACH;
test_ue[i]->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc";
test_ue[i]->opc_string = "e8ed289deba952e4283b54e88e6183ca";
/********** Insert Subscriber in Database */
doc = test_db_new_simple(test_ue[i]);
ABTS_PTR_NOTNULL(tc, doc);
ABTS_INT_EQUAL(tc, OGS_OK, test_db_insert_ue(test_ue[i], doc));
}
/**********************************************************
* First UE - INITIAL
**********************************************************/
test_ue[0]->enb_ue_s1ap_id = 100;
sess = test_sess_add_by_apn(
test_ue[0], "internet", OGS_GTP2_RAT_TYPE_EUTRAN);
ogs_assert(sess);
sess->pti = 21;
/* Send Attach Request */
memset(&sess->pdn_connectivity_param,
0, sizeof(sess->pdn_connectivity_param));
sess->pdn_connectivity_param.eit = 1;
sess->pdn_connectivity_param.pco = 1;
sess->pdn_connectivity_param.request_type =
OGS_NAS_EPS_REQUEST_TYPE_INITIAL;
esmbuf = testesm_build_pdn_connectivity_request(sess, false);
ABTS_PTR_NOTNULL(tc, esmbuf);
memset(&test_ue[0]->attach_request_param,
0, sizeof(test_ue[0]->attach_request_param));
test_ue[0]->attach_request_param.drx_parameter = 1;
test_ue[0]->attach_request_param.ms_network_capability = 1;
test_ue[0]->attach_request_param.tmsi_status = 1;
test_ue[0]->attach_request_param.mobile_station_classmark_2 = 1;
test_ue[0]->attach_request_param.supported_codecs = 1;
test_ue[0]->attach_request_param.ue_usage_setting = 1;
test_ue[0]->attach_request_param.ms_network_feature_support = 1;
emmbuf = testemm_build_attach_request(test_ue[0], esmbuf, false, false);
ABTS_PTR_NOTNULL(tc, emmbuf);
memset(&test_ue[0]->initial_ue_param, 0,
sizeof(test_ue[0]->initial_ue_param));
sendbuf = test_s1ap_build_initial_ue_message(
test_ue[0], emmbuf,
S1AP_RRC_Establishment_Cause_mo_Signalling, false);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Authentication Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[0], recvbuf);
/* Send Authentication response */
emmbuf = testemm_build_authentication_response(test_ue[0]);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[0], emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Security mode Command */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[0], recvbuf);
/* Send Security mode complete */
test_ue[0]->mobile_identity_imeisv_presence = true;
emmbuf = testemm_build_security_mode_complete(test_ue[0]);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[0], emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive ESM Information Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[0], recvbuf);
/* Send ESM Information Response */
esmbuf = testesm_build_esm_information_response(sess);
ABTS_PTR_NOTNULL(tc, esmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[0], esmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Initial Context Setup Request +
* Attach Accept +
* Activate Default Bearer Context Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[0], recvbuf);
/* Send Initial Context Setup Response */
sendbuf = test_s1ap_build_initial_context_setup_response(test_ue[0]);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Send UE Capability Info Indication */
sendbuf = tests1ap_build_ue_radio_capability_info_indication(test_ue[0]);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Send Attach Complete + Activate default EPS bearer cotext accept */
test_ue[0]->nr_cgi.cell_id = 0x1234502;
bearer = test_bearer_find_by_ue_ebi(test_ue[0], 5);
ogs_assert(bearer);
esmbuf = testesm_build_activate_default_eps_bearer_context_accept(
bearer, false);
ABTS_PTR_NOTNULL(tc, esmbuf);
emmbuf = testemm_build_attach_complete(test_ue[0], esmbuf);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[0], emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive EMM information */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[0], recvbuf);
/* Send Detach Request */
emmbuf = testemm_build_detach_request(test_ue[0], 1, true, false);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[0], emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive UE Context Release Command */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[0], recvbuf);
/* Send UE Context Release Complete */
sendbuf = test_s1ap_build_ue_context_release_complete(test_ue[0]);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/**********************************************************
* Second UE - INITIAL
**********************************************************/
test_ue[1]->enb_ue_s1ap_id = 200;
sess = test_sess_add_by_apn(
test_ue[1], "internet", OGS_GTP2_RAT_TYPE_EUTRAN);
ogs_assert(sess);
sess->pti = 8;
/* Send Attach Request */
memset(&sess->pdn_connectivity_param,
0, sizeof(sess->pdn_connectivity_param));
sess->pdn_connectivity_param.eit = 1;
sess->pdn_connectivity_param.pco = 1;
sess->pdn_connectivity_param.request_type =
OGS_NAS_EPS_REQUEST_TYPE_INITIAL;
esmbuf = testesm_build_pdn_connectivity_request(sess, false);
ABTS_PTR_NOTNULL(tc, esmbuf);
memset(&test_ue[1]->attach_request_param,
0, sizeof(test_ue[1]->attach_request_param));
test_ue[1]->attach_request_param.drx_parameter = 1;
test_ue[1]->attach_request_param.ms_network_capability = 1;
test_ue[1]->attach_request_param.tmsi_status = 1;
test_ue[1]->attach_request_param.mobile_station_classmark_2 = 1;
test_ue[1]->attach_request_param.supported_codecs = 1;
test_ue[1]->attach_request_param.ue_usage_setting = 1;
test_ue[1]->attach_request_param.ms_network_feature_support = 1;
emmbuf = testemm_build_attach_request(test_ue[1], esmbuf, false, false);
ABTS_PTR_NOTNULL(tc, emmbuf);
memset(&test_ue[1]->initial_ue_param, 0,
sizeof(test_ue[1]->initial_ue_param));
sendbuf = test_s1ap_build_initial_ue_message(
test_ue[1], emmbuf,
S1AP_RRC_Establishment_Cause_mo_Signalling, false);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Authentication Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/* Send Authentication response */
emmbuf = testemm_build_authentication_response(test_ue[1]);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[1], emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Security mode Command */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/* Send Security mode complete */
test_ue[1]->mobile_identity_imeisv_presence = true;
emmbuf = testemm_build_security_mode_complete(test_ue[1]);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[1], emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive ESM Information Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/* Send ESM Information Response */
esmbuf = testesm_build_esm_information_response(sess);
ABTS_PTR_NOTNULL(tc, esmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[1], esmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Initial Context Setup Request +
* Attach Accept +
* Activate Default Bearer Context Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/* Send UE Capability Info Indication */
sendbuf =
tests1ap_build_ue_radio_capability_info_indication(test_ue[1]);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Send Initial Context Setup Response */
sendbuf = test_s1ap_build_initial_context_setup_response(test_ue[1]);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Send Attach Complete + Activate default EPS bearer cotext accept */
test_ue[1]->nr_cgi.cell_id = 0x1234502;
bearer = test_bearer_find_by_ue_ebi(test_ue[1], 5);
ogs_assert(bearer);
esmbuf = testesm_build_activate_default_eps_bearer_context_accept(
bearer, false);
ABTS_PTR_NOTNULL(tc, esmbuf);
emmbuf = testemm_build_attach_complete(test_ue[1], esmbuf);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[1], emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive EMM information */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/* Send Detach Request */
emmbuf = testemm_build_detach_request(test_ue[1], 1, true, false);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[1], emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive UE Context Release Command */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/* Send UE Context Release Complete */
sendbuf = test_s1ap_build_ue_context_release_complete(test_ue[1]);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/**********************************************************
* First UE - GUTI
**********************************************************/
sess = test_sess_find_by_apn(
test_ue[0], "internet", OGS_GTP2_RAT_TYPE_EUTRAN);
ogs_assert(sess);
test_sess_remove(sess);
sess = test_sess_add_by_apn(
test_ue[0], "internet", OGS_GTP2_RAT_TYPE_EUTRAN);
ogs_assert(sess);
sess->pti = 22;
/* Send Attach Request */
memset(&sess->pdn_connectivity_param,
0, sizeof(sess->pdn_connectivity_param));
sess->pdn_connectivity_param.eit = 1;
sess->pdn_connectivity_param.epco = 1;
sess->pdn_connectivity_param.request_type =
OGS_NAS_EPS_REQUEST_TYPE_INITIAL;
esmbuf = testesm_build_pdn_connectivity_request(sess, false);
ABTS_PTR_NOTNULL(tc, esmbuf);
memset(&test_ue[0]->attach_request_param,
0, sizeof(test_ue[0]->attach_request_param));
test_ue[0]->attach_request_param.guti = 1;
test_ue[0]->attach_request_param.last_visited_registered_tai = 1;
test_ue[0]->attach_request_param.drx_parameter = 1;
test_ue[0]->attach_request_param.ms_network_capability = 1;
test_ue[0]->attach_request_param.location_area_identication = 1;
test_ue[0]->attach_request_param.mobile_station_classmark_2 = 1;
test_ue[0]->attach_request_param.mobile_station_classmark_3 = 1;
test_ue[0]->attach_request_param.supported_codecs = 1;
test_ue[0]->attach_request_param.ue_usage_setting = 1;
test_ue[0]->attach_request_param.old_guti_type = 1;
emmbuf = testemm_build_attach_request(test_ue[0], esmbuf, true, false);
ABTS_PTR_NOTNULL(tc, emmbuf);
memset(&test_ue[0]->initial_ue_param, 0, sizeof(test_ue[0]->initial_ue_param));
sendbuf = test_s1ap_build_initial_ue_message(
test_ue[0], emmbuf, S1AP_RRC_Establishment_Cause_mo_Signalling, false);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive ESM Information Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[0], recvbuf);
/* Send ESM Information Response */
esmbuf = testesm_build_esm_information_response(sess);
ABTS_PTR_NOTNULL(tc, esmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[0], esmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Initial Context Setup Request +
* Attach Accept +
* Activate Default Bearer Context Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[0], recvbuf);
/**********************************************************
* Second UE - GUTI
**********************************************************/
sess = test_sess_find_by_apn(
test_ue[1], "internet", OGS_GTP2_RAT_TYPE_EUTRAN);
ogs_assert(sess);
test_sess_remove(sess);
sess = test_sess_add_by_apn(
test_ue[1], "internet", OGS_GTP2_RAT_TYPE_EUTRAN);
ogs_assert(sess);
sess->pti = 9;
/* Send Attach Request */
memset(&sess->pdn_connectivity_param,
0, sizeof(sess->pdn_connectivity_param));
sess->pdn_connectivity_param.eit = 1;
sess->pdn_connectivity_param.epco = 1;
sess->pdn_connectivity_param.request_type =
OGS_NAS_EPS_REQUEST_TYPE_INITIAL;
esmbuf = testesm_build_pdn_connectivity_request(sess, false);
ABTS_PTR_NOTNULL(tc, esmbuf);
memset(&test_ue[1]->attach_request_param,
0, sizeof(test_ue[1]->attach_request_param));
test_ue[1]->attach_request_param.guti = 1;
test_ue[1]->attach_request_param.last_visited_registered_tai = 1;
test_ue[1]->attach_request_param.drx_parameter = 1;
test_ue[1]->attach_request_param.ms_network_capability = 1;
test_ue[1]->attach_request_param.location_area_identication = 1;
test_ue[1]->attach_request_param.mobile_station_classmark_2 = 1;
test_ue[1]->attach_request_param.mobile_station_classmark_3 = 1;
test_ue[1]->attach_request_param.supported_codecs = 1;
test_ue[1]->attach_request_param.ue_usage_setting = 1;
test_ue[1]->attach_request_param.old_guti_type = 1;
emmbuf = testemm_build_attach_request(test_ue[1], esmbuf, true, false);
ABTS_PTR_NOTNULL(tc, emmbuf);
memset(&test_ue[1]->initial_ue_param, 0, sizeof(test_ue[1]->initial_ue_param));
sendbuf = test_s1ap_build_initial_ue_message(
test_ue[1], emmbuf, S1AP_RRC_Establishment_Cause_mo_Signalling, false);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive ESM Information Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/* Send ESM Information Response */
esmbuf = testesm_build_esm_information_response(sess);
ABTS_PTR_NOTNULL(tc, esmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[1], esmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Initial Context Setup Request +
* Attach Accept +
* Activate Default Bearer Context Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/* Send Initial Context Setup Response */
sendbuf = test_s1ap_build_initial_context_setup_response(test_ue[1]);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Send UE Capability Info Indication */
sendbuf =
tests1ap_build_ue_radio_capability_info_indication(test_ue[1]);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Send Attach Complete + Activate default EPS bearer cotext accept */
test_ue[1]->nr_cgi.cell_id = 0x1234502;
bearer = test_bearer_find_by_ue_ebi(test_ue[1], 5);
ogs_assert(bearer);
esmbuf = testesm_build_activate_default_eps_bearer_context_accept(
bearer, false);
ABTS_PTR_NOTNULL(tc, esmbuf);
emmbuf = testemm_build_attach_complete(test_ue[1], esmbuf);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[1], emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive EMM information */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/* Send PDN Connectivity Request */
sess = test_sess_add_by_apn(test_ue[1], "ims", OGS_GTP2_RAT_TYPE_EUTRAN);
ogs_assert(sess);
sess->pti = 10;
sess->pdn_connectivity_param.apn = 1;
sess->pdn_connectivity_param.pco = 1;
sess->pdn_connectivity_param.request_type =
OGS_NAS_EPS_REQUEST_TYPE_INITIAL;
esmbuf = testesm_build_pdn_connectivity_request(sess, true);
ABTS_PTR_NOTNULL(tc, esmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[1], esmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive PDN Connectivity reject */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
test_sess_remove(sess);
/**********************************************************
* First UE - GUTI Resume
**********************************************************/
sess = test_sess_add_by_apn(
test_ue[0], "internet", OGS_GTP2_RAT_TYPE_EUTRAN);
ogs_assert(sess);
/* Send Initial Context Setup Response */
sendbuf = test_s1ap_build_initial_context_setup_response(test_ue[0]);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Send UE Capability Info Indication */
sendbuf = tests1ap_build_ue_radio_capability_info_indication(test_ue[0]);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Send Attach Complete + Activate default EPS bearer cotext accept */
test_ue[0]->nr_cgi.cell_id = 0x1234502;
bearer = test_bearer_find_by_ue_ebi(test_ue[0], 5);
ogs_assert(bearer);
esmbuf = testesm_build_activate_default_eps_bearer_context_accept(
bearer, false);
ABTS_PTR_NOTNULL(tc, esmbuf);
emmbuf = testemm_build_attach_complete(test_ue[0], esmbuf);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[0], emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive EMM information */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[0], recvbuf);
ogs_msleep(300);
for (i = 0; i < NUM_OF_TEST_UE; i++) {
/********** Remove Subscriber in Database */
ABTS_INT_EQUAL(tc, OGS_OK, test_db_remove_ue(test_ue[i]));
}
/* eNB disonncect from MME */
testenb_s1ap_close(s1ap);
/* eNB disonncect from SGW */
test_gtpu_close(gtpu);
test_ue_remove_all();
}
/*
- v2.6.4 Analysis
05/29 15:02:25.141 1101122519 490/222 267/300/-974782142/30908 E_RABModificationIndication
05/29 15:02:25.141 1101122519 490/222 267/300/-974782142/30908 E-RABModificationConfirm
05/29 15:02:28.090 1101135526 485/106 44/54/41120/45321 E_RABModificationIndication
05/29 15:02:28.090 1101135526 485/106 44/54/41120/45321 E-RABModificationConfirm
05/29 15:02:28.360 1101136515 488/377 692/574/-1025113818/17073 E_RABModificationIndication
05/29 15:02:28.361 1101136515 488/377 692/574/-1025113818/17073 E-RABModificationConfirm
05/29 15:02:30.444 1101135526 485/106 44/54/41120/45321 UEContextReleaseRequest
05/29 15:02:30.445 1101135526 485/106 44/54/41120/45321 UEContextReleaseCommand
05/29 15:02:30.445 1101135526 485/106 44/54/41120/45321 Downlink Data Notification
05/29 15:02:30.445 1101135526 485/106 44/54/41120/45321 [1101135526] Clear Paging Info
05/29 15:02:30.445 1101135526 485/106 44/54/41120/45321 Downlink Data Notification Ackknowledge
05/29 15:02:30.476 1101135526 485/106 44/54/41120/45321 UEContextReleaseComplete
05/29 15:02:31.791 1101135526 491/826 44/54/-1053359805/45321 InitialUEMessage
05/29 15:02:31.791 1101135526 491/826 44/54/-1053359805/45321 Tracking area update request
05/29 15:02:31.792 1101135526 491/826 44/54/-1053359805/45321 Tracking area update accept
05/29 15:02:31.792 1101135526 491/826 44/54/-1053359805/45321 UEContextReleaseCommand
05/29 15:02:31.793 1101135526 491/826 44/54/-1053359805/45321 UEContextReleaseComplete
05/29 15:02:32.129 1101135526 492/65 44/54/41672/45321 InitialUEMessage
05/29 15:02:32.129 1101135526 492/65 44/54/41672/45321 Service request
05/29 15:02:32.129 1101135526 492/65 44/54/41672/45321 InitialContextSetupRequest
05/29 15:02:32.191 1101135526 492/65 44/54/41672/45321 InitialContextSetupResponse
05/29 15:02:32.656 1101135526 492/65 44/54/-1053359805/45321 E_RABModificationIndication
05/29 15:02:32.657 1101135526 492/65 44/54/-1053359805/45321 E-RABModificationConfirm
05/29 15:02:33.530 1101135526 492/65 44/54/41672/45321 E_RABModificationIndication
05/29 15:02:33.531 1101135526 492/65 44/54/41672/45321 E-RABModificationConfirm
05/29 15:02:35.889 1101135526 492/65 44/54/41672/45321 UEContextReleaseRequest
05/29 15:02:35.890 1101135526 492/65 44/54/41672/45321 UEContextReleaseCommand
05/29 15:02:35.890 1101135526 492/65 44/54/41672/45321 Downlink Data Notification
05/29 15:02:35.890 1101135526 492/65 44/54/41672/45321 [1101135526] Clear Paging Info
05/29 15:02:35.890 1101135526 492/65 44/54/41672/45321 Downlink Data Notification Ackknowledge
05/29 15:02:35.891 1101135526 492/65 44/54/41672/45321 UEContextReleaseComplete
05/29 15:02:40.311 1101135526 493/969 44/54/41984/45321 InitialUEMessage
05/29 15:02:40.311 1101135526 493/969 44/54/41984/45321 Service request
05/29 15:02:40.311 1101135526 493/969 44/54/41984/45321 InitialContextSetupRequest
05/29 15:02:40.375 1101135526 493/969 44/54/41984/45321 InitialContextSetupResponse
05/29 15:02:42.402 1101135526 493/969 44/54/41984/45321 UEContextReleaseRequest
05/29 15:02:42.403 1101135526 493/969 44/54/41984/45321 UEContextReleaseCommand
05/29 15:02:42.403 1101135526 493/969 44/54/41984/45321 Downlink Data Notification
05/29 15:02:42.403 1101135526 493/969 44/54/41984/45321 [1101135526] Clear Paging Info
05/29 15:02:42.403 1101135526 493/969 44/54/41984/45321 Downlink Data Notification Ackknowledge
05/29 15:02:42.511 1101135526 494/123 44/54/41984/45321 InitialUEMessage
05/29 15:02:42.511 1101135526 493/969 44/54/41984/45321 UEContextReleaseCommand
05/29 15:02:42.512 1101135526 494/123 44/54/41984/45321 Tracking area update request
05/29 15:02:42.512 1101135526 494/123 44/54/41984/45321 Tracking area update accept
05/29 15:02:42.512 1101135526 494/123 44/54/41984/45321 UEContextReleaseCommand
05/29 15:02:43.412 1101135526 493/969 44/54/41984/45321 UEContextReleaseComplete
05/29 15:02:43.412 1101135526 494/123 44/54/41984/45321 UEContextReleaseComplete
05/29 15:02:43.586 1101135526 495/85 44/54/42064/45321 InitialUEMessage
05/29 15:02:43.586 1101135526 495/85 44/54/42064/45321 Servie request
05/29 15:02:43.586 1101135526 495/85 44/54/42064/45321 InitialContextSetupRequest
05/29 15:02:43.671 1101135526 495/85 44/54/42064/45321 InitialContextSetupResponse
05/29 15:02:44.644 1101135526 495/85 44/54/-991887070/45321 E_RABModificationIndication
05/29 15:02:44.645 1101135526 495/85 44/54/-991887070/45321 E-RABModificationConfirm
05/29 15:02:45.422 1101136514 613657/812 625/399 UEContextReleaseRequest
05/29 15:02:45.423 1101136514 613657/812 625/399 UEContextReleaseCommand
05/29 15:02:45.424 1101136514 613657/812 625/399 UEContextReleaseComplete
05/29 15:02:46.659 1101135526 495/85 44/54/-991887070/45321 UEContextReleaseRequest
05/29 15:02:46.660 1101135526 495/85 44/54/-991887070/45321 UEContextReleaseCommand
05/29 15:02:46.660 1101135526 495/85 44/54/-991887070/45321 Downlink Data Notification
05/29 15:02:46.660 1101135526 495/85 44/54/-991887070/45321 [1101135526] Clear Paging Info
05/29 15:02:46.660 1101135526 495/85 44/54/-991887070/45321 Downlink Data Notification Ackknowledge
05/29 15:02:46.668 1101135526 495/85 44/54/-991887070/45321 UEContextReleaseComplete
05/29 15:02:46.668 1101135526 496/913 44/54/42104/45321 InitialUEMessage
05/29 15:02:48.146 1101135526 496/913 44/54/42104/45321 Servie request
05/29 15:02:48.146 1101135526 496/913 44/54/42104/45321 InitialContextSetupRequest
05/29 15:02:48.231 1101135526 496/913 44/54/42104/45321 InitialContextSetupResponse
05/29 15:02:48.788 1101135526 496/913 44/54/-991821534/45321 E_RABModificationIndication
05/29 15:02:48.789 1101135526 496/913 44/54/-991821534/45321 E-RABModificationConfirm
05/29 15:02:49.067 1101133203 613658/898 64/808 InitialUEMessage
05/29 15:02:49.067 1101133203 613658/898 64/808 Attach Request
05/29 15:02:49.067 1101133203 613658/898 64/808 Delete Session Request
05/29 15:02:49.071 1101133203 613658/898 64/808 Delete Session Response
05/29 15:02:49.071 1101133203 613658/898 64/808 INFO: Removed Session: UE IMSI:[1101133203] APN:[internet]
05/29 15:02:49.073 1101133203 613658/898 64/0 Authentication request
05/29 15:02:49.127 1101133203 613658/898 64/0 Authentication response
05/29 15:02:49.127 1101133203 613658/898 64/0 Security mode command
05/29 15:02:49.144 1101133203 613658/898 64/0 Security mode complete
05/29 15:02:49.149 1101133203 613658/898 64/0 mme_bearer_find_or_add_by_message() : ESM message type:208, PTI:1, EBI:0
05/29 15:02:49.149 1101133203 613658/898 64/0 esm_state_inactive(): ENTRY
05/29 15:02:49.149 1101133203 613658/898 64/0 [Added] Number of MME-Sessions is now 28
05/29 15:02:49.149 1101133203 613658/898 64/0 PDN Connectivity request
05/29 15:02:49.149 1101133203 613658/898 64/0 ESM information request
05/29 15:02:49.165 1101133203 613658/898 64/0 mme_bearer_find_or_add_by_message() : ESM message type:218, PTI:1, EBI:0
05/29 15:02:49.165 1101133203 613658/898 64/0/0/26394 esm_state_inactive(): ENTRY
05/29 15:02:49.165 1101133203 613658/898 64/0/0/26394 ESM information response
05/29 15:02:49.165 1101133203 613658/898 64/0/0/26394 Create Session Request
05/29 15:02:49.170 1101133203 613658/898 64/845/0/26394/60543 Create Session Response
05/29 15:02:49.170 1101133203 613658/898 64/845/0/26394 Attach accept
05/29 15:02:49.170 1101133203 613658/898 64/845/0/26394 InitialContextSetupRequest
05/29 15:02:49.538 1101133203 613658/898 64/845/0/26394 InitialContextSetupResponse
05/29 15:02:49.539 1101133203 613658/898 64/845/0/26394 UECapabilityInfoIndication
05/29 15:02:49.577 1101133203 613658/898 64/845/0/26394 Attach complete
05/29 15:02:49.577 1101133203 613658/898 64/845/0/26394 EMM information
05/29 15:02:49.577 1101133203 613658/898 64/845/0/26394 mme_bearer_find_or_add_by_message() : ESM message type:194, PTI:0, EBI:5
05/29 15:02:49.577 1101133203 613658/898 64/845/0/26394 esm_state_inactive(): MME_EVENT_ESM_MESSAGE
05/29 15:02:49.577 1101133203 613658/898 64/845/52365352/26394 Activate default EPS bearer context accept
05/29 15:02:49.577 1101133203 613658/898 64/845/52365352/26394 esm_state_active(): ENTRY
05/29 15:02:50.840 1101133203 613658/898 64/845/52365352/26394 UECapabilityInfoIndication
05/29 15:02:50.886 1101135526 496/913 44/54/42104/45321 E_RABModificationIndication
05/29 15:02:50.887 1101135526 496/913 44/54/42104/45321 E-RABModificationConfirm
05/29 15:02:50.904 1101133203 613658/898 64/845/-1069940446/26394 E_RABModificationIndication
05/29 15:02:50.905 1101133203 613658/898 64/845/-1069940446/26394 E-RABModificationConfirm
05/29 15:02:51.402 1101135526 496/913 44/54/-1053294269/45321 E_RABModificationIndication
05/29 15:02:51.403 1101135526 496/913 44/54/-1053294269/45321 E-RABModificationConfirm
05/29 15:02:52.260 1101122519 490/222 267/300/41592/26394 E_RABModificationIndication
05/29 15:02:52.260 1101122519 490/222 267/300/41592/26394 E-RABModificationConfirm
05/29 15:02:59.275 1101133203 613658/898 64/845 UEContextReleaseRequest
05/29 15:02:59.275 1101133203 613658/898 64/845 UEContextReleaseCommand
05/29 15:02:59.277 1101133203 613658/898 64/845 UEContextReleaseComplete
05/29 15:03:26.951 1101122519 501/104 InitialUEMessage
05/29 15:03:26.951 1101122519 490/222 UEContextReleaseCommand
05/29 15:03:26.951 1101122519 501/104 ///26394 Service request
05/29 15:03:26.951 1101122519 501/104 ///26394 InitialContextSetupRequest
05/29 15:03:31.956 1101122519 502/32 267/300 InitialUEMessage
05/29 15:03:31.956 1101122519 501/104 UEContextReleaseCommand
05/29 15:03:31.956 1101122519 502/32 267/300 Service request
05/29 15:03:31.956 1101122519 502/32 267/300//26394 InitialContextSetupRequest
05/29 15:03:34.128 1101136523 613659/44 781/369 InitialContextSetupResponse
05/29 15:03:34.222 1101136523 613659/44 781/369 Attach complete
05/29 15:03:34.223 1101136523 613659/44 781/369 mme_bearer_find_or_add_by_message() : ESM message type:194, PTI:0, EBI:5
05/29 15:03:34.223 1101136523 613659/44 781/369 esm_state_inactive()
05/29 15:03:34.223 1101136523 613659/44 781/369 Activate default EPS bearer context accept
05/29 15:03:34.257 1101136523 613659/44 781/369 PDN Connectivity request
05/29 15:03:34.257 1101136523 613659/44 781/369 PDN Connectivity reject(ims)
05/29 15:03:34.257 1101136523 613659/44 781/369 esm_state_inactive(): EXIT
05/29 15:03:34.257 1101136523 613659/44 781/369 esm_state_exception(): ENTRY
05/29 15:03:34.257 1101136523 613659/44 781/369 Removed Session: UE IMSI:[1101136523] APN:[Unknown]
05/29 15:03:34.257 1101136523 613659/44 781/369 esm_state_exception(): EXIT
05/29 15:03:34.373 1101135526 500/620 44/54 UEContextReleaseComplete
05/29 15:03:34.423 1101122519 502/32 267/300/42616/26394 InitialContextSetupResponse
05/29 15:03:34.896 1101122519 502/32 267/300/-991690462/26394 E_RABModificationIndication
05/29 15:03:34.897 1101122519 502/32 267/300/-991690462/26394 E-RABModificationConfirm
05/29 15:03:35.078 1101135526 503/123 44/54 Service request
05/29 15:03:35.078 1101135526 503/123 44/54 InitialContextSetupRequest
05/29 15:03:35.123 1101135526 503/123 44/54 InitialContextSetupResponse
05/29 15:03:35.222 1101133205 613635/84 164/377 UEContextReleaseRequest
05/29 15:03:35.223 1101133205 613635/84 164/377 UEContextReleaseCommand
05/29 15:03:35.225 1101133205 613635/84 164/377 UEContextReleaseCommplete
05/29 15:03:34.421 1101136523 613659/44 781/369 UECapabilityInfoIndication
05/29 15:03:34.498 1101136523 613659/44 781/369 E_RABModificationIndication
05/29 15:03:34.499 1101136523 613659/44 781/369 E-RABModificationConfirm
05/29 15:03:35.619 1101135526 503/123 44/54 E_RABModificationIndication
05/29 15:03:35.619 1101135526 503/123 44/54 E-RABModificationConfirm
05/29 15:03:36.088 1101122519 501/104 InitialContextSetupFailure
05/29 15:03:36.088 1101122519 501/104 UEContextReleaseCommand
05/29 15:03:36.088 1101122519 501/104 UEContextReleaseComplete
05/29 15:03:36.328 1101133205 613660/844 164/377 Service request
05/29 15:03:36.328 1101133205 613660/844 164/377 InitialContextSetupRequest
05/29 15:03:36.388 1101133205 613660/844 164/377/52365432/22946 InitialContextSetupResponse
05/29 15:03:37.618 1101133205 613660/844 164/377/-942800606/22946 E_RABModificationIndication
05/29 15:03:37.618 1101133205 613660/844 164/377/-942800606/22946 E-RABModificationConfirm
05/29 15:04:26.776 1101122519 502/32 267/300/-991559390/26394 E_RABModificationIndication
05/29 15:04:26.777 1101122519 502/32 267/300/-991559390/26394 E-RABModificationConfirm
05/29 15:03:37.618 1101133205 613660/844 164/377/-942800606/22946 E-RABModificationConfirm
05/29 15:04:31.533 1101133205 613664/975 164/377 Servie request
05/29 15:04:31.533 1101133205 613664/975 164/0/0/22946 InitialContextSetupRequest
05/29 15:04:31.586 1101133205 613664/975 164/377 Downlink Data Notification
05/29 15:04:31.586 1101133205 613664/975 164/377 [1101133205] Clear Paging Info
05/29 15:04:31.586 1101133205 613664/975 164/377 Downlink Data Notification Ackknowledge
05/29 15:04:31.587 1101133205 613664/975 164/377/52365864/22946 InitialContextSetupResponse
05/29 15:04:34.042 1101136514 613665/870 625/870 Servie request
05/29 15:04:34.042 1101136514 613665/870 625/870 InitialContextSetupRequest
05/29 15:04:34.099 1101136514 613665/870 625/870 mme_bearer_find_or_add_by_message() : ESM message type:208, PTI:89, EBI:0
05/29 15:04:34.099 1101136514 613665/870 625/870 esm_state_inactive(): ENTRY
05/29 15:04:34.099 1101136514 613665/870 625/870 [Added] Number of MME-Sessions is now 29 (../src/mme/mme-context.c:4049)
05/29 15:04:34.099 1101136514 613665/870 625/870 PDN Connectivity request
05/29 15:04:34.099 1101136514 613665/870 625/870 PDN Connectivity reject(ims)
05/29 15:04:34.099 1101136514 613665/870 625/870 Removed Session: UE IMSI:[1101136514] APN:[Unknown]
05/29 15:04:34.099 1101136514 613665/870 625/870 InitialContextSetupResponse
05/29 15:04:45.037 1101136515 506/91 692/546 E_RABModificationIndication
05/29 15:04:45.037 1101136515 506/91 692/546 E-RABModificationConfirm
05/29 15:04:48.070 1101122519 502/32 267/300 Detach request
05/29 15:04:48.073 1101133023 613658/898 64/845 ERROR: S1 context has already been removed
05/29 15:04:48.073 1101133023 613658/898 64/845 ERROR: mme_s11_handle_delete_session_response: Expectation `r == OGS_OK' failed.
05/29 15:04:48.073 1101133023 613658/898 64/845 Removed Session: UE IMSI:[1101133203] APN:[internet]
05/29 15:04:48.073 1101133023 613658/898 64/845 esm_stae_active(): EXIT
05/29 15:04:48.474 1101136515 506/91 692/546 E_RABModificationIndication
05/29 15:04:48.475 1101136515 506/91 692/546 E-RABModificationConfirm
05/29 15:04:53.029 1101136515 506/91 692/546 E_RABModificationIndication
05/29 15:04:53.030 1101136515 506/91 692/546 E-RABModificationConfirm
05/29 15:04:53.278 1101135526 505/150 44/54 E_RABModificationIndication
05/29 15:04:53.279 1101135526 505/150 44/54 E-RABModificationConfirm
05/29 15:04:53.933 1101122519 502/32 267/300 E_RABModificationIndication
05/29 15:04:53.933 1101122519 502/32 267/300 ERROR: No Bearer [5]
05/29 15:04:53.933 1101122519 502/32 267/300 ErrorIndication
05/29 15:04:53.990 1101135526 505/150 44/54 E_RABModificationIndication
05/29 15:04:53.991 1101135526 505/150 44/54 E-RABModificationConfirm
05/29 15:04:55.146 1101122519 502/32 267/300 Attach request
05/29 15:04:55.146 1101133023 613658/898 64/845 Removed Session: UE IMSI:[1101133203] APN:[internet]
05/29 15:04:55.146 1101122519 502/32 267/300 emm_state_initial_context_setup(): ENTRY
05/29 15:04:55.146 1101122519 502/32 267/300 mme_bearer_find_or_add_by_message() : ESM message type:208, PTI:16, EBI:0
05/29 15:04:55.147 1101122519 502/32 267/300 ERROR: No Bearer(1) : ESM message type:208, PTI:16, EBI:0
*/
static void issues_2287_v264_func(abts_case *tc, void *data)
{
int rv, i;
ogs_socknode_t *s1ap;
ogs_socknode_t *gtpu;
ogs_pkbuf_t *emmbuf;
ogs_pkbuf_t *esmbuf;
ogs_pkbuf_t *sendbuf;
ogs_pkbuf_t *recvbuf;
ogs_s1ap_message_t message;
ogs_nas_5gs_mobile_identity_suci_t mobile_identity_suci;
test_ue_t *test_ue[NUM_OF_TEST_UE];
test_sess_t *sess = NULL;
test_bearer_t *bearer = NULL;
uint32_t enb_ue_s1ap_id;
uint64_t mme_ue_s1ap_id;
bson_t *doc = NULL;
/* eNB connects to MME */
s1ap = tests1ap_client(AF_INET);
ABTS_PTR_NOTNULL(tc, s1ap);
/* eNB connects to SGW */
gtpu = test_gtpu_server(1, AF_INET);
ABTS_PTR_NOTNULL(tc, gtpu);
/* Send S1-Setup Reqeust */
sendbuf = test_s1ap_build_s1_setup_request(
S1AP_ENB_ID_PR_macroENB_ID, 0x54f64);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive S1-Setup Response */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(NULL, recvbuf);
for (i = 0; i < NUM_OF_TEST_UE; i++) {
const char *scheme_output[] = {
"0000000001",
"0000000002",
"0000000003",
"0000000004",
"0000000005",
};
/* Setup Test UE & Session Context */
memset(&mobile_identity_suci, 0, sizeof(mobile_identity_suci));
mobile_identity_suci.h.supi_format = OGS_NAS_5GS_SUPI_FORMAT_IMSI;
mobile_identity_suci.h.type = OGS_NAS_5GS_MOBILE_IDENTITY_SUCI;
mobile_identity_suci.routing_indicator1 = 0;
mobile_identity_suci.routing_indicator2 = 0xf;
mobile_identity_suci.routing_indicator3 = 0xf;
mobile_identity_suci.routing_indicator4 = 0xf;
mobile_identity_suci.protection_scheme_id = OGS_PROTECTION_SCHEME_NULL;
mobile_identity_suci.home_network_pki_value = 0;
test_ue[i] = test_ue_add_by_suci(
&mobile_identity_suci, scheme_output[i]);
ogs_assert(test_ue[i]);
test_ue[i]->e_cgi.cell_id = 0x54f6401;
test_ue[i]->nas.ksi = OGS_NAS_KSI_NO_KEY_IS_AVAILABLE;
test_ue[i]->nas.value = OGS_NAS_ATTACH_TYPE_COMBINED_EPS_IMSI_ATTACH;
test_ue[i]->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc";
test_ue[i]->opc_string = "e8ed289deba952e4283b54e88e6183ca";
/********** Insert Subscriber in Database */
doc = test_db_new_simple(test_ue[i]);
ABTS_PTR_NOTNULL(tc, doc);
ABTS_INT_EQUAL(tc, OGS_OK, test_db_insert_ue(test_ue[i], doc));
}
/**********************************************************
* Second UE - INITIAL
**********************************************************/
test_ue[1]->enb_ue_s1ap_id = 200;
sess = test_sess_add_by_apn(
test_ue[1], "internet", OGS_GTP2_RAT_TYPE_EUTRAN);
ogs_assert(sess);
sess->pti = 8;
/* Send Attach Request */
memset(&sess->pdn_connectivity_param,
0, sizeof(sess->pdn_connectivity_param));
sess->pdn_connectivity_param.eit = 1;
sess->pdn_connectivity_param.pco = 1;
sess->pdn_connectivity_param.request_type =
OGS_NAS_EPS_REQUEST_TYPE_INITIAL;
esmbuf = testesm_build_pdn_connectivity_request(sess, false);
ABTS_PTR_NOTNULL(tc, esmbuf);
memset(&test_ue[1]->attach_request_param,
0, sizeof(test_ue[1]->attach_request_param));
test_ue[1]->attach_request_param.drx_parameter = 1;
test_ue[1]->attach_request_param.ms_network_capability = 1;
test_ue[1]->attach_request_param.tmsi_status = 1;
test_ue[1]->attach_request_param.mobile_station_classmark_2 = 1;
test_ue[1]->attach_request_param.supported_codecs = 1;
test_ue[1]->attach_request_param.ue_usage_setting = 1;
test_ue[1]->attach_request_param.ms_network_feature_support = 1;
emmbuf = testemm_build_attach_request(test_ue[1], esmbuf, false, false);
ABTS_PTR_NOTNULL(tc, emmbuf);
memset(&test_ue[1]->initial_ue_param, 0,
sizeof(test_ue[1]->initial_ue_param));
sendbuf = test_s1ap_build_initial_ue_message(
test_ue[1], emmbuf,
S1AP_RRC_Establishment_Cause_mo_Signalling, false);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Authentication Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/* Send Authentication response */
emmbuf = testemm_build_authentication_response(test_ue[1]);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[1], emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Security mode Command */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/* Send Security mode complete */
test_ue[1]->mobile_identity_imeisv_presence = true;
emmbuf = testemm_build_security_mode_complete(test_ue[1]);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[1], emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive ESM Information Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/* Send ESM Information Response */
esmbuf = testesm_build_esm_information_response(sess);
ABTS_PTR_NOTNULL(tc, esmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[1], esmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Initial Context Setup Request +
* Attach Accept +
* Activate Default Bearer Context Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/* Send UE Capability Info Indication */
sendbuf =
tests1ap_build_ue_radio_capability_info_indication(test_ue[1]);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Send Initial Context Setup Response */
sendbuf = test_s1ap_build_initial_context_setup_response(test_ue[1]);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Send Attach Complete + Activate default EPS bearer cotext accept */
test_ue[1]->nr_cgi.cell_id = 0x1234502;
bearer = test_bearer_find_by_ue_ebi(test_ue[1], 5);
ogs_assert(bearer);
esmbuf = testesm_build_activate_default_eps_bearer_context_accept(
bearer, false);
ABTS_PTR_NOTNULL(tc, esmbuf);
emmbuf = testemm_build_attach_complete(test_ue[1], esmbuf);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[1], emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive EMM information */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/* Send UE Context Release Request */
sendbuf = test_s1ap_build_ue_context_release_request(test_ue[1],
S1AP_Cause_PR_radioNetwork, S1AP_CauseRadioNetwork_user_inactivity);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive UE Context Release Command */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/* Send UE Context Release Complete */
sendbuf = test_s1ap_build_ue_context_release_complete(test_ue[1]);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/**********************************************************
* First UE - INITIAL
**********************************************************/
test_ue[0]->enb_ue_s1ap_id = 100;
sess = test_sess_add_by_apn(
test_ue[0], "internet", OGS_GTP2_RAT_TYPE_EUTRAN);
ogs_assert(sess);
sess->pti = 21;
/* Send Attach Request */
memset(&sess->pdn_connectivity_param,
0, sizeof(sess->pdn_connectivity_param));
sess->pdn_connectivity_param.eit = 1;
sess->pdn_connectivity_param.pco = 1;
sess->pdn_connectivity_param.request_type =
OGS_NAS_EPS_REQUEST_TYPE_INITIAL;
esmbuf = testesm_build_pdn_connectivity_request(sess, false);
ABTS_PTR_NOTNULL(tc, esmbuf);
memset(&test_ue[0]->attach_request_param,
0, sizeof(test_ue[0]->attach_request_param));
test_ue[0]->attach_request_param.drx_parameter = 1;
test_ue[0]->attach_request_param.ms_network_capability = 1;
test_ue[0]->attach_request_param.tmsi_status = 1;
test_ue[0]->attach_request_param.mobile_station_classmark_2 = 1;
test_ue[0]->attach_request_param.supported_codecs = 1;
test_ue[0]->attach_request_param.ue_usage_setting = 1;
test_ue[0]->attach_request_param.ms_network_feature_support = 1;
emmbuf = testemm_build_attach_request(test_ue[0], esmbuf, false, false);
ABTS_PTR_NOTNULL(tc, emmbuf);
memset(&test_ue[0]->initial_ue_param, 0,
sizeof(test_ue[0]->initial_ue_param));
sendbuf = test_s1ap_build_initial_ue_message(
test_ue[0], emmbuf,
S1AP_RRC_Establishment_Cause_mo_Signalling, false);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Authentication Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[0], recvbuf);
/* Send Authentication response */
emmbuf = testemm_build_authentication_response(test_ue[0]);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[0], emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Security mode Command */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[0], recvbuf);
/* Send Security mode complete */
test_ue[0]->mobile_identity_imeisv_presence = true;
emmbuf = testemm_build_security_mode_complete(test_ue[0]);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[0], emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive ESM Information Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[0], recvbuf);
/* Send ESM Information Response */
esmbuf = testesm_build_esm_information_response(sess);
ABTS_PTR_NOTNULL(tc, esmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[0], esmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Initial Context Setup Request +
* Attach Accept +
* Activate Default Bearer Context Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[0], recvbuf);
/* Send Initial Context Setup Response */
sendbuf = test_s1ap_build_initial_context_setup_response(test_ue[0]);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Send UE Capability Info Indication */
sendbuf = tests1ap_build_ue_radio_capability_info_indication(test_ue[0]);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Send Attach Complete + Activate default EPS bearer cotext accept */
test_ue[0]->nr_cgi.cell_id = 0x1234502;
bearer = test_bearer_find_by_ue_ebi(test_ue[0], 5);
ogs_assert(bearer);
esmbuf = testesm_build_activate_default_eps_bearer_context_accept(
bearer, false);
ABTS_PTR_NOTNULL(tc, esmbuf);
emmbuf = testemm_build_attach_complete(test_ue[0], esmbuf);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[0], emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive EMM information */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[0], recvbuf);
/* Send E-RABModificationIndication */
ogs_list_for_each(&sess->bearer_list, bearer)
bearer->enb_s1u_teid++;
sendbuf = test_s1ap_build_e_rab_modification_indication(test_ue[0]);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive E-RABModificationConfirm */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[0], recvbuf);
/**********************************************************
* Second UE - AUTH
**********************************************************/
sess = test_sess_find_by_apn(
test_ue[1], "internet", OGS_GTP2_RAT_TYPE_EUTRAN);
ogs_assert(sess);
test_sess_remove(sess);
sess = test_sess_add_by_apn(
test_ue[1], "internet", OGS_GTP2_RAT_TYPE_EUTRAN);
ogs_assert(sess);
sess->pti = 1;
/* Send Attach Request */
memset(&sess->pdn_connectivity_param,
0, sizeof(sess->pdn_connectivity_param));
sess->pdn_connectivity_param.eit = 1;
sess->pdn_connectivity_param.pco = 1;
sess->pdn_connectivity_param.request_type =
OGS_NAS_EPS_REQUEST_TYPE_INITIAL;
esmbuf = testesm_build_pdn_connectivity_request(sess, false);
ABTS_PTR_NOTNULL(tc, esmbuf);
memset(&test_ue[1]->attach_request_param,
0, sizeof(test_ue[1]->attach_request_param));
test_ue[1]->attach_request_param.drx_parameter = 1;
test_ue[1]->attach_request_param.ms_network_capability = 1;
test_ue[1]->attach_request_param.tmsi_status = 1;
test_ue[1]->attach_request_param.mobile_station_classmark_2 = 1;
test_ue[1]->attach_request_param.supported_codecs = 1;
test_ue[1]->attach_request_param.ue_usage_setting = 1;
test_ue[1]->attach_request_param.ms_network_feature_support = 1;
emmbuf = testemm_build_attach_request(test_ue[1], esmbuf, false, false);
ABTS_PTR_NOTNULL(tc, emmbuf);
memset(&test_ue[1]->initial_ue_param, 0,
sizeof(test_ue[1]->initial_ue_param));
sendbuf = test_s1ap_build_initial_ue_message(
test_ue[1], emmbuf,
S1AP_RRC_Establishment_Cause_mo_Signalling, false);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Authentication Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/* Send Authentication response */
emmbuf = testemm_build_authentication_response(test_ue[1]);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[1], emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Security mode Command */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/* Send Security mode complete */
test_ue[1]->mobile_identity_imeisv_presence = true;
emmbuf = testemm_build_security_mode_complete(test_ue[1]);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[1], emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive ESM Information Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/* Send ESM Information Response */
esmbuf = testesm_build_esm_information_response(sess);
ABTS_PTR_NOTNULL(tc, esmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[1], esmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive Initial Context Setup Request +
* Attach Accept +
* Activate Default Bearer Context Request */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/* Send Initial Context Setup Response */
sendbuf = test_s1ap_build_initial_context_setup_response(test_ue[1]);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Send UE Capability Info Indication */
sendbuf =
tests1ap_build_ue_radio_capability_info_indication(test_ue[1]);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Send Attach Complete + Activate default EPS bearer cotext accept */
test_ue[1]->nr_cgi.cell_id = 0x1234502;
bearer = test_bearer_find_by_ue_ebi(test_ue[1], 5);
ogs_assert(bearer);
esmbuf = testesm_build_activate_default_eps_bearer_context_accept(
bearer, false);
ABTS_PTR_NOTNULL(tc, esmbuf);
emmbuf = testemm_build_attach_complete(test_ue[1], esmbuf);
ABTS_PTR_NOTNULL(tc, emmbuf);
sendbuf = test_s1ap_build_uplink_nas_transport(test_ue[1], emmbuf);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive EMM information */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[1], recvbuf);
/**********************************************************
* First UE - AUTH
**********************************************************/
/* Send E-RABModificationIndication */
ogs_list_for_each(&sess->bearer_list, bearer)
bearer->enb_s1u_teid++;
sendbuf = test_s1ap_build_e_rab_modification_indication(test_ue[0]);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive E-RABModificationConfirm */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue[0], recvbuf);
ogs_msleep(300);
for (i = 0; i < NUM_OF_TEST_UE; i++) {
/********** Remove Subscriber in Database */
ABTS_INT_EQUAL(tc, OGS_OK, test_db_remove_ue(test_ue[i]));
}
/* eNB disonncect from MME */
testenb_s1ap_close(s1ap);
/* eNB disonncect from SGW */
test_gtpu_close(gtpu);
test_ue_remove_all();
}
#if 0 /* Deprecated to resolve issue #3131 */
static void pull_3122_v270_func(abts_case *tc, void *data)
{
int rv;
ogs_socknode_t *s1ap;
ogs_socknode_t *gtpu;
ogs_pkbuf_t *emmbuf;
ogs_pkbuf_t *esmbuf;
ogs_pkbuf_t *sendbuf;
ogs_pkbuf_t *recvbuf;
ogs_s1ap_message_t message;
ogs_nas_5gs_mobile_identity_suci_t mobile_identity_suci;
test_ue_t *test_ue = NULL;
test_sess_t *sess = NULL;
test_bearer_t *bearer = NULL;
uint32_t enb_ue_s1ap_id;
uint64_t mme_ue_s1ap_id;
bson_t *doc = NULL;
/* Setup Test UE & Session Context */
memset(&mobile_identity_suci, 0, sizeof(mobile_identity_suci));
mobile_identity_suci.h.supi_format = OGS_NAS_5GS_SUPI_FORMAT_IMSI;
mobile_identity_suci.h.type = OGS_NAS_5GS_MOBILE_IDENTITY_SUCI;
mobile_identity_suci.routing_indicator1 = 0;
mobile_identity_suci.routing_indicator2 = 0xf;
mobile_identity_suci.routing_indicator3 = 0xf;
mobile_identity_suci.routing_indicator4 = 0xf;
mobile_identity_suci.protection_scheme_id = OGS_PROTECTION_SCHEME_NULL;
mobile_identity_suci.home_network_pki_value = 0;
test_ue = test_ue_add_by_suci(&mobile_identity_suci, "3746000006");
ogs_assert(test_ue);
test_ue->e_cgi.cell_id = 0x1079baf0;
test_ue->nas.ksi = 0;
test_ue->nas.value = OGS_NAS_ATTACH_TYPE_COMBINED_EPS_IMSI_ATTACH;
test_ue->k_string = "465b5ce8b199b49faa5f0a2ee238a6bc";
test_ue->opc_string = "e8ed289deba952e4283b54e88e6183ca";
sess = test_sess_add_by_apn(test_ue, "internet", OGS_GTP2_RAT_TYPE_EUTRAN);
ogs_assert(sess);
/* eNB connects to MME */
s1ap = tests1ap_client(AF_INET);
ABTS_PTR_NOTNULL(tc, s1ap);
/* eNB connects to SGW */
gtpu = test_gtpu_server(1, AF_INET);
ABTS_PTR_NOTNULL(tc, gtpu);
/* Send S1-Setup Reqeust */
sendbuf = test_s1ap_build_s1_setup_request(
S1AP_ENB_ID_PR_macroENB_ID, 0x54f64);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive S1-Setup Response */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(NULL, recvbuf);
/********** Insert Subscriber in Database */
doc = test_db_new_simple(test_ue);
ABTS_PTR_NOTNULL(tc, doc);
ABTS_INT_EQUAL(tc, OGS_OK, test_db_insert_ue(test_ue, doc));
/* Send Attach Request */
emmbuf = testemm_build_identity_response(test_ue);
ABTS_PTR_NOTNULL(tc, emmbuf);
memset(&test_ue->initial_ue_param, 0, sizeof(test_ue->initial_ue_param));
sendbuf = test_s1ap_build_initial_ue_message(
test_ue, emmbuf, S1AP_RRC_Establishment_Cause_mo_Signalling, false);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
/* Receive ErrorIndication */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue, recvbuf);
/* Receive UEContextReleaseCommand */
recvbuf = testenb_s1ap_read(s1ap);
ABTS_PTR_NOTNULL(tc, recvbuf);
tests1ap_recv(test_ue, recvbuf);
/* Send UEContextReleaseComplete */
sendbuf = test_s1ap_build_ue_context_release_complete(test_ue);
ABTS_PTR_NOTNULL(tc, sendbuf);
rv = testenb_s1ap_send(s1ap, sendbuf);
ABTS_INT_EQUAL(tc, OGS_OK, rv);
ogs_msleep(300);
/********** Remove Subscriber in Database */
ABTS_INT_EQUAL(tc, OGS_OK, test_db_remove_ue(test_ue));
/* eNB disonncect from MME */
testenb_s1ap_close(s1ap);
/* eNB disonncect from SGW */
test_gtpu_close(gtpu);
test_ue_remove(test_ue);
}
#endif
abts_suite *test_issues(abts_suite *suite)
{
suite = ADD_SUITE(suite)
abts_run_test(suite, issues_1431_func, NULL);
abts_run_test(suite, issues_2287_v263_func, NULL);
abts_run_test(suite, issues_2287_v264_func, NULL);
#if 0 /* Deprecated to resolve issue #3131 */
abts_run_test(suite, pull_3122_v270_func, NULL);
#endif
return suite;
}