From c21681d87091af40649daba5e31e8ec1e54b54d8 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Fri, 7 Sep 2018 16:19:36 +0200 Subject: ho fsm: handle RR HO Failure for inter-BSC outgoing Before, this would ignore the failure and hit a timeout instead. Rather handle the event directly. Change-Id: I21c43d2907d0413ef18ec43cf27f680ebecf9e82 --- src/osmo-bsc/handover_fsm.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/osmo-bsc/handover_fsm.c') diff --git a/src/osmo-bsc/handover_fsm.c b/src/osmo-bsc/handover_fsm.c index a42f10ccc..9d558bcb5 100644 --- a/src/osmo-bsc/handover_fsm.c +++ b/src/osmo-bsc/handover_fsm.c @@ -1025,6 +1025,18 @@ static void ho_out_fsm_wait_ho_command(struct osmo_fsm_inst *fi, uint32_t event, } } +static void ho_out_fsm_wait_clear(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_subscriber_connection *conn = ho_fi_conn(fi); + switch (event) { + case HO_EV_RR_HO_FAIL: + ho_fail(HO_RESULT_FAIL_RR_HO_FAIL, "Received RR Handover Failure message"); + return; + + default: + OSMO_ASSERT(false); + } +} #define S(x) (1 << (x)) @@ -1108,6 +1120,10 @@ static const struct osmo_fsm_state ho_fsm_states[] = { }, [HO_OUT_ST_WAIT_CLEAR] = { .name = "inter-BSC-OUT:WAIT_CLEAR", + .in_event_mask = 0 + | S(HO_EV_RR_HO_FAIL) + , + .action = ho_out_fsm_wait_clear, }, }; -- cgit v1.2.3