[PATCH] osmo-pcu[master]: BTS: accept also relative frame numbers with rach requst

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

dexter gerrit-no-reply at lists.osmocom.org
Mon Nov 7 13:04:19 UTC 2016


Hello Jenkins Builder,

I'd like you to reexamine a change.  Please visit

    https://gerrit.osmocom.org/1205

to look at the new patch set (#2).

BTS: accept also relative frame numbers with rach requst

The rach request contains a relative frame number (Fn % 42432),
while BTS::rcv_rach() accepts the full frame number only.

Since the BTS is always aware of the full frame number this is
not a problem. But for BSC co-located PCU schemes it is a problem
since the rach request only contains the relative frame number
as mentioned above.

The pcu continusly receives frame number updates with the GSM time
indication message. It is simple to re-calculate the full frame
number from that information.

This patch makes BTS::rcv_rach() compatible with relative frame
numbers, while not breaking the compatibility for full frame
numbers

Change-Id: Iaa182d8d29c6a0f5fa06064c2eb48b21b1ba2775
---
M src/bts.cpp
M tests/tbf/TbfTest.cpp
2 files changed, 11 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/05/1205/2

diff --git a/src/bts.cpp b/src/bts.cpp
index 4aa5c2c..8808537 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -484,6 +484,13 @@
 
 	rach_frame();
 
+	/* Santizize frame number */
+	Fn = Fn % 42432;
+
+	/* Restore the full frame number
+	 * (See also 3GPP TS 44.018, section 10.5.2.38) */
+	Fn = Fn + m_cur_fn - m_cur_fn % 42432;
+
 	LOGP(DRLCMAC, LOGL_DEBUG, "MS requests UL TBF on RACH, so we provide "
 		"one:\n");
 
diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp
index cc48392..aa7f9ed 100644
--- a/tests/tbf/TbfTest.cpp
+++ b/tests/tbf/TbfTest.cpp
@@ -42,6 +42,8 @@
 
 #include <errno.h>
 
+#define DUMMY_FN 2654167
+
 void *tall_pcu_ctx;
 int16_t spoof_mnc = 0, spoof_mcc = 0;
 
@@ -166,6 +168,7 @@
 	trx = &bts->trx[0];
 
 	trx->pdch[ts_no].enable();
+	the_bts->set_current_frame_number(DUMMY_FN);
 }
 
 static gprs_rlcmac_dl_tbf *create_dl_tbf(BTS *the_bts, uint8_t ms_class,
@@ -1350,7 +1353,7 @@
 {
 	BTS the_bts;
 	int ts_no = 7;
-	uint32_t fn = 2654167; /* 17,25,9 */
+	uint32_t fn = DUMMY_FN; /* 17,25,9 */
 	uint32_t tlli = 0xf1223344;
 	const char *imsi = "0011223344";
 	uint16_t qta = 31;

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

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Iaa182d8d29c6a0f5fa06064c2eb48b21b1ba2775
Gerrit-PatchSet: 2
Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-Owner: dexter <pmaier at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder



More information about the gerrit-log mailing list