Use mme_ue->tai, mme_ue->e_cgi.
Do not access enb_ue->tai, enb_ue->e_cgi
This commit is contained in:
parent
640d2efb07
commit
1ea7bea037
|
@ -43,7 +43,7 @@ status_t emm_build_attach_accept(
|
||||||
tai_list->length = 6;
|
tai_list->length = 6;
|
||||||
tai_list->type = 2;
|
tai_list->type = 2;
|
||||||
tai_list->num = 0; /* +1 = 1 elements */
|
tai_list->num = 0; /* +1 = 1 elements */
|
||||||
memcpy(&tai_list->type2.tai[0], &mme_ue->enb_ue->tai, sizeof(tai_t));
|
memcpy(&tai_list->type2.tai[0], &mme_ue->tai, sizeof(tai_t));
|
||||||
|
|
||||||
attach_accept->esm_message_container.buffer = esmbuf->payload;
|
attach_accept->esm_message_container.buffer = esmbuf->payload;
|
||||||
attach_accept->esm_message_container.length = esmbuf->len;
|
attach_accept->esm_message_container.length = esmbuf->len;
|
||||||
|
|
|
@ -91,8 +91,8 @@ void emm_handle_attach_request(
|
||||||
sizeof(attach_request->ms_network_capability));
|
sizeof(attach_request->ms_network_capability));
|
||||||
|
|
||||||
/* Copy TAI and ECGI from enb_ue */
|
/* Copy TAI and ECGI from enb_ue */
|
||||||
memcpy(&mme_ue->tai, &enb_ue->tai, sizeof(tai_t));
|
memcpy(&mme_ue->tai, &enb_ue->nas.tai, sizeof(tai_t));
|
||||||
memcpy(&mme_ue->e_cgi, &enb_ue->e_cgi, sizeof(e_cgi_t));
|
memcpy(&mme_ue->e_cgi, &enb_ue->nas.e_cgi, sizeof(e_cgi_t));
|
||||||
|
|
||||||
switch(eps_mobile_identity->imsi.type)
|
switch(eps_mobile_identity->imsi.type)
|
||||||
{
|
{
|
||||||
|
@ -546,8 +546,8 @@ void emm_handle_tau_request(
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Copy TAI and ECGI from enb_ue */
|
/* Copy TAI and ECGI from enb_ue */
|
||||||
memcpy(&mme_ue->tai, &enb_ue->tai, sizeof(tai_t));
|
memcpy(&mme_ue->tai, &enb_ue->nas.tai, sizeof(tai_t));
|
||||||
memcpy(&mme_ue->e_cgi, &enb_ue->e_cgi, sizeof(e_cgi_t));
|
memcpy(&mme_ue->e_cgi, &enb_ue->nas.e_cgi, sizeof(e_cgi_t));
|
||||||
|
|
||||||
/* TODO:
|
/* TODO:
|
||||||
* 1) Consider if MME is changed or not.
|
* 1) Consider if MME is changed or not.
|
||||||
|
|
|
@ -127,19 +127,22 @@ struct _enb_ue_t {
|
||||||
c_uint32_t enb_ue_s1ap_id; /* eNB-UE-S1AP-ID received from eNB */
|
c_uint32_t enb_ue_s1ap_id; /* eNB-UE-S1AP-ID received from eNB */
|
||||||
c_uint32_t mme_ue_s1ap_id; /* MME-UE-S1AP-ID received from MME */
|
c_uint32_t mme_ue_s1ap_id; /* MME-UE-S1AP-ID received from MME */
|
||||||
|
|
||||||
/* UE Info */
|
|
||||||
tai_t tai;
|
|
||||||
e_cgi_t e_cgi;
|
|
||||||
|
|
||||||
/* Handover Info */
|
/* Handover Info */
|
||||||
S1ap_HandoverType_t handover_type;
|
S1ap_HandoverType_t handover_type;
|
||||||
enb_ue_t *target;
|
enb_ue_t *target;
|
||||||
|
|
||||||
/* MME UE(NAS) */
|
/* Use mme_ue->tai, mme_ue->e_cgi.
|
||||||
mme_ue_t *mme_ue;
|
* Do not access enb_ue->nas.tai enb_ue->nas.e_cgi.
|
||||||
|
*
|
||||||
|
* Save TAI and ECGI. And then, this will copy 'mme_ue_t' context later */
|
||||||
|
struct {
|
||||||
|
tai_t tai;
|
||||||
|
e_cgi_t e_cgi;
|
||||||
|
} nas;
|
||||||
|
|
||||||
/* Connected eNB */
|
/* Related Context */
|
||||||
mme_enb_t *enb;
|
mme_enb_t *enb;
|
||||||
|
mme_ue_t *mme_ue;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _mme_ue_t {
|
struct _mme_ue_t {
|
||||||
|
|
|
@ -153,14 +153,15 @@ void s1ap_handle_initial_ue_message(mme_enb_t *enb, s1ap_message_t *message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(&enb_ue->tai.plmn_id, pLMNidentity->buf,
|
memcpy(&enb_ue->nas.tai.plmn_id, pLMNidentity->buf,
|
||||||
sizeof(enb_ue->tai.plmn_id));
|
sizeof(enb_ue->nas.tai.plmn_id));
|
||||||
memcpy(&enb_ue->tai.tac, tAC->buf, sizeof(enb_ue->tai.tac));
|
memcpy(&enb_ue->nas.tai.tac, tAC->buf, sizeof(enb_ue->nas.tai.tac));
|
||||||
enb_ue->tai.tac = ntohs(enb_ue->tai.tac);
|
enb_ue->nas.tai.tac = ntohs(enb_ue->nas.tai.tac);
|
||||||
memcpy(&enb_ue->e_cgi.plmn_id, pLMNidentity->buf,
|
memcpy(&enb_ue->nas.e_cgi.plmn_id, pLMNidentity->buf,
|
||||||
sizeof(enb_ue->e_cgi.plmn_id));
|
sizeof(enb_ue->nas.e_cgi.plmn_id));
|
||||||
memcpy(&enb_ue->e_cgi.cell_id, cell_ID->buf, sizeof(enb_ue->e_cgi.cell_id));
|
memcpy(&enb_ue->nas.e_cgi.cell_id, cell_ID->buf,
|
||||||
enb_ue->e_cgi.cell_id = (ntohl(enb_ue->e_cgi.cell_id) >> 4);
|
sizeof(enb_ue->nas.e_cgi.cell_id));
|
||||||
|
enb_ue->nas.e_cgi.cell_id = (ntohl(enb_ue->nas.e_cgi.cell_id) >> 4);
|
||||||
|
|
||||||
d_assert(enb->s1ap_sock, enb_ue_remove(enb_ue); return,);
|
d_assert(enb->s1ap_sock, enb_ue_remove(enb_ue); return,);
|
||||||
d_trace(3, "[S1AP] InitialUEMessage : "
|
d_trace(3, "[S1AP] InitialUEMessage : "
|
||||||
|
@ -590,14 +591,14 @@ void s1ap_handle_path_switch_request(
|
||||||
|
|
||||||
enb_ue->enb_ue_s1ap_id = ies->eNB_UE_S1AP_ID;
|
enb_ue->enb_ue_s1ap_id = ies->eNB_UE_S1AP_ID;
|
||||||
|
|
||||||
memcpy(&enb_ue->tai.plmn_id, pLMNidentity->buf,
|
memcpy(&mme_ue->tai.plmn_id, pLMNidentity->buf,
|
||||||
sizeof(enb_ue->tai.plmn_id));
|
sizeof(mme_ue->tai.plmn_id));
|
||||||
memcpy(&enb_ue->tai.tac, tAC->buf, sizeof(enb_ue->tai.tac));
|
memcpy(&mme_ue->tai.tac, tAC->buf, sizeof(mme_ue->tai.tac));
|
||||||
enb_ue->tai.tac = ntohs(enb_ue->tai.tac);
|
mme_ue->tai.tac = ntohs(mme_ue->tai.tac);
|
||||||
memcpy(&enb_ue->e_cgi.plmn_id, pLMNidentity->buf,
|
memcpy(&mme_ue->e_cgi.plmn_id, pLMNidentity->buf,
|
||||||
sizeof(enb_ue->e_cgi.plmn_id));
|
sizeof(mme_ue->e_cgi.plmn_id));
|
||||||
memcpy(&enb_ue->e_cgi.cell_id, cell_ID->buf, sizeof(enb_ue->e_cgi.cell_id));
|
memcpy(&mme_ue->e_cgi.cell_id, cell_ID->buf, sizeof(mme_ue->e_cgi.cell_id));
|
||||||
enb_ue->e_cgi.cell_id = (ntohl(enb_ue->e_cgi.cell_id) >> 4);
|
mme_ue->e_cgi.cell_id = (ntohl(mme_ue->e_cgi.cell_id) >> 4);
|
||||||
|
|
||||||
memcpy(&eea, encryptionAlgorithms->buf, sizeof(eea));
|
memcpy(&eea, encryptionAlgorithms->buf, sizeof(eea));
|
||||||
eea = ntohs(eea);
|
eea = ntohs(eea);
|
||||||
|
@ -876,14 +877,14 @@ void s1ap_handle_handover_notification(mme_enb_t *enb, s1ap_message_t *message)
|
||||||
source = mme_ue->enb_ue;
|
source = mme_ue->enb_ue;
|
||||||
d_assert(source, return,);
|
d_assert(source, return,);
|
||||||
|
|
||||||
memcpy(&target->tai.plmn_id, pLMNidentity->buf,
|
memcpy(&mme_ue->tai.plmn_id, pLMNidentity->buf,
|
||||||
sizeof(target->tai.plmn_id));
|
sizeof(mme_ue->tai.plmn_id));
|
||||||
memcpy(&target->tai.tac, tAC->buf, sizeof(target->tai.tac));
|
memcpy(&mme_ue->tai.tac, tAC->buf, sizeof(mme_ue->tai.tac));
|
||||||
target->tai.tac = ntohs(target->tai.tac);
|
mme_ue->tai.tac = ntohs(mme_ue->tai.tac);
|
||||||
memcpy(&target->e_cgi.plmn_id, pLMNidentity->buf,
|
memcpy(&mme_ue->e_cgi.plmn_id, pLMNidentity->buf,
|
||||||
sizeof(target->e_cgi.plmn_id));
|
sizeof(mme_ue->e_cgi.plmn_id));
|
||||||
memcpy(&target->e_cgi.cell_id, cell_ID->buf, sizeof(target->e_cgi.cell_id));
|
memcpy(&mme_ue->e_cgi.cell_id, cell_ID->buf, sizeof(mme_ue->e_cgi.cell_id));
|
||||||
target->e_cgi.cell_id = (ntohl(target->e_cgi.cell_id) >> 4);
|
mme_ue->e_cgi.cell_id = (ntohl(mme_ue->e_cgi.cell_id) >> 4);
|
||||||
|
|
||||||
sess = mme_sess_first(mme_ue);
|
sess = mme_sess_first(mme_ue);
|
||||||
while(sess)
|
while(sess)
|
||||||
|
|
|
@ -625,9 +625,7 @@ abts_suite *test_handover(abts_suite *suite)
|
||||||
{
|
{
|
||||||
suite = ADD_SUITE(suite)
|
suite = ADD_SUITE(suite)
|
||||||
|
|
||||||
#if 0
|
|
||||||
abts_run_test(suite, handover_test1, NULL);
|
abts_run_test(suite, handover_test1, NULL);
|
||||||
#endif
|
|
||||||
abts_run_test(suite, handover_test2, NULL);
|
abts_run_test(suite, handover_test2, NULL);
|
||||||
|
|
||||||
return suite;
|
return suite;
|
||||||
|
|
Loading…
Reference in New Issue