sched: Avoid selecting TBF to tx NACC Dl msg if no TFI is assigned

The DL NACC related message (PKT Cell Neighbor Data/Change Continue)
are filled with the TFI of the target TBF. Hence, only select the tbf
for NACC transmission if the related TBF already has a TFI assigned.

Otherwise, "OSMO_ASSERT(tbf_is_tfi_assigned(tbf));" in nacc_fsm.c when
generating messages may be hit.

Related: SYS#4909
Change-Id: I72b2dff28aacdb04909c098c94834ff79f55b31d
This commit is contained in:
Pau Espin 2021-02-18 14:27:14 +01:00
parent cf6b3bc08f
commit 9345eb34d3
1 changed files with 4 additions and 4 deletions

View File

@ -72,8 +72,8 @@ static uint32_t sched_poll(struct gprs_rlcmac_bts *bts,
if (ul_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS)
|| ul_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ))
tbf_cand->ul_ass = ul_tbf;
/* NACC ready to send */
if (ms_nacc_rts(ul_tbf->ms()))
/* NACC ready to send. TFI assigned is needed to send messages */
if (ul_tbf->is_tfi_assigned() && ms_nacc_rts(ul_tbf->ms()))
tbf_cand->nacc = ul_tbf;
/* FIXME: Is this supposed to be fair? The last TBF for each wins? Maybe use llist_add_tail and skip once we have all
states? */
@ -92,8 +92,8 @@ states? */
if (dl_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS)
|| dl_tbf->ul_ass_state_is(GPRS_RLCMAC_UL_ASS_SEND_ASS_REJ))
tbf_cand->ul_ass = dl_tbf;
/* NACC ready to send */
if (ms_nacc_rts(dl_tbf->ms()))
/* NACC ready to send. TFI assigned is needed to send messages */
if (dl_tbf->is_tfi_assigned() && ms_nacc_rts(dl_tbf->ms()))
tbf_cand->nacc = dl_tbf;
}