diff options
author | Harald Welte <laforge@gnumonks.org> | 2018-06-11 13:55:23 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-06-11 13:57:29 +0200 |
commit | 3f5716ce5dd9cbf1df6ae7042eebe2e18ae8034e (patch) | |
tree | 28c43570b048368d276c22bd7d9946133a4a7a24 /src | |
parent | 422260d7a22db30ec5641e40059765c08f4c8569 (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
Diffstat (limited to 'src')
-rw-r--r-- | src/osmo-bsc/bsc_subscr_conn_fsm.c | 4 |
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); |