diff --git a/lib/ogslib b/lib/ogslib index e6281fab38..dd746efea2 160000 --- a/lib/ogslib +++ b/lib/ogslib @@ -1 +1 @@ -Subproject commit e6281fab38f42e0f990907888ec2cc99ca11d7b4 +Subproject commit dd746efea2708ef71ce8c701e8896dbea2807fe9 diff --git a/src/mme/emm-handler.c b/src/mme/emm-handler.c index c54f296693..ada14fc10b 100644 --- a/src/mme/emm-handler.c +++ b/src/mme/emm-handler.c @@ -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) { diff --git a/src/mme/mme-context.h b/src/mme/mme-context.h index 57aee31b61..670eefaa67 100644 --- a/src/mme/mme-context.h +++ b/src/mme/mme-context.h @@ -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) && \ diff --git a/src/mme/mme-fd-path.c b/src/mme/mme-fd-path.c index c0f7b824d6..01f1e92529 100644 --- a/src/mme/mme-fd-path.c +++ b/src/mme/mme-fd-path.c @@ -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); diff --git a/src/mme/mme-s11-build.c b/src/mme/mme-s11-build.c index 4fcb2611d8..7ae2c9a00b 100644 --- a/src/mme/mme-s11-build.c +++ b/src/mme/mme-s11-build.c @@ -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; diff --git a/tests/common/test-packet.c b/tests/common/test-packet.c index 7d4ecf96dd..3b5881510b 100644 --- a/tests/common/test-packet.c +++ b/tests/common/test-packet.c @@ -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", "", };