diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2020-08-29 03:24:18 +0000 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2020-08-31 18:01:17 +0200 |
commit | cd219d88f7895688637036dcd91f99aaa4247177 (patch) | |
tree | f4c9923a8ab682db6a382fc95c037ec6421e8e7b /src/osmo-bsc/bsc_subscr_conn_fsm.c | |
parent | 90f7c3c08db3ca0150540262c47241b850133f96 (diff) |
handover_fsm: signal Clear from gscon, for proper HO result counts
An inter-BSC-OUT handover ends with a Clear Command, which HO_OUT_ST_WAIT_CLEAR
waits for. Actually tell the handover_fsm.c about an incoming Clear Command, so
that the inter-BSC-OUT success can be counted.
Similarly, count failing handover results for an unexpected Clear Command from
the MSC.
Related: OS#4736
Change-Id: I0c489838a99f930e2104619ca745191d2a736f1b
Diffstat (limited to 'src/osmo-bsc/bsc_subscr_conn_fsm.c')
-rw-r--r-- | src/osmo-bsc/bsc_subscr_conn_fsm.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index e7c6efe09..b6ea59f48 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -771,6 +771,11 @@ static void gscon_fsm_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *d case GSCON_EV_A_CLEAR_CMD: conn->rx_clear_command = true; + /* Give the handover_fsm a chance to book this as handover success before tearing down everything, + * making it look like a sudden death failure. */ + if (conn->ho.fi) + osmo_fsm_inst_dispatch(conn->ho.fi, HO_EV_CONN_RELEASING, NULL); + OSMO_ASSERT(data); ccd = data; if (conn->lchan) |