aboutsummaryrefslogtreecommitdiffstats
path: root/src/bts.cpp
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2015-02-26 14:59:52 +0100
committerJacob Erlbeck <jerlbeck@sysmocom.de>2015-02-26 16:22:34 +0100
commit297edf754f74066d3885d429a67c2f989ced9bf0 (patch)
tree104e96ec437840af9f7f61c3898f9d86b30f88e5 /src/bts.cpp
parent08fe76a89334ddc4ee906bd30a00d908745b2b7b (diff)
tbf: Don't use 'old' DL TBFs after reuse_tbf
Currently two DL TBF objects with the same TLLI exist after reuse_tbf which make the result of tbf_by_tlli undefined. This leads to several DL TBFs belonging to the same TLLI. This commit extends tbf_by_tlli to check the m_tlli_valid flag for DL, too. That flag is set to 0 in reuse_tbf to mark the 'old' DL TBF as invalid after its LLC data has been copied to the new one. Sponsored-by: On-Waves ehf
Diffstat (limited to 'src/bts.cpp')
-rw-r--r--src/bts.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/bts.cpp b/src/bts.cpp
index b6600144..6100248e 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -243,7 +243,7 @@ gprs_rlcmac_tbf *BTS::tbf_by_tlli(uint32_t tlli, enum gprs_rlcmac_tbf_direction
} else {
llist_pods_for_each_entry(tbf, &m_bts.dl_tbfs, list, lpods) {
if (tbf->state_is_not(GPRS_RLCMAC_RELEASING)
- && tbf->tlli() == tlli)
+ && tbf->tlli() == tlli && tbf->is_tlli_valid())
return tbf;
}
}