Osmocom GSM/GPRS/EGPRS transceiver, originally forked from OpenBTS transceiver. For building SDR based GSM BTS with osmo-bts-trx.
Go to file
Pau Espin 8b0c5368f5 Transceiver: Fix race condition obtaining Dl burst from Upper layer
The queue was being accessed sequentially obtaining and releasing the
mutual exclusion zone twice. First in getStaleBurst() dropping all
FN<currTime, then in getCurrentBurst() trying to obtain FN=currTime.

However, since in between the mutex is released, it could happen that
for instance upper layer would introduce currTime-1 in the queue, which
would make then getCurrentBurst() detect that one instead of potential
currTime in the queue and return NULL.

By holding the mutex during the call to both functions we make sure the
state is kept during the whole transaction.

Related: OS#4487 (comment #7)
Change-Id: If1fd8d7fc5f21ee2894192ef1ac2a3cdda6bbb98
2020-07-10 17:32:03 +02:00
CommonLibs Introduce rate counters to detect issues in received Dl bursts from TRXD 2020-07-10 17:32:03 +02:00
GSM Add SPDX annotation 2019-07-22 12:06:26 +02:00
Transceiver52M Transceiver: Fix race condition obtaining Dl burst from Upper layer 2020-07-10 17:32:03 +02:00
config build: Require and check for gcc C++11 support 2017-06-09 11:19:20 -07:00
contrib osmo-trx.spec.in: Use %config(noreplace) to retain current config file 2020-06-24 05:25:34 +00:00
debian Bump version: 1.1.1.38-9f2b-dirty → 1.2.0 2020-01-03 19:54:00 +01:00
doc doc/manuals: Update thread documentation after dropping CTRL sock threads 2020-07-01 12:24:56 +02:00
tests Fix common misspellings and typos 2019-10-17 08:06:19 +00:00
utils prbs-tool: Don't require C99 2020-05-07 23:55:56 +02:00
.gitignore contrib: integrate RPM spec 2020-05-19 17:05:30 +02:00
.gitreview Add gerrit settings 2017-01-24 15:03:48 +01:00
COPYING cosmetic: fix several typos found by codespell 2020-02-25 17:03:00 +01:00
LEGAL Update legal disclaimer 2018-01-04 15:17:27 +01:00
Makefile.am Makefile.am: EXTRA_DIST: debian, contrib/*.spec.in 2020-05-22 13:48:11 +02:00
Makefile.common build: Fix make distcheck 2018-04-27 11:34:11 +02:00
README.md Drop old README information, provide new updated README 2019-08-01 15:17:30 +00:00
configure.ac contrib: integrate RPM spec 2020-05-19 17:05:30 +02:00
git-version-gen update git-version-gen to generate proper version numbers 2018-09-04 18:01:35 +00:00

README.md

About OsmTRX

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"

OsmoTRX is based on the transceiver code from the OpenBTS project, but setup to operate independently with the purpose of using with non-OpenBTS software and projects, while still maintaining backwards compatibility with OpenBTS when possible. Currently there are numerous features contained in OsmoTRX that extend the functionality of the OpenBTS transceiver. These features include enhanced support for various embedded platforms - notably ARM - and dual channel diversity support for the Fairwaves umtrx.

Homepage

The official homepage of the project is https://osmocom.org/projects/osmotrx/wiki/OsmoTRX

GIT Repository

You can clone from the official osmo-trx.git repository using

    git clone git://git.osmocom.org/osmo-trx.git

There is a cgit interface at http://git.osmocom.org/osmo-trx/

Documentation

Doxygen-generated API documentation is generated during the build process, but also available online for each of the sub-libraries at User Manual for OsmoTRX can be generated during the build process, and is also available online at http://ftp.osmocom.org/docs/latest/osmotrx-usermanual.pdf.

Mailing List

Discussions related to OsmoTRX are happening on the openbsc@lists.osmocom.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.

Contributing

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 OsmoTRX can be seen at https://gerrit.osmocom.org/q/project:osmo-trx+status:open