This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
pespin gerrit-no-reply at lists.osmocom.orgpespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25799 ) Change subject: Abort scheduling of pending Pkt Ul Ass if tbf goes into RELEASE step ...................................................................... Abort scheduling of pending Pkt Ul Ass if tbf goes into RELEASE step Change-Id: I20bab79070274b1d8f6b4e1867b30de61983ab54 --- M src/tbf_fsm.c M src/tbf_ul_ass_fsm.c M src/tbf_ul_ass_fsm.h 3 files changed, 31 insertions(+), 4 deletions(-) Approvals: osmith: Looks good to me, but someone else must approve fixeria: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/tbf_fsm.c b/src/tbf_fsm.c index 36981e6..fb947b2 100644 --- a/src/tbf_fsm.c +++ b/src/tbf_fsm.c @@ -190,6 +190,8 @@ tbf_fsm_state_chg(fi, TBF_ST_FLOW); break; case TBF_EV_MAX_N3105: + /* We are going to release, so abort any Pkt Ul Ass pending to be scheduled: */ + osmo_fsm_inst_dispatch(tbf_ul_ass_fi(ctx->tbf), TBF_UL_ASS_EV_ABORT, NULL); ctx->T_release = 3195; tbf_fsm_state_chg(fi, TBF_ST_RELEASING); break; diff --git a/src/tbf_ul_ass_fsm.c b/src/tbf_ul_ass_fsm.c index bf70a14..ab23fbd 100644 --- a/src/tbf_ul_ass_fsm.c +++ b/src/tbf_ul_ass_fsm.c @@ -48,6 +48,7 @@ { TBF_UL_ASS_EV_CREATE_RLCMAC_MSG, "CREATE_RLCMAC_MSG" }, { TBF_UL_ASS_EV_RX_ASS_CTRL_ACK, "RX_ASS_CTRL_ACK" }, { TBF_UL_ASS_EV_ASS_POLL_TIMEOUT, "ASS_POLL_TIMEOUT" }, + { TBF_UL_ASS_EV_ABORT, "ABORT" }, { 0, NULL } }; @@ -169,6 +170,9 @@ case TBF_UL_ASS_EV_SCHED_ASS_REJ: tbf_ul_ass_fsm_state_chg(fi, TBF_UL_ASS_SEND_ASS_REJ); break; + case TBF_UL_ASS_EV_ABORT: + /* Nothing to do, we are already in proper state */ + break; default: OSMO_ASSERT(0); } @@ -187,6 +191,10 @@ return; tbf_ul_ass_fsm_state_chg(fi, TBF_UL_ASS_WAIT_ACK); break; + case TBF_UL_ASS_EV_ABORT: + /* Cancel pending schedule for Pkt Ul Ass: */ + tbf_ul_ass_fsm_state_chg(fi, TBF_UL_ASS_NONE); + break; default: OSMO_ASSERT(0); } @@ -205,6 +213,10 @@ return; tbf_ul_ass_fsm_state_chg(fi, TBF_UL_ASS_NONE); break; + case TBF_UL_ASS_EV_ABORT: + /* Cancel pending schedule for Pkt Ul Ass Rej: */ + tbf_ul_ass_fsm_state_chg(fi, TBF_UL_ASS_NONE); + break; default: OSMO_ASSERT(0); } @@ -230,6 +242,12 @@ tbf_ul_ass_fsm_state_chg(fi, TBF_UL_ASS_NONE); } break; + case TBF_UL_ASS_EV_ABORT: + /* There's nothing we can do here, we already transmitted and + * hence we must keep the POLL since the MS is already expected + * to transmit there. Whenever we receive event CTRL_ACK or + * TIMEOUT above, it will move back to ST_NONE autoamtically */ + break; default: OSMO_ASSERT(0); } @@ -252,7 +270,8 @@ [TBF_UL_ASS_NONE] = { .in_event_mask = X(TBF_UL_ASS_EV_SCHED_ASS) | - X(TBF_UL_ASS_EV_SCHED_ASS_REJ), + X(TBF_UL_ASS_EV_SCHED_ASS_REJ) | + X(TBF_UL_ASS_EV_ABORT), .out_state_mask = X(TBF_UL_ASS_SEND_ASS) | X(TBF_UL_ASS_SEND_ASS_REJ), @@ -261,7 +280,9 @@ .onenter = st_none_on_enter, }, [TBF_UL_ASS_SEND_ASS] = { - .in_event_mask = X(TBF_UL_ASS_EV_CREATE_RLCMAC_MSG), + .in_event_mask = + X(TBF_UL_ASS_EV_CREATE_RLCMAC_MSG) | + X(TBF_UL_ASS_EV_ABORT), .out_state_mask = X(TBF_UL_ASS_WAIT_ACK) | X(TBF_UL_ASS_NONE), @@ -269,7 +290,9 @@ .action = st_send_ass, }, [TBF_UL_ASS_SEND_ASS_REJ] = { - .in_event_mask = X(TBF_UL_ASS_EV_CREATE_RLCMAC_MSG), + .in_event_mask = + X(TBF_UL_ASS_EV_CREATE_RLCMAC_MSG) | + X(TBF_UL_ASS_EV_ABORT), .out_state_mask = X(TBF_UL_ASS_NONE), .name = "SEND_ASS_REJ", .action = st_send_ass_rej, @@ -277,7 +300,8 @@ [TBF_UL_ASS_WAIT_ACK] = { .in_event_mask = X(TBF_UL_ASS_EV_RX_ASS_CTRL_ACK) | - X(TBF_UL_ASS_EV_ASS_POLL_TIMEOUT), + X(TBF_UL_ASS_EV_ASS_POLL_TIMEOUT) | + X(TBF_UL_ASS_EV_ABORT), .out_state_mask = X(TBF_UL_ASS_NONE) | X(TBF_UL_ASS_SEND_ASS), diff --git a/src/tbf_ul_ass_fsm.h b/src/tbf_ul_ass_fsm.h index 67bb2f4..34b81a7 100644 --- a/src/tbf_ul_ass_fsm.h +++ b/src/tbf_ul_ass_fsm.h @@ -32,6 +32,7 @@ TBF_UL_ASS_EV_CREATE_RLCMAC_MSG, /* Scheduler wants to gen+Tx the Ass (rej): data=tbf_ul_ass_ev_create_rlcmac_msg_ctx */ TBF_UL_ASS_EV_RX_ASS_CTRL_ACK, /* Received CTRL ACK answering poll set on Pkt Ul Ass */ TBF_UL_ASS_EV_ASS_POLL_TIMEOUT, /* Pdch Ul Controller signals timeout for poll set on Pkt Ul Ass */ + TBF_UL_ASS_EV_ABORT, /* TBF is starting to be RELEASED, drop in progress assignment */ }; enum tbf_ul_ass_fsm_states { -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25799 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I20bab79070274b1d8f6b4e1867b30de61983ab54 Gerrit-Change-Number: 25799 Gerrit-PatchSet: 2 Gerrit-Owner: pespin <pespin at sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de> Gerrit-Reviewer: osmith <osmith at sysmocom.de> Gerrit-Reviewer: pespin <pespin at sysmocom.de> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20211014/6bc500ab/attachment.htm>