diff --git a/lib/app/ogs-context.c b/lib/app/ogs-context.c index 59b4e7f1b..7e8f62b8f 100644 --- a/lib/app/ogs-context.c +++ b/lib/app/ogs-context.c @@ -147,6 +147,25 @@ static void regenerate_all_timer_duration(void) self.time.message.gtp.n3_response_rcount * self.time.message.gtp.t3_response_duration; ogs_assert(self.time.message.gtp.t3_holding_duration); + +#if 0 + ogs_trace("%lld, %lld, %lld, %d, %lld, %d %lld, %d, %lld, %d, %lld", + (long long)self.time.message.duration, + (long long)self.time.message.sbi.client_wait_duration, + (long long)self.time.message.sbi.connection_deadline, + self.time.message.pfcp.n1_response_rcount, + (long long)self.time.message.pfcp.t1_response_duration, + self.time.message.pfcp.n1_holding_rcount, + (long long)self.time.message.pfcp.t1_holding_duration, + self.time.message.gtp.n3_response_rcount, + (long long)self.time.message.gtp.t3_response_duration, + self.time.message.gtp.n3_holding_rcount, + (long long)self.time.message.gtp.t3_holding_duration); + ogs_trace("%lld, %lld, %lld", + (long long)self.time.message.sbi.nf_register_interval, + (long long)self.time.message.pfcp.association_interval, + (long long)self.time.message.pfcp.no_heartbeat_duration); +#endif } static void app_context_prepare(void) diff --git a/meson.build b/meson.build index a8cd2c863..34647fd68 100644 --- a/meson.build +++ b/meson.build @@ -16,7 +16,7 @@ # along with this program. If not, see . project('open5gs', 'c', - version : '2.0.13', + version : '2.0.15', license : 'AGPL-3.0-or-later', meson_version : '>= 0.43.0', default_options : [ @@ -24,7 +24,7 @@ project('open5gs', 'c', ], ) -libogslib_version = '2.0.13' +libogslib_version = '2.0.15' prefix = get_option('prefix') bindir = join_paths(prefix, get_option('bindir')) diff --git a/src/mme/mme-path.c b/src/mme/mme-path.c index 5dd0ba9fd..430c78326 100644 --- a/src/mme/mme-path.c +++ b/src/mme/mme-path.c @@ -51,6 +51,7 @@ void mme_send_delete_session_or_mme_ue_context_release(mme_ue_t *mme_ue) } } +#if 0 void mme_send_release_access_bearer_or_ue_context_release(enb_ue_t *enb_ue) { mme_ue_t *mme_ue = NULL; @@ -67,3 +68,41 @@ void mme_send_release_access_bearer_or_ue_context_release(enb_ue_t *enb_ue) S1AP_UE_CTX_REL_S1_CONTEXT_REMOVE, 0); } } +#else +void mme_send_delete_session_or_enb_ue_context_release(enb_ue_t *enb_ue) +{ + mme_ue_t *mme_ue = NULL; + ogs_assert(enb_ue); + + mme_ue = enb_ue->mme_ue; + if (mme_ue && SESSION_CONTEXT_IS_AVAILABLE(mme_ue)) { + mme_gtp_send_delete_all_sessions(mme_ue); + } else { + s1ap_send_ue_context_release_command(enb_ue, + S1AP_Cause_PR_nas, S1AP_CauseNas_normal_release, + S1AP_UE_CTX_REL_S1_CONTEXT_REMOVE, 0); + } +} + +void mme_send_release_access_bearer_or_ue_context_release(enb_ue_t *enb_ue) +{ + mme_ue_t *mme_ue = NULL; + ogs_assert(enb_ue); + + mme_ue = enb_ue->mme_ue; + if (mme_ue) { + if (BEARER_CONTEXT_IS_ACTIVE(mme_ue)) { + ogs_debug("[%s] EMM-Registered", mme_ue->imsi_bcd); + mme_gtp_send_release_access_bearers_request(mme_ue); + } else { + ogs_warn("[%s] No EMM-Registered", mme_ue->imsi_bcd); + mme_send_delete_session_or_mme_ue_context_release(mme_ue); + } + } else { + ogs_debug("No UE Context"); + s1ap_send_ue_context_release_command(enb_ue, + S1AP_Cause_PR_nas, S1AP_CauseNas_normal_release, + S1AP_UE_CTX_REL_S1_CONTEXT_REMOVE, 0); + } +} +#endif diff --git a/src/mme/mme-path.h b/src/mme/mme-path.h index 4d625b72e..e9f205e9e 100644 --- a/src/mme/mme-path.h +++ b/src/mme/mme-path.h @@ -28,6 +28,7 @@ extern "C" { void mme_send_delete_session_or_detach(mme_ue_t *mme_ue); void mme_send_delete_session_or_mme_ue_context_release(mme_ue_t *mme_ue); +void mme_send_delete_session_or_enb_ue_context_release(enb_ue_t *enb_ue); void mme_send_release_access_bearer_or_ue_context_release(enb_ue_t *enb_ue); #ifdef __cplusplus