[PATCH] openbsc[master]: dyn PDCH: allow allocating TCH/F on TCH/F_PDCH slots

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/.

Neels Hofmeyr gerrit-no-reply at lists.osmocom.org
Thu Jun 2 11:51:00 UTC 2016


Review at  https://gerrit.osmocom.org/180

dyn PDCH: allow allocating TCH/F on TCH/F_PDCH slots

See comment added in the code.

Original patch by jolly, but split in two, added comment and flipped the if()
logic for readability by nhofmeyr.

Change-Id: Iddd575873a2fe819fc182a6b3d4186caea1997e5
---
M openbsc/src/libbsc/chan_alloc.c
1 file changed, 10 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/80/180/1

diff --git a/openbsc/src/libbsc/chan_alloc.c b/openbsc/src/libbsc/chan_alloc.c
index 8600846..cd25bd9 100644
--- a/openbsc/src/libbsc/chan_alloc.c
+++ b/openbsc/src/libbsc/chan_alloc.c
@@ -96,14 +96,16 @@
 		ts = &trx->ts[j];
 		if (!ts_is_usable(ts))
 			continue;
-		/* ip.access dynamic TCH/F + PDCH combination */
-		if (ts->pchan == GSM_PCHAN_TCH_F_PDCH &&
-		    pchan == GSM_PCHAN_TCH_F) {
-			/* we can only consider such a dynamic channel
-			 * if the PDCH is currently inactive */
-			if (ts->flags & TS_F_PDCH_MODE)
-				continue;
-		} else if (ts->pchan != pchan)
+		/*
+		 * pchan must match; but when looking for TCH/F, allow a match
+		 * with TCH/F_PDCH, to return dynamic TCH/F_PDCH slots to the
+		 * channel allocator. Thus the channel allocator can pick a
+		 * TCH/F_PDCH time slot and disable its PDCH later on (no need
+		 * to check whether PDCH mode is currently active here).
+		 */
+		if (!(ts->pchan == pchan
+		      || (ts->pchan == GSM_PCHAN_TCH_F_PDCH
+			  && pchan == GSM_PCHAN_TCH_F)))
 			continue;
 		/* check if all sub-slots are allocated yet */
 		for (ss = 0; ss < subslots_per_pchan[pchan]; ss++) {

-- 
To view, visit https://gerrit.osmocom.org/180
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iddd575873a2fe819fc182a6b3d4186caea1997e5
Gerrit-PatchSet: 1
Gerrit-Project: openbsc
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de>



More information about the OpenBSC mailing list