aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2018-09-07 16:24:04 +0200
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2018-09-10 00:51:35 +0000
commit021971781de88bb9cd58f18c79a71379a6cfa920 (patch)
tree59666f5833fff9bab53236c779e4a2baa34fbd09 /src
parentc21681d87091af40649daba5e31e8ec1e54b54d8 (diff)
lchan_fsm: allow late RTP release events without erroring
Diffstat (limited to 'src')
-rw-r--r--src/osmo-bsc/lchan_fsm.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c
index 7d4738045..1ef7869d3 100644
--- a/src/osmo-bsc/lchan_fsm.c
+++ b/src/osmo-bsc/lchan_fsm.c
@@ -967,6 +967,10 @@ static void lchan_fsm_wait_rf_release_ack(struct osmo_fsm_inst *fi, uint32_t eve
lchan_fsm_state_chg(LCHAN_ST_UNUSED);
break;
+ case LCHAN_EV_RTP_RELEASED:
+ /* ignore late lchan_rtp_fsm release events */
+ return;
+
default:
OSMO_ASSERT(false);
}
@@ -1119,6 +1123,7 @@ static const struct osmo_fsm_state lchan_fsm_states[] = {
.name = "WAIT_BEFORE_RF_RELEASE",
.in_event_mask = 0
| S(LCHAN_EV_RLL_REL_IND) /* allow late REL_IND of SAPI[0] */
+ | S(LCHAN_EV_RTP_RELEASED) /* ignore late lchan_rtp_fsm release events */
,
.out_state_mask = 0
| S(LCHAN_ST_UNUSED)
@@ -1131,6 +1136,7 @@ static const struct osmo_fsm_state lchan_fsm_states[] = {
.action = lchan_fsm_wait_rf_release_ack,
.in_event_mask = 0
| S(LCHAN_EV_RSL_RF_CHAN_REL_ACK)
+ | S(LCHAN_EV_RTP_RELEASED) /* ignore late lchan_rtp_fsm release events */
,
.out_state_mask = 0
| S(LCHAN_ST_UNUSED)
@@ -1140,6 +1146,9 @@ static const struct osmo_fsm_state lchan_fsm_states[] = {
},
[LCHAN_ST_WAIT_AFTER_ERROR] = {
.name = "WAIT_AFTER_ERROR",
+ .in_event_mask = 0
+ | S(LCHAN_EV_RTP_RELEASED) /* ignore late lchan_rtp_fsm release events */
+ ,
.out_state_mask = 0
| S(LCHAN_ST_UNUSED)
,