aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2021-02-18 14:27:14 +0100
committerPau Espin Pedrol <pespin@sysmocom.de>2021-02-18 15:50:47 +0100
commit9345eb34d332720c93ac286969f7b205c2004b80 (patch)
tree340a986694ffed39d464dad5d23b15551eb04591
parentcf6b3bc08f05234fa87121cb4ff045945df15728 (diff)
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
-rw-r--r--src/gprs_rlcmac_sched.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp
index b95d7793..eaea406a 100644
--- a/src/gprs_rlcmac_sched.cpp
+++ b/src/gprs_rlcmac_sched.cpp
@@ -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;
}