Osmocom Base Transceiver Station (BTS) https://osmocom.org/projects/osmobts
Go to file
Holger Hans Peter Freyther 19cefb0097 sysmobts: Fix a crash when the DSP2ARM queue runs full
When not reading quick enough from the queue we will get a bogus
response which will lead to marking the lchan as broken and to
clear the sapi queue. The sapi_queue_dispatch was checking if the
queue was empty before calling the callback but not taking into
account that it might have been flushed.

Stop processing if the queue was empty before calling the callback
or if it is empty after the callback.

Backtrace:
 #0  0x4eb1f1cc in raise () from /lib/libc.so.6
 #1  0x4eb22f48 in abort () from /lib/libc.so.6
 #2  0x4ecc2cb8 in talloc_abort (reason=<optimized out>) at talloc.c:167
 #3  0x4ecbc854 in talloc_abort_unknown_value () at talloc.c:180
 #4  0x4ecc6bc8 in talloc_chunk_from_ptr (ptr=0x4ec2d494) at talloc.c:192
 #5  _talloc_free (ptr=0x4ec2d494) at talloc.c:517
 #6  talloc_free (ptr=0x4ec2d494) at talloc.c:990
 #7  0x0000f294 in sapi_queue_exeute (lchan=0x402414a0) at oml.c:528
 #8  0x0000f2d4 in sapi_queue_send (lchan=0x402414a0) at oml.c:542
 #9  0x0000f3e0 in sapi_queue_dispatch (lchan=0x402414a0, status=-4) at oml.c:565
 #10 0x000114d0 in lchan_deact_compl_cb (trx=0x4021e038, l1_msg=0x7e690) at oml.c:1269
 #11 0x0000d70c in l1if_handle_l1prim (wq=1, fl1h=0x607c8, msg=0x7e690) at l1_if.c:938
2013-06-20 13:50:44 +02:00
contrib sysmobts: Allow to enable realtime priority for the BTS process 2013-05-11 08:34:36 +02:00
doc/examples doc: Remove the rtp bind-ip from the example 2013-03-02 18:12:22 +01:00
include measurement: Mark the internal functions as internal 2013-05-04 13:12:20 +02:00
src sysmobts: Fix a crash when the DSP2ARM queue runs full 2013-06-20 13:50:44 +02:00
tests Makefile.am: Use AM_CPPFLAGS 2013-06-12 08:01:00 +02:00
.gitignore ciphering: Handle ciphering support for A5/3 correctly 2012-12-26 18:55:54 +01:00
COPYING re-work original osmo-bts with support for sysmocom femtobts 2011-06-27 11:25:35 +02:00
Makefile.am misc: Package the configuration and contrib directory 2012-12-22 16:05:10 +01:00
README sysmobts: Document the known MphConfig conflict in the code 2013-03-24 09:05:05 +01:00
configure.ac ciphering: Handle ciphering support for A5/3 correctly 2012-12-26 18:55:54 +01:00
git-version-gen auto-generate a version 2011-09-07 21:28:27 +02:00

README

Repository for new the Osmocom BTS implementation.

This code implementes the 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.

Specificallt, 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.

Right now, only one hardware and Layer1 are supported:  The sysmocom
sysmoBTS.

There is some experimental and way incomplete code to use a couple of
OsmocomBB phones and run them in the BTS.  However, the required code
for the Calypso DSP code have not been written yet.  This would still
require a lot of work.

Some additional work is being done in using some parts of the OpenBTS
L1FEC and glue it against omso-bts.  However, this is also still in an
early, experimental stage.

== Known Limitations ==

As of June 3, 2012, the following known limitations exist in this
implementation:

=== Common Core ===
 * No Extended BCCH support
 * System Information limited to 1,2,2bis,2ter,2quater,3,4,5,6,9,13
 * No RATSCCH in AMR
 * No OML (TS 12.21) alarms yet (temperature, ...)
 * Only single-TRX BTS at this point
 * Will reject TS 12.21 STARTING TIME in SET BTS ATTR / SET CHAN ATTR
 * No support for frequency hopping
 * No reporting of interference levels as part of TS 08.58 RF RES IND
 * No error reporting in case PAGING COMMAND fails due to queue overflow
 * No hand-over support (planned)
 * No use of TS 08.58 BS Power and MS Power parameters
 * 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

=== osmo-bts-sysmo ===
 * No CSD / ECSD support (not planned)
 * No GPRS/EDGE support (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
 * Makes no use of TS 12.21 T3105
 * Doesn't yet include MAC address in Abis/IP Identity message
 * 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.