From 21595426b2526a6d959e7e07494030cc8413b991 Mon Sep 17 00:00:00 2001 From: Sukchan Lee Date: Sun, 1 Nov 2020 22:50:41 -0500 Subject: [PATCH] Fix the bug of the TAU update result value #568 --- src/mme/emm-build.c | 11 ++++++++++- tests/attach/idle-test.c | 10 +++++++--- tests/common/emm-build.c | 5 +++-- tests/common/emm-build.h | 3 ++- tests/handover/epc-s1-test.c | 3 ++- 5 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/mme/emm-build.c b/src/mme/emm-build.c index eb0aa7780..7f06f1aaf 100644 --- a/src/mme/emm-build.c +++ b/src/mme/emm-build.c @@ -368,7 +368,16 @@ ogs_pkbuf_t *emm_build_tau_accept(mme_ue_t *mme_ue) message.emm.h.protocol_discriminator = OGS_NAS_PROTOCOL_DISCRIMINATOR_EMM; message.emm.h.message_type = OGS_NAS_EPS_TRACKING_AREA_UPDATE_ACCEPT; - tau_accept->eps_update_result.result = mme_ue->nas_eps.update.value; + if (mme_ue->nas_eps.update.value == + OGS_NAS_EPS_UPDATE_TYPE_COMBINED_TA_LA_UPDATING || + mme_ue->nas_eps.update.value == + OGS_NAS_EPS_UPDATE_TYPE_COMBINED_TA_LA_UPDATING_WITH_IMSI_ATTACH) { + tau_accept->eps_update_result.result = + OGS_NAS_EPS_UPDATE_RESULT_COMBINED_TA_LA_UPDATED; + } else { + tau_accept->eps_update_result.result = + OGS_NAS_EPS_UPDATE_RESULT_TA_UPDATED; + } /* Set T3412 */ tau_accept->presencemask |= diff --git a/tests/attach/idle-test.c b/tests/attach/idle-test.c index a0dabb6db..7e648d926 100644 --- a/tests/attach/idle-test.c +++ b/tests/attach/idle-test.c @@ -325,7 +325,8 @@ static void test1_func(abts_case *tc, void *data) test_ue->tau_request_param.mobile_station_classmark_2 = 1; test_ue->tau_request_param.ue_usage_setting = 1; test_ue->tau_request_param.device_properties = 1; - emmbuf = testemm_build_tau_request(test_ue, true); + emmbuf = testemm_build_tau_request( + test_ue, true, OGS_NAS_EPS_UPDATE_TYPE_TA_UPDATING); ABTS_PTR_NOTNULL(tc, emmbuf); sendbuf = test_s1ap_build_initial_ue_message( test_ue, emmbuf, S1AP_RRC_Establishment_Cause_mo_Signalling, true); @@ -371,7 +372,9 @@ static void test1_func(abts_case *tc, void *data) test_ue->tau_request_param.mobile_station_classmark_2 = 1; test_ue->tau_request_param.ue_usage_setting = 1; test_ue->tau_request_param.device_properties = 1; - emmbuf = testemm_build_tau_request(test_ue, false); + emmbuf = testemm_build_tau_request( + test_ue, false, + OGS_NAS_EPS_UPDATE_TYPE_COMBINED_TA_LA_UPDATING_WITH_IMSI_ATTACH); ABTS_PTR_NOTNULL(tc, emmbuf); sendbuf = test_s1ap_build_initial_ue_message( test_ue, emmbuf, S1AP_RRC_Establishment_Cause_mo_Signalling, true); @@ -695,7 +698,8 @@ static void test2_func(abts_case *tc, void *data) test_ue->tau_request_param.ue_usage_setting = 1; test_ue->tau_request_param.old_guti_type = 1; test_ue->tau_request_param.ms_network_feature_support = 1; - emmbuf = testemm_build_tau_request(test_ue, false); + emmbuf = testemm_build_tau_request( + test_ue, false, OGS_NAS_EPS_UPDATE_TYPE_PERIODIC_UPDATING); ABTS_PTR_NOTNULL(tc, emmbuf); sendbuf = test_s1ap_build_initial_ue_message( test_ue, emmbuf, S1AP_RRC_Establishment_Cause_mo_Signalling, true); diff --git a/tests/common/emm-build.c b/tests/common/emm-build.c index 71bea99dc..19f7afb4d 100644 --- a/tests/common/emm-build.c +++ b/tests/common/emm-build.c @@ -503,7 +503,8 @@ ogs_pkbuf_t *testemm_build_service_request(test_ue_t *test_ue) return pkbuf; } -ogs_pkbuf_t *testemm_build_tau_request(test_ue_t *test_ue, bool active_flag) +ogs_pkbuf_t *testemm_build_tau_request( + test_ue_t *test_ue, bool active_flag, uint8_t update_type) { ogs_nas_eps_message_t message; ogs_nas_eps_tracking_area_update_request_t *tau_request = @@ -563,7 +564,7 @@ ogs_pkbuf_t *testemm_build_tau_request(test_ue_t *test_ue, bool active_flag) eps_update_type->nas_key_set_identifier = test_ue->nas.ksi; eps_update_type->active_flag = active_flag; - eps_update_type->value = OGS_NAS_EPS_UPDATE_TYPE_COMBINED_TA_LA_UPDATING; + eps_update_type->value = update_type; old_guti->length = sizeof(ogs_nas_eps_mobile_identity_guti_t); old_guti->guti.odd_even = OGS_NAS_MOBILE_IDENTITY_EVEN; diff --git a/tests/common/emm-build.h b/tests/common/emm-build.h index 993695bb7..c70f92c76 100644 --- a/tests/common/emm-build.h +++ b/tests/common/emm-build.h @@ -37,7 +37,8 @@ ogs_pkbuf_t *testemm_build_attach_complete( ogs_pkbuf_t *testemm_build_detach_request(test_ue_t *test_ue, bool switch_off); ogs_pkbuf_t *testemm_build_service_request(test_ue_t *test_ue); -ogs_pkbuf_t *testemm_build_tau_request(test_ue_t *test_ue, bool active_flag); +ogs_pkbuf_t *testemm_build_tau_request( + test_ue_t *test_ue, bool active_flag, uint8_t update_type); ogs_pkbuf_t *testemm_build_emm_status( test_ue_t *test_ue, ogs_nas_emm_cause_t emm_cause); diff --git a/tests/handover/epc-s1-test.c b/tests/handover/epc-s1-test.c index 0f1f452f4..8572ec024 100644 --- a/tests/handover/epc-s1-test.c +++ b/tests/handover/epc-s1-test.c @@ -486,7 +486,8 @@ static void test1_func(abts_case *tc, void *data) test_ue->tau_request_param.tmsi_status = 1; test_ue->tau_request_param.mobile_station_classmark_2 = 1; test_ue->tau_request_param.ue_usage_setting = 1; - emmbuf = testemm_build_tau_request(test_ue, false); + emmbuf = testemm_build_tau_request( + test_ue, false, OGS_NAS_EPS_UPDATE_TYPE_COMBINED_TA_LA_UPDATING); ABTS_PTR_NOTNULL(tc, emmbuf); sendbuf = test_s1ap_build_uplink_nas_transport(test_ue, emmbuf); ABTS_PTR_NOTNULL(tc, sendbuf);