Fix the Security Command Reject (#214)

This commit is contained in:
Sukchan Lee 2019-07-04 22:48:26 +09:00
parent 0717b57465
commit 334c678995
6 changed files with 13 additions and 17 deletions

@ -1 +1 @@
Subproject commit e6281fab38f42e0f990907888ec2cc99ca11d7b4
Subproject commit dd746efea2708ef71ce8c701e8896dbea2807fe9

View File

@ -116,12 +116,10 @@ int emm_handle_attach_request(
nas_tracking_area_identity_t *last_visited_registered_tai =
&attach_request->last_visited_registered_tai;
nas_to_plmn_id(&mme_ue->visited_plmn_id,
nas_to_plmn_id(&mme_ue->last_visited_plmn_id,
&last_visited_registered_tai->nas_plmn_id);
ogs_debug(" Visited_PLMN_ID:%06x",
plmn_id_hexdump(&mme_ue->visited_plmn_id));
} else {
memcpy(&mme_ue->visited_plmn_id, &mme_ue->tai.plmn_id, PLMN_ID_LEN);
plmn_id_hexdump(&mme_ue->last_visited_plmn_id));
}
memcpy(&mme_ue->ue_network_capability,
@ -473,13 +471,11 @@ int emm_handle_tau_request(
nas_tracking_area_identity_t *last_visited_registered_tai =
&tau_request->last_visited_registered_tai;
nas_to_plmn_id(&mme_ue->visited_plmn_id,
nas_to_plmn_id(&mme_ue->last_visited_plmn_id,
&last_visited_registered_tai->nas_plmn_id);
ogs_debug(" Visited_PLMN_ID:%06x",
plmn_id_hexdump(&mme_ue->visited_plmn_id));
} else {
memcpy(&mme_ue->visited_plmn_id, &mme_ue->tai.plmn_id, PLMN_ID_LEN);
}
plmn_id_hexdump(&mme_ue->last_visited_plmn_id));
}
if (tau_request->presencemask &
NAS_TRACKING_AREA_UPDATE_REQUEST_UE_NETWORK_CAPABILITY_PRESENT) {

View File

@ -307,7 +307,7 @@ struct mme_ue_s {
/* UE Info */
tai_t tai;
e_cgi_t e_cgi;
plmn_id_t visited_plmn_id;
plmn_id_t last_visited_plmn_id;
#define SECURITY_CONTEXT_IS_VALID(__mME) \
((__mME) && \

View File

@ -152,7 +152,7 @@ void mme_s6a_send_air(mme_ue_t *mme_ue,
/* Set the Visited-PLMN-Id AVP */
ret = fd_msg_avp_new(s6a_visited_plmn_id, 0, &avp);
ogs_assert(ret == 0);
val.os.data = nas_from_plmn_id(&nas_plmn_id, &mme_ue->visited_plmn_id);
val.os.data = nas_from_plmn_id(&nas_plmn_id, &mme_ue->tai.plmn_id);
val.os.len = PLMN_ID_LEN;
ret = fd_msg_avp_setvalue(avp, &val);
ogs_assert(ret == 0);
@ -514,7 +514,7 @@ void mme_s6a_send_ulr(mme_ue_t *mme_ue)
/* Set the Visited-PLMN-Id */
ret = fd_msg_avp_new(s6a_visited_plmn_id, 0, &avp);
ogs_assert(ret == 0);
val.os.data = nas_from_plmn_id(&nas_plmn_id, &mme_ue->visited_plmn_id);
val.os.data = nas_from_plmn_id(&nas_plmn_id, &mme_ue->tai.plmn_id);
val.os.len = PLMN_ID_LEN;
ret = fd_msg_avp_setvalue(avp, &val);
ogs_assert(ret == 0);

View File

@ -60,8 +60,8 @@ int mme_s11_build_create_session_request(
uli_buf, GTP_MAX_ULI_LEN);
req->serving_network.presence = 1;
req->serving_network.data = &mme_ue->visited_plmn_id;
req->serving_network.len = sizeof(mme_ue->visited_plmn_id);
req->serving_network.data = &mme_ue->tai.plmn_id;
req->serving_network.len = sizeof(mme_ue->tai.plmn_id);
req->rat_type.presence = 1;
req->rat_type.u8 = GTP_RAT_TYPE_EUTRAN;

View File

@ -766,9 +766,9 @@ int tests1ap_build_security_mode_complete(ogs_pkbuf_t **pkbuf, int i)
"",
/* 21 */
"000d403200000500 00000200d0000800 0200d0001a000908 475089bacd00075e"
"000d403200000500 00000200d0000800 0200d0001a000908 473c0c819e00075e"
"006440080064f013 0006401000434006 0064f0130002",
"000d403200000500 00000200d1000800 0200d1001a000908 4753a25a8000075e"
"000d403200000500 00000200d1000800 0200d1001a000908 47e68241c900075e"
"006440080064f013 0006401000434006 0064f0130002",
"",
};