[S] Change in osmo-pcu[master]: Move call to bts_snd_dl_ass() from tbf_dl.cpp to tbf_dl_fsm.c
pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/33280 ) Change subject: Move call to bts_snd_dl_ass() from tbf_dl.cpp to tbf_dl_fsm.c ...................................................................... Move call to bts_snd_dl_ass() from tbf_dl.cpp to tbf_dl_fsm.c It makes more sense to have it there, where it is transmitted with more control depending on current state. Furthermore, it's counterpart/continuation TBF_EV_ASSIGN_PCUIF_CNF logic is already there, so it makes sense to have the whole logic together. Change-Id: I8af39d3087ccf197321f0c71cb29b67adbe1f36e --- M src/tbf_dl.cpp M src/tbf_dl_fsm.c 2 files changed, 26 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve laforge: Looks good to me, approved diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 17d2934..40442c3 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -485,9 +485,6 @@ /* change state */ osmo_fsm_inst_dispatch(tbf->state_fi, TBF_EV_ASSIGN_ADD_CCCH, NULL); - - /* send immediate assignment */ - bts_snd_dl_ass(ms->bts, tbf); } int dl_tbf_upgrade_to_multislot(struct gprs_rlcmac_dl_tbf *dl_tbf) diff --git a/src/tbf_dl_fsm.c b/src/tbf_dl_fsm.c index a977507..02e1ff5 100644 --- a/src/tbf_dl_fsm.c +++ b/src/tbf_dl_fsm.c @@ -104,6 +104,7 @@ static void st_assign_on_enter(struct osmo_fsm_inst *fi, uint32_t prev_state) { struct tbf_dl_fsm_ctx *ctx = (struct tbf_dl_fsm_ctx *)fi->priv; + struct GprsMs *ms = tbf_ms(ctx->tbf); unsigned long val; unsigned int sec, micro; @@ -125,20 +126,29 @@ sec, micro); osmo_timer_schedule(&fi->timer, sec, micro); } else { - /* GPRS_RLCMAC_FLAG_CCCH is set, so here we submitted an DL Ass + /* GPRS_RLCMAC_FLAG_CCCH is set, so here we submit a DL Ass * through PCUIF on CCCH */ + OSMO_ASSERT(ctx->state_flags & (1 << GPRS_RLCMAC_FLAG_CCCH)); + /* Send CCCH (PCH) Immediate Assignment over PCUIF: */ + bts_snd_dl_ass(ms->bts, ctx->dl_tbf); } } static void st_assign(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct tbf_dl_fsm_ctx *ctx = (struct tbf_dl_fsm_ctx *)fi->priv; + struct GprsMs *ms; unsigned long val; unsigned int sec, micro; switch (event) { case TBF_EV_ASSIGN_ADD_CCCH: + /* Note: This code path is not really used nowadays, since ADD_CCCH is + * only dispatched during dl_tbf allocation (st=NEW) */ + ms = tbf_ms(ctx->tbf); mod_ass_type(ctx, GPRS_RLCMAC_FLAG_CCCH, true); + /* Re-send CCCH (PCH) Immediate Assignment over PCUIF: */ + bts_snd_dl_ass(ms->bts, ctx->dl_tbf); break; case TBF_EV_ASSIGN_ADD_PACCH: mod_ass_type(ctx, GPRS_RLCMAC_FLAG_PACCH, true); @@ -210,13 +220,8 @@ * from continuing and start assignment on CCCH again */ if ((ctx->state_flags & (1 << GPRS_RLCMAC_FLAG_CCCH)) && !dl_tbf_first_dl_ack_rcvd(ctx->dl_tbf)) { - struct GprsMs *ms = tbf_ms(ctx->tbf); - LOGPTBFDL(ctx->dl_tbf, LOGL_DEBUG, - "Re-send downlink assignment on PCH (IMSI=%s)\n", - ms_imsi_is_valid(ms) ? ms_imsi(ms) : ""); + LOGPTBFDL(ctx->dl_tbf, LOGL_DEBUG, "Retransmit ImmAss[PktDlAss] on PCH\n"); tbf_dl_fsm_state_chg(fi, TBF_ST_ASSIGN); - /* send immediate assignment */ - bts_snd_dl_ass(ms->bts, ctx->dl_tbf); } break; case TBF_EV_LAST_DL_DATA_SENT: -- To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/33280 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-Change-Id: I8af39d3087ccf197321f0c71cb29b67adbe1f36e Gerrit-Change-Number: 33280 Gerrit-PatchSet: 3 Gerrit-Owner: pespin <pespin@sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge@osmocom.org> Gerrit-Reviewer: osmith <osmith@sysmocom.de> Gerrit-Reviewer: pespin <pespin@sysmocom.de> Gerrit-MessageType: merged
participants (1)
-
pespin