Compare commits

...

2 Commits

Author SHA1 Message Date
Sukchan Lee
7bdeea7269 update it 2025-10-16 17:31:23 +09:00
Sukchan Lee
e8dfdbaaea update it 2025-10-16 17:07:17 +09:00
9 changed files with 60 additions and 5 deletions

View File

@@ -722,6 +722,8 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
ogs_kdf_nh_enb(mme_ue->kasme, mme_ue->kenb, mme_ue->nh);
mme_ue->nhcc = 1;
ogs_fatal("[%s] TAU accept(active_flag=1)",
mme_ue->imsi_bcd);
r = nas_eps_send_tau_accept(mme_ue,
S1AP_ProcedureCode_id_InitialContextSetup);
ogs_expect(r == OGS_OK);
@@ -731,6 +733,8 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
OGS_NAS_EPS_TRACKING_AREA_UPDATE_REQUEST_EPS_BEARER_CONTEXT_STATUS_TYPE)) {
ogs_debug("[%s] No EPS Bearer Context Status "
"in TAU request", mme_ue->imsi_bcd);
ogs_fatal("[%s] TAU accept(No Bearer Context Status)",
mme_ue->imsi_bcd);
r = nas_eps_send_tau_accept(mme_ue,
S1AP_ProcedureCode_id_downlinkNASTransport);
ogs_expect(r == OGS_OK);
@@ -776,6 +780,9 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
sgw_ue = sgw_ue_find_by_id(mme_ue->sgw_ue_id);
ogs_assert(sgw_ue);
GTP_COUNTER_INCREMENT(
mme_ue, GTP_COUNTER_DELETE_SESSION_BY_TAU);
mme_gtp_send_delete_session_request(
enb_ue, sgw_ue, sess,
OGS_GTP_DELETE_SEND_TAU_ACCEPT);
@@ -785,10 +792,12 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
}
if (deleted > 0) {
ogs_info("[%s] Deleted %d session(s) due "
ogs_fatal("[%s] Deleted %d session(s) due "
"to BCS mismatch",
mme_ue->imsi_bcd, deleted);
} else {
ogs_fatal("[%s] TAU accept(BCS match)",
mme_ue->imsi_bcd);
r = nas_eps_send_tau_accept(mme_ue,
S1AP_ProcedureCode_id_downlinkNASTransport);
ogs_expect(r == OGS_OK);
@@ -798,6 +807,8 @@ static void common_register_state(ogs_fsm_t *s, mme_event_t *e,
} else if (e->s1ap_code ==
S1AP_ProcedureCode_id_uplinkNASTransport) {
ogs_debug(" Uplink NAS Transport");
ogs_fatal("[%s] TAU accept(UplinkNASTransport)",
mme_ue->imsi_bcd);
r = nas_eps_send_tau_accept(mme_ue,
S1AP_ProcedureCode_id_downlinkNASTransport);
ogs_expect(r == OGS_OK);

View File

@@ -433,7 +433,7 @@ struct mme_ue_s {
#define MME_TAU_TYPE_INITIAL_UE_MESSAGE 1
#define MME_TAU_TYPE_UPLINK_NAS_TRANPORT 2
#define MME_TAU_TYPE_UNPROTECTED_INGERITY 3
#define MME_TAU_TYPE_UNPROTECTED_INTEGRITY 3
uint8_t tracking_area_update_request_type;
/* 1. MME initiated detach request to the UE.
@@ -799,6 +799,7 @@ struct mme_ue_s {
#define GTP_COUNTER_CREATE_SESSION_BY_PATH_SWITCH 1
#define GTP_COUNTER_DELETE_SESSION_BY_PATH_SWITCH 2
#define GTP_COUNTER_DELETE_SESSION_BY_TAU 3
struct {
uint8_t request;
uint8_t response;

View File

@@ -880,6 +880,22 @@ void mme_s11_handle_delete_session_response(
return;
} else if (action == OGS_GTP_DELETE_SEND_TAU_ACCEPT) {
MME_SESS_CLEAR(sess);
GTP_COUNTER_CHECK(mme_ue, GTP_COUNTER_DELETE_SESSION_BY_TAU,
ogs_fatal("[%s] TAU accept(BCS mismatch)", mme_ue->imsi_bcd);
r = nas_eps_send_tau_accept(mme_ue,
S1AP_ProcedureCode_id_downlinkNASTransport);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
);
return;
} else {
ogs_fatal("Invalid action = %d", action);
ogs_assert_if_reached();

View File

@@ -138,10 +138,11 @@ uint8_t mme_s6a_handle_ula(
OGS_NAS_EPS_UPDATE_TYPE_COMBINED_TA_LA_UPDATING_WITH_IMSI_ATTACH)) {
mme_ue->tracking_area_update_request_type =
MME_TAU_TYPE_UNPROTECTED_INGERITY;
MME_TAU_TYPE_UNPROTECTED_INTEGRITY;
ogs_assert(OGS_OK == sgsap_send_location_update_request(mme_ue));
} else {
ogs_fatal("[%s] TAU accept(Diameter ULA)", mme_ue->imsi_bcd);
r = nas_eps_send_tau_accept(mme_ue,
S1AP_ProcedureCode_id_InitialContextSetup);
ogs_expect(r == OGS_OK);

View File

@@ -150,11 +150,15 @@ void sgsap_handle_location_update_accept(mme_vlr_t *vlr, ogs_pkbuf_t *pkbuf)
ogs_kdf_nh_enb(mme_ue->kasme, mme_ue->kenb, mme_ue->nh);
mme_ue->nhcc = 1;
ogs_fatal("[%s] LU accept + TAU accept(active_flag==1)",
mme_ue->imsi_bcd);
r = nas_eps_send_tau_accept(mme_ue,
S1AP_ProcedureCode_id_InitialContextSetup);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
} else {
ogs_fatal("[%s] LU accept + TAU accept(active_flag==0)",
mme_ue->imsi_bcd);
r = nas_eps_send_tau_accept(mme_ue,
S1AP_ProcedureCode_id_downlinkNASTransport);
ogs_expect(r == OGS_OK);
@@ -163,13 +167,17 @@ void sgsap_handle_location_update_accept(mme_vlr_t *vlr, ogs_pkbuf_t *pkbuf)
} else if (mme_ue->tracking_area_update_request_type ==
MME_TAU_TYPE_UPLINK_NAS_TRANPORT) {
ogs_debug(" Uplink NAS Transport");
ogs_fatal("[%s] LU accept + accept(UplinkNASTransport)",
mme_ue->imsi_bcd);
r = nas_eps_send_tau_accept(mme_ue,
S1AP_ProcedureCode_id_downlinkNASTransport);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
} else if (mme_ue->tracking_area_update_request_type ==
MME_TAU_TYPE_UNPROTECTED_INGERITY) {
MME_TAU_TYPE_UNPROTECTED_INTEGRITY) {
ogs_debug(" Unprotected Integrity");
ogs_fatal("[%s] LU accept + TAU accept(Unprotected Integrity)",
mme_ue->imsi_bcd);
r = nas_eps_send_tau_accept(mme_ue,
S1AP_ProcedureCode_id_InitialContextSetup);
ogs_expect(r == OGS_OK);
@@ -347,11 +355,15 @@ void sgsap_handle_location_update_reject(mme_vlr_t *vlr, ogs_pkbuf_t *pkbuf)
ogs_kdf_nh_enb(mme_ue->kasme, mme_ue->kenb, mme_ue->nh);
mme_ue->nhcc = 1;
ogs_fatal("[%s] LU reject + TAU accept(active_flag==1)",
mme_ue->imsi_bcd);
r = nas_eps_send_tau_accept(mme_ue,
S1AP_ProcedureCode_id_InitialContextSetup);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
} else {
ogs_fatal("[%s] LU reject + TAU accept(active_flag==0)",
mme_ue->imsi_bcd);
r = nas_eps_send_tau_accept(mme_ue,
S1AP_ProcedureCode_id_downlinkNASTransport);
ogs_expect(r == OGS_OK);
@@ -360,12 +372,16 @@ void sgsap_handle_location_update_reject(mme_vlr_t *vlr, ogs_pkbuf_t *pkbuf)
} else if (mme_ue->tracking_area_update_request_type ==
MME_TAU_TYPE_UPLINK_NAS_TRANPORT) {
ogs_debug(" Uplink NAS Transport");
ogs_fatal("[%s] LU reject + TAU accept(UplinkNASTransport)",
mme_ue->imsi_bcd);
r = nas_eps_send_tau_accept(mme_ue,
S1AP_ProcedureCode_id_downlinkNASTransport);
ogs_expect(r == OGS_OK);
ogs_assert(r != OGS_ERROR);
} else if (mme_ue->tracking_area_update_request_type ==
MME_TAU_TYPE_UNPROTECTED_INGERITY) {
MME_TAU_TYPE_UNPROTECTED_INTEGRITY) {
ogs_fatal("[%s] LU reject + TAU accept(Unprotected Integrity)",
mme_ue->imsi_bcd);
ogs_debug(" Unprotected Integrity");
r = nas_eps_send_tau_accept(mme_ue,
S1AP_ProcedureCode_id_InitialContextSetup);

View File

@@ -1071,6 +1071,7 @@ static void test3_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;
ogs_error("testemm_build_tau_request");
emmbuf = testemm_build_tau_request(
test_ue, true, OGS_NAS_EPS_UPDATE_TYPE_TA_UPDATING, false, false);
ABTS_PTR_NOTNULL(tc, emmbuf);
@@ -1171,6 +1172,7 @@ static void test3_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;
ogs_error("testemm_build_tau_request");
emmbuf = testemm_build_tau_request(
test_ue, true, OGS_NAS_EPS_UPDATE_TYPE_TA_UPDATING, true, true);
ABTS_PTR_NOTNULL(tc, emmbuf);

View File

@@ -247,6 +247,7 @@ 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;
ogs_error("testemm_build_tau_request");
emmbuf = testemm_build_tau_request(
test_ue, true, OGS_NAS_EPS_UPDATE_TYPE_TA_UPDATING, true, true);
ABTS_PTR_NOTNULL(tc, emmbuf);
@@ -293,6 +294,7 @@ 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;
ogs_error("testemm_build_tau_request");
emmbuf = testemm_build_tau_request(
test_ue, false,
OGS_NAS_EPS_UPDATE_TYPE_COMBINED_TA_LA_UPDATING_WITH_IMSI_ATTACH,
@@ -536,6 +538,7 @@ 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;
ogs_error("testemm_build_tau_request");
emmbuf = testemm_build_tau_request(
test_ue, false, OGS_NAS_EPS_UPDATE_TYPE_PERIODIC_UPDATING,
true, true);

View File

@@ -221,6 +221,7 @@ static void test_simple_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;
ogs_error("testemm_build_tau_request");
emmbuf = testemm_build_tau_request(
test_ue, true, OGS_NAS_EPS_UPDATE_TYPE_COMBINED_TA_LA_UPDATING, true, true);
ABTS_PTR_NOTNULL(tc, emmbuf);
@@ -499,6 +500,7 @@ static void test_no_active_flag_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;
ogs_error("testemm_build_tau_request");
emmbuf = testemm_build_tau_request(
test_ue, false,
OGS_NAS_EPS_UPDATE_TYPE_COMBINED_TA_LA_UPDATING_WITH_IMSI_ATTACH,
@@ -779,6 +781,7 @@ static void test_integrity_unprotected_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;
ogs_error("testemm_build_tau_request");
emmbuf = testemm_build_tau_request(
test_ue, true,
OGS_NAS_EPS_UPDATE_TYPE_COMBINED_TA_LA_UPDATING_WITH_IMSI_ATTACH,
@@ -1295,6 +1298,7 @@ static void test_uplink_transport_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;
ogs_error("testemm_build_tau_request");
emmbuf = testemm_build_tau_request(
test_ue, true, OGS_NAS_EPS_UPDATE_TYPE_COMBINED_TA_LA_UPDATING,
true, true);

View File

@@ -399,6 +399,7 @@ 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;
ogs_error("testemm_build_tau_request");
emmbuf = testemm_build_tau_request(
test_ue, true, OGS_NAS_EPS_UPDATE_TYPE_COMBINED_TA_LA_UPDATING,
true, true);