aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-06-11 13:55:23 +0200
committerHarald Welte <laforge@gnumonks.org>2018-06-11 13:57:29 +0200
commit3f5716ce5dd9cbf1df6ae7042eebe2e18ae8034e (patch)
tree28c43570b048368d276c22bd7d9946133a4a7a24
parent422260d7a22db30ec5641e40059765c08f4c8569 (diff)
bsc_subscr_conn_fsm: BSC must not release SCCP connection
3GPP TS 48.006 section 9.2 states clearly that any SCCP connection release must be initiated by the MSC. for bsc_subscr_conn_fsm, this means that even after sending the BSSMAP CLEAR COMPLETE, we must not terminate the FSM, as this would cause a N-DISCONNET.req to be sent to the stack for the associated SCCP connection. The bsc_subscr_conn_fsm instances will hence stay alive until the MSC eventually decises to release them. Change-Id: Iaaca220b598609b77b600fcfc2f9a78b221c1fbb Closes: OS#3331
-rw-r--r--src/osmo-bsc/bsc_subscr_conn_fsm.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c
index bd652f0ea..4f09ae6bc 100644
--- a/src/osmo-bsc/bsc_subscr_conn_fsm.c
+++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c
@@ -729,7 +729,9 @@ static void gscon_fsm_clearing(struct osmo_fsm_inst *fi, uint32_t event, void *d
case GSCON_EV_RSL_CLEAR_COMPL:
resp = gsm0808_create_clear_complete();
sigtran_send(conn, resp, fi);
- osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, data);
+ /* we cannot terminate the FSM here, as that would send N-DISCCONNET.req
+ * and 3GPP TS 48.006 Section 9.2 clearly states that SCCP connections must
+ * always be released from the MSC side*/
break;
default:
OSMO_ASSERT(false);