Change in osmo-pcu[master]: alloc_algo_b: Select TRX with least assigned TFIs during TBF alloc

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/gerrit-log@lists.osmocom.org/.

pespin gerrit-no-reply at lists.osmocom.org
Thu Oct 29 11:34:18 UTC 2020


pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/20919 )

Change subject: alloc_algo_b: Select TRX with least assigned TFIs during TBF alloc
......................................................................

alloc_algo_b: Select TRX with least assigned TFIs during TBF alloc

Before this patch, it would always allocate all TBFs on the first TRX
until all TFIs were filled, then second, and so on. But it would
actually fail around 8th MS requesting an UL TBF because despite a TFI
was successfuly assigned, because all USFs were already exhausted for
that PDCH.

Related: OS#1775
Change-Id: Iccfc8acfbfdc258ed16cc5af01f12b376fe73b72
---
M src/bts.cpp
M tests/tbf/TbfTest.cpp
M tests/tbf/TbfTest.err
3 files changed, 100 insertions(+), 132 deletions(-)

Approvals:
  fixeria: Looks good to me, but someone else must approve
  pespin: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/src/bts.cpp b/src/bts.cpp
index da62b30..be957fa 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -536,18 +536,51 @@
 	return m_bts.trx[trx].pdch[ts].ul_tbf_by_tfi(tfi);
 }
 
+static unsigned int trx_count_free_tfi(const struct gprs_rlcmac_trx *trx, enum gprs_rlcmac_tbf_direction dir, uint8_t *first_free_tfi)
+{
+	const struct gprs_rlcmac_pdch *pdch;
+	uint8_t ts;
+	unsigned int i;
+	unsigned int free_tfi_cnt = 0;
+	bool has_pdch = false;
+	uint32_t mask = NO_FREE_TFI;
+
+	for (ts = 0; ts < ARRAY_SIZE(trx->pdch); ts++) {
+		pdch = &trx->pdch[ts];
+		if (!pdch->is_enabled())
+			continue;
+		has_pdch = true;
+		mask &= ~pdch->assigned_tfi(dir);
+	}
+
+	if (!has_pdch || !mask) {
+		*first_free_tfi = (uint8_t)-1;
+		return 0;
+	}
+
+	/* Count free tfis and return */
+	for (i = 0; i < sizeof(mask) * 8 ; i++) {
+		if (mask & 1) {
+			if (free_tfi_cnt == 0)
+				*first_free_tfi = i;
+			free_tfi_cnt++;
+		}
+		mask >>= 1;
+	}
+	return free_tfi_cnt;
+}
+
 /*
- * Search for free TFI and return TFI, TRX.
- * This method returns the first TFI that is currently not used in any PDCH of
- * a TRX. The first TRX that contains such an TFI is returned. Negative values
- * indicate errors.
+ * Search for free TFI and return TFI, TRX. This method returns the first TFI
+ * that is currently not used in any PDCH of a the TRX with least TFIs currently
+ * assigned. Negative values indicate errors.
  */
 int BTS::tfi_find_free(enum gprs_rlcmac_tbf_direction dir, uint8_t *_trx, int8_t use_trx) const
 {
-	const struct gprs_rlcmac_pdch *pdch;
-	uint32_t free_tfis;
-	bool has_pdch = false;
-	uint8_t trx_from, trx_to, trx, ts, tfi;
+	uint8_t trx_from, trx_to, trx;
+	uint8_t best_trx_nr = 0xff;
+	unsigned int best_cnt = 0;
+	uint8_t best_first_tfi = 0;
 
 	if (use_trx >= 0 && use_trx < 8)
 		trx_from = trx_to = use_trx;
@@ -558,48 +591,27 @@
 
 	/* find a TFI that is unused on all PDCH */
 	for (trx = trx_from; trx <= trx_to; trx++) {
-		bool trx_has_pdch = false;
-
-		free_tfis = NO_FREE_TFI;
-
-		for (ts = 0; ts < 8; ts++) {
-			pdch = &m_bts.trx[trx].pdch[ts];
-			if (!pdch->is_enabled())
-				continue;
-			free_tfis &= ~pdch->assigned_tfi(dir);
-			trx_has_pdch = true;
-			has_pdch = true;
+		uint8_t tmp_first_tfi;
+		unsigned int tmp_cnt;
+		tmp_cnt = trx_count_free_tfi(&m_bts.trx[trx], dir, &tmp_first_tfi);
+		if (tmp_cnt > best_cnt) {
+			best_cnt = tmp_cnt;
+			best_first_tfi = tmp_first_tfi;
+			best_trx_nr = trx;
 		}
-		if (trx_has_pdch && free_tfis)
-			break;
-
-		free_tfis = 0;
-	}
-	if (!has_pdch) {
-		LOGP(DRLCMAC, LOGL_NOTICE, "No PDCH available.\n");
-		return -EINVAL;
 	}
 
-	if (!free_tfis) {
+	if (best_trx_nr == 0xff || best_cnt == 0) {
 		LOGP(DRLCMAC, LOGL_NOTICE, "No TFI available (suggested TRX: %d).\n", use_trx);
 		return -EBUSY;
 	}
 
+	OSMO_ASSERT(best_first_tfi < 32);
 
-	LOGP(DRLCMAC, LOGL_DEBUG,
-		"Searching for first unallocated TFI: TRX=%d\n", trx);
-
-	/* find the first */
-	for (tfi = 0; tfi < 32; tfi++) {
-		if (free_tfis & 1 << tfi)
-			break;
-	}
-
-	OSMO_ASSERT(tfi < 32);
-
-	LOGP(DRLCMAC, LOGL_DEBUG, " Found TFI=%d.\n", tfi);
-	*_trx = trx;
-	return tfi;
+	LOGP(DRLCMAC, LOGL_DEBUG, "Found first unallocated TRX=%d TFI=%d\n",
+	     best_trx_nr, best_first_tfi);
+	*_trx = best_trx_nr;
+	return best_first_tfi;
 }
 
 int BTS::rcv_imm_ass_cnf(const uint8_t *data, uint32_t fn)
diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp
index d1fdfba..d4a5618 100644
--- a/tests/tbf/TbfTest.cpp
+++ b/tests/tbf/TbfTest.cpp
@@ -197,6 +197,7 @@
 	tfi = the_bts->tfi_find_free(GPRS_RLCMAC_DL_TBF, &trx_no, -1);
 	OSMO_ASSERT(tfi >= 0);
 	dl_tbf = tbf_alloc_dl_tbf(bts, ms, trx_no, true);
+	OSMO_ASSERT(dl_tbf);
 	dl_tbf->set_ta(0);
 	check_tbf(dl_tbf);
 
diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err
index 1432e9c..8691e4c 100644
--- a/tests/tbf/TbfTest.err
+++ b/tests/tbf/TbfTest.err
@@ -42,8 +42,7 @@
 === start test_tbf_final_ack ===
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=45/0
 [DL] algo A <single> (suggested TRX: 0): Alloc start
@@ -132,8 +131,7 @@
 === start test_tbf_final_ack ===
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=45/0
 [DL] algo A <single> (suggested TRX: 0): Alloc start
@@ -222,8 +220,7 @@
 === start test_tbf_delayed_release ===
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=45/0
 [DL] algo A <single> (suggested TRX: 0): Alloc start
@@ -477,8 +474,7 @@
 === start test_tbf_imsi ===
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=45/0
 [DL] algo A <single> (suggested TRX: 0): Alloc start
@@ -499,8 +495,7 @@
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
-Searching for first unallocated TFI: TRX=0
- Found TFI=1.
+Found first unallocated TRX=0 TFI=1
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=45/0
 [DL] algo A <single> (suggested TRX: 0): Alloc start
@@ -1443,8 +1438,7 @@
 MSG = 07 01 04 4d 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 
 === end test_tbf_dl_llc_loss ===
 === start test_tbf_single_phase ===
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 MS requests Uplink resource on CCCH/RACH: ra=0x03 (8 bit) Fn=2654167 qta=31
 Creating MS object, TLLI = 0x00000000
 ********** UL-TBF starts here **********
@@ -1518,8 +1512,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -1599,8 +1592,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -1724,8 +1716,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654335 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=1.
+Found first unallocated TRX=0 TFI=1
 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) poll timeout for FN=2654292, TS=7 (curr FN 2654335)
 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Timeout for polling PACKET DOWNLINK ACK: |Assignment was on PACCH|No downlink ACK received yet|
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
@@ -1791,8 +1782,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -1880,8 +1870,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654327 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 MS requests UL TBF in packet resource request of single block, so we provide one:
@@ -1933,8 +1922,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -2018,8 +2006,7 @@
 PDCH(TS 7, TRX 0): Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW), 0 TBFs, USFs = 00, TFIs = 00000000.
 Detaching TBF from MS object, TLLI = 0xf1223344, TBF = TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW)
 ********** UL-TBF ends here **********
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 MS requests Uplink resource on CCCH/RACH: ra=0x03 (8 bit) Fn=2654275 qta=31
 Creating MS object, TLLI = 0x00000000
 ********** UL-TBF starts here **********
@@ -2078,8 +2065,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -3023,8 +3009,7 @@
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=12/0
 [DL] algo B <multi> (suggested TRX: 0): Alloc start
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 Slot Allocation (Algorithm B) for class 12
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
@@ -3063,8 +3048,7 @@
 Allocating DL TBF: MS_CLASS=12/12
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
 [DL] algo B <multi> (suggested TRX: 0): Alloc start
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 Slot Allocation (Algorithm B) for class 12
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
@@ -3104,8 +3088,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -3194,8 +3177,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -3414,8 +3396,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -3721,8 +3702,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -3978,8 +3958,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -4197,8 +4176,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -4384,8 +4362,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -4551,8 +4528,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -4700,8 +4676,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -4844,8 +4819,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -4977,8 +4951,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5112,8 +5085,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5168,8 +5140,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5224,8 +5195,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5280,8 +5250,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5352,8 +5321,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5424,8 +5392,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5496,8 +5463,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5570,8 +5536,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5633,8 +5598,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5696,8 +5660,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5759,8 +5722,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5831,8 +5793,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -5943,8 +5904,7 @@
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
 [DL] algo B <single> (suggested TRX: 0): Alloc start
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 Slot Allocation (Algorithm B) for class 11
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
@@ -5966,8 +5926,7 @@
 ********** DL-TBF update **********
 PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.
 [DL] algo B <multi> (suggested TRX: -1): Alloc start
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 - Selected DL slots: (TS=0)"..DDDD.."(TS=7), multi
 [DL] algo B <multi> (suggested TRX: -1): using 4 slots
 - Assigning DL TS 2
@@ -5996,8 +5955,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -6098,8 +6056,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -6320,8 +6277,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -7723,8 +7679,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 [DL] algo A <single> (suggested TRX: 0): Alloc start

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/20919
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-Change-Id: Iccfc8acfbfdc258ed16cc5af01f12b376fe73b72
Gerrit-Change-Number: 20919
Gerrit-PatchSet: 5
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201029/fd4e945b/attachment.htm>


More information about the gerrit-log mailing list