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 uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-pcu/+/25034 ) Change subject: WIP: Move FINISHED tbf_state transition to tbf_fsm ...................................................................... WIP: Move FINISHED tbf_state transition to tbf_fsm Related: OS#2709 Change-Id: I81f507e3a2821254f03364a58ead02333e63099f --- M src/tbf_dl.cpp M src/tbf_fsm.c M src/tbf_fsm.h M src/tbf_ul.cpp 4 files changed, 24 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/34/25034/1 diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 12fd99f..ed5003c 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -711,7 +711,7 @@ is_final = llc_queue_size(llc_queue()) == 0 && !keep_open(fn); if (is_final) { rdbi->cv = 0; - TBF_SET_STATE(this, TBF_ST_FINISHED); + osmo_fsm_inst_dispatch(this->state_fsm.fi, TBF_EV_LAST_DL_DATA_SENT, NULL); } if (mcs_is_edge(cs)) { @@ -756,7 +756,7 @@ if (is_final) { request_dl_ack(); - TBF_SET_STATE(this, TBF_ST_FINISHED); + osmo_fsm_inst_dispatch(this->state_fsm.fi, TBF_EV_LAST_DL_DATA_SENT, NULL); } /* dequeue next LLC frame, if any */ diff --git a/src/tbf_fsm.c b/src/tbf_fsm.c index 1c777a7..3322857 100644 --- a/src/tbf_fsm.c +++ b/src/tbf_fsm.c @@ -47,6 +47,8 @@ //{ TBF_EV_ASSIGN_DEL_PACCH, "ASSIGN_DEL_PACCH" }, { TBF_EV_ASSIGN_ACK_PACCH, "ASSIGN_ACK_PACCH" }, { TBF_EV_ASSIGN_READY_CCCH, "ASSIGN_READY_CCCH" }, + { TBF_EV_LAST_DL_DATA_SENT, "LAST_DL_DATA_SENT" }, + { TBF_EV_LAST_UL_DATA_RECVD, "LAST_UL_DATA_RECVD" }, { 0, NULL } }; @@ -138,6 +140,20 @@ } } +static void st_flow(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + //struct tbf_fsm_ctx *ctx = (struct tbf_fsm_ctx *)fi->priv; + switch (event) { + case TBF_EV_LAST_DL_DATA_SENT: + case TBF_EV_LAST_UL_DATA_RECVD: + /* All data has been sent or received, change state to FINISHED */ + tbf_fsm_state_chg(fi, TBF_ST_FINISHED); + break; + default: + OSMO_ASSERT(0); + } +} + static void tbf_fsm_cleanup(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause) { /* TODO: needed ? @@ -182,14 +198,15 @@ }, [TBF_ST_FLOW] = { .in_event_mask = - 0, + X(TBF_EV_LAST_DL_DATA_SENT) | + X(TBF_EV_LAST_UL_DATA_RECVD), .out_state_mask = X(TBF_ST_FINISHED) | X(TBF_ST_WAIT_RELEASE) | X(TBF_ST_RELEASING), .name = "FLOW", //.onenter = st_flow_on_enter, - //.action = st_flow, + .action = st_flow, }, [TBF_ST_FINISHED] = { .in_event_mask = diff --git a/src/tbf_fsm.h b/src/tbf_fsm.h index 405f5c6..f4f5ad7 100644 --- a/src/tbf_fsm.h +++ b/src/tbf_fsm.h @@ -33,6 +33,8 @@ //TBF_EV_ASSIGN_DEL_PACCH, TBF_EV_ASSIGN_ACK_PACCH, /* We received a CTRL ACK confirming assignment started on PACCH */ TBF_EV_ASSIGN_READY_CCCH, /* TBF Start Time timer triggered */ + TBF_EV_LAST_DL_DATA_SENT, /* DL TBF sends RLCMAC block containing last DL avilable data buffered */ + TBF_EV_LAST_UL_DATA_RECVD, /* UL TBF sends RLCMAC block containing last UL data (cv=0) */ }; enum tbf_fsm_states { diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index 4b3d015..54108ed 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -534,7 +534,7 @@ rdbi->bsn, rdbi->cv); if (rdbi->cv == 0) { LOGPTBFUL(this, LOGL_DEBUG, "Finished with UL TBF\n"); - TBF_SET_STATE(this, TBF_ST_FINISHED); + osmo_fsm_inst_dispatch(this->state_fsm.fi, TBF_EV_LAST_UL_DATA_RECVD, NULL); /* Reset N3103 counter. */ this->n_reset(N3103); } -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/25034 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I81f507e3a2821254f03364a58ead02333e63099f Gerrit-Change-Number: 25034 Gerrit-PatchSet: 1 Gerrit-Owner: pespin <pespin at sysmocom.de> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210723/b9f4dbb1/attachment.htm>