aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2023-03-07 17:57:05 +0100
committerPau Espin Pedrol <pespin@sysmocom.de>2023-03-08 14:04:44 +0100
commit02d4b2a7244c44e98e2f6dac9a956ccb0e3805c2 (patch)
treea0e4e904a6e62af49a57279e9b459e8eed67bcdd
parent8bb176fdcb4ca46f742b66a883b4e212d5464077 (diff)
tbf_ul_fm: Allow receiving event TBF_EV_MAX_N3105 in state RELEASING
-rw-r--r--src/tbf_ul_fsm.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/tbf_ul_fsm.c b/src/tbf_ul_fsm.c
index 571c6894..a7d24ec7 100644
--- a/src/tbf_ul_fsm.c
+++ b/src/tbf_ul_fsm.c
@@ -279,7 +279,15 @@ static void st_releasing_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state)
static void st_releasing(struct osmo_fsm_inst *fi, uint32_t event, void *data)
{
- OSMO_ASSERT(0);
+ switch (event) {
+ case TBF_EV_MAX_N3105:
+ /* This may be received here if the TBF had several polls
+ * allocated concurrently and several failed each increasing N3105
+ * over MAX_N3015. We are already releasing, ignore.*/
+ break;
+ default:
+ OSMO_ASSERT(0);
+ }
}
static int tbf_ul_fsm_timer_cb(struct osmo_fsm_inst *fi)
@@ -351,7 +359,8 @@ static struct osmo_fsm_state tbf_ul_fsm_states[] = {
.action = st_finished,
},
[TBF_ST_RELEASING] = {
- .in_event_mask = 0,
+ .in_event_mask =
+ X(TBF_EV_MAX_N3105),
.out_state_mask =
0,
.name = "RELEASING",