add to trace for testing tracking area update

This commit is contained in:
Sukchan Lee 2018-02-02 13:46:49 +09:00
parent 34986be707
commit 857a250e4f
3 changed files with 58 additions and 9 deletions

View File

@ -42,7 +42,12 @@ status_t emm_build_attach_accept(
t3412_value->unit = NAS_GRPS_TIMER_UNIT_MULTIPLES_OF_DECI_HH;
t3412_value->value = 9;
d_trace(5, " TAI[PLMN_ID:0x%x,TAC:%d]\n",
mme_ue->tai.plmn_id, mme_ue->tai.tac);
d_trace(5, " E_CGI[PLMN_ID:0x%x,CELL_ID:%d]\n",
mme_ue->e_cgi.plmn_id, mme_ue->e_cgi.cell_id);
served_tai_index = mme_find_served_tai(&mme_ue->tai);
d_trace(5, " SERVED_TAI_INDEX[%d]\n", served_tai_index);
d_assert(served_tai_index >= 0 &&
served_tai_index < MAX_NUM_OF_SERVED_TAI, return CORE_ERROR,
"Cannot find Served TAI. Check 'mme.tai' configuration");
@ -302,9 +307,6 @@ status_t emm_build_tau_accept(pkbuf_t **emmbuf, mme_ue_t *mme_ue)
d_assert(mme_ue, return CORE_ERROR,);
d_trace(3, "[EMM] Tracking area update accept\n");
d_trace(5, " IMSI[%s]\n", mme_ue->imsi_bcd);
memset(&message, 0, sizeof(message));
message.emm.h.protocol_discriminator = NAS_PROTOCOL_DISCRIMINATOR_EMM;
message.emm.h.message_type = NAS_TRACKING_AREA_UPDATE_ACCEPT;
@ -321,7 +323,12 @@ status_t emm_build_tau_accept(pkbuf_t **emmbuf, mme_ue_t *mme_ue)
tau_accept->presencemask |=
NAS_TRACKING_AREA_UPDATE_ACCEPT_TAI_LIST_PRESENT;
d_trace(5, " TAI[PLMN_ID:0x%x,TAC:%d]\n",
mme_ue->tai.plmn_id, mme_ue->tai.tac);
d_trace(5, " E_CGI[PLMN_ID:0x%x,CELL_ID:%d]\n",
mme_ue->e_cgi.plmn_id, mme_ue->e_cgi.cell_id);
served_tai_index = mme_find_served_tai(&mme_ue->tai);
d_trace(5, " SERVED_TAI_INDEX[%d]\n", served_tai_index);
d_assert(served_tai_index >= 0 &&
served_tai_index < MAX_NUM_OF_SERVED_TAI, return CORE_ERROR,
"Cannot find Served TAI. Check 'mme.tai' configuration");

View File

@ -69,6 +69,15 @@ status_t emm_handle_attach_request(
mme_ue->nas_eps.type = MME_EPS_TYPE_ATTACH_REQUEST;
d_trace(9, " ATTACH_TYPE[%d]\n", eps_attach_type->attach_type);
d_trace(5, " OLD TAI[PLMN_ID:0x%x,TAC:%d]\n",
mme_ue->tai.plmn_id, mme_ue->tai.tac);
d_trace(5, " OLD E_CGI[PLMN_ID:0x%x,CELL_ID:%d]\n",
mme_ue->e_cgi.plmn_id, mme_ue->e_cgi.cell_id);
d_trace(5, " TAI[PLMN_ID:0x%x,TAC:%d]\n",
enb_ue->nas.tai.plmn_id, enb_ue->nas.tai.tac);
d_trace(5, " E_CGI[PLMN_ID:0x%x,CELL_ID:%d]\n",
enb_ue->nas.e_cgi.plmn_id, enb_ue->nas.e_cgi.cell_id);
/* Copy TAI and ECGI from enb_ue */
memcpy(&mme_ue->tai, &enb_ue->nas.tai, sizeof(tai_t));
memcpy(&mme_ue->e_cgi, &enb_ue->nas.e_cgi, sizeof(e_cgi_t));
@ -78,11 +87,14 @@ status_t emm_handle_attach_request(
if (served_tai_index < 0)
{
/* Send Attach Reject */
d_warn("Cannot find Served TAI[PLMN_ID:0x%x,TAC:%d]",
mme_ue->tai.plmn_id, mme_ue->tai.tac);
nas_send_attach_reject(mme_ue,
EMM_CAUSE_TRACKING_AREA_NOT_ALLOWED,
ESM_CAUSE_PROTOCOL_ERROR_UNSPECIFIED);
return CORE_ERROR;
}
d_trace(5, " SERVED_TAI_INDEX[%d]\n", served_tai_index);
/* Store UE specific information */
if (attach_request->presencemask &
@ -356,6 +368,27 @@ status_t emm_handle_tau_request(
sizeof(nas_eps_update_type_t));
mme_ue->nas_eps.type = MME_EPS_TYPE_TAU_REQUEST;
if (ECM_CONNECTED(mme_ue))
d_trace(5, " ECM-Connected\n");
else
d_trace(5, " ECM-Idle\n");
if (mme_ue->nas_eps.update.active_flag)
d_trace(5, " Active flag[UPD:0x%x]\n",
mme_ue->nas_eps.update.active_flag);
else
d_trace(5, " No Active flag[UPD:0x%x]\n",
mme_ue->nas_eps.update.active_flag);
d_trace(5, " OLD TAI[PLMN_ID:0x%x,TAC:%d]\n",
mme_ue->tai.plmn_id, mme_ue->tai.tac);
d_trace(5, " OLD E_CGI[PLMN_ID:0x%x,CELL_ID:%d]\n",
mme_ue->e_cgi.plmn_id, mme_ue->e_cgi.cell_id);
d_trace(5, " TAI[PLMN_ID:0x%x,TAC:%d]\n",
enb_ue->nas.tai.plmn_id, enb_ue->nas.tai.tac);
d_trace(5, " E_CGI[PLMN_ID:0x%x,CELL_ID:%d]\n",
enb_ue->nas.e_cgi.plmn_id, enb_ue->nas.e_cgi.cell_id);
/* Copy TAI and ECGI from enb_ue */
memcpy(&mme_ue->tai, &enb_ue->nas.tai, sizeof(tai_t));
memcpy(&mme_ue->e_cgi, &enb_ue->nas.e_cgi, sizeof(e_cgi_t));
@ -365,9 +398,12 @@ status_t emm_handle_tau_request(
if (served_tai_index < 0)
{
/* Send TAU reject */
d_warn("Cannot find Served TAI[PLMN_ID:0x%x,TAC:%d]",
mme_ue->tai.plmn_id, mme_ue->tai.tac);
nas_send_tau_reject(mme_ue, EMM_CAUSE_TRACKING_AREA_NOT_ALLOWED);
return CORE_ERROR;
}
d_trace(5, " SERVED_TAI_INDEX[%d]\n", served_tai_index);
/* Store UE specific information */
if (tau_request->presencemask &

View File

@ -396,23 +396,29 @@ status_t nas_send_tau_accept(mme_ue_t *mme_ue)
d_assert(mme_ue, return CORE_ERROR, "Null param");
rv = emm_build_tau_accept(&emmbuf, mme_ue);
d_assert(rv == CORE_OK, return CORE_ERROR, "emm build error");
rv = nas_send_to_downlink_nas_transport(mme_ue, emmbuf);
d_assert(rv == CORE_OK,, "nas_send_to_downlink_nas_transport");
d_trace(3, "[EMM] Tracking area update accept\n");
d_trace(5, " IMSI[%s]\n", mme_ue->imsi_bcd);
if (ECM_CONNECTED(mme_ue))
{
d_trace(5, " ECM-Connected\n");
bearer_establishment_requested = 1;
}
else
d_trace(5, " ECM-Idle\n");
if (mme_ue->nas_eps.update.active_flag)
{
d_trace(5, " Active flag\n");
bearer_establishment_requested = 1;
}
else
d_trace(5, " No Active flag\n");
rv = emm_build_tau_accept(&emmbuf, mme_ue);
d_assert(rv == CORE_OK, return CORE_ERROR, "emm build error");
rv = nas_send_to_downlink_nas_transport(mme_ue, emmbuf);
d_assert(rv == CORE_OK,, "nas_send_to_downlink_nas_transport");
if (bearer_establishment_requested == 0)
{