From 9425640d7f495368fc3fe2900ec11f3032ff7a00 Mon Sep 17 00:00:00 2001 From: Neels Janosch Hofmeyr Date: Fri, 24 Mar 2023 03:31:10 +0100 Subject: [PATCH] map_sccp: on timeout during WAIT_CC, send N-DISCONNECT to SCCP-SCOC When waiting for CC expires, we should tell the SCCP-SCOC that we've stopped waiting: send N-DISCONNECT, instead of nothing. Change-Id: Ie94fcee4e2507a55449050aab96307199aed99a2 --- src/osmo-hnbgw/context_map_sccp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/osmo-hnbgw/context_map_sccp.c b/src/osmo-hnbgw/context_map_sccp.c index deb6e0f..cea0817 100644 --- a/src/osmo-hnbgw/context_map_sccp.c +++ b/src/osmo-hnbgw/context_map_sccp.c @@ -442,11 +442,13 @@ static int map_sccp_fsm_timer_cb(struct osmo_fsm_inst *fi) /* Return 1 to terminate FSM instance, 0 to keep running */ switch (fi->state) { case MAP_SCCP_ST_INIT: - case MAP_SCCP_ST_WAIT_CC: - /* cannot sent SCCP RLSD, because the other side hasn't responded with the remote reference. */ + /* cannot sent SCCP RLSD, because we haven't set up an SCCP link */ map_sccp_fsm_state_chg(MAP_SCCP_ST_DISCONNECTED); return 0; + case MAP_SCCP_ST_WAIT_CC: + /* send N-DISCONNECT. libosmo-sigtran/sccp_scoc.c will do the SCCP connection cleanup, like waiting a + * bit whether the SCCP CC might still arrive, and cleanup the conn if not. */ case MAP_SCCP_ST_CONNECTED: case MAP_SCCP_ST_WAIT_RLSD: /* send SCCP RLSD. libosmo-sigtran/sccp_scoc.c will do the SCCP connection cleanup.