Osmocom's Base Station Controller for 2G mobile networks https://osmocom.org/projects/osmobsc
Go to file
Neels Hofmeyr 8d9c3e7f30 abis_rsl: Fix TCH-as-SDCCH allocation on Channel Request
On rsl_rx_chan_rqd(), so far osmo-bsc tried to preferably assign the lchan type
that was asked for in the RACH. Firstly, this contained a bug, and secondly,
it does not make sense to heed that preference, since we do late assignment.

Ignore the preference for the MS' TCH kind.
We do late assignment to avoid codec mismatches. In the "old days", we would
heed the MS' TCH channel kind, even if the MSC or BSC didn't actually allow
or prefer that channel kind. Hence, in the presence of both TCH/F and TCH/H,
the MS could ask for TCH/F (which we would grant on the MO side) and the BSC
or MSC could prefer TCH/H (which we would apply on the MT side), and hence
fabricate a codec mismatch. Instead, since quite some time now, we *always*
assign an SDCCH first, and only later on do another Assignment to hand out
a proper voice lchan that heeds the MS capability bits as well as MSC's and
BSC's preferences.

By completely ignoring the channel kind the MS asked for in the RACH, we
also eliminate this bug in rsl_rx_chan_rqd():
- If the first "lchan_select_by_type(GSM_LCHAN_SDDCH)" fails (all SDDCH in use),
  we should try to fall back to any TCH instead, to serve as SDCCH.
- the first "if (!lchan && lctype != GSM_LCHAN_SDCCH)" was an attempt to prefer
  a fallback to the lchan type the MS requested.
- the remaining two "if (!lchan && lctype == GSM_LCHAN_SDCCH)" were obviously
  only applied if the MS asked for an SDCCH, and skipped if the type was TCH/*.
- hence, missing was: if the MS asked for a TCH, to also try the *other* TCH
  kind that the MS did not ask for. (Example: all SDCCH in use, MS asks for
  TCH/F, but BSC has only TCH/H lchans; we should assign TCH/H as SDCCH, instead
  we said "no resources")

Change-Id: Ie3684cf071751f9528183d761c588102936e498c
Related: OS#3503
2019-01-22 11:37:42 +01:00
contrib contrib: fix makedistcheck with disabled systemd 2018-12-06 16:31:24 +00:00
debian Bump version: 1.3.0.293-605c → 1.4.0 2019-01-20 21:21:25 +01:00
doc build manuals included from osmo-gsm-manuals.git 2018-11-27 17:33:29 +01:00
include LCLS: constify helper parameters 2019-01-21 10:12:47 +00:00
m4 move openbsc/* to repos root 2017-08-27 03:52:43 +02:00
src abis_rsl: Fix TCH-as-SDCCH allocation on Channel Request 2019-01-22 11:37:42 +01:00
tests handover_fsm: send HANDOVER PERFORMED msg on internal ho 2018-12-07 15:10:19 +01:00
.gitignore build manuals included from osmo-gsm-manuals.git 2018-11-27 17:33:29 +01:00
.gitreview .gitreview: update repo url to new location 2017-08-08 17:24:04 +02:00
.mailmap add .mailmap file for mapping git author name/mail in shortlog 2016-08-08 17:40:28 +00:00
AUTHORS move openbsc/* to repos root 2017-08-27 03:52:43 +02:00
COPYING move openbsc/* to repos root 2017-08-27 03:52:43 +02:00
Makefile.am Fix DISTCHECK_CONFIGURE_FLAGS override 2018-12-04 15:35:32 +01:00
README rewrite README 2017-09-06 16:25:09 +02:00
README.vty-tests Remove obsolete ./configure option 2018-01-02 12:53:11 +01:00
configure.ac build manuals included from osmo-gsm-manuals.git 2018-11-27 17:33:29 +01:00
git-version-gen git-version-gen: Don't check for .git directory 2018-07-24 18:04:51 +02:00
osmoappdesc.py remove traces of osmo-bsc_nat in python test (osmoappdesc/test_runner) 2018-06-10 22:13:47 +02:00

README

About OsmoBSC
=============

OsmoBSC originated from the OpenBSC project, which started as a minimalistic
all-in-one implementation of the GSM Network. In 2017, OpenBSC had reached
maturity and diversity (including M3UA SIGTRAN and 3G support in the form of
IuCS and IuPS interfaces) that naturally lead to a separation of the all-in-one
approach to fully independent separate programs as in typical GSM networks.

OsmoBSC was one of the parts split off from the old openbsc.git. Before, it
worked as a standalone osmo-bsc binary as well as a combination of libbsc and
libmsc, i.e. the old OsmoNITB. Since the standalone OsmoMSC with a true A
interface (and IuCS for 3G support) is available, OsmoBSC exists only as a
separate standalone entity.

OsmoBSC exposes
- A over IP towards an MSC (e.g. OsmoMSC);
- Abis interfaces towards various kinds of BTS;
- The Osmocom typical telnet VTY and CTRL interfaces.

Find OsmoBSC issue tracker and wiki online at
https://osmocom.org/projects/osmobsc
https://osmocom.org/projects/osmobsc/wiki

OsmoBSC-NAT is a specialized solution to navigating RTP streams through a NAT.
(Todo: describe in more detail)