diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2023-03-07 17:57:05 +0100 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2023-03-08 14:04:44 +0100 |
commit | 02d4b2a7244c44e98e2f6dac9a956ccb0e3805c2 (patch) | |
tree | a0e4e904a6e62af49a57279e9b459e8eed67bcdd | |
parent | 8bb176fdcb4ca46f742b66a883b4e212d5464077 (diff) |
tbf_ul_fm: Allow receiving event TBF_EV_MAX_N3105 in state RELEASING
Change-Id: I8560293d7b0f3bfefc1641208196404bc4848bfd
-rw-r--r-- | src/tbf_ul_fsm.c | 13 |
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", |