Osmocom Base Transceiver Station (BTS)
https://osmocom.org/projects/osmobts
19cefb0097
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 |
||
---|---|---|
contrib | ||
doc/examples | ||
include | ||
src | ||
tests | ||
.gitignore | ||
COPYING | ||
Makefile.am | ||
README | ||
configure.ac | ||
git-version-gen |
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.