fixeria has uploaded this change for review.

View Change

osmo-bts-trx: handle MTS 0b0110 indicating an Access Burst

The PCU may poll the MS requesting an ACKnowledgment message to be
sent in form of four Access Bursts instead of Normal Bursts. The
BTS has no prior knowledge of the Uplink burst type, so a new MTS
value was specified in order to prevent the BTS from trying to
decode Access Bursts as a PDTCH block.

This patch implements parsing of the new MTS value 0b0110.
Signalling RACH.ind to the PCU is to be implemented.

Change-Id: I0fbb63006797e6be386d1f76ed97fff098c036fc
Related: OS#4006, SYS#4794
---
M include/osmo-bts/scheduler.h
M src/osmo-bts-trx/sched_lchan_pdtch.c
M src/osmo-bts-trx/trx_if.c
3 files changed, 11 insertions(+), 1 deletion(-)

git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/78/29578/1
diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h
index c96b70b..40b4293 100644
--- a/include/osmo-bts/scheduler.h
+++ b/include/osmo-bts/scheduler.h
@@ -240,6 +240,7 @@
#define TRX_BI_F_TRX_NUM (1 << 4)
#define TRX_BI_F_BATCH_IND (1 << 5)
#define TRX_BI_F_SHADOW_IND (1 << 6)
+#define TRX_BI_F_ACCESS_BURST (1 << 7)

/*! UL burst indication with the corresponding meta info */
struct trx_ul_burst_ind {
diff --git a/src/osmo-bts-trx/sched_lchan_pdtch.c b/src/osmo-bts-trx/sched_lchan_pdtch.c
index 92bb5a8..8300bdb 100644
--- a/src/osmo-bts-trx/sched_lchan_pdtch.c
+++ b/src/osmo-bts-trx/sched_lchan_pdtch.c
@@ -56,6 +56,10 @@

LOGL1SB(DL1P, LOGL_DEBUG, l1ts, bi, "Received PDTCH bid=%u\n", bi->bid);

+ /* An MS may be polled to send an ACK in form of four Access Bursts */
+ if (bi->flags & TRX_BI_F_ACCESS_BURST)
+ return rx_rach_fn(l1ts, bi);
+
/* allocate burst memory, if not already */
if (!*bursts_p) {
*bursts_p = talloc_zero_size(l1ts, GSM0503_EGPRS_BURSTS_NBITS);
diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c
index ba29788..bb9404c 100644
--- a/src/osmo-bts-trx/trx_if.c
+++ b/src/osmo-bts-trx/trx_if.c
@@ -826,13 +826,18 @@

/* | 7 6 5 4 3 2 1 0 | Bitmask / description
* | . 0 0 X X . . . | GMSK, 4 TSC sets (0..3)
- * | . 0 1 0 X . . . | 8-PSK, 2 TSC sets (0..1) */
+ * | . 0 1 0 X . . . | 8-PSK, 2 TSC sets (0..1)
+ * | . 0 1 1 0 . . . | GMSK, Access Burst */
if ((mts >> 5) == 0x00) {
bi->mod = TRX_MOD_T_GMSK;
bi->tsc_set = (mts >> 3) & 0x03;
} else if ((mts >> 4) == 0x02) {
bi->mod = TRX_MOD_T_8PSK;
bi->tsc_set = (mts >> 3) & 0x01;
+ } else if ((mts >> 3) == 0x06) {
+ bi->flags |= TRX_BI_F_ACCESS_BURST;
+ bi->mod = TRX_MOD_T_GMSK;
+ bi->tsc_set = 0;
} else {
LOGPPHI(phy_inst, DTRX, LOGL_ERROR,
"Rx TRXD PDU with unknown or not supported "

To view, visit change 29578. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I0fbb63006797e6be386d1f76ed97fff098c036fc
Gerrit-Change-Number: 29578
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de>
Gerrit-MessageType: newchange