This repository contains a C-language implementation of a GSM Base Transceiver Station (BTS). It is part of the Osmocom Open Source Mobile Communications project.
This code implements Layer 2 and higher of a more or less conventional GSM BTS (Base Transceiver Station) - however, using an Abis/IP interface, rather than the old-fashioned E1/T1.
Specifically, this includes * BTS-side implementation of TS 08.58 (RSL) and TS 12.21 (OML) * BTS-side implementation of LAPDm (using libosmocore/libosmogsm) * A somewhat separated interface between those higher layer parts and the Layer1 interface.
Several kinds of BTS hardware are supported: * sysmocom sysmoBTS * Octasic octphy * Nutaq litecell 1.5 * OpenCellular 2G (OC-2G) * software-defined radio based osmo-bts-trx (e.g. USRP B210, UmTRX, LimeSDR)
The official homepage of the project is https://osmocom.org/projects/osmobts/wiki
You can clone from the official osmo-bts.git repository using
git clone https://gitea.osmocom.org/cellular-infrastructure/osmo-bts
There is a web interface at https://gitea.osmocom.org/cellular-infrastructure/osmo-bts
User Manuals and VTY reference manuals are [optionally] built in PDF form as part of the build process.
Pre-rendered PDF version of the current "master" can be found at User Manual as well as the VTY reference manuals * VTY Reference Manual for osmo-bts-sysmo * VTY Reference Manual for osmo-bts-trx * VTY Reference Manual for osmo-bts-lc15 * VTY Reference Manual for osmo-bts-oc2g * VTY Reference Manual for osmo-bts-octphy
There also is an Abis reference Manual describing the OsmoBTS specific A-bis dialect.
Discussions related to osmo-bts are happening on the firstname.lastname@example.org mailing list, please see https://lists.osmocom.org/mailman/listinfo/openbsc for subscription options and the list archive.
Please observe the Osmocom Mailing List Rules when posting.
Our coding standards are described at https://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards
We us a gerrit based patch submission/review process for managing contributions. Please see https://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit for more details
The current patch queue for osmo-bts can be seen at https://gerrit.osmocom.org/#/q/project:osmo-bts+status:open
As of January 2021, the following known limitations exist in this implementation:
- No Extended BCCH support
- System Information limited to 1,2,2bis,2ter,2quater,3,4,5,6,9,13
- No RATSCCH in AMR
- Will reject TS 12.21 STARTING TIME in SET BTS ATTR / SET CHAN ATTR
- No support of TS 08.58 MultiRate Control
- No support of TS 08.58 Supported Codec Types
- No support of Bter frame / ENHANCED MEASUREMENT REPORT
- No CSD / ECSD support (not planned)
- GSM-R frequency band supported, but no NCH/ASCI/SoLSA
- All timeslots on one TRX have to use same training sequence (TSC)
- No multi-TRX support yet, though hardware+L1 support stacking
- Makes no use of 12.21 Intave Parameters and Interference Level Boundaries
- MphConfig.CNF can be returned to the wrong callback. E.g. with Tx Power and ciphering. The dispatch should take a look at the hLayer3.
- No support of EFR, HR voice codec (lack of PHY support?)
- No re-transmission of PHY primitives in case of time-out
- Link Quality / Measurement processing incomplete
- impossible to modify encryption parameters using RSL MODE MODIFY
- no clear indication of nominal transmit power, various power related computations are likely off
- no OML attribute validation during bts_model_check_oml()