GUTI is suppressed in Attach accept if GUTI is not changed.

This commit is contained in:
Sukchan Lee 2018-01-28 15:32:45 +09:00
parent 21a130bc16
commit 762431cb6f
3 changed files with 19 additions and 11 deletions

View File

@ -53,17 +53,22 @@ status_t emm_build_attach_accept(
attach_accept->esm_message_container.buffer = esmbuf->payload;
attach_accept->esm_message_container.length = esmbuf->len;
attach_accept->presencemask |= NAS_ATTACH_ACCEPT_GUTI_PRESENT;
guti->length = sizeof(nas_eps_mobile_identity_guti_t);
guti->guti.odd_even = NAS_EPS_MOBILE_IDENTITY_EVEN;
guti->guti.type = NAS_EPS_MOBILE_IDENTITY_GUTI;
memcpy(&guti->guti.plmn_id, &mme_ue->guti.plmn_id, PLMN_ID_LEN);
guti->guti.mme_gid = mme_ue->guti.mme_gid;
guti->guti.mme_code = mme_ue->guti.mme_code;
guti->guti.m_tmsi = mme_ue->guti.m_tmsi;
d_trace(5, " GUTI[G:%d,C:%d,M_TMSI:0x%x] IMSI:[%s]\n",
guti->guti.mme_gid, guti->guti.mme_code, guti->guti.m_tmsi,
mme_ue->imsi_bcd);
d_trace(5, " %s GUTI[G:%d,C:%d,M_TMSI:0x%x] IMSI:[%s]\n",
mme_ue->new_guti ? "# NEW #" : "# Not Changed #",
mme_ue->guti.mme_gid, mme_ue->guti.mme_code,
mme_ue->guti.m_tmsi, mme_ue->imsi_bcd);
if (mme_ue->new_guti)
{
attach_accept->presencemask |= NAS_ATTACH_ACCEPT_GUTI_PRESENT;
guti->length = sizeof(nas_eps_mobile_identity_guti_t);
guti->guti.odd_even = NAS_EPS_MOBILE_IDENTITY_EVEN;
guti->guti.type = NAS_EPS_MOBILE_IDENTITY_GUTI;
memcpy(&guti->guti.plmn_id, &mme_ue->guti.plmn_id, PLMN_ID_LEN);
guti->guti.mme_gid = mme_ue->guti.mme_gid;
guti->guti.mme_code = mme_ue->guti.mme_code;
guti->guti.m_tmsi = mme_ue->guti.m_tmsi;
}
mme_ue->new_guti = 0;
attach_accept->presencemask |= NAS_ATTACH_ACCEPT_T3402_VALUE_PRESENT;
t3402_value->unit = NAS_GRPS_TIMER_UNIT_MULTIPLES_OF_1_MM;

View File

@ -2152,6 +2152,8 @@ static status_t mme_ue_new_guti(mme_ue_t *mme_ue)
mme_ue->guti.m_tmsi = *(mme_ue->m_tmsi);
hash_set(self.guti_ue_hash, &mme_ue->guti, sizeof(guti_t), mme_ue);
mme_ue->new_guti = 1;
return CORE_OK;
}

View File

@ -209,6 +209,7 @@ struct _mme_ue_t {
c_int8_t imsi_bcd[MAX_IMSI_BCD_LEN+1];
mme_m_tmsi_t *m_tmsi;
guti_t guti;
int new_guti;
c_uint32_t mme_s11_teid; /* MME-S11-TEID is derived from INDEX */
c_uint32_t sgw_s11_teid; /* SGW-S11-TEID is received from SGW */