[osmo-pcu 2/3] bts: Separate functions for dl/ul tbf_by_tfi lookup

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Daniel Willmann dwillmann at sysmocom.de
Wed Jul 2 15:58:15 UTC 2014


Ticket: SYS#389
Sponsored-by: On-Waves ehf
---
 src/bts.cpp | 18 +++++++++++++++---
 src/bts.h   |  4 +++-
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/bts.cpp b/src/bts.cpp
index 51be2d9..52960cf 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -271,6 +271,18 @@ gprs_rlcmac_tbf *BTS::tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts)
 	return NULL;
 }
 
+/* lookup downlink TBF Entity (by TFI) */
+gprs_rlcmac_tbf *BTS::dl_tbf_by_tfi(uint8_t tfi, uint8_t trx)
+{
+	return tbf_by_tfi(tfi, trx, GPRS_RLCMAC_DL_TBF);
+}
+
+/* lookup uplink TBF Entity (by TFI) */
+gprs_rlcmac_tbf *BTS::ul_tbf_by_tfi(uint8_t tfi, uint8_t trx)
+{
+	return tbf_by_tfi(tfi, trx, GPRS_RLCMAC_UL_TBF);
+}
+
 /* lookup TBF Entity (by TFI) */
 gprs_rlcmac_tbf *BTS::tbf_by_tfi(uint8_t tfi, uint8_t trx,
 				enum gprs_rlcmac_tbf_direction dir)
@@ -690,7 +702,7 @@ int gprs_rlcmac_pdch::rcv_data_block_acknowledged(uint8_t *data, uint8_t len, in
 	}
 
 	/* find TBF inst from given TFI */
-	tbf = bts()->tbf_by_tfi(rh->tfi, trx_no(), GPRS_RLCMAC_UL_TBF);
+	tbf = bts()->ul_tbf_by_tfi(rh->tfi, trx_no());
 	if (!tbf) {
 		LOGP(DRLCMACUL, LOGL_NOTICE, "UL DATA unknown TFI=%d\n",
 			rh->tfi);
@@ -900,14 +912,14 @@ void gprs_rlcmac_pdch::rcv_resource_request(Packet_Resource_Request_t *request,
 
 	if (request->ID.u.Global_TFI.UnionType) {
 		int8_t tfi = request->ID.u.Global_TFI.u.DOWNLINK_TFI;
-		tbf = bts()->tbf_by_tfi(tfi, trx_no(), GPRS_RLCMAC_DL_TBF);
+		tbf = bts()->dl_tbf_by_tfi(tfi, trx_no());
 		if (!tbf) {
 			LOGP(DRLCMAC, LOGL_NOTICE, "PACKET RESSOURCE REQ unknown downlink TFI=%d\n", tfi);
 			return;
 		}
 	} else {
 		int8_t tfi = request->ID.u.Global_TFI.u.UPLINK_TFI;
-		tbf = bts()->tbf_by_tfi(tfi, trx_no(), GPRS_RLCMAC_UL_TBF);
+		tbf = bts()->ul_tbf_by_tfi(tfi, trx_no());
 		if (!tbf) {
 			LOGP(DRLCMAC, LOGL_NOTICE, "PACKET RESSOURCE REQ unknown uplink TFI=%d\n", tfi);
 			return;
diff --git a/src/bts.h b/src/bts.h
index c83bb18..a67f215 100644
--- a/src/bts.h
+++ b/src/bts.h
@@ -195,7 +195,8 @@ public:
 	gprs_rlcmac_tbf *dl_tbf_by_tlli(uint32_t tlli);
 	gprs_rlcmac_tbf *ul_tbf_by_tlli(uint32_t tlli);
 	gprs_rlcmac_tbf *tbf_by_poll_fn(uint32_t fn, uint8_t trx, uint8_t ts);
-	gprs_rlcmac_tbf *tbf_by_tfi(uint8_t tfi, uint8_t trx, enum gprs_rlcmac_tbf_direction dir);
+	gprs_rlcmac_tbf *dl_tbf_by_tfi(uint8_t tfi, uint8_t trx);
+	gprs_rlcmac_tbf *ul_tbf_by_tfi(uint8_t tfi, uint8_t trx);
 
 	int tfi_find_free(enum gprs_rlcmac_tbf_direction dir, uint8_t *_trx, int8_t use_trx);
 
@@ -240,6 +241,7 @@ private:
 	TimingAdvance m_ta;
 	struct rate_ctr_group *m_ratectrs;
 	gprs_rlcmac_tbf *tbf_by_tlli(uint32_t tlli, enum gprs_rlcmac_tbf_direction dir);
+	gprs_rlcmac_tbf *tbf_by_tfi(uint8_t tfi, uint8_t trx, enum gprs_rlcmac_tbf_direction dir);
 
 private:
 	/* disable copying to avoid slicing */
-- 
1.8.4.2





More information about the OpenBSC mailing list