[[chapter_introduction]]
== Overview

[[intro_overview]]
=== About OsmoTRX

OsmoTRX is a C/C++ language implementation of the GSM radio modem,
originally developed as the 'Transceiver' part of OpenBTS. This radio
modem offers an interface based on top of UDP streams.


The OsmoBTS bts_model code for OsmoTRX is called
`osmo-bts-trx`.  It implements the UDP stream interface of
OsmoTRX, so both parts can be used together to implement a complete GSM
BTS based on general-purpose computing SDR.

As OsmoTRX is general-purpose software running on top of Linux, it is
thus not tied to any specific physical hardware. At the time of this
writing, OsmoTRX supports a variety of Lime Microsystems and Ettus USRP SDRs via
the UHD driver, as well as the Fairwaves UmTRX and derived products.

OsmoTRX is not a complete GSM PHY but 'just' the radio modem.  This
means that all of the Layer 1 functionality such as scheduling,
convolutional coding, etc. is actually also implemented inside OsmoBTS.
OsmoTRX is a software-defined radio transceiver that implements the Layer 1
physical layer of a BTS comprising the following 3GPP specifications:

* TS 05.01 "Physical layer on the radio path"
* TS 05.02 "Multiplexing and Multiple Access on the Radio Path"
* TS 05.04 "Modulation"
* TS 05.10 "Radio subsystem synchronization

As such, the boundary between OsmoTRX and `osmo-bts-trx` is at
a much lower interface, which is an internal interface of other more
traditional GSM PHY implementations.

Besides OsmoTRX, there are also other implementations (both Free
Software and proprietary) that implement the same UDP stream based radio
modem interface.

[[fig-gprs-pcubts]]
.GSM network architecture with OsmoTRX and OsmoBTS
[graphviz]
----
digraph G {
        rankdir=LR;
        MS0 [label="MS"];
        MS1 [label="MS"];
        MS0->SDR[label="Um"];
        MS1->SDR [label="Um"];
        SDR -> OsmoTRX [label="Raw Samples"];
        OsmoTRX->BTS [label="bursts over UDP"];
        BTS->BSC [label="Abis"];
        BSC->MSC [label="A"];
        BTS->PCU [label="pcu_sock"];
        PCU->SGSN [label="Gb"];
        OsmoTRX [color=red];
}
----

For more information see
https://osmocom.org/projects/osmotrx/wiki/OsmoTRX
