From d33466d632bf3c757dcdbd2b4a06c59f94b2e071 Mon Sep 17 00:00:00 2001 From: Aswanth KC Date: Wed, 8 Apr 2026 19:50:50 +0000 Subject: [PATCH] fix: issue 911 - replace timer oneshot to periodic. Updated SCTP reconnect timer from TIMER_ONE_SHOT to TIMER_PERIODIC so gNB continuously retries AMF lookup every 30 seconds after disconnect. Timer is now removed only when ngap_amf_associated_nb > 0, AMF association is actually back. --- openair3/NGAP/ngap_gNB_handlers.c | 12 ++++++++++-- openair3/NGAP/ngap_gNB_ue_context.c | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/openair3/NGAP/ngap_gNB_handlers.c b/openair3/NGAP/ngap_gNB_handlers.c index 754a2e2f86..78bc0b3de4 100644 --- a/openair3/NGAP/ngap_gNB_handlers.c +++ b/openair3/NGAP/ngap_gNB_handlers.c @@ -68,9 +68,17 @@ void ngap_handle_ng_setup_message(ngap_gNB_amf_data_t *amf_desc_p, int sctp_shut } } } else { + if (amf_desc_p->t_reconnect != -1 && amf_desc_p->ngap_gNB_instance->ngap_amf_associated_nb > 0) { + timer_remove(amf_desc_p->t_reconnect); + amf_desc_p->t_reconnect = -1; + NGAP_INFO("reconnected to AMF\n"); + } + /* Check that at least one setup message is pending */ - DevCheck(amf_desc_p->ngap_gNB_instance->ngap_amf_pending_nb > 0, amf_desc_p->ngap_gNB_instance->instance, - amf_desc_p->ngap_gNB_instance->ngap_amf_pending_nb, 0); + DevCheck(amf_desc_p->ngap_gNB_instance->ngap_amf_pending_nb > 0, + amf_desc_p->ngap_gNB_instance->instance, + amf_desc_p->ngap_gNB_instance->ngap_amf_pending_nb, + 0); if (amf_desc_p->ngap_gNB_instance->ngap_amf_pending_nb > 0) { /* Decrease pending messages number */ diff --git a/openair3/NGAP/ngap_gNB_ue_context.c b/openair3/NGAP/ngap_gNB_ue_context.c index 7555685afb..57856a890f 100644 --- a/openair3/NGAP/ngap_gNB_ue_context.c +++ b/openair3/NGAP/ngap_gNB_ue_context.c @@ -94,7 +94,7 @@ void ngap_release_ues_for_amf(ngap_gNB_amf_data_t *amf_desc_p) 0, TASK_NGAP, amf_desc_p->ngap_gNB_instance->instance, - TIMER_ONE_SHOT, + TIMER_PERIODIC, amf_desc_p, &tid); if (rc == 0) {