| [[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 |