From 1eb2073baf0678a80d2bba9781829f1b3a58df25 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Mon, 13 Dec 2021 16:59:00 +0100 Subject: gscon clear: without SCCP conn, no need to wait for RLSD timeout Skip the BSSMAP Clear and SCCP RLSD parts and immediately deallocate the gscon when there is no SCCP connection present. Before this patch, such conn would stick around for a minute before a timeout deallocates it. Related: OS#5337 Change-Id: I8c8537acf6b47b121903197608636c43ae601a57 --- src/osmo-bsc/bsc_subscr_conn_fsm.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index 1b5f372ec..2183b18af 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -210,6 +210,10 @@ void gscon_fsm_wait_sccp_rlsd_onenter(struct osmo_fsm_inst *fi, uint32_t prev_st gscon_release_lchans(conn, true, bsc_gsm48_rr_cause_from_gsm0808_cause(conn->clear_cause)); osmo_mgcpc_ep_clear(conn->user_plane.mgw_endpoint); + + /* If there is no SCCP connection at all, then no need to wait for an SCCP RLSD. */ + if (!conn->sccp.msc || conn->sccp.state != SUBSCR_SCCP_ST_CONNECTED) + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, NULL); } /* forward MO DTAP from RSL side to BSSAP side */ -- cgit v1.2.3