diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-02-18 14:27:14 +0100 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2021-02-18 15:50:47 +0100 |
commit | 9345eb34d332720c93ac286969f7b205c2004b80 (patch) | |
tree | 340a986694ffed39d464dad5d23b15551eb04591 /src | |
parent | cf6b3bc08f05234fa87121cb4ff045945df15728 (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
Diffstat (limited to 'src')
-rw-r--r-- | src/gprs_rlcmac_sched.cpp | 8 |
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; } |