Files
open5gs/lib/core/ogs-timer.h
Sukchan Lee b08b2adc6c [AMF/MME] Remove code that doesn't work (#2013)
Based on the standard document below, when the UE is in the IDLE state,
we checked the implicit timer and tried to send a message to the UE,
but it doesn't work properly.

So, first of all, I deleted the related code.

- TS 24.301 Ch 5.3.7
If ISR is not activated, the network behaviour upon expiry of
the mobile reachable timer is network dependent, but typically
the network stops sending paging messages to the UE on the
first expiry, and may take other appropriate actions

- TS 24.501 Ch 5.3.7
The network behaviour upon expiry of the mobile reachable timer is network dependent,
but typically the network stops sending paging messages to the UE on the first expiry,
and may take other appropriate actions.
2023-07-23 14:54:06 +09:00

69 lines
2.1 KiB
C

/*
* Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
*
* This file is part of Open5GS.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#if !defined(OGS_CORE_INSIDE) && !defined(OGS_CORE_COMPILATION)
#error "This header cannot be included directly."
#endif
#ifndef OGS_TIMER_H
#define OGS_TIMER_H
#ifdef __cplusplus
extern "C" {
#endif
typedef struct ogs_timer_mgr_s ogs_timer_mgr_t;
typedef struct ogs_timer_s {
ogs_rbnode_t rbnode;
ogs_lnode_t lnode;
void (*cb)(void*);
void *data;
ogs_timer_mgr_t *manager;
bool running;
ogs_time_t timeout;
} ogs_timer_t;
ogs_timer_mgr_t *ogs_timer_mgr_create(unsigned int capacity);
void ogs_timer_mgr_destroy(ogs_timer_mgr_t *manager);
ogs_timer_t *ogs_timer_add(
ogs_timer_mgr_t *manager, void (*cb)(void *data), void *data);
#define ogs_timer_delete(timer) \
ogs_timer_delete_debug(timer, OGS_FILE_LINE)
void ogs_timer_delete_debug(ogs_timer_t *timer, const char *file_line);
#define ogs_timer_start(timer, duration) \
ogs_timer_start_debug(timer, duration, OGS_FILE_LINE)
void ogs_timer_start_debug(
ogs_timer_t *timer, ogs_time_t duration, const char *file_line);
#define ogs_timer_stop(timer) \
ogs_timer_stop_debug(timer, OGS_FILE_LINE)
void ogs_timer_stop_debug(ogs_timer_t *timer, const char *file_line);
ogs_time_t ogs_timer_mgr_next(ogs_timer_mgr_t *manager);
void ogs_timer_mgr_expire(ogs_timer_mgr_t *manager);
#ifdef __cplusplus
}
#endif
#endif /* OGS_TIMER_H */