Project

General

Profile

Actions

Feature #4006

open

TRX protocol: wind of change

Added by fixeria almost 5 years ago. Updated over 2 years ago.

Status:
Stalled
Priority:
Normal
Assignee:
Target version:
-
Start date:
05/17/2019
Due date:
% Done:

70%

Spec Reference:

Description

We are using TRX protocol in OsmoBTS in order to "speak" with transceiver (e.g. OsmoTRX, FakeTRX). Basically it defines three interfaces: clock for TDMA frame clock indications, control (we agreed to call it TRXC) for transceiver management, and data (TRXD) for exchanging Rx/Tx bursts. It was first introduced in OpenBTS project, from which we forked OsmoTRX. For more information, please see: https://github.com/RangeNetworks/openbts/blob/master/TRXManager/README.TRXManager.

The protocol is being used for years, and it still serves us for good. However, it is extremely inflexible. For example, there is no way to send more information about received bursts on TRXD interface, than the fixed-size header already has (TDMA frame number, timeslot number, RSSI, ToA256). On TRXC interface, which is working over UDP as the other ones, there is no way to distinguish command retransmission, which may happen due to timeout, from a regular command. There is no way to notify the L1 (i.e. OsmoBTS) about some events (e.g. device has been disconnected), no way to indicate transceiver version, and so on...

During OsmoDevCon2019 (and before too) we have been discussing the idea of introducing the new version of TRX protocol, which would allow us to solve the mentioned problems. In order to keep backwards compatibility, both L1 and transceiver would initially use the old TRX protocol, while the new version can be optionally enabled by sending a command on TRXC interface. If the transceiver does support the new protocol, it would acknowledge the command. Otherwise, the command is rejected, so L1 would continue to work in "backwards compatibility" mode.

Finally, we need to write a proper protocol description like we already have for GSUP in https://git.osmocom.org/osmo-gsm-manuals/. But before starting to work on this, let's create some kind of a wish list - what would you like to see in the new version of TRX protocol?


Checklist

  • Notifications from transceiver (e.g. device has been disconnected)
  • Info / feature negotiation (e.g. version, device type / name)
  • TRXC: the ability to distinguish command retransmissions
  • TRXD: "no burst" indication (e.g. when nothing has been detected)
  • TRXC: the ability to enable / disable EDGE burst / 11-bit RACH detection
  • TRXD: document the recent changes
  • TRXD: detected training sequence (and it's C/I weight)
  • TRXD: noise level indication
  • TRXD: facilitate further extensibility?
  • TRXD: burst batching in multi-TRX setups
  • TRXD: indicate type of burst in TRX2L1 messages

Related issues

Related to OsmoBTS - Bug #1618: AMR adaption loop doesn't use C/I thresholds, only BERRejected02/23/2016

Actions
Related to OsmoTRX - Feature #3054: Extended (11-bit) RACH support in OsmoTRXStalledtnt03/10/2018

Actions
Related to OsmoBTS - Feature #1569: Report RF interference levels as part of RF RESOURCE INDICATIONResolvedfixeria02/23/2016

Actions
Related to OsmoTRX - Feature #4081: Add dissector for OsmoTRX protocolResolvedfixeria06/28/2019

Actions
Related to OsmocomBB - Bug #4658: Wrong burst order in a multi-trx setupStalledfixeria07/08/2020

Actions
Related to OsmoBTS - Feature #4941: VAMOS support in OsmoBTSStalledfixeria01/12/2021

Actions
Related to OsmoTRX - Feature #5283: Implement TRXDv2 supportNewfixeria10/28/2021

Actions
Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)