diff options
author | Daniel Willmann <dwillmann@sysmocom.de> | 2014-05-30 20:21:30 +0200 |
---|---|---|
committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2014-06-04 17:17:45 +0200 |
commit | 17a1d5e1623ca7c09bc312fd402cdf0075b523be (patch) | |
tree | 20da98fbbb5ca7c9b2ed90cc3d12317077ccfe80 /src/gprs_rlcmac_ts_alloc.cpp | |
parent | 1e0c61032fbccc6bd4b1fbd89765f125643e79c3 (diff) |
gprs_rlcmac_pdch: Get rid of ul/dl_tbf
The current code keeps a reference to all tbfs in the bts and another
reference in the pdch. This allows for the possibility of both lists to
go out of sync.
This patch removes the pdch-specific list of ul and dl tbfs and uses the
lists in the bts to lookup tbfs everywhere.
Performance for going through the global list is not an issue yet. We
can optimize this later and in a better way.
Sponsored-by: On-Waves ehf
Diffstat (limited to 'src/gprs_rlcmac_ts_alloc.cpp')
-rw-r--r-- | src/gprs_rlcmac_ts_alloc.cpp | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp index 13fc636f..b070c2e9 100644 --- a/src/gprs_rlcmac_ts_alloc.cpp +++ b/src/gprs_rlcmac_ts_alloc.cpp @@ -83,7 +83,7 @@ static inline int8_t find_free_usf(struct gprs_rlcmac_pdch *pdch) /* make map of used USF */ for (tfi = 0; tfi < 32; tfi++) { - tbf = pdch->ul_tbf[tfi]; + tbf = pdch->ul_tbf_by_tfi(tfi); if (!tbf) continue; usf_map |= (1 << tbf->dir.ul.usf[pdch->ts_no]); @@ -121,7 +121,6 @@ static void assign_uplink_tbf_usf( struct gprs_rlcmac_tbf *tbf, int8_t usf) { tbf->trx->ul_tbf[tbf->tfi()] = tbf; - pdch->ul_tbf[tbf->tfi()] = tbf; tbf->pdch[pdch->ts_no] = pdch; tbf->dir.ul.usf[pdch->ts_no] = usf; } @@ -131,7 +130,6 @@ static void assign_dlink_tbf( struct gprs_rlcmac_tbf *tbf) { tbf->trx->dl_tbf[tbf->tfi()] = tbf; - pdch->dl_tbf[tbf->tfi()] = tbf; tbf->pdch[pdch->ts_no] = pdch; } |