tbf_fsm: Ignore event DL_ACKNACK_MISS in state RELEASING
Fixes following error log line: "{RELEASING}: Event DL_ACKNACK_MISS not permitted" Rationale: We may move to RELEASING state at some point, for instance due to MAX_N3101/MAX_N3105 while still having some active poll registered in some PDCH ulc. Upon that poll (most probably) timing out, it will send a DL_ACKNACK_MISS event to us. Since we are already determined to release the TBF (waiting for T3195 or T3169 to trigger), simply ignore the event and avoid logging an error. Fixes: OS#5240 Change-Id: Ibfb49356d2b3b5fccb6d59db8593b2256e5c51fb
This commit is contained in:
parent
e9db5c7387
commit
cee6b122c2
|
@ -323,6 +323,18 @@ static void st_releasing_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state)
|
|||
osmo_timer_schedule(&fi->timer, val, 0);
|
||||
}
|
||||
|
||||
static void st_releasing(struct osmo_fsm_inst *fi, uint32_t event, void *data)
|
||||
{
|
||||
switch (event) {
|
||||
case TBF_EV_DL_ACKNACK_MISS:
|
||||
/* Ignore, we don't care about missed DL ACK/NACK poll timeouts
|
||||
* anymore, we are already releasing the TBF */
|
||||
break;
|
||||
default:
|
||||
OSMO_ASSERT(0);
|
||||
}
|
||||
}
|
||||
|
||||
static void handle_timeout_X2002(struct tbf_fsm_ctx *ctx)
|
||||
{
|
||||
struct gprs_rlcmac_dl_tbf *dl_tbf = as_dl_tbf(ctx->tbf);
|
||||
|
@ -441,10 +453,11 @@ static struct osmo_fsm_state tbf_fsm_states[] = {
|
|||
},
|
||||
[TBF_ST_RELEASING] = {
|
||||
.in_event_mask =
|
||||
0,
|
||||
X(TBF_EV_DL_ACKNACK_MISS),
|
||||
.out_state_mask =
|
||||
0,
|
||||
.name = "RELEASING",
|
||||
.action = st_releasing,
|
||||
.onenter = st_releasing_on_enter,
|
||||
},
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue