diff --git a/src/mme/mme-context.c b/src/mme/mme-context.c index 5f6899ba10..a78ed5df2c 100644 --- a/src/mme/mme-context.c +++ b/src/mme/mme-context.c @@ -2003,7 +2003,7 @@ int mme_enb_sock_type(ogs_sock_t *sock) } /** enb_ue_context handling function */ -enb_ue_t *enb_ue_add(mme_enb_t *enb) +enb_ue_t *enb_ue_add(mme_enb_t *enb, S1AP_ENB_UE_S1AP_ID_t enb_ue_s1ap_id) { enb_ue_t *enb_ue = NULL; @@ -2014,7 +2014,7 @@ enb_ue_t *enb_ue_add(mme_enb_t *enb) ogs_assert(enb_ue); memset(enb_ue, 0, sizeof *enb_ue); - enb_ue->enb_ue_s1ap_id = INVALID_UE_S1AP_ID; + enb_ue->enb_ue_s1ap_id = enb_ue_s1ap_id; enb_ue->mme_ue_s1ap_id = OGS_NEXT_ID(self.mme_ue_s1ap_id, 1, 0xffffffff); /* diff --git a/src/mme/mme-context.h b/src/mme/mme-context.h index fc409f16ed..e12e5878ed 100644 --- a/src/mme/mme-context.h +++ b/src/mme/mme-context.h @@ -666,7 +666,7 @@ mme_enb_t *mme_enb_find_by_enb_id(uint32_t enb_id); int mme_enb_set_enb_id(mme_enb_t *enb, uint32_t enb_id); int mme_enb_sock_type(ogs_sock_t *sock); -enb_ue_t *enb_ue_add(mme_enb_t *enb); +enb_ue_t *enb_ue_add(mme_enb_t *enb, S1AP_ENB_UE_S1AP_ID_t enb_ue_s1ap_id); unsigned int enb_ue_count(void); void enb_ue_remove(enb_ue_t *enb_ue); void enb_ue_remove_in_enb(mme_enb_t *enb); diff --git a/src/mme/s1ap-handler.c b/src/mme/s1ap-handler.c index f865ecc779..cb3b44ed41 100644 --- a/src/mme/s1ap-handler.c +++ b/src/mme/s1ap-handler.c @@ -226,11 +226,9 @@ void s1ap_handle_initial_ue_message(mme_enb_t *enb, ogs_s1ap_message_t *message) ogs_assert(ENB_UE_S1AP_ID); enb_ue = enb_ue_find_by_enb_ue_s1ap_id(enb, *ENB_UE_S1AP_ID); if (!enb_ue) { - enb_ue = enb_ue_add(enb); + enb_ue = enb_ue_add(enb, *ENB_UE_S1AP_ID); ogs_assert(enb_ue); - enb_ue->enb_ue_s1ap_id = *ENB_UE_S1AP_ID; - /* Find MME_UE if S_TMSI included */ if (S_TMSI) { served_gummei_t *served_gummei = &mme_self()->served_gummei[0]; diff --git a/src/mme/s1ap-path.c b/src/mme/s1ap-path.c index 735d7436ca..910093f934 100644 --- a/src/mme/s1ap-path.c +++ b/src/mme/s1ap-path.c @@ -447,7 +447,7 @@ void s1ap_send_handover_request( ogs_assert(source_ue); ogs_assert(source_ue->target_ue == NULL); - target_ue = enb_ue_add(target_enb); + target_ue = enb_ue_add(target_enb, INVALID_UE_S1AP_ID); ogs_assert(target_ue); ogs_debug(" Source : ENB_UE_S1AP_ID[%d] MME_UE_S1AP_ID[%d]",