<p>fixeria <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22622">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, but someone else must approve
  pespin: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">TRXD: more information on PDU versioning and some highlights<br><br>Change-Id: Idac4a1c73cc92bf030ea80474c71688bfb706421<br>Related: SYS#4895, OS#4941, OS#4006<br>---<br>M common/chapters/trx_if.adoc<br>1 file changed, 41 insertions(+), 9 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/common/chapters/trx_if.adoc b/common/chapters/trx_if.adoc</span><br><span>index ef2740b..d1aa566 100644</span><br><span>--- a/common/chapters/trx_if.adoc</span><br><span>+++ b/common/chapters/trx_if.adoc</span><br><span>@@ -311,15 +311,16 @@</span><br><span> NOTE: In the example for `HVHH`, legacy TCH/H0 does not belong to a _VAMOS pair_,</span><br><span> so it can be configured to use any Training Sequence Code without restrictions.</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+[[trx_if_pdu_version_nego]]</span><br><span> ==== TRXD header version negotiation</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-Messages on DATA interface may have different header formats, defined by a</span><br><span style="color: hsl(0, 100%, 40%);">-version number, which can be negotiated on the control interface. By default,</span><br><span style="color: hsl(0, 100%, 40%);">-the Transceiver will use the legacy header version (0).</span><br><span style="color: hsl(120, 100%, 40%);">+Messages on DATA interface may have different formats, defined by a version number,</span><br><span style="color: hsl(120, 100%, 40%);">+which can be negotiated on the control interface.  By default, the Transceiver will</span><br><span style="color: hsl(120, 100%, 40%);">+use the legacy header version (0).  See <<trx_if_pdu_versioning>>.</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-The header format negotiation can be initiated by the BTS using `SETFORMAT`</span><br><span style="color: hsl(0, 100%, 40%);">-command. If the requested version is not supported by the transceiver, status</span><br><span style="color: hsl(0, 100%, 40%);">-code of the response message should indicate a preferred (basically, the latest)</span><br><span style="color: hsl(120, 100%, 40%);">+The format negotiation can be initiated by the BTS using `SETFORMAT` command.</span><br><span style="color: hsl(120, 100%, 40%);">+If the requested version is not supported by the transceiver, status code of</span><br><span style="color: hsl(120, 100%, 40%);">+the response message should indicate a preferred (basically, the latest)</span><br><span> version. The format of this message is the following:</span><br><span> ----</span><br><span> CMD SETFORMAT <ver_req></span><br><span>@@ -353,7 +354,38 @@</span><br><span> </span><br><span> === TRXD protocol</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-Messages on the data interface carry one radio burst per UDP message.</span><br><span style="color: hsl(120, 100%, 40%);">+PDUs on the data interface carry one radio burst per one UDP packet.</span><br><span style="color: hsl(120, 100%, 40%);">+Two kinds of TRXD PDU exist:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* `TRX -> L1` (from transceiver to the L1): Uplink messages received from the MS,</span><br><span style="color: hsl(120, 100%, 40%);">+* `L1 -> TRX` (from the L1 to transceiver): Downlink messages sent to the MS.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+Depending on the origin and the version indicator, PDUs may have different structure.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[[trx_if_pdu_versioning]]</span><br><span style="color: hsl(120, 100%, 40%);">+==== PDU versioning</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The format of a PDU, i.e. presence and ordering of certain fields, is determined by</span><br><span style="color: hsl(120, 100%, 40%);">+the version number indicated in the first octet.  This is usually referred as</span><br><span style="color: hsl(120, 100%, 40%);">+`TRXDvN`, where `N` is the version number (e.g. TRXDv0 or TRXDv1).  A version number</span><br><span style="color: hsl(120, 100%, 40%);">+indicates the message format to be used for both directions: `TRX -> L1` and</span><br><span style="color: hsl(120, 100%, 40%);">+`L1 -> TRX`.  The same version shall be used for all messages in both directions,</span><br><span style="color: hsl(120, 100%, 40%);">+mixing in any way is not permitted.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The version negotiation is optionally initiated by the `L1` on the control interface,</span><br><span style="color: hsl(120, 100%, 40%);">+and expected to be performed before starting the transceiver (i.e. sending `POWERON`</span><br><span style="color: hsl(120, 100%, 40%);">+command).  See <<trx_if_pdu_version_nego>>.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+The current header allows to distinguish up to 16 different versions.</span><br><span style="color: hsl(120, 100%, 40%);">+The following versions are defined so far:</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+* TRXDv0 - initial version of TRXD protocol, inherited as-is from OpenBTS project.</span><br><span style="color: hsl(120, 100%, 40%);">+* TRXDv1 (proposed in July 2019):</span><br><span style="color: hsl(120, 100%, 40%);">+** Introduced the concept of protocol versioning;</span><br><span style="color: hsl(120, 100%, 40%);">+** Introduced NOPE / IDLE indications;</span><br><span style="color: hsl(120, 100%, 40%);">+** New field: MTS (Modulation and Training Sequence);</span><br><span style="color: hsl(120, 100%, 40%);">+** New field: C/I (Carrier-to-interface) ratio;</span><br><span style="color: hsl(120, 100%, 40%);">+** Downlink messages mostly unchanged.</span><br><span> </span><br><span> ==== Uplink Data Burst</span><br><span> </span><br><span>@@ -417,7 +449,7 @@</span><br><span> ----</span><br><span> </span><br><span> VER: 4 bits::</span><br><span style="color: hsl(0, 100%, 40%);">-TRXD header version, v0 and v1 are specified so far.</span><br><span style="color: hsl(120, 100%, 40%);">+TRXD header version, common for both `TRX -> L1` and `L1 -> TRX` directions.</span><br><span> </span><br><span> TN: 3 bits::</span><br><span> Timeslot number.</span><br><span>@@ -542,7 +574,7 @@</span><br><span> ----</span><br><span> </span><br><span> VER: 4 bits::</span><br><span style="color: hsl(0, 100%, 40%);">-TRXD header version, v0 and v1 are specified so far.</span><br><span style="color: hsl(120, 100%, 40%);">+TRXD header version, common for both `TRX -> L1` and `L1 -> TRX` directions.</span><br><span> </span><br><span> TN: 3 bits::</span><br><span> Timeslot number.</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-gsm-manuals/+/22622">change 22622</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-gsm-manuals/+/22622"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-gsm-manuals </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Idac4a1c73cc92bf030ea80474c71688bfb706421 </div>
<div style="display:none"> Gerrit-Change-Number: 22622 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>