Osmocom's Base Station Controller for 2G mobile networks
https://osmocom.org/projects/osmobsc
This patch imposes no logical change in the code on itself, but makes sure people compiling osmo-bsc uses an old enough libosmocore implementing Cell Identifier SAI. This is important since adding the SAI ID (CELL_IDENT_SAI) displaced CELL_IDENT_WHOLE_GLOBAL_PS to a new number outside of the 3GPP range for cell IDS (4 bits, this way we garantee we won't have the same problem again). This means there was an ABI breakage (see Depends below). As a result, using an osmo-bsc compiled against an older libosmocore , and then using at runtime against a newer version of libosmocore, will most probably provoke some RIM features to not work properly, since libosmocore will handle CGI-PS cell ids sent by osmo-bsc as SAI ones, and most probably do wrong comparisons when matching (they only match up to LAI included). ABI break analysis: osmo-bsc uses CELL_IDENT_WHOLE_GLOBAL_PS in: * gsm0808_dec_cell_id_list2() -> this is called on stuff received from the network, so it's actually fine handling it correctly as CELL_IDENT_UTRAN_SAI instead of CGI_PS. * gsm0808_cell_id_list_add same_cell_id_list_entries gsm0808_enc_cell_id_list2 cell_id_to_cgi-> On old osmo-bsc, When CELL_IDENT_WHOLE_GLOBAL_PS is passed to be encoded as CGI, RAC byte is taken for encoding instead of 2nd CI byte. * gsm0808_cell_ids_match gsm0808_cell_id_u_match cell_id_to_cgi -> If CELL_IDENT_WHOLE_GLOBAL_PS as 0x11 (CELL_IDENT_UTRAN_SAI), 1 byte offset when comparing (1 byte of RAC is taken converting to CGI instead of the 2nd byte of CI). That means match would be wrong if 2nd byte of CI differs. Related: SYS#5838 Depends: libosmocore.git Change-Id Id25e563febdb7640174540136225f399515a0089 Change-Id: I70972efffefd57fd36332fab539683696c32f4a5 |
||
---|---|---|
contrib | ||
debian | ||
doc | ||
include | ||
m4 | ||
src | ||
tests | ||
.gitignore | ||
.gitreview | ||
.mailmap | ||
AUTHORS | ||
COPYING | ||
Makefile.am | ||
README | ||
README.vty-tests | ||
TODO-RELEASE | ||
configure.ac | ||
git-version-gen | ||
osmoappdesc.py |
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)