diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-09-07 16:19:36 +0200 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2018-09-10 00:51:35 +0000 |
commit | c21681d87091af40649daba5e31e8ec1e54b54d8 (patch) | |
tree | a549ebffc51fdc426d2ee8b5b19f6c5984609e43 /src | |
parent | 981f8b934771460354163dd148a5ecab46dd4476 (diff) |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/osmo-bsc/handover_fsm.c | 16 |
1 files changed, 16 insertions, 0 deletions
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, }, }; |