diff --git a/srsepc/hdr/mme/mme_gtpc.h b/srsepc/hdr/mme/mme_gtpc.h index f2804e22b..402a52a99 100644 --- a/srsepc/hdr/mme/mme_gtpc.h +++ b/srsepc/hdr/mme/mme_gtpc.h @@ -52,7 +52,7 @@ public: void handle_create_session_response(srslte::gtpc_pdu *cs_resp_pdu); void send_modify_bearer_request(erab_ctx_t *bearer_ctx); void handle_modify_bearer_response(srslte::gtpc_pdu *mb_resp_pdu); - void send_delete_session_request(ue_ctx_t *ue_ctx); + void send_delete_session_request(ue_ecm_ctx_t *ue_ecm_ctx); private: diff --git a/srsepc/src/mme/mme_gtpc.cc b/srsepc/src/mme/mme_gtpc.cc index 4b396f7a8..6f4a1cdcc 100644 --- a/srsepc/src/mme/mme_gtpc.cc +++ b/srsepc/src/mme/mme_gtpc.cc @@ -219,7 +219,7 @@ mme_gtpc::handle_modify_bearer_response(srslte::gtpc_pdu *mb_resp_pdu) } void -mme_gtpc::send_delete_session_request(ue_ctx_t *ue_ctx) +mme_gtpc::send_delete_session_request(ue_ecm_ctx_t *ue_ecm_ctx) { m_mme_gtpc_log->info("Sending GTP-C Delete Session Request request\n"); srslte::gtpc_pdu del_req_pdu; @@ -230,9 +230,9 @@ mme_gtpc::send_delete_session_request(ue_ctx_t *ue_ctx) for(int i = 0; ierabs_ctx[i].state != ERAB_DEACTIVATED) + if(ue_ecm_ctx->erabs_ctx[i].state != ERAB_DEACTIVATED) { - sgw_ctrl_fteid = &ue_ctx->erabs_ctx[i].sgw_ctrl_fteid; + sgw_ctrl_fteid = &ue_ecm_ctx->erabs_ctx[i].sgw_ctrl_fteid; break; } } diff --git a/srsepc/src/mme/s1ap_ctx_mngmt_proc.cc b/srsepc/src/mme/s1ap_ctx_mngmt_proc.cc index 4a31a0111..3fce06de6 100644 --- a/srsepc/src/mme/s1ap_ctx_mngmt_proc.cc +++ b/srsepc/src/mme/s1ap_ctx_mngmt_proc.cc @@ -272,8 +272,8 @@ s1ap_ctx_mngmt_proc::handle_ue_context_release_request(LIBLTE_S1AP_MESSAGE_UECON m_s1ap_log->info("Received UE Context Release Request. MME-UE S1AP Id: %d\n", mme_ue_s1ap_id); m_s1ap_log->console("Received UE Context Release Request. MME-UE S1AP Id %d\n", mme_ue_s1ap_id); - ue_ctx_t *ue_ctx = m_s1ap->find_ue_ctx(mme_ue_s1ap_id); - if(ue_ctx == NULL) + ue_ecm_ctx_t *ue_ecm_ctx = m_s1ap->find_ue_ecm_ctx_from_mme_ue_s1ap_id(mme_ue_s1ap_id); + if(ue_ecm_ctx == NULL) { m_s1ap_log->info("UE not found. MME-UE S1AP Id: %d\n", mme_ue_s1ap_id); return false; @@ -283,7 +283,7 @@ s1ap_ctx_mngmt_proc::handle_ue_context_release_request(LIBLTE_S1AP_MESSAGE_UECON bool active = false; for(int i=0;ierabs_ctx[i].state != ERAB_DEACTIVATED) + if(ue_ecm_ctx->erabs_ctx[i].state != ERAB_DEACTIVATED) //FIXME use ECM state { active = true; //ue_ctx->erabs_ctx[i].state = ERAB_DEACTIVATED; @@ -293,14 +293,16 @@ s1ap_ctx_mngmt_proc::handle_ue_context_release_request(LIBLTE_S1AP_MESSAGE_UECON if(active == true) { //There are active E-RABs, send delete session request - m_mme_gtpc->send_delete_session_request(ue_ctx); + m_mme_gtpc->send_delete_session_request(ue_ecm_ctx); } //m_s1ap->delete_ue_ctx(ue_ctx); for(int i=0;ierabs_ctx[i].state = ERAB_DEACTIVATED; + ue_ecm_ctx->erabs_ctx[i].state = ERAB_DEACTIVATED; } //Delete UE context + m_s1ap->delete_ue_ecm_ctx(ue_ecm_ctx->mme_ue_s1ap_id); + m_s1ap_log->info("Deleted UE Context.\n"); return true; }