<p>fixeria has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bts/+/23823">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">osmo-bts-trx: remove outdated TRXD protocol documentation<br><br>We do have TRXC/TRXD documentation in osmo-gsm-manuals repository.<br>This big comment is out of sync with what we have in the manuals,<br>so let's better remove it to avoid maintaining docs in several places.<br><br>Change-Id: Ibfcefcbb5f30fe9b6c691578a93e6fedd5644b30<br>Related: SYS#4895, OS#4941, OS#4006<br>---<br>M src/osmo-bts-trx/trx_if.c<br>1 file changed, 1 insertion(+), 118 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/23/23823/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo-bts-trx/trx_if.c b/src/osmo-bts-trx/trx_if.c</span><br><span>index bec6a5a..495de92 100644</span><br><span>--- a/src/osmo-bts-trx/trx_if.c</span><br><span>+++ b/src/osmo-bts-trx/trx_if.c</span><br><span>@@ -916,124 +916,7 @@</span><br><span>  return buf;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* Parse TRXD message from transceiver, compose an UL burst indication.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * This message contains a demodulated Uplink burst with fixed-size</span><br><span style="color: hsl(0, 100%, 40%);">- * header preceding the burst bits. The header consists of the common</span><br><span style="color: hsl(0, 100%, 40%);">- * and message specific part.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   +---------------+-----------------+------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *   | common header | specific header | burst bits |</span><br><span style="color: hsl(0, 100%, 40%);">- *   +---------------+-----------------+------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * Common header is the same as for Downlink message:</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+----------------+-------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *   | VER (1/2 octet) | TN (1/2 octet) | FN (4 octets, BE) |</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+----------------+-------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * and among with TDMA parameters, contains the version indicator:</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+------------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *   | 7 6 5 4 3 2 1 0 | bit numbers            |</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+------------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *   | X X X X . . . . | PDU version (0..15)    |</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+------------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *   | . . . . . X X X | TDMA TN (0..7)         |</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+------------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *   | . . . . X . . . | RESERVED (0)           |</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+------------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * which is encoded in 4 MSB bits of the first octet, which used to be</span><br><span style="color: hsl(0, 100%, 40%);">- * zero-initialized due to the value range of TDMA TN. Therefore, the</span><br><span style="color: hsl(0, 100%, 40%);">- * old header format has implicit version 0x00.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * The message specific header has the following structure:</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * == Version 0x00</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   +------+-----+--------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *   | RSSI | ToA | soft-bits (254..0) |</span><br><span style="color: hsl(0, 100%, 40%);">- *   +------+-----+--------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * == Version 0x01</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   +------+-----+-----+-----+--------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *   | RSSI | ToA | MTS | C/I | soft-bits (254..0) |</span><br><span style="color: hsl(0, 100%, 40%);">- *   +------+-----+-----+-----+--------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * where:</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   - RSSI (1 octet) - Received Signal Strength Indication</span><br><span style="color: hsl(0, 100%, 40%);">- *     encoded without the negative sign.</span><br><span style="color: hsl(0, 100%, 40%);">- *   - ToA (2 octets) - Timing of Arrival in units of 1/256</span><br><span style="color: hsl(0, 100%, 40%);">- *     of symbol (big endian).</span><br><span style="color: hsl(0, 100%, 40%);">- *   - MTS (1 octet)  - Modulation and Training Sequence info.</span><br><span style="color: hsl(0, 100%, 40%);">- *   - C/I (2 octets) - Carrier-to-Interference ratio (big endian).</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * == Coding of MTS: Modulation and Training Sequence info</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * 3GPP TS 45.002 version 15.1.0 defines several modulation types,</span><br><span style="color: hsl(0, 100%, 40%);">- * and a few sets of training sequences for each type. The most</span><br><span style="color: hsl(0, 100%, 40%);">- * common are GMSK and 8-PSK (which is used in EDGE).</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+---------------------------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *   | 7 6 5 4 3 2 1 0 | bit numbers (value range)             |</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+---------------------------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *   | . . . . . X X X | Training Sequence Code (0..7)         |</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+---------------------------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *   | . X X X X . . . | Modulation, TS set number (see below) |</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+---------------------------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *   | X . . . . . . . | IDLE / nope frame indication (0 or 1) |</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+---------------------------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * The bit number 7 (MSB) is set to high when either nothing has been</span><br><span style="color: hsl(0, 100%, 40%);">- * detected, or during IDLE frames, so we can deliver noise levels,</span><br><span style="color: hsl(0, 100%, 40%);">- * and avoid clock gaps on the L1 side. Other bits are ignored,</span><br><span style="color: hsl(0, 100%, 40%);">- * and should be set to low (0) in this case. L16 shall be set to 0x00.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * == Coding of modulation and TS set number</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * GMSK has 4 sets of training sequences (see tables 5.2.3a-d),</span><br><span style="color: hsl(0, 100%, 40%);">- * while 8-PSK (see tables 5.2.3f-g) and the others have 2 sets.</span><br><span style="color: hsl(0, 100%, 40%);">- * Access and Synchronization bursts also have several synch.</span><br><span style="color: hsl(0, 100%, 40%);">- * sequences.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+---------------------------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *   | 7 6 5 4 3 2 1 0 | bit numbers (value range)             |</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+---------------------------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *   | . 0 0 X X . . . | GMSK, 4 TS sets (0..3)                |</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+---------------------------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *   | . 0 1 0 X . . . | 8-PSK, 2 TS sets (0..1)               |</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+---------------------------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *   | . 0 1 1 X . . . | AQPSK, 2 TS sets (0..1)               |</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+---------------------------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *   | . 1 0 0 X . . . | 16QAM, 2 TS sets (0..1)               |</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+---------------------------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *   | . 1 0 1 X . . . | 32QAM, 2 TS sets (0..1)               |</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+---------------------------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *   | . 1 1 1 X . . . | RESERVED (0)                          |</span><br><span style="color: hsl(0, 100%, 40%);">- *   +-----------------+---------------------------------------+</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * NOTE: we only support GMSK and 8-PSK.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * == C/I: Carrier-to-Interference ratio</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * The C/I value can be computed from the training sequence of each</span><br><span style="color: hsl(0, 100%, 40%);">- * burst, where we can compare the "ideal" training sequence with</span><br><span style="color: hsl(0, 100%, 40%);">- * the actual training sequence and then express that in centiBels.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * == Coding of the burst bits</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * Unlike to be transmitted bursts, the received bursts are designated</span><br><span style="color: hsl(0, 100%, 40%);">- * using the soft-bits notation, so the receiver can indicate its</span><br><span style="color: hsl(0, 100%, 40%);">- * assurance from 0 to -127 that a given bit is 1, and from 0 to +127</span><br><span style="color: hsl(0, 100%, 40%);">- * that a given bit is 0.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * Each soft-bit (-127..127) of the burst is encoded as an unsigned</span><br><span style="color: hsl(0, 100%, 40%);">- * value in range (254..0) respectively using the constant shift.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(120, 100%, 40%);">+/* Parse TRXD message from transceiver, compose an UL burst indication. */</span><br><span> static int trx_data_read_cb(struct osmo_fd *ofd, unsigned int what)</span><br><span> {</span><br><span>     struct trx_l1h *l1h = ofd->data;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/23823">change 23823</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-bts/+/23823"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bts </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ibfcefcbb5f30fe9b6c691578a93e6fedd5644b30 </div>
<div style="display:none"> Gerrit-Change-Number: 23823 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>