mirror of
https://gitea.osmocom.org/cellular-infrastructure/osmo-bts.git
synced 2025-11-11 01:15:57 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6a32f0499f | ||
|
|
a5608d092d |
60
.gitignore
vendored
60
.gitignore
vendored
@@ -4,59 +4,29 @@ Makefile.in
|
|||||||
Makefile
|
Makefile
|
||||||
.deps
|
.deps
|
||||||
|
|
||||||
btsconfig.h
|
|
||||||
btsconfig.h.in
|
|
||||||
|
|
||||||
aclocal.m4
|
aclocal.m4
|
||||||
autom4te.cache
|
autom4te.cache
|
||||||
config.log
|
config.log
|
||||||
config.status
|
config.status
|
||||||
config.guess
|
|
||||||
config.sub
|
|
||||||
configure
|
configure
|
||||||
compile
|
|
||||||
depcomp
|
depcomp
|
||||||
install-sh
|
install-sh
|
||||||
missing
|
missing
|
||||||
stamp-h1
|
|
||||||
libtool
|
|
||||||
ltmain.sh
|
|
||||||
core
|
core
|
||||||
core.*
|
core.*
|
||||||
|
|
||||||
# git-version-gen magic
|
contrib/sysmobts-calib/sysmobts-calib
|
||||||
.tarball-version
|
|
||||||
.version
|
|
||||||
|
|
||||||
src/osmo-bts-sysmo/sysmobts-calib
|
|
||||||
src/osmo-bts-sysmo/l1fwd-proxy
|
src/osmo-bts-sysmo/l1fwd-proxy
|
||||||
src/osmo-bts-sysmo/osmo-bts-sysmo
|
src/osmo-bts-sysmo/sysmobts
|
||||||
src/osmo-bts-sysmo/osmo-bts-sysmo-remote
|
src/osmo-bts-sysmo/sysmobts-remote
|
||||||
src/osmo-bts-sysmo/sysmobts-mgr
|
src/osmo-bts-sysmo/sysmobts-mgr
|
||||||
src/osmo-bts-sysmo/sysmobts-util
|
|
||||||
|
|
||||||
src/osmo-bts-litecell15/lc15bts-mgr
|
|
||||||
src/osmo-bts-litecell15/lc15bts-util
|
|
||||||
src/osmo-bts-litecell15/misc/.dirstamp
|
|
||||||
src/osmo-bts-litecell15/osmo-bts-lc15
|
|
||||||
|
|
||||||
src/osmo-bts-trx/osmo-bts-trx
|
|
||||||
|
|
||||||
src/osmo-bts-octphy/osmo-bts-octphy
|
|
||||||
|
|
||||||
src/osmo-bts-virtual/osmo-bts-virtual
|
|
||||||
src/osmo-bts-omldummy/osmo-bts-omldummy
|
|
||||||
|
|
||||||
tests/atconfig
|
tests/atconfig
|
||||||
tests/package.m4
|
tests/package.m4
|
||||||
tests/agch/agch_test
|
|
||||||
tests/paging/paging_test
|
tests/paging/paging_test
|
||||||
tests/cipher/cipher_test
|
tests/cipher/cipher_test
|
||||||
tests/sysmobts/sysmobts_test
|
|
||||||
tests/meas/meas_test
|
|
||||||
tests/misc/misc_test
|
|
||||||
tests/handover/handover_test
|
|
||||||
tests/tx_power/tx_power_test
|
|
||||||
tests/testsuite
|
tests/testsuite
|
||||||
tests/testsuite.log
|
tests/testsuite.log
|
||||||
|
|
||||||
@@ -64,30 +34,6 @@ tests/testsuite.log
|
|||||||
doc/vty_reference.xml
|
doc/vty_reference.xml
|
||||||
|
|
||||||
# Backups, vi, merges
|
# Backups, vi, merges
|
||||||
*~
|
|
||||||
*.sw?
|
*.sw?
|
||||||
*.orig
|
*.orig
|
||||||
*.sav
|
*.sav
|
||||||
|
|
||||||
# debian
|
|
||||||
.tarball-version
|
|
||||||
debian/autoreconf.after
|
|
||||||
debian/autoreconf.before
|
|
||||||
debian/files
|
|
||||||
debian/*.debhelper.log
|
|
||||||
debian/*.substvars
|
|
||||||
debian/osmo-bts-trx-dbg/
|
|
||||||
debian/osmo-bts-trx/
|
|
||||||
debian/tmp/
|
|
||||||
/tests/power/power_test
|
|
||||||
|
|
||||||
# manuals
|
|
||||||
doc/manuals/*.html
|
|
||||||
doc/manuals/*.svg
|
|
||||||
doc/manuals/*.pdf
|
|
||||||
doc/manuals/*__*.png
|
|
||||||
doc/manuals/*.check
|
|
||||||
doc/manuals/generated/
|
|
||||||
doc/manuals/osmomsc-usermanual.xml
|
|
||||||
doc/manuals/common
|
|
||||||
doc/manuals/build
|
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
[gerrit]
|
|
||||||
host=gerrit.osmocom.org
|
|
||||||
project=osmo-bts
|
|
||||||
12
.mailmap
12
.mailmap
@@ -1,12 +0,0 @@
|
|||||||
Harald Welte <laforge@gnumonks.org>
|
|
||||||
Harald Welte <laforge@gnumonks.org> <laflocal@hanuman.gnumonks.org>
|
|
||||||
Harald Welte <laforge@gnumonks.org> <laflocal@goeller.de.gnumonks.org>
|
|
||||||
Holger Hans Peter Freyther <holger@moiji-mobile.com> <zecke@selfish.org>
|
|
||||||
Holger Hans Peter Freyther <holger@moiji-mobile.com> <ich@tamarin.(none)>
|
|
||||||
Holger Hans Peter Freyther <holgre@moiji-mobile.com> <holger@freyther.de>
|
|
||||||
Andreas Eversberg <jolly@eversberg.eu>
|
|
||||||
Andreas Eversberg <jolly@eversberg.eu> <Andreas.Eversberg@versatel.de>
|
|
||||||
Andreas Eversberg <jolly@eversberg.eu> <root@nuedel.(none)>
|
|
||||||
Pablo Neira Ayuso <pablo@soleta.eu> <pablo@gnumonks.org>
|
|
||||||
Max Suraev <msuraev@sysmocom.de>
|
|
||||||
Tom Tsou <tom.tsou@ettus.com> <tom@tsou.cc>
|
|
||||||
23
Makefile.am
23
Makefile.am
@@ -1,23 +1,14 @@
|
|||||||
AUTOMAKE_OPTIONS = foreign dist-bzip2 1.6
|
AUTOMAKE_OPTIONS = foreign dist-bzip2 1.6
|
||||||
|
|
||||||
SUBDIRS = include src tests doc contrib
|
SUBDIRS = include src tests
|
||||||
|
|
||||||
|
|
||||||
# package the contrib and doc
|
# package the contrib and doc
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
contrib/dump_docs.py contrib/screenrc-l1fwd \
|
contrib/dump_docs.py contrib/screenrc-l1fwd contrib/sysmobts.service \
|
||||||
contrib/l1fwd.init contrib/screenrc-sysmobts contrib/respawn.sh \
|
contrib/l1fwd.init contrib/screenrc-sysmobts contrib/respawn.sh \
|
||||||
git-version-gen .version \
|
contrib/sysmobts.init contrib/sysmobts-calib/Makefile \
|
||||||
README.md
|
contrib/sysmobts-calib/sysmobts-calib.c \
|
||||||
|
contrib/sysmobts-calib/sysmobts-layer1.c \
|
||||||
AM_DISTCHECK_CONFIGURE_FLAGS = \
|
contrib/sysmobts-calib/sysmobts-layer1.h \
|
||||||
--with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir)
|
doc/examples/osmo-bts.cfg
|
||||||
|
|
||||||
@RELMAKE@
|
|
||||||
|
|
||||||
BUILT_SOURCES = $(top_srcdir)/.version
|
|
||||||
|
|
||||||
$(top_srcdir)/.version:
|
|
||||||
echo $(VERSION) > $@-t && mv $@-t $@
|
|
||||||
dist-hook:
|
|
||||||
echo $(VERSION) > $(distdir)/.tarball-version
|
|
||||||
|
|||||||
55
README
Normal file
55
README
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
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
|
||||||
126
README.md
126
README.md
@@ -1,126 +0,0 @@
|
|||||||
osmo-bts - Osmocom BTS Implementation
|
|
||||||
====================================
|
|
||||||
|
|
||||||
This repository contains a C-language implementation of a GSM Base
|
|
||||||
Transceiver Station (BTS). It is part of the
|
|
||||||
[Osmocom](https://osmocom.org/) Open Source Mobile Communications
|
|
||||||
project.
|
|
||||||
|
|
||||||
This code implements 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.
|
|
||||||
|
|
||||||
Specifically, 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.
|
|
||||||
|
|
||||||
Several kinds of BTS hardware are supported:
|
|
||||||
* sysmocom sysmoBTS
|
|
||||||
* Octasic octphy
|
|
||||||
* Nutaq litecell 1.5
|
|
||||||
* software-defined radio based osmo-bts-trx (e.g. USRP B210, UmTRX)
|
|
||||||
|
|
||||||
Homepage
|
|
||||||
--------
|
|
||||||
|
|
||||||
The official homepage of the project is
|
|
||||||
https://osmocom.org/projects/osmobts/wiki
|
|
||||||
|
|
||||||
GIT Repository
|
|
||||||
--------------
|
|
||||||
|
|
||||||
You can clone from the official osmo-bts.git repository using
|
|
||||||
|
|
||||||
git clone git://git.osmocom.org/osmo-bts.git
|
|
||||||
|
|
||||||
There is a cgit interface at http://git.osmocom.org/osmo-bts/
|
|
||||||
|
|
||||||
Documentation
|
|
||||||
-------------
|
|
||||||
|
|
||||||
We provide a
|
|
||||||
[User Manual](http://ftp.osmocom.org/docs/latest/osmobts-usermanual.pdf)
|
|
||||||
as well as a
|
|
||||||
[VTY Reference Manual](http://ftp.osmocom.org/docs/latest/osmobsc-vty-reference.pdf)
|
|
||||||
and a
|
|
||||||
[Abis refrence MAnual](http://ftp.osmocom.org/docs/latest/osmobts-abis.pdf)
|
|
||||||
describing the OsmoBTS specific A-bis dialect.
|
|
||||||
|
|
||||||
Mailing List
|
|
||||||
------------
|
|
||||||
|
|
||||||
Discussions related to osmo-bts 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](https://osmocom.org/projects/cellular-infrastructure/wiki/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 osmo-bts can be seen at
|
|
||||||
https://gerrit.osmocom.org/#/q/project:osmo-bts+status:open
|
|
||||||
|
|
||||||
Known Limitations
|
|
||||||
=================
|
|
||||||
|
|
||||||
As of March 17, 2017, 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
|
|
||||||
* 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 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)
|
|
||||||
* 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
|
|
||||||
* 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.
|
|
||||||
|
|
||||||
osmo-bts-octphy
|
|
||||||
---------------
|
|
||||||
|
|
||||||
* No support of EFR, HR voice codec (lack of PHY support?)
|
|
||||||
* No re-transmission of PHY primitives in case of time-out
|
|
||||||
* Link Quality / Measurement processing incomplete
|
|
||||||
* impossible to modify encryption parameters using RSL MODE MODIFY
|
|
||||||
* no clear indication of nominal transmit power, various power related
|
|
||||||
computations are likely off
|
|
||||||
* no OML attribute validation during bts_model_check_oml()
|
|
||||||
|
|
||||||
osmo-bts-trx
|
|
||||||
------------
|
|
||||||
|
|
||||||
* TCH/F_PDCH cannel not working as voice (https://osmocom.org/issues/1865)
|
|
||||||
* No BER value delivered to OsmoPCU (https://osmocom.org/issues/1855)
|
|
||||||
* No 11bit RACH support (https://osmocom.org/issues/1854)
|
|
||||||
376
configure.ac
376
configure.ac
@@ -1,10 +1,7 @@
|
|||||||
dnl Process this file with autoconf to produce a configure script
|
dnl Process this file with autoconf to produce a configure script
|
||||||
AC_INIT([osmo-bts],
|
AC_INIT([osmo-bts],
|
||||||
m4_esyscmd([./git-version-gen .tarball-version]),
|
m4_esyscmd([./git-version-gen .tarball-version]),
|
||||||
[openbsc@lists.osmocom.org])
|
[openbsc-devel@lists.openbsc.org])
|
||||||
|
|
||||||
dnl *This* is the root dir, even if an install-sh exists in ../ or ../../
|
|
||||||
AC_CONFIG_AUX_DIR([.])
|
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE([dist-bzip2])
|
AM_INIT_AUTOMAKE([dist-bzip2])
|
||||||
AC_CONFIG_TESTDIR(tests)
|
AC_CONFIG_TESTDIR(tests)
|
||||||
@@ -12,382 +9,55 @@ AC_CONFIG_TESTDIR(tests)
|
|||||||
dnl kernel style compile messages
|
dnl kernel style compile messages
|
||||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||||
|
|
||||||
dnl include release helper
|
|
||||||
RELMAKE='-include osmo-release.mk'
|
|
||||||
AC_SUBST([RELMAKE])
|
|
||||||
|
|
||||||
dnl checks for programs
|
dnl checks for programs
|
||||||
AC_PROG_MAKE_SET
|
AC_PROG_MAKE_SET
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
AC_PROG_INSTALL
|
AC_PROG_INSTALL
|
||||||
LT_INIT
|
AC_PROG_RANLIB
|
||||||
|
|
||||||
dnl check for pkg-config (explained in detail in libosmocore/configure.ac)
|
|
||||||
AC_PATH_PROG(PKG_CONFIG_INSTALLED, pkg-config, no)
|
|
||||||
if test "x$PKG_CONFIG_INSTALLED" = "xno"; then
|
|
||||||
AC_MSG_WARN([You need to install pkg-config])
|
|
||||||
fi
|
|
||||||
PKG_PROG_PKG_CONFIG([0.20])
|
|
||||||
|
|
||||||
dnl checks for header files
|
dnl checks for header files
|
||||||
AC_HEADER_STDC
|
AC_HEADER_STDC
|
||||||
|
|
||||||
dnl Checks for typedefs, structures and compiler characteristics
|
dnl Checks for typedefs, structures and compiler characteristics
|
||||||
|
|
||||||
AC_ARG_ENABLE(sanitize,
|
|
||||||
[AS_HELP_STRING([--enable-sanitize], [Compile with address sanitizer enabled], )],
|
|
||||||
[sanitize=$enableval], [sanitize="no"])
|
|
||||||
if test x"$sanitize" = x"yes"
|
|
||||||
then
|
|
||||||
CFLAGS="$CFLAGS -fsanitize=address -fsanitize=undefined"
|
|
||||||
CPPFLAGS="$CPPFLAGS -fsanitize=address -fsanitize=undefined"
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_ARG_ENABLE(werror,
|
|
||||||
[AS_HELP_STRING(
|
|
||||||
[--enable-werror],
|
|
||||||
[Turn all compiler warnings into errors, with exceptions:
|
|
||||||
a) deprecation (allow upstream to mark deprecation without breaking builds);
|
|
||||||
b) "#warning" pragmas (allow to remind ourselves of errors without breaking builds)
|
|
||||||
]
|
|
||||||
)],
|
|
||||||
[werror=$enableval], [werror="no"])
|
|
||||||
if test x"$werror" = x"yes"
|
|
||||||
then
|
|
||||||
WERROR_FLAGS="-Werror"
|
|
||||||
WERROR_FLAGS+=" -Wno-error=deprecated -Wno-error=deprecated-declarations"
|
|
||||||
WERROR_FLAGS+=" -Wno-error=cpp" # "#warning"
|
|
||||||
CFLAGS="$CFLAGS $WERROR_FLAGS"
|
|
||||||
CPPFLAGS="$CPPFLAGS $WERROR_FLAGS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl checks for libraries
|
dnl checks for libraries
|
||||||
PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 1.0.0)
|
PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 0.3.9)
|
||||||
PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 1.0.0)
|
PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty)
|
||||||
PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 1.0.0)
|
PKG_CHECK_MODULES(LIBOSMOTRAU, libosmotrau >= 0.0.7)
|
||||||
PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl >= 1.0.0)
|
PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 0.3.3)
|
||||||
PKG_CHECK_MODULES(LIBOSMOCODEC, libosmocodec >= 1.0.0)
|
|
||||||
PKG_CHECK_MODULES(LIBOSMOCODING, libosmocoding >= 1.0.0)
|
|
||||||
PKG_CHECK_MODULES(LIBOSMOABIS, libosmoabis >= 0.6.0)
|
|
||||||
PKG_CHECK_MODULES(LIBOSMOTRAU, libosmotrau >= 0.6.0)
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to enable support for sysmobts calibration tool])
|
AC_MSG_CHECKING([whether to enable sysmocom-bts hardware support])
|
||||||
AC_ARG_ENABLE(sysmobts-calib,
|
|
||||||
AC_HELP_STRING([--enable-sysmobts-calib],
|
|
||||||
[enable code for sysmobts calibration tool [default=no]]),
|
|
||||||
[enable_sysmobts_calib="yes"],[enable_sysmobts_calib="no"])
|
|
||||||
AC_MSG_RESULT([$enable_sysmobts_calib])
|
|
||||||
AM_CONDITIONAL(ENABLE_SYSMOBTS_CALIB, test "x$enable_sysmobts_calib" = "xyes")
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to enable support for sysmoBTS L1/PHY support])
|
|
||||||
AC_ARG_ENABLE(sysmocom-bts,
|
AC_ARG_ENABLE(sysmocom-bts,
|
||||||
AC_HELP_STRING([--enable-sysmocom-bts],
|
AC_HELP_STRING([--enable-sysmocom-bts],
|
||||||
[enable code for sysmoBTS L1/PHY [default=no]]),
|
[enable code for sysmocom femto-bts [default=no]]),
|
||||||
[enable_sysmocom_bts="yes"],[enable_sysmocom_bts="no"])
|
[enable_sysmocom_bts="yes"],[enable_sysmocom_bts="no"])
|
||||||
AC_ARG_WITH([sysmobts], [AS_HELP_STRING([--with-sysmobts=INCLUDE_DIR], [Location of the sysmobts API header files, implies --enable-sysmocom-bts])],
|
|
||||||
[sysmobts_incdir="$withval"],[sysmobts_incdir="$incdir"])
|
|
||||||
if test "x$sysmobts_incdir" != "x"; then
|
|
||||||
# --with-sysmobts was passed, imply enable_sysmocom_bts
|
|
||||||
enable_sysmocom_bts="yes"
|
|
||||||
fi
|
|
||||||
AC_SUBST([SYSMOBTS_INCDIR], -I$sysmobts_incdir)
|
|
||||||
AC_MSG_RESULT([$enable_sysmocom_bts])
|
AC_MSG_RESULT([$enable_sysmocom_bts])
|
||||||
AM_CONDITIONAL(ENABLE_SYSMOBTS, test "x$enable_sysmocom_bts" = "xyes")
|
AM_CONDITIONAL(ENABLE_SYSMOBTS, test "x$enable_sysmocom_bts" = "xyes")
|
||||||
if test "$enable_sysmocom_bts" = "yes"; then
|
|
||||||
oldCPPFLAGS=$CPPFLAGS
|
|
||||||
CPPFLAGS="$CPPFLAGS $SYSMOBTS_INCDIR -I$srcdir/include"
|
|
||||||
AC_CHECK_HEADER([sysmocom/femtobts/superfemto.h],[],
|
|
||||||
[AC_MSG_ERROR([sysmocom/femtobts/superfemto.h can not be found in $sysmobts_incdir])],
|
|
||||||
[#include <sysmocom/femtobts/superfemto.h>])
|
|
||||||
|
|
||||||
# Check for the sbts2050_header.h that was added after the 3.6 release
|
# We share gsm_data.h with OpenBSC and need to be pointed to the source
|
||||||
AC_CHECK_HEADER([sysmocom/femtobts/sbts2050_header.h], [sysmo_uc_header="yes"], [])
|
# directory of OpenBSC for now.
|
||||||
if test "$sysmo_uc_header" = "yes" ; then
|
AC_ARG_WITH([openbsc],
|
||||||
AC_DEFINE(BUILD_SBTS2050, 1, [Define if we want to build SBTS2050])
|
[AS_HELP_STRING([--with-openbsc=INCLUDE_DIR],
|
||||||
fi
|
[OpenBSC include directory for openbsc/gsm_data_shared.h])],
|
||||||
|
[openbsc_incdir="$withval"],
|
||||||
|
[openbsc_incdir="`cd $srcdir; pwd`/../openbsc/openbsc/include"])
|
||||||
|
AC_SUBST([OPENBSC_INCDIR], $openbsc_incdir)
|
||||||
|
|
||||||
PKG_CHECK_MODULES(LIBGPS, libgps)
|
oldCPPFLAGS=$CPPFLAGS
|
||||||
CPPFLAGS=$oldCPPFLAGS
|
CPPFLAGS="$CPPFLAGS -I$OPENBSC_INCDIR $LIBOSMOCORE_CFLAGS"
|
||||||
fi
|
AC_CHECK_HEADER([openbsc/gsm_data_shared.h],[],
|
||||||
AM_CONDITIONAL(BUILD_SBTS2050, test "x$sysmo_uc_header" = "xyes")
|
[AC_MSG_ERROR([openbsc/gsm_data_shared.h can not be found in $openbsc_incdir])],
|
||||||
|
[])
|
||||||
AC_MSG_CHECKING([whether to enable support for osmo-trx based L1/PHY support])
|
CPPFLAGS=$oldCPPFLAGS
|
||||||
AC_ARG_ENABLE(trx,
|
|
||||||
AC_HELP_STRING([--enable-trx],
|
|
||||||
[enable code for osmo-trx L1/PHY [default=no]]),
|
|
||||||
[enable_trx="yes"],[enable_trx="no"])
|
|
||||||
AC_MSG_RESULT([$enable_trx])
|
|
||||||
AM_CONDITIONAL(ENABLE_TRX, test "x$enable_trx" = "xyes")
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to enable support for Octasic OCTPHY-2G])
|
|
||||||
AC_ARG_ENABLE(octphy,
|
|
||||||
AC_HELP_STRING([--enable-octphy],
|
|
||||||
[enable code for Octasic OCTPHY-2G [default=no]]),
|
|
||||||
[enable_octphy="yes"],[enable_octphy="no"])
|
|
||||||
AC_ARG_WITH([octsdr-2g], [AS_HELP_STRING([--with-octsdr-2g], [Location of the OCTSDR-2G API header files])],
|
|
||||||
[octsdr2g_incdir="$withval"],[octsdr2g_incdir="`cd $srcdir; pwd`/src/osmo-bts-octphy/"])
|
|
||||||
AC_SUBST([OCTSDR2G_INCDIR], -I$octsdr2g_incdir)
|
|
||||||
AC_MSG_RESULT([$enable_octphy])
|
|
||||||
AM_CONDITIONAL(ENABLE_OCTPHY, test "x$enable_octphy" = "xyes")
|
|
||||||
if test "$enable_octphy" = "yes" ; then
|
|
||||||
oldCPPFLAGS=$CPPFLAGS
|
|
||||||
CPPFLAGS="$CPPFLAGS $OCTSDR2G_INCDIR -I$srcdir/include"
|
|
||||||
|
|
||||||
AC_CHECK_HEADER([octphy/octvc1/gsm/octvc1_gsm_default.h],[],
|
|
||||||
[AC_MSG_ERROR([octphy/octvc1/gsm/octvc1_gsm_default.h can not be found in $octsdr2g_incdir])],
|
|
||||||
[#include <octphy/octvc1/gsm/octvc1_gsm_default.h>])
|
|
||||||
|
|
||||||
AC_CHECK_MEMBER([tOCTVC1_GSM_TRX_CONFIG.usCentreArfcn],
|
|
||||||
AC_DEFINE([OCTPHY_MULTI_TRX],
|
|
||||||
[1],
|
|
||||||
[Define to 1 if your octphy header files support multi-trx]),
|
|
||||||
[],
|
|
||||||
[#include <octphy/octvc1/gsm/octvc1_gsm_api.h>])
|
|
||||||
|
|
||||||
AC_CHECK_MEMBER([tOCTVC1_HW_RF_PORT_RX_STATS.Frequency],
|
|
||||||
AC_DEFINE([OCTPHY_USE_FREQUENCY],
|
|
||||||
[1],
|
|
||||||
[Define to 1 if your octphy header files support tOCTVC1_RADIO_FREQUENCY_VALUE type]),
|
|
||||||
[],
|
|
||||||
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
|
||||||
|
|
||||||
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_RF_PORT_INFO_ANTENNA_TX_CONFIG_RSP.TxConfig],
|
|
||||||
AC_DEFINE([OCTPHY_USE_TX_CONFIG],
|
|
||||||
[1],
|
|
||||||
[Define to 1 if your octphy header files support tOCTVC1_HW_RF_PORT_ANTENNA_TX_CONFIG type]),
|
|
||||||
[],
|
|
||||||
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
|
||||||
|
|
||||||
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_RF_PORT_INFO_ANTENNA_RX_CONFIG_RSP.RxConfig],
|
|
||||||
AC_DEFINE([OCTPHY_USE_RX_CONFIG],
|
|
||||||
[1],
|
|
||||||
[Define to 1 if your octphy header files support tOCTVC1_HW_RF_PORT_ANTENNA_RX_CONFIG type]),
|
|
||||||
[],
|
|
||||||
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
|
||||||
|
|
||||||
AC_CHECK_MEMBER([tOCTVC1_GSM_RF_CONFIG.ulTxAntennaId],
|
|
||||||
AC_DEFINE([OCTPHY_USE_ANTENNA_ID],
|
|
||||||
[1],
|
|
||||||
[Define to 1 if your octphy header files support antenna ids in tOCTVC1_GSM_RF_CONFIG]),
|
|
||||||
[],
|
|
||||||
[#include <octphy/octvc1/gsm/octvc1_gsm_api.h>])
|
|
||||||
|
|
||||||
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_INFO_RSP.ulClkSourceSelection],
|
|
||||||
AC_DEFINE([OCTPHY_USE_CLK_SOURCE_SELECTION],
|
|
||||||
[1],
|
|
||||||
[Define to 1 if your octphy header files supports ulClkSourceSelection in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_INFO_RSP]),
|
|
||||||
[],
|
|
||||||
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
|
||||||
|
|
||||||
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.lClockError],
|
|
||||||
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_CLOCK_ERROR],
|
|
||||||
[1],
|
|
||||||
[Define to 1 if your octphy header files supports lClockError in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
|
||||||
[],
|
|
||||||
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
|
||||||
|
|
||||||
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.lDroppedCycles],
|
|
||||||
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_DROPPED_CYCLES],
|
|
||||||
[1],
|
|
||||||
[Define to 1 if your octphy header files supports lDroppedCycles in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
|
||||||
[],
|
|
||||||
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
|
||||||
|
|
||||||
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.ulPllFreqHz],
|
|
||||||
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_PLL_FREQ_HZ],
|
|
||||||
[1],
|
|
||||||
[Define to 1 if your octphy header files supports ulPllFreqHz in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
|
||||||
[],
|
|
||||||
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
|
||||||
|
|
||||||
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.ulPllFractionalFreqHz],
|
|
||||||
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_PLL_FRACTIONAL_FREQ_HZ],
|
|
||||||
[1],
|
|
||||||
[Define to 1 if your octphy header files supports ulPllFractionalFreqHz in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
|
||||||
[],
|
|
||||||
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
|
||||||
|
|
||||||
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.ulSlipCnt],
|
|
||||||
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_SLIP_CNT],
|
|
||||||
[1],
|
|
||||||
[Define to 1 if your octphy header files supports ulSlipCnt in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
|
||||||
[],
|
|
||||||
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
|
||||||
|
|
||||||
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.ulSyncLosseCnt],
|
|
||||||
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_SYNC_LOSSE_CNT],
|
|
||||||
[1],
|
|
||||||
[Define to 1 if your octphy header files supports ulSyncLosseCnt in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
|
||||||
[],
|
|
||||||
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
|
||||||
|
|
||||||
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.ulSyncLossCnt],
|
|
||||||
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_SYNC_LOSS_CNT],
|
|
||||||
[1],
|
|
||||||
[Define to 1 if your octphy header files supports ulSyncLossCnt in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
|
||||||
[],
|
|
||||||
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
|
||||||
|
|
||||||
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.ulSourceState],
|
|
||||||
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_SOURCE_STATE],
|
|
||||||
[1],
|
|
||||||
[Define to 1 if your octphy header files supports ulSourceState in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
|
||||||
[],
|
|
||||||
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
|
||||||
|
|
||||||
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.ulDacState],
|
|
||||||
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_DAC_STATE],
|
|
||||||
[1],
|
|
||||||
[Define to 1 if your octphy header files supports ulDacState in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
|
||||||
[],
|
|
||||||
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
|
||||||
|
|
||||||
AC_CHECK_MEMBER([tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP.ulDriftElapseTimeUs],
|
|
||||||
AC_DEFINE([OCTPHY_USE_CLOCK_SYNC_MGR_STATS_DRIFT_ELAPSE_TIME_US],
|
|
||||||
[1],
|
|
||||||
[Define to 1 if your octphy header files supports ulDriftElapseTimeUs in tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP]),
|
|
||||||
[],
|
|
||||||
[#include <octphy/octvc1/hw/octvc1_hw_api.h>])
|
|
||||||
|
|
||||||
AC_CHECK_MEMBER([tOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_CMD.ulOversample16xEnableFlag],
|
|
||||||
AC_DEFINE([OCTPHY_USE_16X_OVERSAMPLING],
|
|
||||||
[1],
|
|
||||||
[Define to 1 if your octphy header files support 16x oversampling]),
|
|
||||||
[],
|
|
||||||
[#include <octphy/octvc1/gsm/octvc1_gsm_api.h>])
|
|
||||||
|
|
||||||
CPPFLAGS=$oldCPPFLAGS
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to enable NuRAN Wireless Litecell 1.5 hardware support])
|
|
||||||
AC_ARG_ENABLE(litecell15,
|
|
||||||
AC_HELP_STRING([--enable-litecell15],
|
|
||||||
[enable code for NuRAN Wireless Litecell15 bts [default=no]]),
|
|
||||||
[enable_litecell15="yes"],[enable_litecell15="no"])
|
|
||||||
AC_ARG_WITH([litecell15], [AS_HELP_STRING([--with-litecell15=INCLUDE_DIR], [Location of the litecell 1.5 API header files])],
|
|
||||||
[litecell15_incdir="$withval"],[litecell15_incdir="$incdir"])
|
|
||||||
AC_SUBST([LITECELL15_INCDIR], -I$litecell15_incdir)
|
|
||||||
AC_MSG_RESULT([$enable_litecell15])
|
|
||||||
AM_CONDITIONAL(ENABLE_LC15BTS, test "x$enable_litecell15" = "xyes")
|
|
||||||
if test "$enable_litecell15" = "yes"; then
|
|
||||||
oldCPPFLAGS=$CPPFLAGS
|
|
||||||
CPPFLAGS="$CPPFLAGS $LITECELL15_INCDIR -I$srcdir/include"
|
|
||||||
AC_CHECK_HEADER([nrw/litecell15/litecell15.h],[],
|
|
||||||
[AC_MSG_ERROR([nrw/litecell15/litecell15.h can not be found in $litecell15_incdir])],
|
|
||||||
[#include <nrw/litecell15/litecell15.h>])
|
|
||||||
PKG_CHECK_MODULES(LIBSYSTEMD, libsystemd)
|
|
||||||
CPPFLAGS=$oldCPPFLAGS
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to enable NuRAN Wireless OC-2G hardware support])
|
|
||||||
AC_ARG_ENABLE(oc2g,
|
|
||||||
AC_HELP_STRING([--enable-oc2g],
|
|
||||||
[enable code for NuRAN Wireless OC-2G bts [default=no]]),
|
|
||||||
[enable_oc2g="yes"],[enable_oc2g="no"])
|
|
||||||
AC_ARG_WITH([oc2g], [AS_HELP_STRING([--with-oc2g=INCLUDE_DIR], [Location of the OC-2G API header files])],
|
|
||||||
[oc2g_incdir="$withval"],[oc2g_incdir="$incdir"])
|
|
||||||
AC_SUBST([OC2G_INCDIR], -I$oc2g_incdir)
|
|
||||||
AC_MSG_RESULT([$enable_oc2g])
|
|
||||||
AM_CONDITIONAL(ENABLE_OC2GBTS, test "x$enable_oc2g" = "xyes")
|
|
||||||
if test "$enable_oc2g" = "yes"; then
|
|
||||||
oldCPPFLAGS=$CPPFLAGS
|
|
||||||
CPPFLAGS="$CPPFLAGS $OC2G_INCDIR -I$srcdir/include"
|
|
||||||
AC_CHECK_HEADER([nrw/oc2g/oc2g.h],[],
|
|
||||||
[AC_MSG_ERROR([nrw/oc2g/oc2g.h can not be found in $oc2g_incdir])],
|
|
||||||
[#include <nrw/oc2g/oc2g.h>])
|
|
||||||
PKG_CHECK_MODULES(LIBSYSTEMD, libsystemd)
|
|
||||||
PKG_CHECK_MODULES(LIBGPS, libgps)
|
|
||||||
CPPFLAGS=$oldCPPFLAGS
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Generate manuals
|
|
||||||
AC_ARG_ENABLE(manuals,
|
|
||||||
[AS_HELP_STRING(
|
|
||||||
[--enable-manuals],
|
|
||||||
[Generate manual PDFs [default=no]],
|
|
||||||
)],
|
|
||||||
[osmo_ac_build_manuals=$enableval], [osmo_ac_build_manuals="no"])
|
|
||||||
AM_CONDITIONAL([BUILD_MANUALS], [test x"$osmo_ac_build_manuals" = x"yes"])
|
|
||||||
AC_ARG_VAR(OSMO_GSM_MANUALS_DIR, [path to common osmo-gsm-manuals files, overriding pkg-config and "../osmo-gsm-manuals"
|
|
||||||
fallback])
|
|
||||||
if test x"$osmo_ac_build_manuals" = x"yes"
|
|
||||||
then
|
|
||||||
# Find OSMO_GSM_MANUALS_DIR (env, pkg-conf, fallback)
|
|
||||||
if test -n "$OSMO_GSM_MANUALS_DIR"; then
|
|
||||||
echo "checking for OSMO_GSM_MANUALS_DIR... $OSMO_GSM_MANUALS_DIR (from env)"
|
|
||||||
else
|
|
||||||
OSMO_GSM_MANUALS_DIR="$($PKG_CONFIG osmo-gsm-manuals --variable=osmogsmmanualsdir 2>/dev/null)"
|
|
||||||
if test -n "$OSMO_GSM_MANUALS_DIR"; then
|
|
||||||
echo "checking for OSMO_GSM_MANUALS_DIR... $OSMO_GSM_MANUALS_DIR (from pkg-conf)"
|
|
||||||
else
|
|
||||||
OSMO_GSM_MANUALS_DIR="../osmo-gsm-manuals"
|
|
||||||
echo "checking for OSMO_GSM_MANUALS_DIR... $OSMO_GSM_MANUALS_DIR (fallback)"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if ! test -d "$OSMO_GSM_MANUALS_DIR"; then
|
|
||||||
AC_MSG_ERROR("OSMO_GSM_MANUALS_DIR does not exist! Install osmo-gsm-manuals or set OSMO_GSM_MANUALS_DIR.")
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Find and run check-depends
|
|
||||||
CHECK_DEPENDS="$OSMO_GSM_MANUALS_DIR/check-depends.sh"
|
|
||||||
if ! test -x "$CHECK_DEPENDS"; then
|
|
||||||
CHECK_DEPENDS="osmo-gsm-manuals-check-depends"
|
|
||||||
fi
|
|
||||||
if ! $CHECK_DEPENDS; then
|
|
||||||
AC_MSG_ERROR("missing dependencies for --enable-manuals")
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Put in Makefile with absolute path
|
|
||||||
OSMO_GSM_MANUALS_DIR="$(realpath "$OSMO_GSM_MANUALS_DIR")"
|
|
||||||
AC_SUBST([OSMO_GSM_MANUALS_DIR])
|
|
||||||
fi
|
|
||||||
|
|
||||||
# https://www.freedesktop.org/software/systemd/man/daemon.html
|
|
||||||
AC_ARG_WITH([systemdsystemunitdir],
|
|
||||||
[AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files])],,
|
|
||||||
[with_systemdsystemunitdir=auto])
|
|
||||||
AS_IF([test "x$with_systemdsystemunitdir" = "xyes" -o "x$with_systemdsystemunitdir" = "xauto"], [
|
|
||||||
def_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
|
|
||||||
|
|
||||||
AS_IF([test "x$def_systemdsystemunitdir" = "x"],
|
|
||||||
[AS_IF([test "x$with_systemdsystemunitdir" = "xyes"],
|
|
||||||
[AC_MSG_ERROR([systemd support requested but pkg-config unable to query systemd package])])
|
|
||||||
with_systemdsystemunitdir=no],
|
|
||||||
[with_systemdsystemunitdir="$def_systemdsystemunitdir"])])
|
|
||||||
AS_IF([test "x$with_systemdsystemunitdir" != "xno"],
|
|
||||||
[AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])])
|
|
||||||
AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$with_systemdsystemunitdir" != "xno"])
|
|
||||||
|
|
||||||
AC_MSG_RESULT([CFLAGS="$CFLAGS"])
|
|
||||||
AC_MSG_RESULT([CPPFLAGS="$CPPFLAGS"])
|
|
||||||
|
|
||||||
AM_CONFIG_HEADER(btsconfig.h)
|
|
||||||
|
|
||||||
AC_OUTPUT(
|
AC_OUTPUT(
|
||||||
src/Makefile
|
src/Makefile
|
||||||
src/common/Makefile
|
src/common/Makefile
|
||||||
src/osmo-bts-virtual/Makefile
|
|
||||||
src/osmo-bts-omldummy/Makefile
|
|
||||||
src/osmo-bts-sysmo/Makefile
|
src/osmo-bts-sysmo/Makefile
|
||||||
src/osmo-bts-litecell15/Makefile
|
dnl src/osmo-bts-bb/Makefile
|
||||||
src/osmo-bts-oc2g/Makefile
|
|
||||||
src/osmo-bts-trx/Makefile
|
|
||||||
src/osmo-bts-octphy/Makefile
|
|
||||||
include/Makefile
|
include/Makefile
|
||||||
include/osmo-bts/Makefile
|
include/osmo-bts/Makefile
|
||||||
tests/Makefile
|
tests/Makefile
|
||||||
tests/paging/Makefile
|
tests/paging/Makefile
|
||||||
tests/agch/Makefile
|
|
||||||
tests/cipher/Makefile
|
tests/cipher/Makefile
|
||||||
tests/sysmobts/Makefile
|
|
||||||
tests/misc/Makefile
|
|
||||||
tests/handover/Makefile
|
|
||||||
tests/tx_power/Makefile
|
|
||||||
tests/power/Makefile
|
|
||||||
tests/meas/Makefile
|
|
||||||
doc/Makefile
|
|
||||||
doc/examples/Makefile
|
|
||||||
doc/manuals/Makefile
|
|
||||||
contrib/Makefile
|
|
||||||
contrib/systemd/Makefile
|
|
||||||
Makefile)
|
Makefile)
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
SUBDIRS = systemd
|
|
||||||
@@ -1,89 +0,0 @@
|
|||||||
#!/usr/bin/gawk -f
|
|
||||||
|
|
||||||
# Expected input format: FN TYPE
|
|
||||||
|
|
||||||
BEGIN {
|
|
||||||
DELTA = 0
|
|
||||||
ERR = 0
|
|
||||||
FORCE = 0
|
|
||||||
FN = 0
|
|
||||||
SILENCE = 0
|
|
||||||
TYPE = ""
|
|
||||||
CHK = ""
|
|
||||||
U_MAX = 8 * 20 + 120 / 26
|
|
||||||
U_MIN = 8 * 20 - 120 / 26
|
|
||||||
F_MAX = 3 * 20 + 120 / 26
|
|
||||||
F_MIN = 3 * 20 - 120 / 26
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
if (NR > 2) { # we have data from previous record to compare to
|
|
||||||
DELTA = ($1 - FN) * 120 / 26
|
|
||||||
CHK = "OK"
|
|
||||||
if ("FACCH" == $2 && "ONSET" == TYPE) { # ONSET due to FACCH is NOT a talkspurt
|
|
||||||
SILENCE = 1
|
|
||||||
}
|
|
||||||
if (("UPDATE" == TYPE || "FIRST" == TYPE) && ("FACCH" == $2 || "SPEECH" == $2)) { # check for missing ONSET:
|
|
||||||
CHK = "FAIL: missing ONSET (" $2 ") after " TYPE "."
|
|
||||||
ERR++
|
|
||||||
}
|
|
||||||
if ("SID_P1" == $2) {
|
|
||||||
CHK = "FAIL: regular AMR payload with FT SID and STI=0 (should be either pyaload Update or STI=1)."
|
|
||||||
ERR++
|
|
||||||
}
|
|
||||||
if ("FORCED_FIRST" == $2 || "FORCED_NODATA" == $2 || "FORCED_F_P2" == $2 || "FORCED_F_INH" == $2 || "FORCED_U_INH" == $2) {
|
|
||||||
CHK = "FAIL: event " $2 " inserted by DSP."
|
|
||||||
FORCE++
|
|
||||||
ERR++
|
|
||||||
}
|
|
||||||
if ("FIRST_P2" != $2 && "FIRST_P1" == TYPE) {
|
|
||||||
CHK = "FAIL: " TYPE " followed by " $2 " instead of P2."
|
|
||||||
ERR++
|
|
||||||
}
|
|
||||||
if ("FIRST" == $2 && "FIRST" == TYPE) {
|
|
||||||
CHK = "FAIL: multiple SID FIRST in a row."
|
|
||||||
ERR++
|
|
||||||
}
|
|
||||||
if ("OK" == CHK && "ONSET" != $2) { # check inter-SID distances:
|
|
||||||
if ("UPDATE" == TYPE) {
|
|
||||||
if (DELTA > U_MAX) {
|
|
||||||
CHK = "FAIL: delta (" $1 - FN "fn) from previous SID UPDATE (@" FN ") too big " DELTA "ms > " U_MAX "ms."
|
|
||||||
ERR++
|
|
||||||
}
|
|
||||||
if ("UPDATE" == $2 && DELTA < U_MIN) {
|
|
||||||
CHK = "FAIL: delta (" $1 - FN "fn) from previous SID UPDATE (@" FN ") too small " DELTA "ms < " U_MIN "ms."
|
|
||||||
ERR++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ("FIRST" == TYPE) {
|
|
||||||
if (DELTA > F_MAX) {
|
|
||||||
CHK = "FAIL: delta (" $1 - FN "fn) from previous SID FIRST (@" FN ") too big " DELTA "ms > " F_MAX "ms."
|
|
||||||
ERR++
|
|
||||||
}
|
|
||||||
if ("UPDATE" == $2 && DELTA < F_MIN) {
|
|
||||||
CHK = "FAIL: delta (" $1 - FN "fn) from previous SID UPDATE (@" FN ") too small " DELTA "ms < " F_MIN "ms."
|
|
||||||
ERR++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ("FACCH" == TYPE && "FIRST" != $2 && "FACCH" != $2 && 1 == SILENCE) { # check FACCH handling
|
|
||||||
CHK = "FAIL: incorrect silence resume with " $2 " after FACCH."
|
|
||||||
ERR++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ("SPEECH" == $2 || "ONSET" == $2) { # talkspurt
|
|
||||||
SILENCE = 0
|
|
||||||
}
|
|
||||||
if ("UPDATE" == $2 || "FIRST" == $2) { # silence
|
|
||||||
SILENCE = 1
|
|
||||||
}
|
|
||||||
print $1, $2, CHK
|
|
||||||
if ($2 != "EMPTY") { # skip over EMPTY records
|
|
||||||
TYPE = $2
|
|
||||||
FN = $1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
END {
|
|
||||||
print "Check completed: found " ERR " errors (" FORCE " events inserted by DSP) in " NR " records."
|
|
||||||
}
|
|
||||||
@@ -10,7 +10,7 @@ env = os.environ
|
|||||||
env['L1FWD_BTS_HOST'] = '127.0.0.1'
|
env['L1FWD_BTS_HOST'] = '127.0.0.1'
|
||||||
|
|
||||||
bts_proc = subprocess.Popen(["./src/osmo-bts-sysmo/sysmobts-remote",
|
bts_proc = subprocess.Popen(["./src/osmo-bts-sysmo/sysmobts-remote",
|
||||||
"-c", "./doc/examples/sysmo/osmo-bts.cfg"], env = env,
|
"-c", "./doc/examples/osmo-bts.cfg"], env = env,
|
||||||
stdin=None, stdout=None)
|
stdin=None, stdout=None)
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
|
||||||
|
|||||||
@@ -1,91 +0,0 @@
|
|||||||
/* GPLv3+ to read sysmobts-v2 revD or later EEPROM from userspace */
|
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
|
|
||||||
|
|
||||||
#include <linux/i2c.h>
|
|
||||||
#include <linux/i2c-dev.h>
|
|
||||||
#include <sys/ioctl.h>
|
|
||||||
|
|
||||||
#include <errno.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
|
|
||||||
/* Can read a 16bit at24 eeprom with 8192 byte in storage (24c64) */
|
|
||||||
static int dump_eeprom(int fd, int out)
|
|
||||||
{
|
|
||||||
#define STEP 8192
|
|
||||||
#define SIZE 8192
|
|
||||||
uint8_t buf[STEP + 2];
|
|
||||||
int rc = 0;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < SIZE; i += STEP) {
|
|
||||||
/* write the address */
|
|
||||||
buf[0] = i >> 8;
|
|
||||||
buf[1] = i;
|
|
||||||
rc = write(fd, buf, 2);
|
|
||||||
if (rc != 2) {
|
|
||||||
fprintf(stderr, "writing address failed: %d/%d/%s\n", rc, errno, strerror(errno));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* execute step amount of reads */
|
|
||||||
rc = read(fd, buf, STEP);
|
|
||||||
if (rc != STEP) {
|
|
||||||
fprintf(stderr, "Failed to read: %d/%d/%s\n", rc, errno, strerror(errno));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
write(out, buf, STEP);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
int i2c_fd, out_fd;
|
|
||||||
char *filename = "/dev/i2c-1";
|
|
||||||
char *out_file = "eeprom.out";
|
|
||||||
int addr = 0x50;
|
|
||||||
int rc;
|
|
||||||
|
|
||||||
i2c_fd = open(filename, O_RDWR);
|
|
||||||
if (i2c_fd < 0) {
|
|
||||||
fprintf(stderr, "Failed to open i2c device %d/%d/%s\n",
|
|
||||||
i2c_fd, errno, strerror(errno));
|
|
||||||
return EXIT_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* force using that address it is already bound with a driver */
|
|
||||||
rc = ioctl(i2c_fd, I2C_SLAVE_FORCE, addr);
|
|
||||||
if (rc < 0) {
|
|
||||||
fprintf(stderr, "Failed to claim i2c device %d/%d/%s\n",
|
|
||||||
rc, errno, strerror(errno));
|
|
||||||
return EXIT_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (argc >= 2)
|
|
||||||
out_file = argv[1];
|
|
||||||
out_fd = open(out_file, O_WRONLY | O_CREAT | O_TRUNC, 0644);
|
|
||||||
if (out_fd < 0) {
|
|
||||||
fprintf(stderr, "Failed to open out device %s %d/%d/%s\n",
|
|
||||||
out_file, rc, errno, strerror(errno));
|
|
||||||
return EXIT_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dump_eeprom(i2c_fd, out_fd) != 0) {
|
|
||||||
unlink(out_file);
|
|
||||||
return EXIT_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
|
||||||
}
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# jenkins build helper script for osmo-bts. This is how we build on jenkins.osmocom.org
|
|
||||||
#
|
|
||||||
# environment variables:
|
|
||||||
# * FIRMWARE_VERSION: which firmware version to build ("master", "femtobts_v2.7", ...)
|
|
||||||
# * WITH_MANUALS: build manual PDFs if set to "1"
|
|
||||||
# * PUBLISH: upload manuals after building if set to "1" (ignored without WITH_MANUALS = "1")
|
|
||||||
#
|
|
||||||
# usage: jenkins_bts_model.sh BTS_MODEL
|
|
||||||
# * BTS_MODEL: which BTS model specific script to run ("sysmo", "oct", ...)
|
|
||||||
#
|
|
||||||
|
|
||||||
bts_model="$1"
|
|
||||||
|
|
||||||
if [ "x$bts_model" = "x" ]; then
|
|
||||||
echo "Error: You have to specify the BTS model as first argument, e.g. $0 sysmo"
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d "./contrib" ]; then
|
|
||||||
echo "Run ./contrib/jenkins_bts_model.sh from the root of the osmo-bts tree"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -x -e
|
|
||||||
|
|
||||||
case "$bts_model" in
|
|
||||||
|
|
||||||
sysmo)
|
|
||||||
./contrib/jenkins_sysmobts.sh
|
|
||||||
;;
|
|
||||||
|
|
||||||
oct)
|
|
||||||
./contrib/jenkins_oct.sh
|
|
||||||
;;
|
|
||||||
|
|
||||||
lc15)
|
|
||||||
./contrib/jenkins_lc15.sh
|
|
||||||
;;
|
|
||||||
|
|
||||||
oc2g)
|
|
||||||
./contrib/jenkins_oc2g.sh
|
|
||||||
;;
|
|
||||||
|
|
||||||
trx)
|
|
||||||
./contrib/jenkins_bts_trx.sh
|
|
||||||
;;
|
|
||||||
|
|
||||||
oct+trx)
|
|
||||||
./contrib/jenkins_oct_and_bts_trx.sh
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
set +x
|
|
||||||
echo "Unknown BTS model '$bts_model'"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# jenkins build helper script for osmo-bts-trx
|
|
||||||
|
|
||||||
# shellcheck source=contrib/jenkins_common.sh
|
|
||||||
. $(dirname "$0")/jenkins_common.sh
|
|
||||||
|
|
||||||
export PKG_CONFIG_PATH="$inst/lib/pkgconfig:$PKG_CONFIG_PATH"
|
|
||||||
export LD_LIBRARY_PATH="$inst/lib"
|
|
||||||
|
|
||||||
osmo-build-dep.sh libosmocore "" --disable-doxygen
|
|
||||||
|
|
||||||
osmo-build-dep.sh libosmo-abis
|
|
||||||
|
|
||||||
cd "$deps"
|
|
||||||
|
|
||||||
configure_flags="\
|
|
||||||
--enable-sanitize \
|
|
||||||
--enable-werror \
|
|
||||||
--enable-trx \
|
|
||||||
"
|
|
||||||
|
|
||||||
build_bts "osmo-bts-trx" "$configure_flags"
|
|
||||||
|
|
||||||
osmo-clean-workspace.sh
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# this is a common helper script that is shared among all BTS model
|
|
||||||
# specific helper scripts like jenkins_sysmobts.sh. You shouldn't call
|
|
||||||
# this directly, but rather indirectly via the bts-specific scripts
|
|
||||||
|
|
||||||
if ! [ -x "$(command -v osmo-deps.sh)" ]; then
|
|
||||||
echo "Error: We need to have scripts/osmo-deps.sh from http://git.osmocom.org/osmo-ci/ in PATH !"
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
base="$PWD"
|
|
||||||
deps="$base/deps"
|
|
||||||
inst="$deps/install"
|
|
||||||
|
|
||||||
export deps inst
|
|
||||||
|
|
||||||
osmo-clean-workspace.sh
|
|
||||||
|
|
||||||
mkdir -p "$deps"
|
|
||||||
|
|
||||||
verify_value_string_arrays_are_terminated.py $(find . -name "*.[hc]")
|
|
||||||
|
|
||||||
# generic project build function, usage:
|
|
||||||
# build "PROJECT-NAME" "CONFIGURE OPTIONS"
|
|
||||||
build_bts() {
|
|
||||||
set +x
|
|
||||||
echo
|
|
||||||
echo
|
|
||||||
echo
|
|
||||||
echo " =============================== $1 ==============================="
|
|
||||||
echo
|
|
||||||
set -x
|
|
||||||
|
|
||||||
cd $deps
|
|
||||||
osmo-deps.sh libosmocore
|
|
||||||
cd $base
|
|
||||||
shift
|
|
||||||
|
|
||||||
# Manuals: build
|
|
||||||
conf_flags="$*"
|
|
||||||
if [ "$WITH_MANUALS" = "1" ]; then
|
|
||||||
conf_flags="$conf_flags --enable-manuals"
|
|
||||||
osmo-build-dep.sh osmo-gsm-manuals
|
|
||||||
export PATH="$inst/bin:$PATH"
|
|
||||||
fi
|
|
||||||
|
|
||||||
autoreconf --install --force
|
|
||||||
./configure $conf_flags
|
|
||||||
$MAKE $PARALLEL_MAKE
|
|
||||||
$MAKE check || cat-testlogs.sh
|
|
||||||
DISTCHECK_CONFIGURE_FLAGS="$conf_flags" $MAKE distcheck || cat-testlogs.sh
|
|
||||||
|
|
||||||
# Manuals: publish
|
|
||||||
if [ "$WITH_MANUALS" = "1" ] && [ "$PUBLISH" = "1" ]; then
|
|
||||||
$MAKE -C "$base/doc/manuals" publish
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# jenkins build helper script for osmo-bts-lc15
|
|
||||||
|
|
||||||
# shellcheck source=contrib/jenkins_common.sh
|
|
||||||
. $(dirname "$0")/jenkins_common.sh
|
|
||||||
|
|
||||||
osmo-build-dep.sh libosmocore "" --disable-doxygen
|
|
||||||
|
|
||||||
export PKG_CONFIG_PATH="$inst/lib/pkgconfig:$PKG_CONFIG_PATH"
|
|
||||||
export LD_LIBRARY_PATH="$inst/lib"
|
|
||||||
|
|
||||||
osmo-build-dep.sh libosmo-abis
|
|
||||||
|
|
||||||
cd "$deps"
|
|
||||||
osmo-layer1-headers.sh lc15 "$FIRMWARE_VERSION"
|
|
||||||
|
|
||||||
configure_flags="\
|
|
||||||
--enable-sanitize \
|
|
||||||
--with-litecell15=$deps/layer1-headers/inc/ \
|
|
||||||
--enable-litecell15 \
|
|
||||||
"
|
|
||||||
|
|
||||||
build_bts "osmo-bts-lc15" "$configure_flags"
|
|
||||||
|
|
||||||
osmo-clean-workspace.sh
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# jenkins build helper script for osmo-bts-oc2g
|
|
||||||
|
|
||||||
# shellcheck source=contrib/jenkins_common.sh
|
|
||||||
. $(dirname "$0")/jenkins_common.sh
|
|
||||||
|
|
||||||
osmo-build-dep.sh libosmocore "" --disable-doxygen
|
|
||||||
|
|
||||||
export PKG_CONFIG_PATH="$inst/lib/pkgconfig:$PKG_CONFIG_PATH"
|
|
||||||
export LD_LIBRARY_PATH="$inst/lib"
|
|
||||||
|
|
||||||
osmo-build-dep.sh libosmo-abis
|
|
||||||
|
|
||||||
cd "$deps"
|
|
||||||
osmo-layer1-headers.sh oc2g "$FIRMWARE_VERSION"
|
|
||||||
|
|
||||||
configure_flags="\
|
|
||||||
--enable-sanitize \
|
|
||||||
--with-oc2g=$deps/layer1-headers/inc/ \
|
|
||||||
--enable-oc2g \
|
|
||||||
"
|
|
||||||
|
|
||||||
build_bts "osmo-bts-oc2g" "$configure_flags"
|
|
||||||
|
|
||||||
osmo-clean-workspace.sh
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# jenkins build helper script for osmo-bts-octphy
|
|
||||||
|
|
||||||
# shellcheck source=contrib/jenkins_common.sh
|
|
||||||
. $(dirname "$0")/jenkins_common.sh
|
|
||||||
|
|
||||||
osmo-build-dep.sh libosmocore "" --disable-doxygen
|
|
||||||
|
|
||||||
export PKG_CONFIG_PATH="$inst/lib/pkgconfig:$PKG_CONFIG_PATH"
|
|
||||||
export LD_LIBRARY_PATH="$inst/lib"
|
|
||||||
|
|
||||||
osmo-build-dep.sh libosmo-abis
|
|
||||||
|
|
||||||
cd "$deps"
|
|
||||||
osmo-layer1-headers.sh oct "$FIRMWARE_VERSION"
|
|
||||||
|
|
||||||
configure_flags="\
|
|
||||||
--enable-sanitize \
|
|
||||||
--enable-werror \
|
|
||||||
--with-octsdr-2g=$deps/layer1-headers/ \
|
|
||||||
--enable-octphy \
|
|
||||||
"
|
|
||||||
|
|
||||||
build_bts "osmo-bts-octphy" "$configure_flags"
|
|
||||||
|
|
||||||
osmo-clean-workspace.sh
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# jenkins build helper script for osmo-bts-octphy + osmo-bts-trx
|
|
||||||
|
|
||||||
# shellcheck source=contrib/jenkins_common.sh
|
|
||||||
. $(dirname "$0")/jenkins_common.sh
|
|
||||||
|
|
||||||
export PKG_CONFIG_PATH="$inst/lib/pkgconfig:$PKG_CONFIG_PATH"
|
|
||||||
export LD_LIBRARY_PATH="$inst/lib"
|
|
||||||
|
|
||||||
osmo-build-dep.sh libosmocore "" --disable-doxygen
|
|
||||||
|
|
||||||
osmo-build-dep.sh libosmo-abis
|
|
||||||
|
|
||||||
cd "$deps"
|
|
||||||
|
|
||||||
osmo-layer1-headers.sh oct "$FIRMWARE_VERSION"
|
|
||||||
|
|
||||||
configure_flags="\
|
|
||||||
--enable-werror \
|
|
||||||
--with-octsdr-2g=$deps/layer1-headers/ \
|
|
||||||
--enable-octphy \
|
|
||||||
--enable-trx \
|
|
||||||
"
|
|
||||||
|
|
||||||
build_bts "osmo-bts-octphy+trx" "$configure_flags"
|
|
||||||
|
|
||||||
osmo-clean-workspace.sh
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# jenkins build helper script for osmo-bts-sysmo
|
|
||||||
|
|
||||||
# shellcheck source=contrib/jenkins_common.sh
|
|
||||||
. $(dirname "$0")/jenkins_common.sh
|
|
||||||
|
|
||||||
osmo-build-dep.sh libosmocore "" --disable-doxygen
|
|
||||||
|
|
||||||
export PKG_CONFIG_PATH="$inst/lib/pkgconfig:$PKG_CONFIG_PATH"
|
|
||||||
export LD_LIBRARY_PATH="$inst/lib"
|
|
||||||
|
|
||||||
osmo-build-dep.sh libosmo-abis
|
|
||||||
|
|
||||||
cd "$deps"
|
|
||||||
osmo-layer1-headers.sh sysmo "$FIRMWARE_VERSION"
|
|
||||||
mkdir -p "$inst/include/sysmocom/femtobts"
|
|
||||||
ln -s $deps/layer1-headers/include/* "$inst/include/sysmocom/femtobts/"
|
|
||||||
|
|
||||||
configure_flags="\
|
|
||||||
--enable-sanitize \
|
|
||||||
--enable-werror \
|
|
||||||
--enable-sysmocom-bts \
|
|
||||||
--with-sysmobts=$inst/include/ \
|
|
||||||
"
|
|
||||||
|
|
||||||
# This will not work for the femtobts
|
|
||||||
if [ $FIRMWARE_VERSION != "femtobts_v2.7" ]; then
|
|
||||||
configure_flags="$configure_flags --enable-sysmobts-calib"
|
|
||||||
fi
|
|
||||||
|
|
||||||
build_bts "osmo-bts-sysmo" "$configure_flags"
|
|
||||||
|
|
||||||
osmo-clean-workspace.sh
|
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
chdir /tmp
|
chdir /tmp
|
||||||
screen -t BTS 0 /etc/osmocom/respawn.sh /usr/bin/osmo-bts-sysmo -c /etc/osmocom/osmo-bts.cfg -r 1 -M
|
screen -t BTS 0 /etc/osmocom/respawn.sh /usr/bin/sysmobts -c /etc/osmocom/osmo-bts.cfg -M
|
||||||
screen -t PCU 1 /etc/osmocom/respawn-only.sh /usr/bin/osmo-pcu -c /etc/osmocom/osmo-pcu.cfg -e
|
screen -t PCU 1 /etc/osmocom/respawn-only.sh /usr/bin/osmo-pcu -c /etc/osmocom/osmo-pcu.cfg
|
||||||
screen -t MGR 2 /etc/osmocom/respawn-only.sh /usr/bin/sysmobts-mgr -n -c /etc/osmocom/sysmobts-mgr.cfg
|
|
||||||
detach
|
detach
|
||||||
|
|||||||
@@ -1,91 +0,0 @@
|
|||||||
#!/usr/bin/gawk -f
|
|
||||||
|
|
||||||
# Usage example:
|
|
||||||
# tshark -2 -t r -E 'header=n' -E 'separator=,' -E 'quote=n' -T fields -e gsmtap.frame_nr -e gsmtap.ts -e gsmtap.arfcn -e _ws.col.Info -Y 'gsmtap' -r test.pcapng.gz | grep Information | env ARFCN=878 ./si_check.gawk
|
|
||||||
# read summary on number of bis/ter messages and adjust BT_BOTH and BT_NONE environment variables accordingly
|
|
||||||
|
|
||||||
BEGIN {
|
|
||||||
FS = ","
|
|
||||||
FAILED = 0
|
|
||||||
IGNORE = 0
|
|
||||||
BIS = 0
|
|
||||||
TER = 0
|
|
||||||
QUA = 0
|
|
||||||
BT_BOTH = ENVIRON["BOTH"]
|
|
||||||
BT_NONE = ENVIRON["NONE"]
|
|
||||||
TC_INDEX = 0
|
|
||||||
TC4[4] = 0
|
|
||||||
}
|
|
||||||
|
|
||||||
{ # expected .csv input as follows: gsmtap.frame_nr,gsmtap.ts,gsmtap.arfcn,_ws.col.Info
|
|
||||||
if ("ARFCN" in ENVIRON) { # ARFCN filtering is enabled
|
|
||||||
if (ENVIRON["ARFCN"] != $3) { # ignore other ARFCNs
|
|
||||||
IGNORE++
|
|
||||||
next
|
|
||||||
}
|
|
||||||
}
|
|
||||||
type = get_si_type($4)
|
|
||||||
tc = get_tc($1)
|
|
||||||
result = "FAIL"
|
|
||||||
|
|
||||||
if (1 == check_si_tc(tc, type)) { result = "OK" }
|
|
||||||
else { FAILED++ }
|
|
||||||
|
|
||||||
if (4 == tc) {
|
|
||||||
TC4[TC_INDEX] = type
|
|
||||||
TC_INDEX = int((TC_INDEX + 1) % 4)
|
|
||||||
if (0 == check_tc4c(type) && "OK" == result) {
|
|
||||||
result = "FAIL"
|
|
||||||
FAILED++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (type == "2bis") { BIS++ }
|
|
||||||
if (type == "2ter") { TER++ }
|
|
||||||
if (type == "2quater") { QUA++ }
|
|
||||||
# for (i in TC4) print TC4[i] # debugging
|
|
||||||
printf "ARFCN=%d FN=%d TS=%d TC=%d TYPE=%s %s\n", $3, $1, $2, tc, type, result
|
|
||||||
}
|
|
||||||
|
|
||||||
END {
|
|
||||||
printf "check completed: total %d, failed %d, ignored %d, ok %d\nSI2bis = %d, SI2ter = %d, SI2quater = %d\n", NR, FAILED, IGNORE, NR - FAILED - IGNORE, BIS, TER, QUA
|
|
||||||
if ((BIS > 0 || TER > 0) && BT_NONE) { printf "please re-run with correct environment: unset 'NONE' variable\n" }
|
|
||||||
if ((BIS > 0 && TER > 0) && !BT_BOTH) { printf "please re-run with correct environment: set 'BOTH' variable\n" }
|
|
||||||
}
|
|
||||||
|
|
||||||
func get_si_type(s, x) { # we rely on format of Info column in wireshark output - if it's changed we're screwed
|
|
||||||
return x[split(s, x, " ")]
|
|
||||||
}
|
|
||||||
|
|
||||||
func get_tc(f) { # N. B: all numbers in awk are float
|
|
||||||
return int(int(f / 51) % 8)
|
|
||||||
}
|
|
||||||
|
|
||||||
func check_tc4c(si, count) { # check for "once in 4 consecutive occurrences" rule
|
|
||||||
count = 0
|
|
||||||
if ("2quater" != si || "2ter" != si) { return 1 } # rules is not applicable to other types
|
|
||||||
if (BT_NONE && "2quater" == si) { return 0 } # should be on TC=5 instead
|
|
||||||
if (!BT_BOTH && "2ter" == si) { return 0 } # should be on TC=5 instead
|
|
||||||
if (0 in TC4 && 1 in TC4 && 2 in TC4 && 3 in TC4) { # only check if we have 4 consecutive occurrences already
|
|
||||||
if (si == TC4[0]) { count++ }
|
|
||||||
if (si == TC4[1]) { count++ }
|
|
||||||
if (si == TC4[2]) { count++ }
|
|
||||||
if (si == TC4[3]) { count++ }
|
|
||||||
if (0 == count) { return 0 }
|
|
||||||
}
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
func check_si_tc(tc, si) { # check that SI scheduling on BCCH Norm is matching rules from 3GPP TS 05.02 § 6.3.1.3
|
|
||||||
switch (si) {
|
|
||||||
case "1": return (0 == tc) ? 1 : 0
|
|
||||||
case "2": return (1 == tc) ? 1 : 0
|
|
||||||
case "2bis": return (5 == tc) ? 1 : 0
|
|
||||||
case "13": return (4 == tc) ? 1 : 0
|
|
||||||
case "9": return (4 == tc) ? 1 : 0
|
|
||||||
case "2ter": if (BT_BOTH) { return (4 == tc) ? 1 : 0 } else { return (5 == tc) ? 1 : 0 }
|
|
||||||
case "2quater": if (BT_NONE) { return (5 == tc) ? 1 : 0 } else { return (4 == tc) ? 1 : 0 }
|
|
||||||
case "3": return (2 == tc || 6 == tc) ? 1 : 0
|
|
||||||
case "4": return (3 == tc || 7 == tc) ? 1 : 0
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
@@ -1,110 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Split common DSP call log file (produced by superfemto-compatible firmware) into 4 separate call leg files (MO/MT & DL/UL) with events in format "FN EVENT_TYPE":
|
|
||||||
# MO Mobile Originated
|
|
||||||
# MT Mobile Terminated
|
|
||||||
# DL DownLink (BTS -> L1)
|
|
||||||
# UL UpLink (L1 -> BTS)
|
|
||||||
|
|
||||||
if [ -z $1 ]; then
|
|
||||||
echo "expecting DSP log file name as parameter"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# MO handle appear 1st in the logs
|
|
||||||
MO=$(grep 'h=' $1 | head -n 1 | cut -f2 -d',' | cut -f2 -d= | cut -f1 -d']')
|
|
||||||
|
|
||||||
# direction markers:
|
|
||||||
DLST="_CodeBurst"
|
|
||||||
ULST="_DecodeAndIdentify"
|
|
||||||
|
|
||||||
# DL sed filters:
|
|
||||||
D_EMP='s/ Empty frame request!/EMPTY/i'
|
|
||||||
D_FAC='s/ Coding a FACCH\/. frame !!/FACCH/i'
|
|
||||||
D_FST='s/ Coding a RTP SID First frame !!/FIRST/i'
|
|
||||||
D_FS1='s/ Coding a SID First P1 frame !!/FIRST_P1/i'
|
|
||||||
D_FS2='s/ Coding a SID First P2 frame !!/FIRST_P2/i'
|
|
||||||
D_RP1='s/ Coding a RTP SID P1 frame !!/SID_P1/i'
|
|
||||||
D_UPD='s/ Coding a RTP SID Update frame !!/UPDATE/i'
|
|
||||||
D_SPE='s/ Coding a RTP Speech frame !!/SPEECH/i'
|
|
||||||
D_ONS='s/ Coding a Onset frame !!/ONSET/i'
|
|
||||||
D_FO1='s/ A speech frame is following a NoData or SID First without an Onset./FORCED_FIRST/i'
|
|
||||||
D_FO2='s/ A speech frame is following a NoData without an Onset./FORCED_NODATA/i'
|
|
||||||
D_FP2='s/ A speech frame is following a NoData or SID_FIRST_P2 without an Onset./FORCED_F_P2/i'
|
|
||||||
D_FIN='s/ A speech frame is following a SID_FIRST without inhibit. A SID_FIRST_INH will be inserted./FORCED_F_INH/i'
|
|
||||||
D_UIN='s/ A speech frame is following a SID_UPDATE without inhibit. A SID_UPDATE_INH will be inserted./FORCED_U_INH/i'
|
|
||||||
|
|
||||||
# UL sed filters:
|
|
||||||
U_NOD='s/ It is a No Data frame !!/NODATA/i'
|
|
||||||
U_ONS='s/ It is an ONSET frame !!/ONSET/i'
|
|
||||||
U_UPD='s/ It is a SID UPDATE frame !!/UPDATE/i'
|
|
||||||
U_FST='s/ It is a SID FIRST frame !!/FIRST/i'
|
|
||||||
U_FP1='s/ It is a SID-First P1 frame !!/FIRST_P1/i'
|
|
||||||
U_FP2='s/ It is a SID-First P2 frame !!/FIRST_P2/i'
|
|
||||||
U_SPE='s/ It is a SPEECH frame *!!/SPEECH/i'
|
|
||||||
U_UIN='s/ It is a SID update InH frame !!/UPD_INH/i'
|
|
||||||
U_FIN='s/ It is a SID-First InH frame !!/FST_INH/i'
|
|
||||||
U_RAT='s/ It is a RATSCCH data frame !!/RATSCCH/i'
|
|
||||||
|
|
||||||
DL () { # filter downlink-related entries
|
|
||||||
grep $DLST $1 > $1.DL.tmp
|
|
||||||
}
|
|
||||||
|
|
||||||
UL () { # uplink does not require special fix
|
|
||||||
grep $ULST $1 > $1.UL.tmp.fix
|
|
||||||
}
|
|
||||||
|
|
||||||
DL $1
|
|
||||||
UL $1
|
|
||||||
|
|
||||||
FIX() { # add MO/MT marker from preceding line to inserted ONSETs so filtering works as expected
|
|
||||||
cat $1.DL.tmp | awk 'BEGIN{ FS=" h="; H="" } { if (NF > 1) { H = $2; print $1 "h=" $2 } else { print $1 ", h=" H } }' > $1.DL.tmp.fix
|
|
||||||
}
|
|
||||||
|
|
||||||
FIX $1
|
|
||||||
|
|
||||||
MO() { # filter MO call DL or UL logs
|
|
||||||
grep "h=$MO" $1.tmp.fix > $1.MO.raw
|
|
||||||
}
|
|
||||||
|
|
||||||
MT() { # filter MT call DL or UL logs
|
|
||||||
grep -v "h=$MO" $1.tmp.fix > $1.MT.raw
|
|
||||||
}
|
|
||||||
|
|
||||||
MO $1.DL
|
|
||||||
MT $1.DL
|
|
||||||
MO $1.UL
|
|
||||||
MT $1.UL
|
|
||||||
|
|
||||||
PREP() { # prepare logs for reformatting
|
|
||||||
cat $1.raw | cut -f2 -d')' | cut -f1 -d',' | cut -f2 -d'>' | sed 's/\[u32Fn/fn/' | sed 's/\[ u32Fn/fn/' | sed 's/fn = /fn=/' | sed 's/fn=//' | sed 's/\[Fn=//' | sed 's/ An Onset will be inserted.//' > $1.tmp1
|
|
||||||
}
|
|
||||||
|
|
||||||
PREP "$1.DL.MT"
|
|
||||||
PREP "$1.DL.MO"
|
|
||||||
PREP "$1.UL.MT"
|
|
||||||
PREP "$1.UL.MO"
|
|
||||||
|
|
||||||
RD() { # reformat DL logs for consistency checks
|
|
||||||
cat $1.tmp1 | sed "$D_FST" | sed "$D_SPE" | sed "$D_FS1" | sed "$D_FS2" | sed "$D_UIN" | sed "$D_FIN" | sed "$D_UPD" | sed "$D_INH" | sed "$D_RP1" | sed "$D_ONS" | sed "$D_EMP" | sed "$D_FAC" | sed "$D_FO1" | sed "$D_FO2" | sed "$D_FP2" > $1.tmp2
|
|
||||||
}
|
|
||||||
|
|
||||||
RU() { # reformat UL logs for consistency checks
|
|
||||||
cat $1.tmp1 | sed "$U_FST" | sed "$U_SPE" | sed "$U_FP1" | sed "$U_FP2" | sed "$U_UPD" | sed "$U_ONS" | sed "$U_NOD" | sed "$U_UIN" | sed "$U_FIN" | sed "$U_RAT" > $1.tmp2
|
|
||||||
}
|
|
||||||
|
|
||||||
RD "$1.DL.MT"
|
|
||||||
RD "$1.DL.MO"
|
|
||||||
RU "$1.UL.MT"
|
|
||||||
RU "$1.UL.MO"
|
|
||||||
|
|
||||||
SW() { # swap fields
|
|
||||||
cat $1.tmp2 | awk '{ print $2, $1 }' > $1
|
|
||||||
}
|
|
||||||
|
|
||||||
SW "$1.DL.MT"
|
|
||||||
SW "$1.DL.MO"
|
|
||||||
SW "$1.UL.MT"
|
|
||||||
SW "$1.UL.MO"
|
|
||||||
|
|
||||||
rm $1.*.tmp*
|
|
||||||
10
contrib/sysmobts-calib/Makefile
Normal file
10
contrib/sysmobts-calib/Makefile
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
CFLAGS=`pkg-config --cflags libosmocore` -Wall -Werror
|
||||||
|
LIBS=`pkg-config --libs libosmocore libosmogsm`
|
||||||
|
|
||||||
|
all: sysmobts-calib
|
||||||
|
|
||||||
|
sysmobts-calib: sysmobts-calib.o sysmobts-layer1.o
|
||||||
|
$(CC) $(CPPFLAGS) -o $@ $^ -lrt $(LIBS)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@rm -f sysmobts-calib *.o
|
||||||
@@ -318,16 +318,6 @@ static int calib_get_clock_error(void)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Empiric gps error determination. With revE and firmware v3.3
|
|
||||||
* the clock error for TCXO to GPS appears to have a different
|
|
||||||
* sign. The device in question doesn't have a networklisten mode
|
|
||||||
* so it is impossible to verify that this only applies to GPS.
|
|
||||||
*/
|
|
||||||
if (source == SuperFemto_ClkSrcId_GpsPps)
|
|
||||||
clkErr *= -1;
|
|
||||||
|
|
||||||
|
|
||||||
/* this is an absolute clock error */
|
/* this is an absolute clock error */
|
||||||
printf("The calibration value is: %d\n", clkErr);
|
printf("The calibration value is: %d\n", clkErr);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -310,36 +310,19 @@ int print_system_info()
|
|||||||
#ifdef FEMTOBTS_NO_BOARD_VERSION
|
#ifdef FEMTOBTS_NO_BOARD_VERSION
|
||||||
#define BOARD_REV(x) -1
|
#define BOARD_REV(x) -1
|
||||||
#define BOARD_OPT(x) -1
|
#define BOARD_OPT(x) -1
|
||||||
#define COMPILED_MAJOR (FEMTOBTS_API_VERSION >> 16)
|
|
||||||
#define COMPILED_MINOR ((FEMTOBTS_API_VERSION >> 8) & 0xff)
|
|
||||||
#define COMPILED_BUILD (FEMTOBTS_API_VERSION & 0xff)
|
|
||||||
#else
|
#else
|
||||||
#define BOARD_REV(x) x.u.systemInfoCnf.boardVersion.rev
|
#define BOARD_REV(x) x.u.systemInfoCnf.boardVersion.rev
|
||||||
#define BOARD_OPT(x) x.u.systemInfoCnf.boardVersion.option
|
#define BOARD_OPT(x) x.u.systemInfoCnf.boardVersion.option
|
||||||
#define COMPILED_MAJOR (SUPERFEMTO_API_VERSION >> 16)
|
|
||||||
#define COMPILED_MINOR ((SUPERFEMTO_API_VERSION >> 8) & 0xff)
|
|
||||||
#define COMPILED_BUILD (SUPERFEMTO_API_VERSION & 0xff)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
printf("Compiled against: v%u.%u.%u\n",
|
printf("DSP v%d.%d.%d FPGA v%d.%d.%d Rev: %d Option: %d\n",
|
||||||
COMPILED_MAJOR, COMPILED_MINOR, COMPILED_BUILD);
|
|
||||||
printf("Running DSP v%d.%d.%d FPGA v%d.%d.%d Rev: %d Option: %d\n",
|
|
||||||
INFO_DSP(prim).major, INFO_DSP(prim).minor, INFO_DSP(prim).build,
|
INFO_DSP(prim).major, INFO_DSP(prim).minor, INFO_DSP(prim).build,
|
||||||
INFO_FPGA(prim).major, INFO_FPGA(prim).minor, INFO_FPGA(prim).build,
|
INFO_FPGA(prim).major, INFO_FPGA(prim).minor, INFO_FPGA(prim).build,
|
||||||
BOARD_REV(prim), BOARD_OPT(prim));
|
BOARD_REV(prim), BOARD_OPT(prim));
|
||||||
|
|
||||||
if (COMPILED_MAJOR != INFO_DSP(prim).major || COMPILED_MINOR != INFO_DSP(prim).minor) {
|
|
||||||
printf("WARNING! WARNING! WARNING! WARNING! WARNING\n");
|
|
||||||
printf("You might run this against an incompatible firmware.\n");
|
|
||||||
printf("Continuing anyway but the result might be broken\n");
|
|
||||||
}
|
|
||||||
#undef INFO_DSP
|
#undef INFO_DSP
|
||||||
#undef INFO_FPGA
|
#undef INFO_FPGA
|
||||||
#undef BOARD_REV
|
#undef BOARD_REV
|
||||||
#undef BOARD_OPT
|
#undef BOARD_OPT
|
||||||
#undef COMPILED_MAJOR
|
|
||||||
#undef COMPILED_MINOR
|
|
||||||
#undef COMPILED_BUILD
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -437,6 +420,7 @@ int follow_sch(int band, int arfcn, int clock, int ref, HANDLE *layer1)
|
|||||||
prim.u.mphConnectReq.hLayer1 = *layer1;
|
prim.u.mphConnectReq.hLayer1 = *layer1;
|
||||||
prim.u.mphConnectReq.u8Tn = 0;
|
prim.u.mphConnectReq.u8Tn = 0;
|
||||||
prim.u.mphConnectReq.logChComb = GsmL1_LogChComb_IV;
|
prim.u.mphConnectReq.logChComb = GsmL1_LogChComb_IV;
|
||||||
|
printf("FIVE\n");
|
||||||
rc = send_recv_sig_prim(GsmL1_PrimId_MphConnectReq, &prim);
|
rc = send_recv_sig_prim(GsmL1_PrimId_MphConnectReq, &prim);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
printf("Failed to connect.\n");
|
printf("Failed to connect.\n");
|
||||||
15
contrib/sysmobts.service
Normal file
15
contrib/sysmobts.service
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=sysmocom sysmoBTS
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStartPre=/bin/sh -c 'echo 0 > /sys/class/leds/activity_led/brightness'
|
||||||
|
ExecStart=/usr/bin/sysmobts -s -c /etc/osmocom/osmo-bts.cfg
|
||||||
|
ExecStartPost=/bin/sh -c 'echo 0 > /sys/class/leds/activity_led/brightness'
|
||||||
|
ExecStartPost=/bin/sh -c 'cat /lib/firmware/sysmobts-v?.out > /dev/dspdl_dm644x_0'
|
||||||
|
Restart=always
|
||||||
|
RestartSec=2
|
||||||
|
|
||||||
|
# The msg queues must be read fast enough
|
||||||
|
CPUSchedulingPolicy=rr
|
||||||
|
CPUSchedulingPriority=1
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
EXTRA_DIST = \
|
|
||||||
lc15bts-mgr.service \
|
|
||||||
oc2gbts-mgr.service \
|
|
||||||
osmo-bts-lc15.service \
|
|
||||||
osmo-bts-oc2g.service \
|
|
||||||
osmo-bts-sysmo.service \
|
|
||||||
osmo-bts-trx.service \
|
|
||||||
osmo-bts-virtual.service \
|
|
||||||
sysmobts-mgr.service
|
|
||||||
|
|
||||||
if HAVE_SYSTEMD
|
|
||||||
SYSTEMD_SERVICES = osmo-bts-virtual.service
|
|
||||||
|
|
||||||
|
|
||||||
if ENABLE_SYSMOBTS
|
|
||||||
SYSTEMD_SERVICES += osmo-bts-sysmo.service sysmobts-mgr.service
|
|
||||||
endif
|
|
||||||
|
|
||||||
if ENABLE_TRX
|
|
||||||
SYSTEMD_SERVICES += osmo-bts-trx.service
|
|
||||||
endif
|
|
||||||
|
|
||||||
if ENABLE_LC15BTS
|
|
||||||
SYSTEMD_SERVICES += osmo-bts-lc15.service lc15bts-mgr.service
|
|
||||||
endif
|
|
||||||
|
|
||||||
systemdsystemunit_DATA = $(SYSTEMD_SERVICES)
|
|
||||||
endif # HAVE_SYSTEMD
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=osmo-bts manager for LC15 / sysmoBTS 2100
|
|
||||||
After=lc15-sysdev-remap.service
|
|
||||||
Wants=lc15-sysdev-remap.service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
NotifyAccess=all
|
|
||||||
WatchdogSec=21780s
|
|
||||||
Restart=always
|
|
||||||
RestartSec=2
|
|
||||||
|
|
||||||
# Make sure directories and symbolic link exist
|
|
||||||
ExecStartPre=/bin/sh -c 'test -d /mnt/storage/var/run/lc15bts-mgr || mkdir -p /mnt/storage/var/run/lc15bts-mgr ; test -d /var/run/lc15bts-mgr || ln -sf /mnt/storage/var/run/lc15bts-mgr/ /var/run'
|
|
||||||
# Make sure BTS operation hour exist
|
|
||||||
ExecStartPre=/bin/sh -c 'test -f /mnt/storage/var/run/lc15bts-mgr/hours-running || echo 0 > /mnt/storage/var/run/lc15bts-mgr/hours-running'
|
|
||||||
# Shutdown all PA correctly
|
|
||||||
ExecStartPre=/bin/sh -c 'echo disabled > /var/lc15/pa-state/pa0/state; echo disabled > /var/lc15/pa-state/pa1/state'
|
|
||||||
ExecStartPre=/bin/sh -c 'echo 0 > /var/lc15/pa-supply/max_microvolts; echo 0 > /var/lc15/pa-supply/min_microvolts'
|
|
||||||
|
|
||||||
ExecStart=/usr/bin/lc15bts-mgr -s -c /etc/osmocom/lc15bts-mgr.cfg
|
|
||||||
|
|
||||||
# Shutdown all PA correctly
|
|
||||||
ExecStopPost=/bin/sh -c 'echo disabled > /var/lc15/pa-state/pa0/state; echo disabled > /var/lc15/pa-state/pa1/state'
|
|
||||||
ExecStopPost=/bin/sh -c 'echo 0 > /var/lc15/pa-supply/max_microvolts; echo 0 > /var/lc15/pa-supply/min_microvolts'
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
Alias=osmo-bts-mgr.service
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=osmo-bts manager for OC-2G
|
|
||||||
After=oc2g-sysdev-remap.service
|
|
||||||
Wants=oc2g-sysdev-remap.service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
NotifyAccess=all
|
|
||||||
WatchdogSec=21780s
|
|
||||||
Restart=always
|
|
||||||
RestartSec=2
|
|
||||||
|
|
||||||
# Make sure directories and symbolic link exist
|
|
||||||
ExecStartPre=/bin/sh -c 'test -d /mnt/storage/var/run/oc2gbts-mgr || mkdir -p /mnt/storage/var/run/oc2gbts-mgr ; test -d /var/run/oc2gbts-mgr || ln -sf /mnt/storage/var/run/oc2gbts-mgr/ /var/run'
|
|
||||||
# Make sure BTS operation hour exist
|
|
||||||
ExecStartPre=/bin/sh -c 'test -f /mnt/storage/var/run/oc2gbts-mgr/hours-running || echo 0 > /mnt/storage/var/run/oc2gbts-mgr/hours-running'
|
|
||||||
# Shutdown all PA correctly
|
|
||||||
ExecStartPre=/bin/sh -c 'echo disabled > /var/oc2g/pa-state/pa0/state;'
|
|
||||||
#ExecStartPre=/bin/sh -c 'echo 0 > /var/oc2g/pa-supply/max_microvolts; echo 0 > /var/oc2g/pa-supply/min_microvolts'
|
|
||||||
|
|
||||||
ExecStart=/usr/bin/oc2gbts-mgr -s -c /etc/osmocom/oc2gbts-mgr.cfg
|
|
||||||
|
|
||||||
# Shutdown all PA correctly
|
|
||||||
ExecStopPost=/bin/sh -c 'echo disabled > /var/oc2g/pa-state/pa0/state;'
|
|
||||||
#ExecStopPost=/bin/sh -c 'echo 0 > /var/oc2g/pa-supply/max_microvolts; echo 0 > /var/oc2g/pa-supply/min_microvolts'
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
Alias=osmo-bts-mgr.service
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=osmo-bts for LC15 / sysmoBTS 2100
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
ExecStartPre=/bin/sh -c 'echo 1 > /sys/class/leds/usr0/brightness'
|
|
||||||
ExecStartPre=/bin/sh -c 'echo 1 > /sys/class/leds/usr1/brightness'
|
|
||||||
ExecStart=/usr/bin/osmo-bts-lc15 -t 2 -s -c /etc/osmocom/osmo-bts-lc15.cfg -M
|
|
||||||
ExecStopPost=/bin/sh -c 'echo 1 > /sys/class/leds/usr0/brightness'
|
|
||||||
ExecStopPost=/bin/sh -c 'echo 0 > /sys/class/leds/usr1/brightness'
|
|
||||||
Restart=always
|
|
||||||
RestartSec=2
|
|
||||||
RestartPreventExitStatus=1
|
|
||||||
|
|
||||||
# The msg queues must be read fast enough
|
|
||||||
CPUSchedulingPolicy=rr
|
|
||||||
CPUSchedulingPriority=1
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
Alias=osmo-bts.service
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=osmo-bts for OC-2G
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
ExecStartPre=/bin/sh -c 'echo 1 > /sys/class/leds/usr0/brightness'
|
|
||||||
ExecStartPre=/bin/sh -c 'echo 1 > /sys/class/leds/usr1/brightness'
|
|
||||||
ExecStart=/usr/bin/osmo-bts-oc2g -s -c /etc/osmocom/osmo-bts.cfg -M
|
|
||||||
ExecStopPost=/bin/sh -c 'echo 1 > /sys/class/leds/usr0/brightness'
|
|
||||||
ExecStopPost=/bin/sh -c 'echo 0 > /sys/class/leds/usr1/brightness'
|
|
||||||
Restart=always
|
|
||||||
RestartSec=2
|
|
||||||
RestartPreventExitStatus=1
|
|
||||||
|
|
||||||
# The msg queues must be read fast enough
|
|
||||||
CPUSchedulingPolicy=rr
|
|
||||||
CPUSchedulingPriority=1
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
Alias=osmo-bts.service
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=osmo-bts for sysmocom sysmoBTS
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
ExecStartPre=/bin/sh -c 'echo 0 > /sys/class/leds/activity_led/brightness'
|
|
||||||
ExecStart=/usr/bin/osmo-bts-sysmo -s -c /etc/osmocom/osmo-bts-sysmo.cfg -M
|
|
||||||
ExecStopPost=/bin/sh -c 'echo 0 > /sys/class/leds/activity_led/brightness'
|
|
||||||
ExecStopPost=/bin/sh -c 'cat /lib/firmware/sysmobts-v?.bit > /dev/fpgadl_par0 ; sleep 3s; cat /lib/firmware/sysmobts-v?.out > /dev/dspdl_dm644x_0; sleep 1s'
|
|
||||||
Restart=always
|
|
||||||
RestartSec=2
|
|
||||||
RestartPreventExitStatus=1
|
|
||||||
|
|
||||||
# The msg queues must be read fast enough
|
|
||||||
CPUSchedulingPolicy=rr
|
|
||||||
CPUSchedulingPriority=1
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
Alias=sysmobts.service
|
|
||||||
Alias=osmo-bts.service
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=Osmocom osmo-bts for osmo-trx
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
ExecStart=/usr/bin/osmo-bts-trx -s -c /etc/osmocom/osmo-bts-trx.cfg
|
|
||||||
Restart=always
|
|
||||||
RestartSec=2
|
|
||||||
|
|
||||||
# Let it process messages quickly enough
|
|
||||||
CPUSchedulingPolicy=rr
|
|
||||||
CPUSchedulingPriority=1
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=Osmocom GSM BTS for virtual Um layer based on GSMTAP/UDP
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
ExecStart=/usr/bin/osmo-bts-virtual -s -c /etc/osmocom/osmo-bts-virtual.cfg
|
|
||||||
Restart=always
|
|
||||||
RestartSec=2
|
|
||||||
|
|
||||||
# Let it process messages quickly enough
|
|
||||||
CPUSchedulingPolicy=rr
|
|
||||||
CPUSchedulingPriority=1
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=osmo-bts manager for sysmoBTS
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
ExecStart=/usr/bin/sysmobts-mgr -ns -c /etc/osmocom/sysmobts-mgr.cfg
|
|
||||||
Restart=always
|
|
||||||
RestartSec=2
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
Alias=osmo-bts-mgr.service
|
|
||||||
998
debian/changelog
vendored
998
debian/changelog
vendored
@@ -1,998 +0,0 @@
|
|||||||
osmo-bts (1.0.1) unstable; urgency=medium
|
|
||||||
|
|
||||||
[ Harald Welte ]
|
|
||||||
* rsl.c: Add missing #include of gsm0808.h
|
|
||||||
|
|
||||||
[ Oliver Smith ]
|
|
||||||
|
|
||||||
-- Oliver Smith <osmith@sysmocom.de> Wed, 27 Mar 2019 14:19:45 +0100
|
|
||||||
|
|
||||||
osmo-bts (1.0.0) unstable; urgency=medium
|
|
||||||
|
|
||||||
[ Stefan Sperling ]
|
|
||||||
* let osmo-bts log a special notice if OML connection is closed early
|
|
||||||
* log reception of PCU_IF_MSG_PAG_REQ messages from osmo-pcu
|
|
||||||
* update sysinfo copies in all lchans upon SACCH FILL
|
|
||||||
* preserve lchan-specific SI overrides on SACCH FILL
|
|
||||||
* fix timespec subtraction in compute_elapsed_us()
|
|
||||||
* fix conditions for sending fill frames during RTS IND
|
|
||||||
* send TCH/F fill frames in DTX mode (WIP)
|
|
||||||
* Revert "send TCH/F fill frames in DTX mode (WIP)"
|
|
||||||
* prevent potential NULL dereference in virtbts's tx_tchh_fn
|
|
||||||
* properly initialize si3 in test_is_ccch_for_agch_setup()
|
|
||||||
* add missing check of osmo_wqueue_enqueue() return value
|
|
||||||
|
|
||||||
[ Harald Welte ]
|
|
||||||
* scheduler_trx: Add reminders to use libosmocore functions
|
|
||||||
* cosmetic: it's n_r in check_for_first_ciphrd(), not n_s
|
|
||||||
* Add min/max/std-dev measurement reporting for TOA256
|
|
||||||
* debian/rules: Don't overwrite .tarball-version
|
|
||||||
* CBCH: Fix rejecting SMS-CB related RSL messages
|
|
||||||
* [sysmo,lc15]: Consider CBCH channel combinations in chan_nr_by_sapi()
|
|
||||||
* CBCH: Move processing via L1SAP
|
|
||||||
* CBCH: Implement CBCH support for osmo-bts-{trx,virtual}
|
|
||||||
* CBCH: Use llist_first_entry_or_null() instead of reinventing it
|
|
||||||
* l1sap/scheduler: Consistently print chan_nr as hex number
|
|
||||||
* CBCH: Fix CBCH via L1SAP for osmo-bts-{sysmo,octphy,litecell15}
|
|
||||||
* get_lchan_by_chan_nr(): Fix resolution of CBCH
|
|
||||||
* CBCH: Add FIXME comments on queue overflow/underflow handling
|
|
||||||
* CBCH: sprinkle some OMSO_ASSERT() and guard against talloc failure
|
|
||||||
* CBCH: Fix CBCH implementation for osmo-bts-trx
|
|
||||||
* CBCH: Some more scheduler_mframe cleanup
|
|
||||||
* ensure all config file examples are well-formed
|
|
||||||
* lc15bts_mgr_vty: Ensure writing well-formed config files
|
|
||||||
* paging_test: Fix AGCH/PCH split test for second half of 102 multiframe
|
|
||||||
* Fix computing CCCH block number from frame number
|
|
||||||
* sysmo, virtual: properly handle BS-AG-BLKS-RES as received from BSC
|
|
||||||
* scheduler_trx.c: Switch to osmo_timerfd() of libosmocore >= 0.12.0
|
|
||||||
* initial checkin of manuals to public repo
|
|
||||||
* Add link to Asciidoc source code of manual
|
|
||||||
* spelling: message discriminator, not descriminator
|
|
||||||
* osmobts-abis: Add Revision log regarding dynamic cannels
|
|
||||||
* Documentation on AMR RTP in case of DTX
|
|
||||||
* rtp-amr.adoc: TCH/AFS Uplink
|
|
||||||
* rtp-amr.adoc: TCH/AFS Downlink: Inhibiting
|
|
||||||
* rtp-amr: TCH/AHS Uplink: FACCH/H During DTX
|
|
||||||
* rtp-amr.adoc: New TCH/AHS downlink chapters
|
|
||||||
* rtp-amr.adoc: Fixes to Message Sequence Charts
|
|
||||||
* update osmo-bts-virtual documentation, now that code is merged
|
|
||||||
* vty-ref: Update URI of docbook 5.0 schema
|
|
||||||
* osmo-bts-trx/loops.c: Add comments documenting TA + MS power control loop
|
|
||||||
* osmo-bts-trx/loops.[ch]: Make functions "void" if they always return 0
|
|
||||||
* osmo-bts-trx/loops.c: Use lchan name based logging
|
|
||||||
* osmo-bts-trx/loops.c: Make code control flow more readable
|
|
||||||
|
|
||||||
[ Philipp Maier ]
|
|
||||||
* rtp: make port range configurable, assign correct port numbers
|
|
||||||
* octphy: add support for 16x oversampling mode
|
|
||||||
* cosmetic: separate measurement testcase definitions
|
|
||||||
* cosmetic: unify measurement sample handling in one function
|
|
||||||
* measurement: make sure state is reset on chan act.
|
|
||||||
* measurement: make sure measurement interval end is detected
|
|
||||||
* measurement: fix measurement interval end detection
|
|
||||||
* osmo_mcast_sock: make sure SO_REUSEADDR is applied
|
|
||||||
* cosmetic: fix sourcecode formatting
|
|
||||||
* cosmetic: remove wrong comment
|
|
||||||
* measurement: add unit tests for is_meas_complete()
|
|
||||||
* measurement: fix sub frame table for TCH/H, SS1
|
|
||||||
* measurement: add unit tests for ts45008_83_is_sub()
|
|
||||||
* measurement: fix is_meas_overdue() and increase testcoverage
|
|
||||||
* cosmetic: rename *_meas_rep_fn10* to *_meas_rep_fn10*_by_*s
|
|
||||||
* cosmetic: test_is_meas_overdue() does not test is_meas_complete()
|
|
||||||
* measurement: substitue missing measurements
|
|
||||||
* measurement: add SUB measurements in test_lchan_meas_process_measurement
|
|
||||||
* paging: add unit-test to check different bs_ag_blks_res settings
|
|
||||||
* measurement: display fn_mod when measuremnet is added
|
|
||||||
* cosmetic: fix typo in comment
|
|
||||||
* measurement: remove missed interval end detection
|
|
||||||
* measurement: fix unit-test test_lchan_meas_process_measurement
|
|
||||||
|
|
||||||
[ Pau Espin Pedrol ]
|
|
||||||
* bts.c: Log name of RR msg type instead of value
|
|
||||||
* bts.c: Add missing include for gsm48_rr_msg_name
|
|
||||||
* bts_agch_enqueue: Decrease queue len hard_limit from 1000 to 100
|
|
||||||
* compact AGCH queue: Drop too msg diff than IMM_ASS_REJ
|
|
||||||
* Send DELETE_IND when dropping Imm Assign pending message
|
|
||||||
* lc15: Use correct type for hLayer1 field
|
|
||||||
* lc15: Fix incorrect cast of hLayer1
|
|
||||||
* pcu_sock: Log event pcu_sock created
|
|
||||||
* l1_if.c: Move decl of vars used in conditional macro
|
|
||||||
* sysmo: vty: Add missing include for lchan_deactivate
|
|
||||||
* sysmo: Fix memcmp in RF-MUTE.req for superfemto < 3.6.0
|
|
||||||
* sysmo: l1if_mute_rf: Declare vars inside ifdef section
|
|
||||||
* sysmo: l1_if.c: Avoid decl of unused vars and funcs with femtobts_v2.7 build
|
|
||||||
* sysmo: calib_file.c: Avoid decl of unused vars and funcs with femtobts_v2.7 build
|
|
||||||
* jenkins_*.sh: add --enable-werror to configure flags
|
|
||||||
* doc: Move calypsoBTS example into trx subdir
|
|
||||||
* build: Install example cfg files
|
|
||||||
* debian: Package installed example doc files
|
|
||||||
* Remove unneeded direct libortp dependency
|
|
||||||
* debian: Make osmo-bts-* packages conflict with old osmo-bts package
|
|
||||||
* debian: Create dbg package for osm-bts-virtual
|
|
||||||
* rsl: Use value_string to print encryption algo name
|
|
||||||
* l1sap: add_l1sap_header: Compact msgb_push ret assignment
|
|
||||||
* sched: Log RX->RTP packet like we do in add_l1sap_header
|
|
||||||
* scheduler: Log error on fn jump
|
|
||||||
* trx: scheduler: Keep RTP clock up to date while in DTXu pause
|
|
||||||
* Move systemd service to contrib/systemd
|
|
||||||
* Install systemd services with autotools
|
|
||||||
* Install sample cfg file to /etc/osmocom
|
|
||||||
* doc/examples/Makefile: Install bts-mgr cfg files used by systemd services
|
|
||||||
* lc15: vty: Add missing include for lchan_deactivate
|
|
||||||
* lc15: fsync requires fd instead of file stream
|
|
||||||
* lc15: rewrite and refactor code to print hwversion description
|
|
||||||
* lc15: led_sleep_cb: pass correct ptr to llist_move_tail
|
|
||||||
* abis: inp_s_cbfn: Improve logging signal related information
|
|
||||||
* lchan_meas_check_compute: Log value during incorrect num of SUB measurementes detected
|
|
||||||
* l1sap: Log name of chan_nr instead of hex value
|
|
||||||
* rsl_rx_chan-activ: Improve logging information
|
|
||||||
* gsm_pchan2chan_nr: Fix conversion of CCCH_LCHAN
|
|
||||||
* Convert lchan CCCH_LCHAN to chan_nr BCCH and viceversa
|
|
||||||
* {oc2g,sysmo}-mgr-calib: Fix build against gpsd >= 3.18
|
|
||||||
* bts: Allocate TRX for BTS dynamically, deprecate -t
|
|
||||||
* bts-trx: trx_if: Use struct to store CTRL msg parsed responses
|
|
||||||
* bts-trx: setup timer once at creation time
|
|
||||||
* common: Implement OML for trx_set_available(1)
|
|
||||||
* bts-trx: Allow re-try without exit if POWERON fails in osmo-trx
|
|
||||||
* bts: Fix TRX0 param initialization
|
|
||||||
* rsl: Log lchan state during dynts PDCH->TCH
|
|
||||||
* rsl: Avoid sending ipa PDCH DEACT NACK followed by ACK
|
|
||||||
* bts-trx: early return on POWERON success
|
|
||||||
* cosmetic: fix whitespace
|
|
||||||
* bts_model: Allow TS connect to be processed asynchronously
|
|
||||||
* OsmoBTS/chapters/configuration.adoc: Add bts index in example
|
|
||||||
* OsmoBTS: Update osmotrx ip to diff between local and remote
|
|
||||||
* rtp-amr: Describe requirement to recieve all PH-DATA.ind events
|
|
||||||
* rtp-amr: Fix typo and trailing whitespace
|
|
||||||
* Allow easily disabling GFDL references
|
|
||||||
* OsmoBTS: bts-models: Add Lime Microsystems devices as supported osmo-trx
|
|
||||||
* Introduce chapter trx_if.adoc and add it to OsmoTRX and OsmoBTS
|
|
||||||
* bts: Fix typo
|
|
||||||
* oc2g: Fix headers missing during make distcheck
|
|
||||||
* bts-trx: (n)ack PDCH DEACT only after TRX answered SETSLOT
|
|
||||||
* sysmobts_mgr: Prepare code for gpsd < 2.96 support
|
|
||||||
* sysmobts_mgr: Add support for gpsd < 2.96
|
|
||||||
* rsl: Send PDCH ACT NACK if TCH chan is still active
|
|
||||||
|
|
||||||
[ Vadim Yanitskiy ]
|
|
||||||
* Clarify frame loss counter for l1sched_chan_state
|
|
||||||
* osmo-bts-trx/l1_if.c: cosmetic: fix typo in debug msg
|
|
||||||
* common/rsl.c: tweak log message in lapdm_rll_tx_cb()
|
|
||||||
* contrib/jenkins_*.sh: drop rudimentary '--with-osmo-pcu'
|
|
||||||
* common/pcu_sock.c: cosmetic: explicitly address lchan
|
|
||||||
* common/scheduler.c: track TDMA frame loss per logical channels
|
|
||||||
* common/vty.c: fix deprecated osmo_str2lower() usage
|
|
||||||
* Fix deprecated gsm_arfcn2band(), use gsm_arfcn2band_rc()
|
|
||||||
|
|
||||||
[ Neels Hofmeyr ]
|
|
||||||
* cosmetic: abis.c: typo "exixt"
|
|
||||||
* fix ip.access dyn TS for osmo-bts-trx
|
|
||||||
* fix RSL Chan Mode Modif for dyn TS
|
|
||||||
* vty: mark 'rtp bind-ip' deprecated, not hidden
|
|
||||||
* Importing history from osmo-gsm-manuals
|
|
||||||
* OsmoBTS: typo x2 ('Objects Classes' -> 'Object Classes')
|
|
||||||
* OsmoBTS: fix typos, streamline language style
|
|
||||||
* OsmoBTS: s/content of this attribute/this attribute/
|
|
||||||
* OsmoBTS: explain IEs marked 'ignored' *and* 'Received'
|
|
||||||
* abis/oml.doc: remove duplicate sentence part
|
|
||||||
* OsmoBTS: typos
|
|
||||||
* OsmoBTS: wording tweak
|
|
||||||
* OsmoBTS: hardware support: remove dup, tweak wording
|
|
||||||
* Document dynamic channels on Abis, both IPA and Osmocom style
|
|
||||||
* OsmoBTS/abis/rsl: fix subtitle for ladder diagram of osmo dyn switchover
|
|
||||||
* OsmoBTS/abis/dyn_ts_osmocom_style.msc: adjust PDCH Act ack
|
|
||||||
* OsmoBTS/abis/rsl.adoc: fix missing section header
|
|
||||||
* OsmoBTS/chapters/dynamic-timeslots.adoc: Remove obsolete links
|
|
||||||
* osmobts-usermanual.adoc: fix link to abis.adoc chapter
|
|
||||||
* OsmoBTS/chapters/configuration.adoc: fix index numbering
|
|
||||||
* OsmoBTS/abis/rsl: cosmetic: 'IPA style'
|
|
||||||
* OsmoBTS/abis/rsl: add missing info for Osmocom Dyn Channels
|
|
||||||
* make clean: also remove generated image files
|
|
||||||
* add 'make check' target
|
|
||||||
* OsmoBTS/abis/rsl: combine separate dyn ts sections
|
|
||||||
* fix 'make clean': shell glob, ignore failure
|
|
||||||
* OsmoBTS/abis/rsl: split dyn TS ladder diagrams to fit on page
|
|
||||||
* fix build: abis: re-add dependencies
|
|
||||||
* dynamic timeslots: add BSC level config instructions
|
|
||||||
* refactor Makefile build rules, don't use the FORCE
|
|
||||||
|
|
||||||
[ Keith Whyte ]
|
|
||||||
* log: add error log for RSL Chan Mode Modif
|
|
||||||
* fix handling of odd pchans in bts_supports_cm()
|
|
||||||
|
|
||||||
[ Omar Ramadan ]
|
|
||||||
* Add OC-2G BTS sources
|
|
||||||
|
|
||||||
[ Max ]
|
|
||||||
* osmo-bts-trx: print TRX socket addresses in 'show transceiver'
|
|
||||||
* Fix type mismatch
|
|
||||||
* Drop unused function
|
|
||||||
* Add OsmoBTS control interface description
|
|
||||||
* Move RTP AMR doc to top level
|
|
||||||
* Add DTX implementation details to RTP AMR
|
|
||||||
* Sync DTX FSM with OsmoBTS code
|
|
||||||
|
|
||||||
[ Holger Hans Peter Freyther ]
|
|
||||||
* OsmoBTS: Fix the author name and mail address
|
|
||||||
|
|
||||||
[ Jonathan Brielmaier ]
|
|
||||||
* fix various typos across all manuals
|
|
||||||
|
|
||||||
[ Daniel Willmann ]
|
|
||||||
* Add section about configuring power-ramping
|
|
||||||
* OsmoBTS: Print VTY command in fixed-width font
|
|
||||||
* OsmoBTS: Fix typo
|
|
||||||
|
|
||||||
[ Alexander Couzens ]
|
|
||||||
* OsmoBTS: add vty reference documentation
|
|
||||||
* OsmoBTS: generate osmobts-abis.pdf again
|
|
||||||
|
|
||||||
[ Ivaylo Kostov ]
|
|
||||||
* BSC,BTS: add diagrams of PCU-BTS-NITB-SGSN relationships
|
|
||||||
|
|
||||||
[ Philipp ]
|
|
||||||
* Describe how to run multiple instances of osmo-nitb and osmo-bts
|
|
||||||
|
|
||||||
[ Oliver Smith ]
|
|
||||||
* build manuals moved here from osmo-gsm-manuals.git
|
|
||||||
* Fix DISTCHECK_CONFIGURE_FLAGS override
|
|
||||||
* contrib/jenkins_*.sh: build and publish manuals
|
|
||||||
* contrib: fix makedistcheck with disabled systemd
|
|
||||||
|
|
||||||
-- Harald Welte <laforge@gnumonks.org> Sun, 20 Jan 2019 21:13:37 +0100
|
|
||||||
|
|
||||||
osmo-bts (0.8.1) unstable; urgency=medium
|
|
||||||
|
|
||||||
[ Neels Hofmeyr ]
|
|
||||||
* cosmetic: dyn TS: clarify rsl_tx_rf_rel_ack() with a switch
|
|
||||||
* dyn TS: fix TCH/F_TCH/H_PDCH: properly record release of PDCH TS
|
|
||||||
* dyn TS: rx_rf_chan_rel: properly mark PDCH rel when no PCU, clarify
|
|
||||||
* dyn TS: clear TCH state upon reconnecting as PDCH
|
|
||||||
* cosmetic: dyn TS: clarify chan_nr composition
|
|
||||||
* ignore RSL RF CHAN REL for inactive lchans
|
|
||||||
* fix RSL Chan Activ Nack messages
|
|
||||||
* ip.access dyn ts: properly NACK a PDCH ACT on a still active lchan
|
|
||||||
* add/improve various logging around dyn ts
|
|
||||||
* dyn TS: be less strict on chan_nr, to allow arbitrary pchan switches
|
|
||||||
|
|
||||||
[ Stefan Sperling ]
|
|
||||||
* send a State Changed Event Report when rf is locked/unlocked
|
|
||||||
|
|
||||||
[ Harald Welte ]
|
|
||||||
* rsl: log errors when parsing of encryption information fails
|
|
||||||
* rsl: Make channel activation fail if encryption algorithm not supported
|
|
||||||
* rsl: Properly NACK CHAN_ACKT / MODE_MODIFY
|
|
||||||
* rsl: If CHAN ACT or MODE MODIF fails, send respective NACK
|
|
||||||
* osmo-bts-trx: Enable A5/3 cipher support
|
|
||||||
|
|
||||||
-- Pau Espin Pedrol <pespin@sysmocom.de> Tue, 15 May 2018 14:08:47 +0200
|
|
||||||
|
|
||||||
osmo-bts (0.8.0) unstable; urgency=medium
|
|
||||||
|
|
||||||
[ Neels Hofmeyr ]
|
|
||||||
* vty: skip installing cmds now always installed by default
|
|
||||||
* jenkins_common.sh: fix build_bts distcheck for more than one conf_flag
|
|
||||||
* fix build: tests/sysmobts: add missing -I$(SYSMOBTS_INCDIR)
|
|
||||||
* fix handover: handle_ph_ra_ind(): evaluate ra_ind before msgb_trim()
|
|
||||||
* implement support for 3-digit MNC with leading zeros
|
|
||||||
* configure: add --enable-werror
|
|
||||||
* use osmo_init_logging2() with proper talloc ctx
|
|
||||||
|
|
||||||
[ Pau Espin Pedrol ]
|
|
||||||
* lc15: Fix cfg indentation
|
|
||||||
* l1sap: Fix abort on big RTP packet received
|
|
||||||
* bts-trx: trx_ctrl_cmd: Simplify var assignment logic
|
|
||||||
* bts-trx: Avoid enqueueing consecutive duplicate messages to TRX
|
|
||||||
* Fix malformed Resource Indication packet
|
|
||||||
* debian/control: Remove uneeded dep libosmo-netif-dev
|
|
||||||
* jenkins.sh: Disable building doxygen for deps
|
|
||||||
* oml.c: Fix use of htons instead of ntohs
|
|
||||||
* bts-trx: trx_if.c: Log timedout+retransmitted CMD
|
|
||||||
* bts-trx: trx_if.c: trx_ctrl_read_cb: Move error handling to end of func
|
|
||||||
* bts-trx: trx_if.c: Improve parsing of received RSP messages from TRX
|
|
||||||
* bts-trx: Detect duplicated responses for retransmitted commands
|
|
||||||
* gsm_pchan2chan_nr: move warning to pragma message and track issue
|
|
||||||
* Remove unused variables
|
|
||||||
* bts-trx: scheduler_trx.c: Fix missing header
|
|
||||||
* l1sap.c: l1sap_tch_rts_ind: Remove unused variables
|
|
||||||
* octphy: octpkt.c: Remove unused static functions
|
|
||||||
* vty.c: Remove warning message
|
|
||||||
* virtual: l1_if.c: Remove unneeded warning message
|
|
||||||
* main.c: bts_main: fix typo in error message
|
|
||||||
* l1sap: Validate incoming RTP payload, drop bw-efficient AMR
|
|
||||||
* l1sap: Avoid assumption that l1sap is at head of msgb
|
|
||||||
* contrib: jenkins_bts_model: Fix bashism expr
|
|
||||||
* Include missing headers for osmo_init_logging2
|
|
||||||
* common/sysinfo.c: Fix no return on on-void function
|
|
||||||
* gsm_data_shared.h: Remove unused enum gsm_paging_event
|
|
||||||
* scheduler_trx: Fix signed integer overflow in clock calculations
|
|
||||||
|
|
||||||
[ Harald Welte ]
|
|
||||||
* trx: Better be safe than sorry before calling strlen
|
|
||||||
* trx: Avoid NULL+1 dereference in trx_ctrl_read_cb()
|
|
||||||
* trx: Don't call osmo_fr_check_sid with negative 'rc'
|
|
||||||
* trx: Don't assume phy_instance_by_num() returns non-NULL
|
|
||||||
* l1sap: fix wrong return value of is_fill_frame()
|
|
||||||
* measurement.c: Fix various typos in comments
|
|
||||||
* Comments on individual members of struct gsm_abis_mo
|
|
||||||
* scheduler: Harmonize log line format; Always print TS name + decoded FN
|
|
||||||
* scheduler_trx: L1P is for PH (data), L1M for MPH (control)
|
|
||||||
* l1sap: Fix log subsystem: Use DRTP for RTP related bits, L1C for MPH
|
|
||||||
* measurment.c: Introduce INFO category for DMEAS logging
|
|
||||||
* osmo-bts-octphy: Remove bogus warning about BS_AG_BLKS_RES
|
|
||||||
* rsl.c: Log RTP socket related errors as DRTP, not DRSL
|
|
||||||
* Put useful information in RTCP SDES.
|
|
||||||
* osmo-bts-trx: Fix reported frame number during PRIM_INFO_MEAS
|
|
||||||
* DTX: avoid illegal character contained in DTX FSM allocation which causes BTS crash
|
|
||||||
* gsm_lchan: remove unused member fields
|
|
||||||
* Add 'show (bts|trx|ts|lchan)' commands
|
|
||||||
* Print much more information during 'show lchan'
|
|
||||||
* vty: don't print "Bound IP / Port" if it isn't bound [yet]
|
|
||||||
* osmo-bts: Add talloc context introspection via VTY
|
|
||||||
* sysmo: Fix compiler warnings in eeprom.c
|
|
||||||
* sysmo+lc15: Add missign include for readv/writev
|
|
||||||
* trx: make l1if_fill_meas_res() static
|
|
||||||
* RSL: Properly reject RSL CHAN_NR IE for incompatible PCHAN
|
|
||||||
* RSL: Ensure we don't accept DCHAN messages for CCHAN
|
|
||||||
* osmo-bts-virtual: Shut down gracefully on socket creation failure
|
|
||||||
* osmo-bts-virtual: Generate PRIM_INFO_MEAS (with bogus values)
|
|
||||||
* Introduce + use LOG/DEBUGP with frame number prefixing/printing
|
|
||||||
* osmo-bts-virtual: Make use of LOGL1S() macro for context
|
|
||||||
* osmo-bts-virtual: Make sure PRIM_INFO_MEAS have non-zero frame number
|
|
||||||
* scheduler.c: Factor out find_sched_mframe_idx() function
|
|
||||||
* scheduler: add trx_sched_is_sacch_fn() function
|
|
||||||
* Revert "measurement: fix measurement computation"
|
|
||||||
* measurement.c: Hand Frame Number into measurement computation
|
|
||||||
* l1sap: Pass is_sub from L1 primitive into the Uplink Measurement
|
|
||||||
* osmo-bts-trx: Add missing frame number to l1if_process_meas_res()
|
|
||||||
* scheduler.c: Print message when burst substitution happens
|
|
||||||
* load_indication: Fix start of load indication timer
|
|
||||||
* RSL: Implement DELETE INDICATION on AGCH overflow
|
|
||||||
* RSL: Send ERROR REPORT on too short/truncated messages + wrong discriminator
|
|
||||||
* BTS: add rate_ctr about CCCH (paging, agch, pch)
|
|
||||||
* paging: Drop + Log paging requests for non-existant paging groups
|
|
||||||
* paging.c: Fix encoding of optional Mobile ID RR PAGING TYPE 1 / 2
|
|
||||||
* rsl: Improve ERROR REPORTing
|
|
||||||
* paging: Fix encoding of PAGING TYPE 3 Rest Octets
|
|
||||||
* RSL IPA DLCX: Avoid null-pointer dereference
|
|
||||||
* RSL: Fix encoding of ConnectionID in IPA_DLCX_ACK
|
|
||||||
* RSL IPA DLCX: Avoid another null-pointer dereference
|
|
||||||
* measurement.c: Fix sdcch4_meas_rep_fn102 / sdcch8_meas_rep_fn102
|
|
||||||
* counters: split rach:sent into rach:drop, rach:ho, rach:cs and rach:ps
|
|
||||||
* octphy: Remove code duplication for BER / RSSI conversion
|
|
||||||
* {sysmo,lc15}: Correctly report BER to L1SAP in INFO_MEAS_IND
|
|
||||||
* {sysmo,lc15}: Fix RACH reporting in combined CBCH case
|
|
||||||
* split scheduler_mframe.c from scheduler.c
|
|
||||||
* measurement: Compute RX{LEV,QUAL}-SUB for SDCCH and non-AMR TCH
|
|
||||||
* measurement.c: Don't silently copy "FULL" measurements to "SUB"
|
|
||||||
* scheduler: Add missing \n at end of LOG statement
|
|
||||||
* Move rach_busy counting above L1SAP
|
|
||||||
* RACH decoding: Use BER threshold for RACH ghost detection
|
|
||||||
* trx/scheduler: Use integer math for TOA (Timing of Arrival)
|
|
||||||
* measurement.c: higher-precision TA/TOA math
|
|
||||||
* L1SAP: Increase resolution of reported burst timing
|
|
||||||
* measurement: Keep average of high-accurate ToA value in lchan
|
|
||||||
* Add high-accuracy ToA value to Uplink Measurement Reports
|
|
||||||
* pcu_sock: Discard messages that are too short
|
|
||||||
* pcu_sock: Don't overflow the timeslot array
|
|
||||||
* pcu_sock: Log an error message and discard PCU primitives for BTS != 0
|
|
||||||
* pcu_sock: LOG + drop DATA.req from PCU for non-PDCH timeslot
|
|
||||||
* pcu_sock: LOG + drop PCU DATA.req for inactive lchan
|
|
||||||
* sysinfo.c: SI1 is optional; Send SI2 at TC=0 if no SI1 exists
|
|
||||||
* sysmobts: Compatibility with older firmware versions
|
|
||||||
* cosmetic: Document some SI scheduling related function API
|
|
||||||
* sysinfo: Fix scheduling of downlink SACCH information
|
|
||||||
* gsm_data_shared: Remove unused definitions/members/functions
|
|
||||||
* cosmetic: Move agch_queue to sub-structure of gsm_bts_role_bts
|
|
||||||
* Get rid of 'struct gsm_bts_role_bts'
|
|
||||||
* virtual: Correctly set+report BTS variant in OML attributes
|
|
||||||
* Add 'osmo-bts-omldummy' to bring up only OML without RSL
|
|
||||||
* fix inverted logic bug in omldummy patch
|
|
||||||
* omldummy: Suppress RSL transmission errors
|
|
||||||
* debian: Split osmo-bts-virtual from osmo-bts-trx
|
|
||||||
* fox chan_nr_is_dchan() for RSL_CHAN_OSMO_PDCH
|
|
||||||
* rsl_tx_dyn_pdch_ack: Add missing FRAME_NR information element
|
|
||||||
* fix activation of osmocom-style dynamic PDCH as TCH/F or TCH/H
|
|
||||||
|
|
||||||
[ Philipp Maier ]
|
|
||||||
* octphy: override firmware version check
|
|
||||||
* cosmetic: meas_test: fix section comment
|
|
||||||
* cosmetic: tests/Makefile.am: remove excess whitespace
|
|
||||||
* cosmetic: tests/power: remove unused var "ret"
|
|
||||||
* cosmetic: tests/agch: remove unused var "static_ilv"
|
|
||||||
* octphy: l1_oml: check returncode of trx_by_l1h()
|
|
||||||
* meas_test: fix header file references
|
|
||||||
* rsl: fix double-free in rsl_rx_mode_modif()
|
|
||||||
* fix nullpointer deref in rsl_tx_mode_modif_nack()
|
|
||||||
* rsl: do not allow MODE MODIFY request with unsupp. codec/rate
|
|
||||||
* gsm_data_shared: extend bts feature list with speech codecs
|
|
||||||
* octphy: ensure all BTS models set features
|
|
||||||
* vty: display bts features in vty command show bts
|
|
||||||
* bts: use feature list instead of speech codec table
|
|
||||||
* octphy: replace #warning with #pragma message
|
|
||||||
* ipac: fix log output
|
|
||||||
* rsl: remove unused variable
|
|
||||||
* l1_tch: remove dead code
|
|
||||||
* cosmetic: remove dead code
|
|
||||||
* cosmetic: remove unused variable
|
|
||||||
* cosmetic: remove unused variable in osmo-bts-omldummy/main.c
|
|
||||||
* octphy: integrate octasics latest header release
|
|
||||||
* osmo-bts-trx: perform error concealment for FR frames
|
|
||||||
|
|
||||||
[ Max ]
|
|
||||||
* Remove leftover comments and checks
|
|
||||||
* Log filenames on L1 errors
|
|
||||||
* Add --enable-sanitize configure option
|
|
||||||
* Use existing function to obtain TSC
|
|
||||||
* Remove BSC-specific parts
|
|
||||||
* Print FN delta on L1 errors
|
|
||||||
* Move sysmobts-calib into osmo-bts-sysmo
|
|
||||||
* Allow specifying sysmocom headers explicitly
|
|
||||||
* fix build: tests/misc: missing libosmo-abis and -trau flags
|
|
||||||
* Enable optional static builds
|
|
||||||
* Remove unneeded LIBOSMOCORE_CFLAGS from tests
|
|
||||||
* sysmobts: use proper includes for sbts2050 test
|
|
||||||
* Move -I inside *INCDIR variable
|
|
||||||
* sysmobts: remove weird default header location
|
|
||||||
* sysmobts: move header check to appropriate place
|
|
||||||
* CI: drop unused OsmoPCU dependency
|
|
||||||
* Enable sanitize for CI tests
|
|
||||||
* Add helper to get BCC from BSIC
|
|
||||||
* osmo-bts-trx: init nbits to know value
|
|
||||||
* osmo-bts-trx: ignore frame offset error on startup
|
|
||||||
|
|
||||||
[ Vadim Yanitskiy ]
|
|
||||||
* doc/examples: add CalypsoBTS configuration example
|
|
||||||
* common/pcu_sock.c: fix double field assignment
|
|
||||||
* scheduler_trx.c: remove ToA (Time of Arrival) hack
|
|
||||||
* common/l1sap.c: increase the BTS_CTR_RACH_DROP in RACH BER check
|
|
||||||
* common/l1sap.c: increment valid RACH counter after all checks
|
|
||||||
* common/l1sap.c: clean up noise / ghost RACH filtering
|
|
||||||
* common/l1sap.c: perform noise / ghost filtering for handover RACH
|
|
||||||
* common/l1sap.c: limit the minimal ToA for RACH bursts
|
|
||||||
* common/vty.c: remove unused variables
|
|
||||||
* common/main.c: track talloc NULL contexts by default
|
|
||||||
|
|
||||||
[ Alexander Huemer ]
|
|
||||||
* cosmetic: Makefile.am whitespace
|
|
||||||
* various Makefile.am: add missing CFLAGS
|
|
||||||
* gitignore: add missing entries
|
|
||||||
|
|
||||||
[ Stefan Sperling ]
|
|
||||||
* Cosmetic fixes for power ramping code.
|
|
||||||
* respond with NACK for non-hopping BTS with multiple ARFCN
|
|
||||||
* cosmetic: fix typos in src/common/oml.c
|
|
||||||
* return NACK codes instead of errno values from oml_tx_attr_resp()
|
|
||||||
|
|
||||||
[ Alexander Couzens ]
|
|
||||||
* pcuif_proto: correct indention of gsm_pcu_if_data
|
|
||||||
* pcu_if: move definition PCU_SOCK_DEFAULT into pcuif_proto.h
|
|
||||||
* pcuif_proto: add version 8 features
|
|
||||||
|
|
||||||
[ Keith ]
|
|
||||||
* osmo-bts-sysmo eeprom.c Restore ability to read/write EEPROM
|
|
||||||
|
|
||||||
-- Pau Espin Pedrol <pespin@sysmocom.de> Thu, 03 May 2018 17:02:19 +0200
|
|
||||||
|
|
||||||
osmo-bts (0.7.0) unstable; urgency=medium
|
|
||||||
|
|
||||||
[ Max ]
|
|
||||||
* Use value string check from osmo-ci
|
|
||||||
* Support sending SI13 to PCU
|
|
||||||
* Support removing SI13 from PCU
|
|
||||||
* trx: avoid deactivating lchan on LCHAN_REL_ACT_REACT
|
|
||||||
* Check readv() return value to prevent crash
|
|
||||||
* OML: print actual type of report sent to BSC
|
|
||||||
* Replace dead code
|
|
||||||
* vty: print version and description for each phy
|
|
||||||
* Remove build dependency on legacy OpenBSC
|
|
||||||
* Fix multiple SI2q reception
|
|
||||||
* jenkins: remove openbsc dependency
|
|
||||||
* sysmo: use clock calibration source wrapper
|
|
||||||
* sysmo: don't override clock source with defaults
|
|
||||||
* Fix race condition in attribute reporting
|
|
||||||
* Move power loop to generic tests
|
|
||||||
* Make power test more verbose
|
|
||||||
|
|
||||||
[ Neels Hofmeyr ]
|
|
||||||
* vty: mgr: sysmobts, lc15: install default commands for ACT_NORM_NODE
|
|
||||||
* osmo-bts-trx: vty: various fixes of 'write file' and doc
|
|
||||||
* jenkins: use osmo-clean-workspace.sh before and after build
|
|
||||||
|
|
||||||
[ Pau Espin Pedrol ]
|
|
||||||
* l1sap: Improve log msg when frame diff >1
|
|
||||||
* vty: Print string for Administrative state
|
|
||||||
|
|
||||||
[ Harald Welte ]
|
|
||||||
* Fix Downlink AMR FSM name to avoid illegal space character
|
|
||||||
* update dependencies to latest libosmo-*
|
|
||||||
* configure.ac: Fix Mailing list address
|
|
||||||
|
|
||||||
-- Harald Welte <laforge@gnumonks.org> Sat, 28 Oct 2017 20:53:21 +0200
|
|
||||||
|
|
||||||
osmo-bts (0.6.0) unstable; urgency=medium
|
|
||||||
|
|
||||||
[ Holger Hans Peter Freyther ]
|
|
||||||
* Initial release.
|
|
||||||
* misc: Ignore files generated by a debian packaging build
|
|
||||||
* jenkins: Add the build script from jenkins here
|
|
||||||
* jenkins: Add the build script from jenkins here
|
|
||||||
* sysmobts: Add the barebox boot state reservation
|
|
||||||
* sysmobts: Fix eeprom padding before gpg key
|
|
||||||
* ci/spatch: Remove the "static" analysis handling
|
|
||||||
* oct: Attempt to enable the Octphy for the osmo-bts-oct build
|
|
||||||
* debian: Use the header files installed by openbsc-dev
|
|
||||||
* build: Do not require more headers from OpenBSC
|
|
||||||
* sysmobts: Make reservation for mode/netmask/ip and suc
|
|
||||||
* sysmobts: Store a simple network config in the EEPROM as well
|
|
||||||
|
|
||||||
[ Max ]
|
|
||||||
* Ensure TRX invariant
|
|
||||||
* Use libosmocore function for uplink measurements
|
|
||||||
* Fix debug output
|
|
||||||
* Fix RTP timestamps in case of DTX
|
|
||||||
* Add DTXd support for sysmoBTS and LC15
|
|
||||||
* Use libosmocodec for AMR RTP
|
|
||||||
* octphy: Use the app. info. defaults as base
|
|
||||||
* Fix debug output
|
|
||||||
* DTXd: store/repeat last SID
|
|
||||||
* DTXd: store/repeat last SID
|
|
||||||
* DTXu: mark beginning of speech burst in RTP
|
|
||||||
* Fix OML activation
|
|
||||||
* TRX: Add vty command to power on/off transceiver
|
|
||||||
* TRX: add configuration example
|
|
||||||
* Add .gitreview
|
|
||||||
* DTX: add support for AMR/HR
|
|
||||||
* Move copy-pasted code into common part
|
|
||||||
* Use libosmocodec functions for AMR
|
|
||||||
* Use error values instead of number for RSL error
|
|
||||||
* Clarify logging message
|
|
||||||
* Make get_lchan_by_chan_nr globally available
|
|
||||||
* DTXu: move copy-pasted code to common part
|
|
||||||
* Remove duplicated nibble shift code
|
|
||||||
* TRX: add Uplink DTX support for FR/HR
|
|
||||||
* Mark array as static const
|
|
||||||
* sysmobts: dump PRACH and PTCCH parameters
|
|
||||||
* Activate PTCCH UL
|
|
||||||
* Fix dsp tracing at phy config
|
|
||||||
* octphy: fix build
|
|
||||||
* Fill measurements data for L1SAP
|
|
||||||
* sysmo: ts_connect: log channel combination name instead of number
|
|
||||||
* DTX: fix last SID saving
|
|
||||||
* DTX: fix SID repeat scheduling
|
|
||||||
* DTX: fix SID logic
|
|
||||||
* lc15, sysmo: Use SID_FIRST_P1 to initiate DTX
|
|
||||||
* DTX: check Marker bit to send ONSET to L1
|
|
||||||
* DTX: remove misleading comment
|
|
||||||
* LC15: Clarify msgb ownership / fix memory leaks
|
|
||||||
* DTX: move scheduling check inside repeat_last_sid
|
|
||||||
* DTX: further AMR SID cache fixes (lc15, sysmo)
|
|
||||||
* DTX: move ONSET detection into separate function
|
|
||||||
* DTX: send AMR voice alongside with ONSET
|
|
||||||
* DTX: fix conversion from fn to ms
|
|
||||||
* Move copy-pasted array into shared header
|
|
||||||
* DTX DL: use FSM for AMR
|
|
||||||
* TRX: fix building with latest DTX changes
|
|
||||||
* DTX: fix array size calculation
|
|
||||||
* DTX AMR - fix buffer length check
|
|
||||||
* Replace magic number with define
|
|
||||||
* Fix lc15 build
|
|
||||||
* Extend RTP RX callback parameters
|
|
||||||
* DTX HR - fix array size calculation
|
|
||||||
* Fix DTX DL AMR SIDscheduling logic
|
|
||||||
* Add tools to check DTX operation
|
|
||||||
* DTX DL: split ONSET state handling
|
|
||||||
* Remove obsolete define
|
|
||||||
* DTX DL: add AMR HR support to scheduling check
|
|
||||||
* DTX fix ONSET handling
|
|
||||||
* dtx_check.gawk: Fix false-positives in DTX check
|
|
||||||
* Fix tests linking with libosmocodec
|
|
||||||
* DTX DL: tighten check for enabled operation
|
|
||||||
* DTX: wrap FSM signal dispatching
|
|
||||||
* Add libosmocodec for octphy build
|
|
||||||
* dtx_check.gawk: add check for repetitive SID FIRST
|
|
||||||
* Remove duplicated code
|
|
||||||
* Replace link_id constant with define
|
|
||||||
* DTX DL AMR: rewrite FSM recursion
|
|
||||||
* Remove duplicated code
|
|
||||||
* Fix AGCH/PCH proportional allocation
|
|
||||||
* TRX: prevent segfault upon phy init
|
|
||||||
* DTX: add explicit check if DTX enabled
|
|
||||||
* Save RTP metadata in Control Buffer
|
|
||||||
* osmo-bts-trx: fix lchan deactivation
|
|
||||||
* DTX: fix TS adjustment for ONSET
|
|
||||||
* Optionally use adaptive RTP jitter buffering
|
|
||||||
* Integrate Debian packaging changes
|
|
||||||
* DTX AMR HR: fix inhibition
|
|
||||||
* Add copyright for .deb packages
|
|
||||||
* Move code to libosmocore
|
|
||||||
* Log socket path on error
|
|
||||||
* Add Abis OML failure event reporting
|
|
||||||
* Alarm on various errors
|
|
||||||
* Remove obsolete define TLVP_PRES_LEN
|
|
||||||
* scheduler: log lchan on which prim error occured
|
|
||||||
* deb: use gsm_data_shared.* from openbsc-dev
|
|
||||||
* OML: internalize failure reporting
|
|
||||||
* Add ctrl command to send OML alert
|
|
||||||
* Fix typo in TCH/H interleaving table
|
|
||||||
* Use oml-alert CTRL command for temp report
|
|
||||||
* Remove code duplication
|
|
||||||
* Handle ctrl cmd allocation failures
|
|
||||||
* Check for suitable lchan type when detecting HO
|
|
||||||
* osmo-bts-trx: fix scheduling of broken frames
|
|
||||||
* Sync protocol with OsmoPCU
|
|
||||||
* vty: reduce code duplication
|
|
||||||
* Handle TXT indication from OsmoPCU
|
|
||||||
* Add MS TO to RSL measurements
|
|
||||||
* Signal to BSC when PCU disconnects
|
|
||||||
* Prepare for extended SI2quater support
|
|
||||||
* Set BTS variant while initializing BTS model
|
|
||||||
* Prepare for BTS attribute reporting via OML
|
|
||||||
* osmo-bts-trx: use libosmocoding
|
|
||||||
* Remove redundant test
|
|
||||||
* Implement basic Get Attribute responder
|
|
||||||
* Add version to phy_instance
|
|
||||||
* OML: fix Coverity-reported issues
|
|
||||||
* Re-add version to phy_instance
|
|
||||||
* Use systemd template specifiers
|
|
||||||
* Place *-mgr config examples according to BTS model
|
|
||||||
* lc15: add example systemd service file
|
|
||||||
* Extend Get Attribute responder
|
|
||||||
* Set and report BTS features
|
|
||||||
* Cleanup SI scheduling
|
|
||||||
* RSL: receive and send multiple SI2q messages
|
|
||||||
* RSL: check for abnormal SI2q values
|
|
||||||
* lc15bts-mgr: use extended config file example
|
|
||||||
* Move parameter file opening into separate function
|
|
||||||
* Move common steps into common jenkins helper
|
|
||||||
* lc15: add jenkins helper
|
|
||||||
* Use generic L1 headers helper
|
|
||||||
* Copy sysmobts.service to osmo-bts-sysmo
|
|
||||||
* OML: move BTS number check into separate function
|
|
||||||
* lc15: make jenkins helper executable
|
|
||||||
* lc15: fix jenkins build
|
|
||||||
* Add missing include for abis.h header file
|
|
||||||
* RSL: receive and send multiple SI2q messages
|
|
||||||
* Use release helper from libosmocore
|
|
||||||
* si2q: do not consider count update as error
|
|
||||||
* Cleanup example config files
|
|
||||||
* Fix .deb build
|
|
||||||
* Unify *.service files
|
|
||||||
* lc15: cleanup board parameters reading
|
|
||||||
* lc15-mgr: update parameter read/write
|
|
||||||
* lc15: fix BTS revision and hw options
|
|
||||||
* lc15: make default config usable
|
|
||||||
* lc15: port lc15bts-mgr changes
|
|
||||||
* lc15bts-mgr: separate service file
|
|
||||||
* lc15: port lc15bts-mgr dependency changes
|
|
||||||
* Simplify jenkins build scripts
|
|
||||||
* OML: use fom_hdr while handling attr. request
|
|
||||||
* osmo-bts-trx: fix 'osmotrx legacy-setbsic'
|
|
||||||
* osmo-bts-trx: remove global variables from loops
|
|
||||||
|
|
||||||
[ Daniel Laszlo Sitzer ]
|
|
||||||
* octphy: Update outdated config param name in error message.
|
|
||||||
|
|
||||||
[ Jason DSouza ]
|
|
||||||
* Close TRX session before opening new one
|
|
||||||
|
|
||||||
[ Minh-Quang Nguyen ]
|
|
||||||
* l1sap.h: fix wrong L1SAP_FN2PTCCHBLOCK calculation according to TS 45.002 Table 6
|
|
||||||
* common/abis.c: fix 100% CPU usage after disconnecting OML/RSL link (Bug #1703)
|
|
||||||
* LC15: Bring back DSP trace argument
|
|
||||||
* LC15: Hardware changes
|
|
||||||
* LC15: TRX nominal TX power can be used from EEPROM or from BTS configuration
|
|
||||||
* rsl: Fix dropping of LAPDm UA message.
|
|
||||||
* LC15: properly handle BS-AG-BLKS-RES as received from BSC
|
|
||||||
|
|
||||||
[ Neels Hofmeyr ]
|
|
||||||
* sysmo: add L3 handle to l1prim messages
|
|
||||||
* pcu_sock: add pcu_connected() to query PCU availability
|
|
||||||
* tests/stubs.c: remove unused stubs
|
|
||||||
* fix typo in error message ('at lEast')
|
|
||||||
* oml, Set Chan Attr: treat unknown PCHAN types as error
|
|
||||||
* dyn PDCH: rsl rx dchan: also log ip.access message names
|
|
||||||
* doc: add ladder diagram on dynamic PDCH, add msc-README
|
|
||||||
* add missing DSUM entry to bts_log_info_cat
|
|
||||||
* fix compiler warning: printf format for sizeof()
|
|
||||||
* fix compiler warning: add missing case (PHY_LINK_CONNECTING)
|
|
||||||
* fix two compiler warnings: add two opaque struct declarations
|
|
||||||
* dyn PDCH: add bts_model_ts_connect() and _disconnect() stubs
|
|
||||||
* dyn PDCH: conf_lchans_for_pchan(): handle TCH/F_PDCH
|
|
||||||
* dyn PDCH: pcu_tx_info_ind(): handle TCH/F_PDCH in PDCH mode
|
|
||||||
* dyn PDCH: chan_nr_by_sapi(): handle TCH/F_PDCH according to ts->flags
|
|
||||||
* dyn PDCH: implement main dyn PDCH logic in common/
|
|
||||||
* dyn PDCH: sysmo-bts/oml.c: add ts_connect_as(), absorbing ts_connect() guts
|
|
||||||
* dyn PDCH: sysmo: handle TCH/F_PDCH init like TCH/F
|
|
||||||
* dyn PDCH: complete for sysmo-bts: implement bts_model_ts_*()
|
|
||||||
* error log: two minor clarifications
|
|
||||||
* debug log: log lchan state transitions
|
|
||||||
* debug log: log TS pchan type on connect
|
|
||||||
* fix lc15 build: put src/common/libbts.a left of -losmogsm
|
|
||||||
* lc15: add L3 handle to l1prim messages
|
|
||||||
* dyn PDCH: lc15: chan_nr_by_sapi(): handle TCH/F_PDCH according to ts->flags
|
|
||||||
* dyn PDCH: lc15: add ts_connect_as(), absorbing ts_connect() guts
|
|
||||||
* dyn PDCH: lc15: handle TCH/F_PDCH init like TCH/F
|
|
||||||
* dyn PDCH: lc15: complete for litecell15-bts: implement bts_model_ts_*()
|
|
||||||
* dyn PDCH: safeguard: exit if nothing pending in dyn_pdch_ts_disconnected()
|
|
||||||
* vty: install orphaned trx nominal power command
|
|
||||||
* fix compiler warnings: include bts_model.h in phy_link.c
|
|
||||||
* fix compiler warning: remove useless 'static' storage class for struct decl
|
|
||||||
* fix compiler warning: remove unused variable 'i' in calib_verify()
|
|
||||||
* log: osmo-bts-trx: change access burst logs to DEBUG level
|
|
||||||
* log: osmo-bts-trx: change PDTCH block logs to DEBUG level
|
|
||||||
* osmo-bts-trx: init OML only once by sending AVSTATE_OK with OPSTATE_ENABLED
|
|
||||||
* doc: move dyn_pdch.msc to osmo-gsm-manuals.git
|
|
||||||
* error log: rsl.c: typo x2
|
|
||||||
* info log: l1sap.c: add '0x' to hex output
|
|
||||||
* fix compiler warning: msg_utils.c: fn_chk() constify arg
|
|
||||||
* fix compiler warning: msg_utils.c: fn_chk() constify arg
|
|
||||||
* info log: l1sap.c: add '0x' to hex output
|
|
||||||
* error log: rsl.c: typo x2
|
|
||||||
* dyn PDCH: code dup: use conf_lchans_as_pchan()
|
|
||||||
* prepare dyn TS: split/replace conf_lchans_for_pchan()
|
|
||||||
* code dup: join [rsl_]lchan_lookup() from libbsc and osmo-bts
|
|
||||||
* dyn TS: common TCH/F_TCH/H_PDCH implementation
|
|
||||||
* sysmo/oml.c: rename ts_connect() to ts_opstart()
|
|
||||||
* dyn TS: implement SysmoBTS specifics
|
|
||||||
* lc15/oml.c: rename ts_connect() to ts_opstart()
|
|
||||||
* dyn TS: implement litecell15 specifics
|
|
||||||
* comment typo: common/l1sap.c
|
|
||||||
* log typo: trx_sched_set_pchan()
|
|
||||||
* dyn TS: sysmo,lc15: chan_nr_by_sapi(): add missing assertion
|
|
||||||
* fix comment in common/l1sap.c, function name changed
|
|
||||||
* dyn TS, dyn PDCH: common/l1sap.c: properly notice PDCH
|
|
||||||
* dyn PDCH: trx l1_if.c: factor out trx_set_ts_as_pchan() from trx_set_ts()
|
|
||||||
* dyn PDCH: complete for trx: implement bts_model_ts_[dis]connect()
|
|
||||||
* dyn PDCH: trx l1_if.c: drop fixme, add comment
|
|
||||||
* dyn TS: complete for TRX
|
|
||||||
* dyn TS: measurement.c: replace fixme with comment
|
|
||||||
* sysmo,lc15: ts_connect_as(): log error also for pchan_as == TCH/F_PDCH
|
|
||||||
* sysmo: fix dyn TS: Revert "Activate PTCCH UL" [in sysmobts]
|
|
||||||
* log: l1sap: add 0x to hex output of chan_nr, 5 times
|
|
||||||
* dyn TS: measurement: use correct nr of subslots, rm code dup
|
|
||||||
* dyn TS: sysmo,lc15: ph_data_req: fix PDCH mode detection
|
|
||||||
* Fix ip.access style dyn PDCH, broken in 37af36e85eca546595081246aec010fa7f6fd0be
|
|
||||||
* common/rsl: move decision whether to chan act ack/nack to common function
|
|
||||||
* octphy: fix build: Revert "octphy: fix for multiple trx with more than 1 dsp"
|
|
||||||
* octphy: fix build: Revert "octphy: add support for multiple trx ids"
|
|
||||||
* octphy: fix build with OCTSDR-OPENBSC-02.07.00-B708: name changed
|
|
||||||
* dyn TS: if PCU is not connected, allow operation as TCH
|
|
||||||
* log: sysmo,lc15: tweak log about sapi_cmds queue
|
|
||||||
* log causing rx event for lchan_lookup errors
|
|
||||||
* heed VTY 'line vty'/'bind' command
|
|
||||||
* sysmobts_mgr, lc15bts_mgr: fix tall context for telnet vty
|
|
||||||
* build: be robust against install-sh files above the root dir
|
|
||||||
* configure: check for pkg-config presence
|
|
||||||
* jenkins.sh: use osmo-build-dep.sh, log test failures
|
|
||||||
* msgb ctx: use new msgb_talloc_ctx_init() in various main()s
|
|
||||||
* jenkins-oct.sh: fix build: typo in deps path
|
|
||||||
* fix 'osmo-bts-* --version' segfault
|
|
||||||
* osmo-bts-trx: remove obsolete include of netif/rtp.h
|
|
||||||
* add jenkins_bts_trx.sh
|
|
||||||
* add jenkins_oct_and_bts_trx.sh
|
|
||||||
* jenkins: add jenkins_bts_model.sh
|
|
||||||
* bursts test: test_pdtch: pre-init result mem
|
|
||||||
* fix: dyn ts: uplink measurement report
|
|
||||||
* fix missing ~ in bit logic for lchan->si.valid in rsl_rx_sacch_inf_mod()
|
|
||||||
* SACCH: fix sending of SI with an enum value > 7
|
|
||||||
* SACCH SI: assert that SI enum vals fit in bit mask
|
|
||||||
* all models: fix vty write: bts_model_config_write_phy
|
|
||||||
* jenkins: add value_string termination check
|
|
||||||
* Revert "Add version to phy_instance"
|
|
||||||
* Revert "RSL: check for abnormal SI2q values"
|
|
||||||
* Revert "RSL: receive and send multiple SI2q messages"
|
|
||||||
|
|
||||||
[ Harald Welte ]
|
|
||||||
* sysmobts: screnrc/systemd-service: Use osmo-bts-sysmo instead of sysmobts
|
|
||||||
* Add .mailmap for mapping mail addresses in shortlog
|
|
||||||
* vty: Ensure to not use negative (error) sapi value
|
|
||||||
* sysmobts: Add correct nominal transmit power for sysmoBTS 1020
|
|
||||||
* sysmobts_eeprom.h: Fix/extend model number definitions
|
|
||||||
* Revert "sysmobts: Add correct nominal transmit power for sysmoBTS 1020"
|
|
||||||
* tx_power: Change PA calibration tables to use delta vales
|
|
||||||
* Add new unit-test for transmit power computation code
|
|
||||||
* sysmobts: fully support trx_power_params
|
|
||||||
* README: Add general project information and convert to markdown
|
|
||||||
* README: update some of the limitations
|
|
||||||
* sysmobts: Don't start with 0dBm TRX output power before ramping
|
|
||||||
* Remove unusued left-over gsm0503_conv.c
|
|
||||||
* scheduler_trx.c: Avoid code duplication for BER10k computation
|
|
||||||
* scheduler_trx: Avoid copy+pasting determining CMR from FN
|
|
||||||
* rx_tchh_fn(): Avoid copy+pasting formula to determine odd-ness of fn
|
|
||||||
* Consistently check for minimum attribute/TLV length in RSL and OML
|
|
||||||
* l1sap.c: Add spec reference to link timeout implementation
|
|
||||||
* osmo-bts-trx: Remove duplicate parsing of NM_ATT_CONN_FAIL_CRIT
|
|
||||||
* vty: Remove command for manual channel activation/deactivation
|
|
||||||
* l1_if: Add inline functions to check dsp/fgpa version at runtime
|
|
||||||
* sysmobts: Re-order the bit-endianness of every HR codec parameter
|
|
||||||
* OML Add osmocom-specific way to deactivate radio link timeout
|
|
||||||
* measurement: Remove dead code
|
|
||||||
* l1sap.c: Factor out function to limit message queue
|
|
||||||
* osmo-bts-sysmo/l1_if.c: PH-DATA.ind belongs to L1P, not L1C
|
|
||||||
* l1sap: if lchan is in loopback, don't accept incoming RTP
|
|
||||||
* TRX: Use timerfd and CLOCK_MONOTONIC for GSM frame timer (Closes: #2325)
|
|
||||||
* Add loopback support for PDTCH
|
|
||||||
* TRX: trx_if: Improve code description / comments
|
|
||||||
* trx_if: Improve error handling
|
|
||||||
* TRX: Rename trx_if_data() -> trx_if_send_burst()
|
|
||||||
* TRX: merge/simplify l1_if and trx_if code
|
|
||||||
* TRX: don't free l1h in trx_phy_inst_close()
|
|
||||||
* l1sap: Don't enqueue PTCCH blocks for loopback
|
|
||||||
* TRX: permit transmission of all-zero loopback frames
|
|
||||||
* jenkins helpers: some minimal documentation/comments + print errors
|
|
||||||
* VIRT-PHY: Initial check-in of a new virtual BTS
|
|
||||||
* VIRT-PHY: Fix handling of default values for vty configuration
|
|
||||||
* VIRT-PHY: Use IPv4 multicast groups for private / local scope
|
|
||||||
* VIRT-PHY: cause BTS to terminate in case of recv()/send() on udp socket returns 0
|
|
||||||
* Ensure we don't send dummy UI frames on BCCH for TC=5
|
|
||||||
* virt: Don't print NOTICE log message if ARFCN doesn't match
|
|
||||||
* VIRT-PHY: Report virtual RACH bursts with plausible burst type
|
|
||||||
* scheduler: Fix wrong log subsystem: L1C is L1 *control* not user data
|
|
||||||
* VIRT-PHY: Print NOTICE log message from unimplemented stubs
|
|
||||||
* TRX / VIRT-PHY: Make check for BCCH/CCCH more specific
|
|
||||||
* L1SAP: Print chan_nr and link_id always as hex
|
|
||||||
* VIRT-BTS: Support for GPRS
|
|
||||||
* L1SAP: Use RSL_CHAN_OSMO_PDCH across L1SAP
|
|
||||||
* GSMTAP: Don't log fill frames via GSMTAP
|
|
||||||
* TRX: Remove bogus extern global variable declarations
|
|
||||||
* l1sap/osmo-bts-sysmo: Improve logging
|
|
||||||
* TRX: Remove global variables, move SETBSIC/SETTSC handling into phy_link
|
|
||||||
* Fix build after recent gsm_bts_alloc() change
|
|
||||||
* Treat SIGTERM just like SIGINT in our programs
|
|
||||||
|
|
||||||
[ Tom Tsou ]
|
|
||||||
* trx: Add EGPRS tables, sequences, and mappings
|
|
||||||
* trx: Add EGPRS coding and decoding procedures
|
|
||||||
* trx: Enable EGPRS handling through burst lengths
|
|
||||||
* trx: Fix coverity BER calculation NULL dereference
|
|
||||||
|
|
||||||
[ Vadim Yanitskiy ]
|
|
||||||
* pcu_sock: use osmo_sock_unix_init() from libosmocore
|
|
||||||
* osmo-bts-trx/l1_if.c: use channel combination III for TCH/H
|
|
||||||
* scheduler_trx.c: strip unused variable
|
|
||||||
|
|
||||||
[ Mike McTernan ]
|
|
||||||
* osmo-bts-trx: Fix PCS1900 operation
|
|
||||||
* osmo-bts-trx: log decoder bit errors as DEBUG, not NOTICE
|
|
||||||
|
|
||||||
[ bhargava ]
|
|
||||||
* Change interface in osmo-bts for 11 bit RACH
|
|
||||||
* Update parameters in osmo-bts-sysmo for 11bit RACH
|
|
||||||
* 11bit RACH support for osmo-bts-litecell15
|
|
||||||
* Initialize parameters in osmo-trx for 11bit RACH
|
|
||||||
|
|
||||||
[ Philipp ]
|
|
||||||
* octphy: Fixing missing payload type in ph. chan. activation
|
|
||||||
* octphy: Fixing band selection for ARFCN 0
|
|
||||||
* octphy: reintroducing multi-trx support
|
|
||||||
* octopy: fixing renamed constant
|
|
||||||
* octphy: prevent mismatch between dsp-firmware and octphy headers
|
|
||||||
* rsl: improving the log output
|
|
||||||
* octphy: multi-trx support: fix AC_CHECK order
|
|
||||||
* RSL: drop obsolete NULL check
|
|
||||||
* RSL: add assertions to check args of public API
|
|
||||||
* OML: fix possible segfault: add NULL check in oml_ipa_set_attr()
|
|
||||||
* CTRL: make the CTRL-Interface IP address configurable
|
|
||||||
* l1sap: Fix expired rach slot counting
|
|
||||||
* l1sap: fix missing 'else's causing wrong rach frame expiry counts
|
|
||||||
* octphy: set tx attenuation via VTY
|
|
||||||
* octphy: Improve OML ADM state handling
|
|
||||||
|
|
||||||
[ Yves Godin ]
|
|
||||||
* DTX: fix 1st RTP packet drop
|
|
||||||
|
|
||||||
[ Alexander Chemeris ]
|
|
||||||
* l1sap: Fix use-after-free in loopback mode.
|
|
||||||
* vty: Add commands to manually activate/deactivate a channel.
|
|
||||||
* trx: Add "maxdlynb" VTY command to control max TA for Normal Bursts.
|
|
||||||
* rsl: Output RTP stats before closing the socket.
|
|
||||||
* osmo-bts-trx: Fix MS power control loop.
|
|
||||||
* osmo-bts-trx: Remove an unused variable. Resolves a compiler warning.
|
|
||||||
* osmo-bts-trx: Increase a maximum allowed MS power reduction step from 2dB to 4dB.
|
|
||||||
* Fix static build of osmo-bts-trx and osmo-bts-virtual.
|
|
||||||
|
|
||||||
[ Jean-Francois Dionne ]
|
|
||||||
* DTX: don't always perform AMR HR specific check
|
|
||||||
* DTX: fix SID-FIRST detection
|
|
||||||
* lc15,sysmobts l1_if: fix memleak in handle_mph_time_ind()
|
|
||||||
* sysmo,lc15: fix memory leak at each call placed
|
|
||||||
* DTX: fix "unexpected burst" error
|
|
||||||
* Fix AMR HR DTX FSM logic.
|
|
||||||
* Fix SACCH channel release indication not sent to BSC after location update.
|
|
||||||
* Fix RTP duration adjustment not done when speech resumes in DTX mode.
|
|
||||||
|
|
||||||
[ Ruben Undheim ]
|
|
||||||
* Fix some spelling errors
|
|
||||||
|
|
||||||
[ Holger Freyther ]
|
|
||||||
* Revert "deb: use gsm_data_shared.* from openbsc-dev"
|
|
||||||
|
|
||||||
[ Philipp Maier ]
|
|
||||||
* octphy VTY: fix vty write output for octphy's phy section
|
|
||||||
* octphy: Fix VTY commands
|
|
||||||
* l1sap: fix rach reason (ra) parsing
|
|
||||||
* l1sap: fix PTCCH detection
|
|
||||||
* octphy: fix usage of wrong define constant
|
|
||||||
* octphy: add CBCH support
|
|
||||||
* l1sap: improve log output
|
|
||||||
* octphy: print log message for multi-trx support
|
|
||||||
* octphy: display hint in case of wrongly configured transceiver number
|
|
||||||
* octphy: add conditional compilation to support latest octasic header release
|
|
||||||
* octphy: set tx/rx antenne IDs via VTY
|
|
||||||
* bts: revert trx shutdown order
|
|
||||||
* octphy: activate CBCH after all physical channels are activated
|
|
||||||
* octphy: align frame number for new firmware versions
|
|
||||||
* octphy: ensure that 11 bit rach flag is not set
|
|
||||||
* measurement: fix measurement reporting period
|
|
||||||
* measurement: make lchan_meas_check_compute() available to l1sap.c
|
|
||||||
* measurement: Compute measurement results on measurement idication
|
|
||||||
* measurement: exclude idle channels from uplink measurement
|
|
||||||
* octphy: integrate channel measurement handling
|
|
||||||
* octphy: remove old event control code
|
|
||||||
* osmo-bts-sysmo: Include frame number in MEAS IND
|
|
||||||
* measurement: fix measurement computation
|
|
||||||
* octphy: fix segfault
|
|
||||||
* Revert "measurement: exclude idle channels from uplink measurement"
|
|
||||||
* sysmobts: normalize frame number in measurement indication
|
|
||||||
* measurement: Improve log output
|
|
||||||
* measurement: improve log output
|
|
||||||
* octphy: improve log output
|
|
||||||
* octphy: initalize l1msg and only when needed
|
|
||||||
* octphy: initalize nmsg only when needed
|
|
||||||
* octphy: remove log output
|
|
||||||
* Revert "sysmobts: normalize frame number in measurement indication"
|
|
||||||
* osmo-bts-trx: fix missing frame number in MEAS IND
|
|
||||||
* osmo-bts-litecell15: Fix missing frame number in MEAS IND
|
|
||||||
* Revert "osmo-bts-sysmo: Include frame number in MEAS IND"
|
|
||||||
* octphy: complete value strings (octphy_cid_vals)
|
|
||||||
* octphy: do not send empty frames to phy
|
|
||||||
* osmo-bts-sysmo: Include frame number in MEAS IND
|
|
||||||
* measurement: fix measurment report
|
|
||||||
* octphy: remap frame number in MEAS_IND
|
|
||||||
* octphy: implement support for dynamic timeslots
|
|
||||||
|
|
||||||
[ Ivan Klyuchnikov ]
|
|
||||||
* osmo-trx-bts: Fix incorrect setting of RXGAIN and POWER parameters on second channel (TRX1) of osmo-trx
|
|
||||||
* osmo-trx-bts: Fix osmo-bts-trx crash on startup during reading phy instance parameters from config file
|
|
||||||
* osmo-trx-bts: Fix incorrect bts shutdown procedure in case of abis connection closure
|
|
||||||
* osmo-trx-bts: Fix incorrect bts shutdown procedure in case of clock loss from osmo-trx
|
|
||||||
|
|
||||||
[ Ivan Kluchnikov ]
|
|
||||||
* oml: Fix incorrect usage of const variable abis_nm_att_tlvdef_ipa
|
|
||||||
|
|
||||||
[ Pau Espin Pedrol ]
|
|
||||||
* phy_link: Fix typo in state being printed
|
|
||||||
* trx: Allow BTS and TRX to be on different IPs
|
|
||||||
* trx: Save osmotrx base-port vty properties
|
|
||||||
* sysmo/tch.c: Clean up use of empty buffer
|
|
||||||
* litecell15/tch.c: Clean up use of empty buffer
|
|
||||||
* Use L1P instead of L1C for TCH logging and allocation
|
|
||||||
* Fix annoying trailing whitespace
|
|
||||||
* sysmo, litecell15: Make sure all TCH events are triggered
|
|
||||||
* sysmo: Remove non longer valid -p option from help
|
|
||||||
* Allow passing low link quality buffers to upper layers
|
|
||||||
* l1sap.c: Avoid sending RTP frame with empty payload
|
|
||||||
* l1sap.c: fn_ms_adj: Add err logging and always return GSM_RTP_DURATION
|
|
||||||
* Move dump_gsmtime to libosmocore as osmo_dump_gsmtime
|
|
||||||
* Use osmo_dump_gsmtime to log fn across different layers
|
|
||||||
* lc15bts-mgr.cfg: Set default vswr to a value inside valid range
|
|
||||||
* litecell15: Register in vty limits for paX_pwr
|
|
||||||
* lc15: Tweak led colors used in service file
|
|
||||||
* lc-15, sysmo: l1_if: print name on PH-DATA.ind unknwon sapi
|
|
||||||
* lc15bts-mgr.service: Prepare dirs and sysctls for the process
|
|
||||||
* osmo-bts-trx: Enable osmotrx tx-attenuation oml by default
|
|
||||||
* osmo-bts-trx: Relax validation to allow TRX data bursts without padding
|
|
||||||
|
|
||||||
[ Sebastian Stumpf ]
|
|
||||||
* VIRT-PHY: Added example configurations for openbsc and osmobts.
|
|
||||||
* VIRT-PHY: Fixed timeslot in gsmtap-msg on downlink which was always 0.
|
|
||||||
* VIRT-PHY: Added test option for fast hyperframe repeat.
|
|
||||||
|
|
||||||
-- Max <msuraev@sysmocom.de> Fri, 25 Aug 2017 15:16:56 +0200
|
|
||||||
|
|
||||||
osmo-bts (0.5.0) unstable; urgency=medium
|
|
||||||
|
|
||||||
* Initial release.
|
|
||||||
|
|
||||||
-- Holger Hans Peter Freyther <holger@moiji-mobile.com> Fri, 01 Apr 2016 16:13:40 +0200
|
|
||||||
1
debian/compat
vendored
1
debian/compat
vendored
@@ -1 +0,0 @@
|
|||||||
9
|
|
||||||
50
debian/control
vendored
50
debian/control
vendored
@@ -1,50 +0,0 @@
|
|||||||
Source: osmo-bts
|
|
||||||
Maintainer: Holger Hans Peter Freyther <holger@moiji-mobile.com>
|
|
||||||
Section: net
|
|
||||||
Priority: optional
|
|
||||||
Build-Depends: debhelper (>= 9),
|
|
||||||
pkg-config,
|
|
||||||
dh-autoreconf,
|
|
||||||
dh-systemd (>= 1.5),
|
|
||||||
autotools-dev,
|
|
||||||
pkg-config,
|
|
||||||
libosmocore-dev,
|
|
||||||
libosmo-abis-dev,
|
|
||||||
libgps-dev,
|
|
||||||
txt2man
|
|
||||||
Standards-Version: 3.9.8
|
|
||||||
Vcs-Browser: http://git.osmocom.org/osmo-bts/
|
|
||||||
Vcs-Git: git://git.osmocom.org/osmo-bts
|
|
||||||
Homepage: https://projects.osmocom.org/projects/osmobts
|
|
||||||
|
|
||||||
Package: osmo-bts-trx
|
|
||||||
Architecture: any
|
|
||||||
Conflicts: osmo-bts
|
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
|
||||||
Description: osmo-bts-trx GSM BTS with osmo-trx
|
|
||||||
osmo-bts-trx to be used with the osmo-trx application
|
|
||||||
|
|
||||||
Package: osmo-bts-trx-dbg
|
|
||||||
Architecture: any
|
|
||||||
Section: debug
|
|
||||||
Priority: extra
|
|
||||||
Depends: osmo-bts-trx (= ${binary:Version}), ${misc:Depends}
|
|
||||||
Description: Debug symbols for the osmo-bts-trx
|
|
||||||
Make debugging possible
|
|
||||||
|
|
||||||
Package: osmo-bts-virtual
|
|
||||||
Architecture: any
|
|
||||||
Conflicts: osmo-bts
|
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
|
||||||
Description: Virtual Osmocom GSM BTS (no RF hardware; GSMTAP/UDP)
|
|
||||||
This version of OsmoBTS doesn't use actual GSM PHY/Hardware/RF, but
|
|
||||||
utilizes GSMTAP-over-UDP frames for the Um interface. This is useful
|
|
||||||
in fully virtualized setups e.g. in combination with OsmocomBB virt_phy.
|
|
||||||
|
|
||||||
Package: osmo-bts-virtual-dbg
|
|
||||||
Architecture: any
|
|
||||||
Section: debug
|
|
||||||
Priority: extra
|
|
||||||
Depends: osmo-bts-virtual (= ${binary:Version}), ${misc:Depends}
|
|
||||||
Description: Debug symbols for the osmo-bts-virtual
|
|
||||||
Make debugging possible
|
|
||||||
81
debian/copyright
vendored
81
debian/copyright
vendored
@@ -1,81 +0,0 @@
|
|||||||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
|
||||||
Upstream-Name: osmo-bts
|
|
||||||
Source: http://cgit.osmocom.org/osmo-bts/
|
|
||||||
|
|
||||||
Files: *
|
|
||||||
Copyright: 2008-2014 Harald Welte <laforge@gnumonks.org>
|
|
||||||
2009,2011,2013 Andreas Eversberg <jolly@eversberg.eu>
|
|
||||||
2010,2011 On-Waves
|
|
||||||
2012-2015 Holger Hans Peter Freyther
|
|
||||||
2014 sysmocom s.f.m.c. Gmbh
|
|
||||||
2015 Alexander Chemeris <Alexander.Chemeris@fairwaves.co>
|
|
||||||
License: AGPL-3+
|
|
||||||
|
|
||||||
Files: src/osmo-bts-sysmo/eeprom.c
|
|
||||||
src/osmo-bts-sysmo/eeprom.h
|
|
||||||
Copyright: 2012 Nutaq
|
|
||||||
License: MIT
|
|
||||||
Comment: Yves Godin is the author
|
|
||||||
|
|
||||||
Files: src/common/pcu_sock.c
|
|
||||||
Copyright: 2008-2010 Harald Welte <laforge@gnumonks.org>
|
|
||||||
2009-2012 Andreas Eversberg <jolly@eversberg.eu>
|
|
||||||
2012 Holger Hans Peter Freyther
|
|
||||||
License: GPL-2+
|
|
||||||
|
|
||||||
Files: debian/*
|
|
||||||
Copyright: 2015-2016 Ruben Undheim <ruben.undheim@gmail.com>
|
|
||||||
License: AGPL-3+
|
|
||||||
|
|
||||||
|
|
||||||
License: AGPL-3+
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU Affero General Public License as published by
|
|
||||||
the Free Software Foundation; either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
.
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
.
|
|
||||||
You should have received a copy of the GNU Affero General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
|
|
||||||
License: GPL-2+
|
|
||||||
This package is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
.
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
.
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
.
|
|
||||||
On Debian systems, the complete text of the GNU General
|
|
||||||
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
|
|
||||||
|
|
||||||
|
|
||||||
License: MIT
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights to
|
|
||||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
||||||
of the Software, and to permit persons to whom the Software is furnished to do
|
|
||||||
so, subject to the following conditions:
|
|
||||||
.
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
.
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
5
debian/osmo-bts-trx.install
vendored
5
debian/osmo-bts-trx.install
vendored
@@ -1,5 +0,0 @@
|
|||||||
etc/osmocom/osmo-bts-trx.cfg
|
|
||||||
lib/systemd/system/osmo-bts-trx.service
|
|
||||||
usr/bin/osmo-bts-trx
|
|
||||||
usr/share/doc/osmo-bts/examples/osmo-bts-trx/osmo-bts-trx.cfg
|
|
||||||
usr/share/doc/osmo-bts/examples/osmo-bts-trx/osmo-bts-trx-calypso.cfg
|
|
||||||
6
debian/osmo-bts-virtual.install
vendored
6
debian/osmo-bts-virtual.install
vendored
@@ -1,6 +0,0 @@
|
|||||||
etc/osmocom/osmo-bts-virtual.cfg
|
|
||||||
lib/systemd/system/osmo-bts-virtual.service
|
|
||||||
usr/bin/osmo-bts-virtual
|
|
||||||
usr/bin/osmo-bts-omldummy
|
|
||||||
usr/share/doc/osmo-bts/examples/osmo-bts-virtual/osmo-bts-virtual.cfg
|
|
||||||
usr/share/doc/osmo-bts/examples/osmo-bts-virtual/openbsc-virtual.cfg
|
|
||||||
28
debian/rules
vendored
28
debian/rules
vendored
@@ -1,28 +0,0 @@
|
|||||||
#!/usr/bin/make -f
|
|
||||||
|
|
||||||
DEBIAN := $(shell dpkg-parsechangelog | grep ^Version: | cut -d' ' -f2)
|
|
||||||
DEBVERS := $(shell echo '$(DEBIAN)' | cut -d- -f1)
|
|
||||||
VERSION := $(shell echo '$(DEBVERS)' | sed -e 's/[+-].*//' -e 's/~//g')
|
|
||||||
|
|
||||||
#export DH_VERBOSE=1
|
|
||||||
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
|
||||||
|
|
||||||
|
|
||||||
%:
|
|
||||||
dh $@ --with=systemd --with autoreconf --fail-missing
|
|
||||||
|
|
||||||
override_dh_strip:
|
|
||||||
dh_strip --package=osmo-bts-virtual --dbg-package=osmo-bts-virtual-dbg
|
|
||||||
dh_strip --package=osmo-bts-trx --dbg-package=osmo-bts-trx-dbg
|
|
||||||
|
|
||||||
override_dh_auto_configure:
|
|
||||||
dh_auto_configure -- --enable-trx --with-systemdsystemunitdir=/lib/systemd/system
|
|
||||||
|
|
||||||
override_dh_clean:
|
|
||||||
dh_clean
|
|
||||||
$(RM) tests/package.m4
|
|
||||||
$(RM) tests/testsuite
|
|
||||||
|
|
||||||
# Print test results in case of a failure
|
|
||||||
override_dh_auto_test:
|
|
||||||
dh_auto_test || (find . -name testsuite.log -exec cat {} \; ; false)
|
|
||||||
1
debian/source/format
vendored
1
debian/source/format
vendored
@@ -1 +0,0 @@
|
|||||||
3.0 (native)
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
SUBDIRS = \
|
|
||||||
examples \
|
|
||||||
manuals \
|
|
||||||
$(NULL)
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
The osmo-bts control interface is currently supporting the following operations:
|
|
||||||
|
|
||||||
h2. generic
|
|
||||||
|
|
||||||
h3. trx.0.thermal-attenuation
|
|
||||||
|
|
||||||
The idea of this paramter is to attenuate the system output power as part of
|
|
||||||
thermal management. In some cases the PA might be passing a critical level,
|
|
||||||
so an external control process can use this attribute to reduce the system
|
|
||||||
output power.
|
|
||||||
|
|
||||||
Please note that all values in the context of transmit power calculation
|
|
||||||
are integers in milli-dB (1/10000 bel), so the below example is setting
|
|
||||||
the attenuation at 3 dB:
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
bsc_control.py -d localhost -p 4238 -s trx.0.thermal-attenuation 3000
|
|
||||||
Got message: SET_REPLY 1 trx.0.thermal-attenuation 3000
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
bsc_control.py -d localhost -p 4238 -g trx.0.thermal-attenuation
|
|
||||||
Got message: GET_REPLY 1 trx.0.thermal-attenuation 3000
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
|
|
||||||
h2. sysmobts specific
|
|
||||||
|
|
||||||
h3. trx.0.clock-info
|
|
||||||
|
|
||||||
obtain information on the current clock status:
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
bsc_control.py -d localhost -p 4238 -g trx.0.clock-info
|
|
||||||
Got message: GET_REPLY 1 trx.0.clock-info -100,ocxo,0,0,gps
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
which is to be interpreted as:
|
|
||||||
* current clock correction value is -100 ppb
|
|
||||||
* current clock source is OCXO
|
|
||||||
* deviation between clock source and calibration source is 0 ppb
|
|
||||||
* resolution of clock error measurement is 0 ppt (0 means no result yet)
|
|
||||||
* current calibration source is GPS
|
|
||||||
|
|
||||||
When this attribute is set, any value passed on is discarded, but the clock
|
|
||||||
calibration process is re-started.
|
|
||||||
|
|
||||||
|
|
||||||
h3. trx.0.clock-correction
|
|
||||||
|
|
||||||
This attribute can get and set the current clock correction value:
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
bsc_control.py -d localhost -p 4238 -g trx.0.clock-correction
|
|
||||||
Got message: GET_REPLY 1 trx.0.clock-correction -100
|
|
||||||
</pre>
|
|
||||||
|
|
||||||
<pre>
|
|
||||||
bsc_control.py -d localhost -p 4238 -s trx.0.clock-correction -- -99
|
|
||||||
Got message: SET_REPLY 1 trx.0.clock-correction success
|
|
||||||
</pre>
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
OSMOCONF_FILES = virtual/osmo-bts-virtual.cfg
|
|
||||||
|
|
||||||
doc_virtualdir = $(docdir)/examples/osmo-bts-virtual
|
|
||||||
doc_virtual_DATA = \
|
|
||||||
virtual/osmo-bts-virtual.cfg \
|
|
||||||
virtual/openbsc-virtual.cfg
|
|
||||||
EXTRA_DIST = $(doc_virtual_DATA)
|
|
||||||
|
|
||||||
if ENABLE_SYSMOBTS
|
|
||||||
doc_sysmodir = $(docdir)/examples/osmo-bts-sysmo
|
|
||||||
doc_sysmo_DATA = \
|
|
||||||
sysmo/osmo-bts-sysmo.cfg \
|
|
||||||
sysmo/sysmobts-mgr.cfg
|
|
||||||
EXTRA_DIST += $(doc_sysmo_DATA)
|
|
||||||
OSMOCONF_FILES += sysmo/osmo-bts-sysmo.cfg sysmo/sysmobts-mgr.cfg
|
|
||||||
endif
|
|
||||||
|
|
||||||
if ENABLE_TRX
|
|
||||||
doc_trxdir = $(docdir)/examples/osmo-bts-trx
|
|
||||||
doc_trx_DATA = \
|
|
||||||
trx/osmo-bts-trx.cfg \
|
|
||||||
trx/osmo-bts-trx-calypso.cfg
|
|
||||||
EXTRA_DIST += $(doc_trx_DATA)
|
|
||||||
OSMOCONF_FILES += trx/osmo-bts-trx.cfg
|
|
||||||
endif
|
|
||||||
|
|
||||||
if ENABLE_OCTPHY
|
|
||||||
doc_octphydir = $(docdir)/examples/osmo-bts-octphy
|
|
||||||
doc_octphy_DATA = \
|
|
||||||
octphy/osmo-bts-trx2dsp1.cfg \
|
|
||||||
octphy/osmo-bts-octphy.cfg
|
|
||||||
EXTRA_DIST += $(doc_octphy_DATA)
|
|
||||||
OSMOCONF_FILES += octphy/osmo-bts-octphy.cfg
|
|
||||||
endif
|
|
||||||
|
|
||||||
if ENABLE_LC15BTS
|
|
||||||
doc_lc15dir = $(docdir)/examples/osmo-bts-lc15
|
|
||||||
doc_lc15_DATA = \
|
|
||||||
litecell15/osmo-bts-lc15.cfg \
|
|
||||||
litecell15/lc15bts-mgr.cfg
|
|
||||||
EXTRA_DIST += $(doc_lc15_DATA)
|
|
||||||
OSMOCONF_FILES += litecell15/osmo-bts-lc15.cfg litecell15/lc15bts-mgr.cfg
|
|
||||||
endif
|
|
||||||
|
|
||||||
osmoconfdir = $(sysconfdir)/osmocom
|
|
||||||
osmoconf_DATA = $(OSMOCONF_FILES)
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
!
|
|
||||||
! lc15bts-mgr (0.3.0.284-a7c2-dirty) configuration saved from vty
|
|
||||||
!!
|
|
||||||
!
|
|
||||||
log stderr
|
|
||||||
logging filter all 1
|
|
||||||
logging color 1
|
|
||||||
logging print category 0
|
|
||||||
logging timestamp 0
|
|
||||||
logging level temp info
|
|
||||||
logging level fw info
|
|
||||||
logging level find info
|
|
||||||
logging level calib info
|
|
||||||
logging level lglobal notice
|
|
||||||
logging level llapd notice
|
|
||||||
logging level linp notice
|
|
||||||
logging level lmux notice
|
|
||||||
logging level lmi notice
|
|
||||||
logging level lmib notice
|
|
||||||
logging level lsms notice
|
|
||||||
logging level lctrl notice
|
|
||||||
logging level lgtp notice
|
|
||||||
!
|
|
||||||
line vty
|
|
||||||
no login
|
|
||||||
!
|
|
||||||
lc15bts-mgr
|
|
||||||
limits supply_volt
|
|
||||||
threshold warning min 17500
|
|
||||||
threshold critical min 19000
|
|
||||||
limits tx0_vswr
|
|
||||||
threshold warning max 1000
|
|
||||||
limits tx1_vswr
|
|
||||||
threshold warning max 1000
|
|
||||||
limits supply_pwr
|
|
||||||
threshold warning max 110
|
|
||||||
threshold critical max 120
|
|
||||||
limits pa0_pwr
|
|
||||||
threshold warning max 50
|
|
||||||
threshold critical max 60
|
|
||||||
limits pa1_pwr
|
|
||||||
threshold warning max 50
|
|
||||||
threshold critical max 60
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
!
|
|
||||||
! OsmoBTS (0.0.1.100-0455-dirty) configuration saved from vty
|
|
||||||
!!
|
|
||||||
!
|
|
||||||
log stderr
|
|
||||||
logging color 1
|
|
||||||
logging timestamp 0
|
|
||||||
logging level rsl info
|
|
||||||
logging level oml info
|
|
||||||
logging level rll notice
|
|
||||||
logging level rr notice
|
|
||||||
logging level meas notice
|
|
||||||
logging level pag info
|
|
||||||
logging level l1c info
|
|
||||||
logging level l1p info
|
|
||||||
logging level dsp debug
|
|
||||||
logging level abis notice
|
|
||||||
logging level rtp notice
|
|
||||||
logging level lglobal notice
|
|
||||||
logging level llapd notice
|
|
||||||
logging level linp notice
|
|
||||||
logging level lmux notice
|
|
||||||
logging level lmi notice
|
|
||||||
logging level lmib notice
|
|
||||||
logging level lsms notice
|
|
||||||
!
|
|
||||||
line vty
|
|
||||||
no login
|
|
||||||
!
|
|
||||||
phy 0
|
|
||||||
instance 0
|
|
||||||
trx-calibration-path /mnt/rom/factory/calib
|
|
||||||
phy 1
|
|
||||||
instance 0
|
|
||||||
trx-calibration-path /mnt/rom/factory/calib
|
|
||||||
bts 0
|
|
||||||
band 900
|
|
||||||
ipa unit-id 1500 0
|
|
||||||
oml remote-ip 192.168.234.185
|
|
||||||
trx 0
|
|
||||||
phy 0 instance 0
|
|
||||||
trx 1
|
|
||||||
phy 1 instance 0
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
!
|
|
||||||
! oc2gbts-mgr (0.3.0.284-a7c2-dirty) configuration saved from vty
|
|
||||||
!!
|
|
||||||
!
|
|
||||||
log stderr
|
|
||||||
logging filter all 1
|
|
||||||
logging color 1
|
|
||||||
logging print category 0
|
|
||||||
logging timestamp 0
|
|
||||||
logging level temp info
|
|
||||||
logging level fw info
|
|
||||||
logging level find info
|
|
||||||
logging level calib info
|
|
||||||
logging level lglobal notice
|
|
||||||
logging level llapd notice
|
|
||||||
logging level linp notice
|
|
||||||
logging level lmux notice
|
|
||||||
logging level lmi notice
|
|
||||||
logging level lmib notice
|
|
||||||
logging level lsms notice
|
|
||||||
logging level lctrl notice
|
|
||||||
logging level lgtp notice
|
|
||||||
!
|
|
||||||
line vty
|
|
||||||
no login
|
|
||||||
!
|
|
||||||
oc2gbts-mgr
|
|
||||||
limits supply_volt
|
|
||||||
threshold warning min 17500
|
|
||||||
threshold critical min 19000
|
|
||||||
limits supply_pwr
|
|
||||||
threshold warning max 110
|
|
||||||
threshold critical max 120
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
!
|
|
||||||
! OsmoBTS (0.0.1.100-0455-dirty) configuration saved from vty
|
|
||||||
!!
|
|
||||||
!
|
|
||||||
log stderr
|
|
||||||
logging color 1
|
|
||||||
logging timestamp 0
|
|
||||||
logging level rsl info
|
|
||||||
logging level oml info
|
|
||||||
logging level rll notice
|
|
||||||
logging level rr notice
|
|
||||||
logging level meas notice
|
|
||||||
logging level pag info
|
|
||||||
logging level l1c info
|
|
||||||
logging level l1p info
|
|
||||||
logging level dsp debug
|
|
||||||
logging level abis notice
|
|
||||||
logging level rtp notice
|
|
||||||
logging level lglobal notice
|
|
||||||
logging level llapd notice
|
|
||||||
logging level linp notice
|
|
||||||
logging level lmux notice
|
|
||||||
logging level lmi notice
|
|
||||||
logging level lmib notice
|
|
||||||
logging level lsms notice
|
|
||||||
!
|
|
||||||
line vty
|
|
||||||
no login
|
|
||||||
!
|
|
||||||
phy 0
|
|
||||||
instance 0
|
|
||||||
trx-calibration-path /mnt/rom/factory/calib
|
|
||||||
bts 0
|
|
||||||
band 900
|
|
||||||
ipa unit-id 1500 0
|
|
||||||
oml remote-ip 10.42.0.1
|
|
||||||
trx 0
|
|
||||||
phy 0 instance 0
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
!
|
|
||||||
! OsmoBTS () configuration saved from vty
|
|
||||||
!!
|
|
||||||
!
|
|
||||||
log stderr
|
|
||||||
logging color 1
|
|
||||||
logging timestamp 0
|
|
||||||
logging level rsl info
|
|
||||||
logging level oml info
|
|
||||||
logging level rll notice
|
|
||||||
logging level rr notice
|
|
||||||
logging level meas notice
|
|
||||||
logging level pag info
|
|
||||||
logging level l1c info
|
|
||||||
logging level l1p info
|
|
||||||
logging level dsp info
|
|
||||||
logging level abis notice
|
|
||||||
!
|
|
||||||
line vty
|
|
||||||
no login
|
|
||||||
!
|
|
||||||
phy 0
|
|
||||||
octphy hw-addr 00:0C:90:2e:80:1e
|
|
||||||
octphy net-device eth0.2342
|
|
||||||
instance 0
|
|
||||||
bts 0
|
|
||||||
band 1800
|
|
||||||
ipa unit-id 1234 0
|
|
||||||
oml remote-ip 127.0.0.1
|
|
||||||
trx 0
|
|
||||||
phy 0 instance 0
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
!
|
|
||||||
! OsmoBTS () configuration saved from vty
|
|
||||||
!!
|
|
||||||
!
|
|
||||||
log stderr
|
|
||||||
logging color 1
|
|
||||||
logging timestamp 0
|
|
||||||
logging level rsl info
|
|
||||||
logging level oml info
|
|
||||||
logging level rll notice
|
|
||||||
logging level rr notice
|
|
||||||
logging level meas notice
|
|
||||||
logging level pag info
|
|
||||||
logging level l1c info
|
|
||||||
logging level l1p info
|
|
||||||
logging level dsp info
|
|
||||||
logging level abis notice
|
|
||||||
!
|
|
||||||
line vty
|
|
||||||
no login
|
|
||||||
!
|
|
||||||
phy 0
|
|
||||||
octphy hw-addr 00:0c:de:ad:fa:ce
|
|
||||||
octphy net-device eth2
|
|
||||||
instance 0
|
|
||||||
instance 1
|
|
||||||
bts 0
|
|
||||||
band 1800
|
|
||||||
ipa unit-id 1234 0
|
|
||||||
oml remote-ip 127.0.0.1
|
|
||||||
trx 0
|
|
||||||
phy 0 instance 0
|
|
||||||
trx 1
|
|
||||||
phy 0 instance 1
|
|
||||||
26
doc/examples/osmo-bts.cfg
Normal file
26
doc/examples/osmo-bts.cfg
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
!
|
||||||
|
! OsmoBTS () configuration saved from vty
|
||||||
|
!!
|
||||||
|
!
|
||||||
|
log stderr
|
||||||
|
logging color 0
|
||||||
|
logging timestamp 0
|
||||||
|
logging level all everything
|
||||||
|
logging level rsl info
|
||||||
|
logging level oml info
|
||||||
|
logging level rll notice
|
||||||
|
logging level rr notice
|
||||||
|
logging level meas notice
|
||||||
|
logging level pag info
|
||||||
|
logging level l1c info
|
||||||
|
logging level l1p info
|
||||||
|
logging level dsp debug
|
||||||
|
logging level abis notice
|
||||||
|
!
|
||||||
|
line vty
|
||||||
|
no login
|
||||||
|
!
|
||||||
|
bts 0
|
||||||
|
band 1800
|
||||||
|
ipa unit-id 1234 0
|
||||||
|
oml remote-ip 192.168.100.11
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
!
|
|
||||||
! OsmoBTS () configuration saved from vty
|
|
||||||
!!
|
|
||||||
!
|
|
||||||
log stderr
|
|
||||||
logging color 1
|
|
||||||
logging timestamp 0
|
|
||||||
logging level rsl info
|
|
||||||
logging level oml info
|
|
||||||
logging level rll notice
|
|
||||||
logging level rr notice
|
|
||||||
logging level meas notice
|
|
||||||
logging level pag info
|
|
||||||
logging level l1c info
|
|
||||||
logging level l1p info
|
|
||||||
logging level dsp info
|
|
||||||
logging level abis notice
|
|
||||||
!
|
|
||||||
line vty
|
|
||||||
no login
|
|
||||||
!
|
|
||||||
phy 0
|
|
||||||
instance 0
|
|
||||||
bts 0
|
|
||||||
band 1800
|
|
||||||
ipa unit-id 666 0
|
|
||||||
oml remote-ip 10.1.2.3
|
|
||||||
trx 0
|
|
||||||
phy 0 instance 0
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
!
|
|
||||||
! SysmoMgr (0.3.0.141-33e5) configuration saved from vty
|
|
||||||
!!
|
|
||||||
!
|
|
||||||
log stderr
|
|
||||||
logging filter all 1
|
|
||||||
logging color 1
|
|
||||||
logging timestamp 0
|
|
||||||
logging level temp info
|
|
||||||
logging level fw info
|
|
||||||
logging level find info
|
|
||||||
logging level lglobal notice
|
|
||||||
logging level llapd notice
|
|
||||||
logging level linp notice
|
|
||||||
logging level lmux notice
|
|
||||||
logging level lmi notice
|
|
||||||
logging level lmib notice
|
|
||||||
logging level lsms notice
|
|
||||||
!
|
|
||||||
line vty
|
|
||||||
no login
|
|
||||||
!
|
|
||||||
sysmobts-mgr
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
!
|
|
||||||
! OsmoBTS configuration example for CalypsoBTS
|
|
||||||
! http://osmocom.org/projects/baseband/wiki/CalypsoBTS
|
|
||||||
!!
|
|
||||||
!
|
|
||||||
log stderr
|
|
||||||
logging color 1
|
|
||||||
logging timestamp 0
|
|
||||||
logging level rsl notice
|
|
||||||
logging level oml notice
|
|
||||||
logging level rll notice
|
|
||||||
logging level rr notice
|
|
||||||
logging level meas error
|
|
||||||
logging level pag error
|
|
||||||
logging level l1c error
|
|
||||||
logging level l1p error
|
|
||||||
logging level dsp error
|
|
||||||
logging level abis error
|
|
||||||
!
|
|
||||||
line vty
|
|
||||||
no login
|
|
||||||
!
|
|
||||||
phy 0
|
|
||||||
instance 0
|
|
||||||
osmotrx rx-gain 1
|
|
||||||
osmotrx ip local 127.0.0.1
|
|
||||||
osmotrx ip remote 127.0.0.1
|
|
||||||
osmotrx timing-advance-loop
|
|
||||||
osmotrx ms-power-loop -65
|
|
||||||
osmotrx legacy-setbsic
|
|
||||||
bts 0
|
|
||||||
oml remote-ip 127.0.0.1
|
|
||||||
ipa unit-id 1801 0
|
|
||||||
gsmtap-sapi pdtch
|
|
||||||
gsmtap-sapi ccch
|
|
||||||
band 900
|
|
||||||
trx 0
|
|
||||||
phy 0 instance 0
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
!
|
|
||||||
! OsmoBTS () configuration saved from vty
|
|
||||||
!!
|
|
||||||
!
|
|
||||||
log stderr
|
|
||||||
logging color 1
|
|
||||||
logging timestamp 0
|
|
||||||
logging level rsl notice
|
|
||||||
logging level oml notice
|
|
||||||
logging level rll notice
|
|
||||||
logging level rr notice
|
|
||||||
logging level meas error
|
|
||||||
logging level pag error
|
|
||||||
logging level l1c error
|
|
||||||
logging level l1p error
|
|
||||||
logging level dsp error
|
|
||||||
logging level abis error
|
|
||||||
!
|
|
||||||
line vty
|
|
||||||
no login
|
|
||||||
!
|
|
||||||
phy 0
|
|
||||||
instance 0
|
|
||||||
osmotrx rx-gain 1
|
|
||||||
osmotrx ip local 127.0.0.1
|
|
||||||
osmotrx ip remote 127.0.0.1
|
|
||||||
bts 0
|
|
||||||
band 1800
|
|
||||||
ipa unit-id 6969 0
|
|
||||||
oml remote-ip 192.168.122.1
|
|
||||||
gsmtap-sapi ccch
|
|
||||||
gsmtap-sapi pdtch
|
|
||||||
trx 0
|
|
||||||
phy 0 instance 0
|
|
||||||
@@ -1,151 +0,0 @@
|
|||||||
!
|
|
||||||
! OpenBSC (0.15.0.629-34f0-dirty) configuration saved from vty
|
|
||||||
!!
|
|
||||||
!
|
|
||||||
log stderr
|
|
||||||
logging filter all 1
|
|
||||||
logging color 0
|
|
||||||
logging print category 1
|
|
||||||
logging timestamp 1
|
|
||||||
logging level all info
|
|
||||||
logging level rll notice
|
|
||||||
logging level cc notice
|
|
||||||
logging level mm debug
|
|
||||||
logging level rr notice
|
|
||||||
logging level rsl notice
|
|
||||||
logging level nm info
|
|
||||||
logging level mncc notice
|
|
||||||
logging level pag notice
|
|
||||||
logging level meas notice
|
|
||||||
logging level sccp notice
|
|
||||||
logging level msc notice
|
|
||||||
logging level mgcp notice
|
|
||||||
logging level ho notice
|
|
||||||
logging level db notice
|
|
||||||
logging level ref notice
|
|
||||||
logging level gprs debug
|
|
||||||
logging level ns info
|
|
||||||
logging level bssgp debug
|
|
||||||
logging level llc debug
|
|
||||||
logging level sndcp debug
|
|
||||||
logging level nat notice
|
|
||||||
logging level ctrl notice
|
|
||||||
logging level smpp debug
|
|
||||||
logging level filter debug
|
|
||||||
logging level ranap debug
|
|
||||||
logging level sua debug
|
|
||||||
logging level lglobal notice
|
|
||||||
logging level llapd notice
|
|
||||||
logging level linp notice
|
|
||||||
logging level lmux notice
|
|
||||||
logging level lmi notice
|
|
||||||
logging level lmib notice
|
|
||||||
logging level lsms notice
|
|
||||||
logging level lctrl notice
|
|
||||||
logging level lgtp notice
|
|
||||||
logging level lstats notice
|
|
||||||
logging level lgsup notice
|
|
||||||
logging level loap notice
|
|
||||||
!
|
|
||||||
stats interval 5
|
|
||||||
!
|
|
||||||
line vty
|
|
||||||
no login
|
|
||||||
!
|
|
||||||
e1_input
|
|
||||||
e1_line 0 driver ipa
|
|
||||||
e1_line 0 port 0
|
|
||||||
no e1_line 0 keepalive
|
|
||||||
network
|
|
||||||
network country code 262
|
|
||||||
mobile network code 42
|
|
||||||
short name OpenBSC
|
|
||||||
long name OpenBSC
|
|
||||||
auth policy accept-all
|
|
||||||
authorized-regexp .*
|
|
||||||
location updating reject cause 13
|
|
||||||
encryption a5 0
|
|
||||||
neci 1
|
|
||||||
paging any use tch 0
|
|
||||||
rrlp mode ms-based
|
|
||||||
mm info 1
|
|
||||||
handover 0
|
|
||||||
handover window rxlev averaging 10
|
|
||||||
handover window rxqual averaging 1
|
|
||||||
handover window rxlev neighbor averaging 10
|
|
||||||
handover power budget interval 6
|
|
||||||
handover power budget hysteresis 3
|
|
||||||
handover maximum distance 9999
|
|
||||||
timer t3101 10
|
|
||||||
timer t3103 0
|
|
||||||
timer t3105 0
|
|
||||||
timer t3107 0
|
|
||||||
timer t3109 4
|
|
||||||
timer t3111 0
|
|
||||||
timer t3113 60
|
|
||||||
timer t3115 0
|
|
||||||
timer t3117 0
|
|
||||||
timer t3119 0
|
|
||||||
timer t3122 10
|
|
||||||
timer t3141 0
|
|
||||||
subscriber-keep-in-ram 0
|
|
||||||
bts 0
|
|
||||||
type sysmobts
|
|
||||||
band DCS1800
|
|
||||||
cell_identity 6969
|
|
||||||
location_area_code 1
|
|
||||||
base_station_id_code 63
|
|
||||||
ms max power 0
|
|
||||||
cell reselection hysteresis 4
|
|
||||||
rxlev access min 0
|
|
||||||
periodic location update 30
|
|
||||||
radio-link-timeout 32
|
|
||||||
channel allocator descending
|
|
||||||
rach tx integer 9
|
|
||||||
rach max transmission 7
|
|
||||||
channel-descrption attach 1
|
|
||||||
channel-descrption bs-pa-mfrms 5
|
|
||||||
channel-descrption bs-ag-blks-res 1
|
|
||||||
ip.access unit_id 6969 0
|
|
||||||
oml ip.access stream_id 255 line 0
|
|
||||||
neighbor-list mode automatic
|
|
||||||
codec-support fr
|
|
||||||
gprs mode none
|
|
||||||
no force-combined-si
|
|
||||||
trx 0
|
|
||||||
rf_locked 0
|
|
||||||
arfcn 666
|
|
||||||
nominal power 0
|
|
||||||
max_power_red 0
|
|
||||||
rsl e1 tei 0
|
|
||||||
timeslot 0
|
|
||||||
phys_chan_config CCCH+SDCCH4
|
|
||||||
hopping enabled 0
|
|
||||||
timeslot 1
|
|
||||||
phys_chan_config SDCCH8
|
|
||||||
hopping enabled 0
|
|
||||||
timeslot 2
|
|
||||||
phys_chan_config TCH/F
|
|
||||||
hopping enabled 0
|
|
||||||
timeslot 3
|
|
||||||
phys_chan_config TCH/F
|
|
||||||
hopping enabled 0
|
|
||||||
timeslot 4
|
|
||||||
phys_chan_config TCH/F
|
|
||||||
hopping enabled 0
|
|
||||||
timeslot 5
|
|
||||||
phys_chan_config TCH/F
|
|
||||||
hopping enabled 0
|
|
||||||
timeslot 6
|
|
||||||
phys_chan_config TCH/F
|
|
||||||
hopping enabled 0
|
|
||||||
timeslot 7
|
|
||||||
phys_chan_config TCH/F
|
|
||||||
hopping enabled 0
|
|
||||||
mncc-int
|
|
||||||
default-codec tch-f fr
|
|
||||||
default-codec tch-h hr
|
|
||||||
nitb
|
|
||||||
subscriber-create-on-demand
|
|
||||||
subscriber-create-on-demand random 1 24
|
|
||||||
assign-tmsi
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
!
|
|
||||||
! OsmoBTS (0.4.0.216-bc49-dirty) configuration saved from vty
|
|
||||||
!!
|
|
||||||
!
|
|
||||||
log stderr
|
|
||||||
logging filter all 0
|
|
||||||
logging color 0
|
|
||||||
logging print category 1
|
|
||||||
logging timestamp 0
|
|
||||||
logging level rsl info
|
|
||||||
logging level oml info
|
|
||||||
logging level rll notice
|
|
||||||
logging level rr notice
|
|
||||||
logging level meas notice
|
|
||||||
logging level pag info
|
|
||||||
logging level l1c info
|
|
||||||
logging level l1p info
|
|
||||||
logging level dsp error
|
|
||||||
logging level pcu notice
|
|
||||||
logging level ho debug
|
|
||||||
logging level trx notice
|
|
||||||
logging level loop notice
|
|
||||||
logging level abis debug
|
|
||||||
logging level rtp notice
|
|
||||||
logging level sum error
|
|
||||||
logging level lglobal notice
|
|
||||||
logging level llapd notice
|
|
||||||
logging level linp notice
|
|
||||||
logging level lmux notice
|
|
||||||
logging level lmi notice
|
|
||||||
logging level lmib notice
|
|
||||||
logging level lsms notice
|
|
||||||
logging level lctrl notice
|
|
||||||
logging level lgtp notice
|
|
||||||
logging level lstats error
|
|
||||||
!
|
|
||||||
line vty
|
|
||||||
no login
|
|
||||||
!
|
|
||||||
e1_input
|
|
||||||
e1_line 0 driver ipa
|
|
||||||
e1_line 0 port 0
|
|
||||||
no e1_line 0 keepalive
|
|
||||||
phy 0
|
|
||||||
instance 0
|
|
||||||
bts 0
|
|
||||||
band DCS1800
|
|
||||||
ipa unit-id 6969 0
|
|
||||||
oml remote-ip 127.0.0.1
|
|
||||||
rtp jitter-buffer 100
|
|
||||||
paging queue-size 200
|
|
||||||
paging lifetime 0
|
|
||||||
uplink-power-target -75
|
|
||||||
min-qual-rach 50
|
|
||||||
min-qual-norm -5
|
|
||||||
trx 0
|
|
||||||
power-ramp max-initial 23000 mdBm
|
|
||||||
power-ramp step-size 2000 mdB
|
|
||||||
power-ramp step-interval 1
|
|
||||||
ms-power-control dsp
|
|
||||||
phy 0 instance 0
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
EXTRA_DIST = dtx.dot \
|
|
||||||
osmobts-abis.adoc \
|
|
||||||
osmobts-abis-docinfo.xml \
|
|
||||||
osmobts-usermanual.adoc \
|
|
||||||
osmobts-usermanual-docinfo.xml \
|
|
||||||
osmobts-vty-reference.xml \
|
|
||||||
rtp-amr.adoc \
|
|
||||||
rtp-amr-docinfo.xml \
|
|
||||||
abis \
|
|
||||||
chapters \
|
|
||||||
vty
|
|
||||||
|
|
||||||
if BUILD_MANUALS
|
|
||||||
ASCIIDOC = osmobts-usermanual.adoc osmobts-abis.adoc rtp-amr.adoc
|
|
||||||
include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.asciidoc.inc
|
|
||||||
osmobts-usermanual.pdf: $(srcdir)/chapters/*.adoc
|
|
||||||
osmobts-abis.pdf: $(srcdir)/abis/*.adoc $(srcdir)/abis/*.msc
|
|
||||||
rtp-amr.pdf: $(srcdir)/dtx.dot
|
|
||||||
|
|
||||||
VTY_REFERENCE = osmobts-vty-reference.xml
|
|
||||||
include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.vty-reference.inc
|
|
||||||
|
|
||||||
include $(OSMO_GSM_MANUALS_DIR)/build/Makefile.common.inc
|
|
||||||
endif
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
msc {
|
|
||||||
bts [label="BTS"], bsc [label="BSC"];
|
|
||||||
|
|
||||||
bts => bsc [label="TCP Connect (Port 3002, OML)"];
|
|
||||||
bts box bsc [label="IPA CCM Identification (Port 3002)"];
|
|
||||||
bts <= bsc [label="OML Configuration of BTS via OML"];
|
|
||||||
...;
|
|
||||||
bts <= bsc [label="OML (TRX=0) IPA RSL CONNECT"];
|
|
||||||
bts => bsc [label="TCP Connect (Port 3003, RSL, TRX 0)"];
|
|
||||||
bts box bsc [label="IPA CCM Identification Port 3003"];
|
|
||||||
bts <= bsc [label="RSL BCCH filling (System Information)"];
|
|
||||||
bts <= bsc [label="RSL SACCH filling (SI 5/6)"];
|
|
||||||
...;
|
|
||||||
bts <= bsc [label="OML (TRX=1) IPA RSL CONNECT"];
|
|
||||||
bts => bsc [label="TCP Connect (Port 3003, RSL, TRX 1)"];
|
|
||||||
bts box bsc [label="IPA CCM Identification (Port 3003)"];
|
|
||||||
bts <= bsc [label="RSL SACCH filling (SI 5/6)"];
|
|
||||||
...;
|
|
||||||
bts <= bsc [label="OML (TRX=N) IPA RSL CONNECT"];
|
|
||||||
bts => bsc [label="TCP Connect (Port 3003, RSL, TRX N)"];
|
|
||||||
bts box bsc [label="IPA CCM Identification (Port 3003)"];
|
|
||||||
bts <= bsc [label="RSL SACCH filling (SI 5/6)"];
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
msc {
|
|
||||||
hscale = "1.2";
|
|
||||||
phy,bts,pcu,bsc;
|
|
||||||
|
|
||||||
phy box bsc [ label = "PDCH Deactivation" ];
|
|
||||||
bsc => bts [ label = "IPAC PDCH DEACT" ];
|
|
||||||
--- [ label = "Disconnect PDTCH" ];
|
|
||||||
bts => pcu [ label = "info ind (Deactivate)" ];
|
|
||||||
pcu => bts [ label = "chan Deactivate request" ];
|
|
||||||
bts => phy [ label = "L1 chan Deactivate PDTCH SAPIs" ];
|
|
||||||
phy -> bts [ label = "L1 chan Deactivate SAPIs confirm" ];
|
|
||||||
bts => phy [ label = "L1 chan Disconnect PDTCH" ];
|
|
||||||
phy -> bts [ label = "L1 chan Disconnect confirm" ];
|
|
||||||
--- [ label = "Connect TCH" ];
|
|
||||||
bts => phy [ label = "L1 chan Connect TCH" ];
|
|
||||||
phy -> bts [ label = "L1 chan Connect confirm" ];
|
|
||||||
bts => bsc [ label = "IPAC PDCH DEACT ACK" ];
|
|
||||||
|
|
||||||
phy box bsc [ label = "Now BSC may use TCH (example)" ];
|
|
||||||
bsc => bts [ label = "Activate TCH/F" ];
|
|
||||||
bts => phy [ label = "L1 chan Activate SAPIs" ];
|
|
||||||
--- [ label = "Voice call..." ];
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
msc {
|
|
||||||
hscale = "1.2";
|
|
||||||
phy,bts,pcu,bsc;
|
|
||||||
|
|
||||||
--- [ label = "...Voice call ends" ];
|
|
||||||
bsc => bts [ label = "Deactivate TCH/F" ];
|
|
||||||
bts => phy [ label = "L1 chan Deactivate SAPIs" ];
|
|
||||||
|
|
||||||
phy box bsc [ label = "PDCH Activation" ];
|
|
||||||
bsc => bts [ label = "IPAC PDCH ACT" ];
|
|
||||||
--- [ label = "Disconnect TCH" ];
|
|
||||||
bts => phy [ label = "L1 chan Disconnect TCH" ];
|
|
||||||
phy -> bts [ label = "L1 chan Disconnect confirm" ];
|
|
||||||
--- [ label = "Connect PDTCH" ];
|
|
||||||
bts => phy [ label = "L1 chan Connect PDTCH" ];
|
|
||||||
phy -> bts [ label = "L1 chan Connect confirm" ];
|
|
||||||
bts => pcu [ label = "info ind (Activate)" ];
|
|
||||||
pcu => bts [ label = "chan Activate request" ];
|
|
||||||
bts => phy [ label = "L1 chan Activate PDTCH SAPIs" ];
|
|
||||||
phy -> bts [ label = "L1 chan Activate SAPIs confirm" ];
|
|
||||||
bts => bsc [ label = "IPAC PDCH ACT ACK" ];
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
msc {
|
|
||||||
hscale = "1.5";
|
|
||||||
phy,bts,pcu,bsc;
|
|
||||||
|
|
||||||
bts => bsc [ label = "RSL Chan Requested" ];
|
|
||||||
phy box bsc [ label = "TS is in PDCH mode, deactivate" ];
|
|
||||||
bsc => bts [ label = "RSL RF Channel Release (PDCH)" ];
|
|
||||||
bts => pcu [ label = "Info Ind (Deactivate)" ];
|
|
||||||
pcu => bts [ label = "Chan Deactivate request" ];
|
|
||||||
bts => phy [ label = "L1 chan Deactivate PDTCH SAPIs" ];
|
|
||||||
phy -> bts [ label = "L1 chan Deactivate SAPIs confirm" ];
|
|
||||||
bts -> bsc [ label = "RSL RF Channel Release Ack (PDCH)" ];
|
|
||||||
|
|
||||||
phy box bsc [ label = "Activate TCH/H" ];
|
|
||||||
bsc => bts [ label = "RSL Channel Activation (TCH/H)" ];
|
|
||||||
--- [ label = "BTS notices: chan still connected as PDTCH, reconnect" ];
|
|
||||||
bts => phy [ label = "L1 chan Disconnect PDTCH" ];
|
|
||||||
phy -> bts [ label = "L1 chan Disconnect confirm" ];
|
|
||||||
bts => phy [ label = "L1 chan Connect TCH/H" ];
|
|
||||||
phy -> bts [ label = "L1 chan Connect confirm" ];
|
|
||||||
--- [ label = "chan reconnect as TCH/H complete" ];
|
|
||||||
bts => phy [ label = "L1 chan Activate SAPIs" ];
|
|
||||||
bts -> bsc [ label = "RSL Channel Activation Ack (TCH/H)" ];
|
|
||||||
--- [ label = "Voice call 1 commences..." ];
|
|
||||||
|
|
||||||
phy box bsc [ label = "A second voice call is requested" ];
|
|
||||||
bts => bsc [ label = "RSL Chan Requested" ];
|
|
||||||
phy box bsc [ label = "BSC finds second slot on dynamic TS in TCH/H mode" ];
|
|
||||||
bsc => bts [ label = "RSL Channel Activation (TCH/H)" ];
|
|
||||||
bts => phy [ label = "L1 chan Activate SAPIs" ];
|
|
||||||
bts -> bsc [ label = "RSL Channel Activation Ack (TCH/H)" ];
|
|
||||||
--- [ label = "Voice call 2 commences..." ];
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
msc {
|
|
||||||
hscale = "1.5";
|
|
||||||
phy,bts,pcu,bsc;
|
|
||||||
|
|
||||||
--- [ label = "...Voice call 1 ends" ];
|
|
||||||
bts => bsc [ label = "Release Ind" ];
|
|
||||||
bsc => bts [ label = "RSL RF Channel Release (TCH/H)" ];
|
|
||||||
bts => phy [ label = "L1 chan Deactivate SAPIs" ];
|
|
||||||
bts -> bsc [ label = "RSL RF Channel Release Ack (TCH/H)" ];
|
|
||||||
--- [ label = "BSC notices: one chan still in use"];
|
|
||||||
|
|
||||||
--- [ label = "...Voice call 2 ends" ];
|
|
||||||
bts => bsc [ label = "Release Ind" ];
|
|
||||||
bsc => bts [ label = "RSL RF Channel Release (TCH/H)" ];
|
|
||||||
bts => phy [ label = "L1 chan Deactivate SAPIs" ];
|
|
||||||
bts -> bsc [ label = "RSL RF Channel Release Ack (TCH/H)" ];
|
|
||||||
|
|
||||||
phy box bsc [ label = "If all channels on TS are released, PDCH Activation" ];
|
|
||||||
bsc => bts [ label = "RSL Channel Activation (PDCH)" ];
|
|
||||||
bts -> bsc [ label = "RSL Channel Activation Ack (PDCH) (unconditionally)" ];
|
|
||||||
--- [ label = "BTS notices: chan still connected as TCH/H, reconnect" ];
|
|
||||||
bts => phy [ label = "L1 chan Disconnect TCH/H" ];
|
|
||||||
phy -> bts [ label = "L1 chan Disconnect confirm" ];
|
|
||||||
bts => phy [ label = "L1 chan Connect PDTCH" ];
|
|
||||||
phy -> bts [ label = "L1 chan Connect confirm" ];
|
|
||||||
--- [ label = "chan reconnect as PDTCH complete" ];
|
|
||||||
bts => pcu [ label = "Info Ind (Activate)" ];
|
|
||||||
pcu => bts [ label = "chan Activate request" ];
|
|
||||||
bts => phy [ label = "L1 chan Activate PDTCH SAPIs" ];
|
|
||||||
phy -> bts [ label = "L1 chan Activate SAPIs confirm" ];
|
|
||||||
}
|
|
||||||
@@ -1,106 +0,0 @@
|
|||||||
== IPA Multiplex
|
|
||||||
|
|
||||||
The ETSI/3GPP specifications for A-bis transport (ETSI/3GPP TS 08.56)
|
|
||||||
specify the transmission of RSL and OML messages over a LAPD based
|
|
||||||
framing on top of 64kBit/s signalling times slots (B-channels) on E1
|
|
||||||
lines.
|
|
||||||
|
|
||||||
OsmoBTS does not implement this LAPD based transport, but instead
|
|
||||||
implements A-bis over IP in a flavor first observed by ip.access nanoBTS
|
|
||||||
products. The OsmoBTS implementation is a clean-room re-implementation
|
|
||||||
based on the observation and dissection of protocol traces.
|
|
||||||
|
|
||||||
LAPD as used in E1 signalling channels provides in-order transmission
|
|
||||||
and reliable delivery. This is why TCP was chosen as Layer 4 transport
|
|
||||||
protocol on top of IP. TCP however, is a stream based transport
|
|
||||||
protocol, which doesn't preserve the boundaries of messages.
|
|
||||||
|
|
||||||
To work around this shortcoming, an additional framing layer called the
|
|
||||||
IPA multiplex was introduced between TCP and the RSL and OML messages.
|
|
||||||
|
|
||||||
.Protocol Stacking
|
|
||||||
[width="30%"]
|
|
||||||
|===
|
|
||||||
|RSL + OML (this document)
|
|
||||||
|IPA (this document)
|
|
||||||
|TCP (IETF RFC 793)
|
|
||||||
|IP (IETF RFC 791)
|
|
||||||
|Ethernet (IEEE 802.3)
|
|
||||||
|===
|
|
||||||
|
|
||||||
=== IPA Header
|
|
||||||
|
|
||||||
Each higher-layer PDU is encapsulated by a three-byte IPA header with
|
|
||||||
the following structure:
|
|
||||||
|
|
||||||
.IPA Header Structure
|
|
||||||
[options="header",cols="10%,15%,15%,60%"]
|
|
||||||
|===
|
|
||||||
|Offset (Octets)|Length|Name|Description
|
|
||||||
|0|2|Length|Length of the variable-length payload section in network
|
|
||||||
byte order (excluding the length of the IPA Header)
|
|
||||||
|2|1|Stream Identifier|Identifies the stream of the payload
|
|
||||||
|3|Variable|Payload|higher-layer PDU (i.e. RSL or OML message)
|
|
||||||
|===
|
|
||||||
|
|
||||||
=== IPA Stream Identifiers
|
|
||||||
|
|
||||||
The IPA Stream Identifier serves to differentiate different streams
|
|
||||||
within the multiplex. In the context of A-bis, it can be seen as
|
|
||||||
analogous to the LAPD TEI on classic A-bis over E1.
|
|
||||||
|
|
||||||
The following IPA stream identifiers are being used in A-bis/IP:
|
|
||||||
|
|
||||||
.IPA Stream Identifiers
|
|
||||||
[options="header",width="70%",cols="20%,20%,60%"]
|
|
||||||
|===
|
|
||||||
|Value (Hex)|Name|Description
|
|
||||||
|0x00|RSL|A-bis RSL according to this document, TRX 0
|
|
||||||
|0x01|RSL|A-bis RSL according to this document, TRX 1
|
|
||||||
|0x0n|RSL|A-bis RSL according to this document, TRX n
|
|
||||||
|0xfe|CCM|IPA Connection Management
|
|
||||||
|0xff|OML|A-bis OML according to this document
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
=== IPA Connection Management (CCM)
|
|
||||||
|
|
||||||
The IPA Connection Management is a sub-layer underneath the IPA
|
|
||||||
multiplex which is used to manage the connection itself. It supports
|
|
||||||
functions like Identity Management and Keep-Alive.
|
|
||||||
|
|
||||||
==== Identity Management
|
|
||||||
|
|
||||||
When a BTS connects to the BSC, the BSC must identify the connected BTS
|
|
||||||
somehow. In ETSI/3GPP A-bis, the E1 multiplex + signalling timeslot
|
|
||||||
number is used for this. In IP, there is no similar usable identity.
|
|
||||||
Hence, the Unit ID is used for this purpose.
|
|
||||||
|
|
||||||
.Procedure for IPA peer identification is as follows
|
|
||||||
[options="header",cols="20%,80%"]
|
|
||||||
|===
|
|
||||||
|Direction|Operation
|
|
||||||
|BTS -> BSC|BTS connects the TCP connection to be used with IPA
|
|
||||||
|BTS <- BSC|BSC requests BTS identity with ID_GET
|
|
||||||
|BTS -> BSC|BTS responds BTS Unit ID with ID_RESP
|
|
||||||
|BTS <- BSC|BSC responds with ID_ACK, if the Unit ID is known to the BSC
|
|
||||||
|===
|
|
||||||
|
|
||||||
Following the above peer identification procedure, transfer of
|
|
||||||
higher-level messages such as OML or RSL commences.
|
|
||||||
|
|
||||||
==== IPA CCM Messages
|
|
||||||
|
|
||||||
IPA CCM supports the following messages
|
|
||||||
|
|
||||||
.IPA CCM Messages
|
|
||||||
[options="header"]
|
|
||||||
[cols="10%,15%,75%"]
|
|
||||||
|===
|
|
||||||
|Value|Name|Purpose
|
|
||||||
|0x00|PING|Request a PONG from the peer
|
|
||||||
|0x01|PONG|Response to a PING
|
|
||||||
|0x04|ID_GET|Request Identity from peer
|
|
||||||
|0x05|ID_RESP|Response to ID_GET
|
|
||||||
|0x06|ID_ACK|Identity Acknowledged
|
|
||||||
|===
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
msc {
|
|
||||||
bts [label="BTS"], bsc [label="BSC"];
|
|
||||||
# this is for the BTS Object
|
|
||||||
--- [label="Initial state after establishing OML"];
|
|
||||||
bts => bsc [label="STATE CHG REP (Disabled/Notinstalled/Locked)"];
|
|
||||||
--- [label="MO requests software activation"];
|
|
||||||
bts => bsc [label="SW Activate Req"];
|
|
||||||
bts <= bsc [label="SW Activate Req Ack"];
|
|
||||||
--- [label="BTS instructs BTS to activate software"];
|
|
||||||
bts <= bsc [label="Activate SW"];
|
|
||||||
bts => bsc [label="Activate SW Ack"];
|
|
||||||
--- [label="MO reports new state after SW activation"];
|
|
||||||
bts => bsc [label="STATE CHG REP (Disabled/Dependency)"];
|
|
||||||
bts => bsc [label="SW Activated Report"];
|
|
||||||
--- [label="Configure the MO with its attributes"];
|
|
||||||
bts <= bsc [label="Set BTS Attributes"];
|
|
||||||
bts => bsc [label="Set BTS Attributes Ack"];
|
|
||||||
bts <= bsc [label="OPSTART"];
|
|
||||||
bts => bsc [label="OPSTART ACK"];
|
|
||||||
--- [label="As this object is locked, we need to unlock it"];
|
|
||||||
bts <= bsc [label="Change Adm State (Unlocked)"];
|
|
||||||
bts => bsc [label="Change Adm State Ack (Unlocked)"];
|
|
||||||
bts => bsc [label="STATE CHG REP (Disabled/Dependency/Unlocked)"];
|
|
||||||
--- [label="Initialize Radio Transceiver, Radio Carrier, Channels"];
|
|
||||||
bts => bsc [label="STATE CHG REP (Enabled/OK)"];
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
msc {
|
|
||||||
bts [label="Radio Carrier"], bsc [label="BSC"];
|
|
||||||
--- [label="Initial state after establishing OML"];
|
|
||||||
bts => bsc [label="STATE CHG REP (Disabled/Notinstalled/Locked)"];
|
|
||||||
--- [label="MO requests software activation"];
|
|
||||||
bts => bsc [label="SW Activate Req"];
|
|
||||||
bts <= bsc [label="SW Activate Req Ack"];
|
|
||||||
--- [label="BTS instructs BTS to activate software"];
|
|
||||||
bts <= bsc [label="Activate SW"];
|
|
||||||
bts => bsc [label="Activate SW Ack"];
|
|
||||||
--- [label="MO reports new state after SW activation"];
|
|
||||||
bts => bsc [label="STATE CHG REP (Disabled/Offline)"];
|
|
||||||
bts => bsc [label="SW Activated Report"];
|
|
||||||
--- [label="Configure the MO with its attributes"];
|
|
||||||
bts <= bsc [label="Set Radio Carrier Attributes"];
|
|
||||||
bts => bsc [label="Set Radio Carrier Attributes Ack"];
|
|
||||||
bts <= bsc [label="OPSTART"];
|
|
||||||
bts => bsc [label="OPSTART ACK"];
|
|
||||||
--- [label="As this object is locked, we need to unlock it"];
|
|
||||||
bts <= bsc [label="Change Adm State (Unlocked)"];
|
|
||||||
bts => bsc [label="Change Adm State Ack (Unlocked)"];
|
|
||||||
bts => bsc [label="STATE CHG REP (Disabled/OK/Unlocked)"];
|
|
||||||
bts => bsc [label="STATE CHG REP (Enabled)"];
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
msc {
|
|
||||||
bts [label="Channel"], bsc [label="BSC"];
|
|
||||||
--- [label="Initial state after establishing OML"];
|
|
||||||
bts => bsc [label="STATE CHG REP (Disabled/Notinstalled/Locked)"];
|
|
||||||
--- [label="MO reports new state after SW activation of Baseband Transceiver"];
|
|
||||||
bts => bsc [label="STATE CHG REP (Disabled/Dependency)"];
|
|
||||||
bts => bsc [label="SW Activated Report"];
|
|
||||||
--- [label="Configure the MO with its attributes"];
|
|
||||||
bts <= bsc [label="Set Channel Attributes"];
|
|
||||||
bts => bsc [label="Set Channel Attributes Ack"];
|
|
||||||
bts <= bsc [label="OPSTART"];
|
|
||||||
bts => bsc [label="OPSTART ACK"];
|
|
||||||
--- [label="As this object is locked, we need to unlock it"];
|
|
||||||
bts <= bsc [label="Change Adm State (Unlocked)"];
|
|
||||||
bts => bsc [label="Change Adm State Ack (Unlocked)"];
|
|
||||||
bts => bsc [label="STATE CHG REP (Disabled/Dependency/Unlocked)"];
|
|
||||||
--- [label="Initialize Radio Carrier / Baseband Transceiver"];
|
|
||||||
bts => bsc [label="STATE CHG REP (Disabled/Offline)"];
|
|
||||||
bts => bsc [label="STATE CHG REP (Enabled/OK)"];
|
|
||||||
}
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
msc {
|
|
||||||
bts [label="Site Manager"], bsc [label="BSC"];
|
|
||||||
# this is for the Site Manager Object
|
|
||||||
--- [label="Initial state after establishing OML"];
|
|
||||||
bts => bsc [label="STATE CHG REP (Disabled/Notinstalled)"];
|
|
||||||
--- [label="MO requests software activation"];
|
|
||||||
bts => bsc [label="SW Activate Req"];
|
|
||||||
bts <= bsc [label="SW Activate Req Ack"];
|
|
||||||
--- [label="BTS instructs BTS to activate software"];
|
|
||||||
bts <= bsc [label="Activate SW"];
|
|
||||||
bts => bsc [label="Activate SW Ack"];
|
|
||||||
--- [label="MO reports new state after SW activation"];
|
|
||||||
bts => bsc [label="STATE CHG REP (Enabled)"];
|
|
||||||
bts => bsc [label="SW Activated Report"];
|
|
||||||
bts <= bsc [label="OPSTART"];
|
|
||||||
bts => bsc [label="OPSTART ACK"];
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
msc {
|
|
||||||
bts [label="Baseband Transceiver"], bsc [label="BSC"];
|
|
||||||
--- [label="Initial state after establishing OML"];
|
|
||||||
bts => bsc [label="STATE CHG REP (Disabled/Notinstalled/Locked)"];
|
|
||||||
--- [label="MO requests software activation"];
|
|
||||||
bts => bsc [label="SW Activate Req"];
|
|
||||||
bts <= bsc [label="SW Activate Req Ack"];
|
|
||||||
--- [label="BTS instructs BTS to activate software"];
|
|
||||||
bts <= bsc [label="Activate SW"];
|
|
||||||
bts => bsc [label="Activate SW Ack"];
|
|
||||||
--- [label="MO reports new state after SW activation"];
|
|
||||||
bts => bsc [label="STATE CHG REP (Disabled/Dependency)"];
|
|
||||||
bts => bsc [label="SW Activated Report"];
|
|
||||||
--- [label="BSC requests RSL establishment"];
|
|
||||||
bts <= bsc [label="IPA RSL Connect"];
|
|
||||||
bts => bsc [label="IPA RSL Connect ACK"];
|
|
||||||
bts <= bsc [label="OPSTART"];
|
|
||||||
bts => bsc [label="OPSTART ACK"];
|
|
||||||
--- [label="As this object is locked, we need to unlock it"];
|
|
||||||
bts <= bsc [label="Change Adm State (Unlocked)"];
|
|
||||||
bts => bsc [label="Change Adm State Ack (Unlocked)"];
|
|
||||||
bts => bsc [label="STATE CHG REP (Disabled/Dependency/Unlocked)"];
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
msc {
|
|
||||||
hscale = 2;
|
|
||||||
|
|
||||||
chan [label="Channel"], rc [label="Radio Carrier"], smg [label="Site Manager"], bts [label="BTS"], bsc [label="BSC"];
|
|
||||||
|
|
||||||
bts => bsc [label="TCP Connect (Port 3003, OML)"];
|
|
||||||
bts box bsc [label="IPA CCM Identification (Port 3003)"];
|
|
||||||
|||;
|
|
||||||
smg => bsc [label="(Site Mgr) STATE CHG REP (Disabled/NotInstalled)"];
|
|
||||||
bts => bsc [label="(BTS) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
|
||||||
rc => bsc [label="(TRANSC) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
|
||||||
chan => bsc [label="(Ch 0) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
|
||||||
chan => bsc [label="(Ch 1) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
|
||||||
chan => bsc [label="(Ch 2) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
|
||||||
chan => bsc [label="(Ch 3) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
|
||||||
chan => bsc [label="(Ch 4) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
|
||||||
chan => bsc [label="(Ch 5) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
|
||||||
chan => bsc [label="(Ch 6) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
|
||||||
chan => bsc [label="(Ch 7) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
|
||||||
rc => bsc [label="(RC) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
|
||||||
bts => bsc [label="(GPRS-NSE) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
|
||||||
bts => bsc [label="(GPRS-CELL) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
|
||||||
bts => bsc [label="(GPRS-NSVC0) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
|
||||||
bts => bsc [label="(GPRS-NSVC1) STATE CHG REP (Disabled/NotInstalled/Locked)"];
|
|
||||||
|||;
|
|
||||||
smg => bsc [label="(Site Mgr) SW Activate Req"];
|
|
||||||
smg <= bsc [label="(Site Mgr) SW Activate Req Ack"];
|
|
||||||
smg <= bsc [label="(Site Mgr) Activate SW"];
|
|
||||||
smg => bsc [label="(Site Mgr) Activate SW Ack"];
|
|
||||||
smg => bsc [label="(Site Mgr) STATE CHG REP (Enabled)"];
|
|
||||||
smg => bsc [label="(Site Mgr) SW Activated Report"];
|
|
||||||
smg <= bsc [label="(Site Mgr) OPSTART"];
|
|
||||||
smg => bsc [label="(Site Mgr) OPSTART ACK"];
|
|
||||||
}
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
msc {
|
|
||||||
hscale = 2;
|
|
||||||
|
|
||||||
chan [label="Channel"], rc [label="Radio Carrier"], bts [label="BTS"], bsc [label="BSC"];
|
|
||||||
|
|
||||||
bts box bsc [label="OML Connect + Site Manager Init"];
|
|
||||||
...;
|
|
||||||
bts => bsc [label="(BTS) SW Activate Req"];
|
|
||||||
bts <= bsc [label="(BTS) SW Activate Req Ack"];
|
|
||||||
bts <= bsc [label="(BTS) Activate SW"];
|
|
||||||
bts => bsc [label="(BTS) Activate SW Ack"];
|
|
||||||
bts => bsc [label="(BTS) STATE CHG REP (Disabled/Dependency)"];
|
|
||||||
bts => bsc [label="(BTS) SW Activated Report"];
|
|
||||||
|||;
|
|
||||||
rc => bsc [label="(TRANSC) SW Activate Req"];
|
|
||||||
rc => bsc [label="(RC) SW Activated Req"];
|
|
||||||
|||;
|
|
||||||
bts <= bsc [label="(BTS) Set BTS Attributes"];
|
|
||||||
bts => bsc [label="(BTS) Set BTS Attributes Ack"];
|
|
||||||
bts <= bsc [label="(BTS) OPSTART"];
|
|
||||||
bts => bsc [label="(BTS) OPSTART Ack"];
|
|
||||||
|||;
|
|
||||||
bts <= bsc [label="(BTS) Change Adm State (Unlocked)"];
|
|
||||||
bts => bsc [label="(BTS) Change Adm State ACK (Unlocked)"];
|
|
||||||
bts => bsc [label="(BTS) STATE CHG REP (Disabled/Dependency/Unlcoked)"];
|
|
||||||
|||;
|
|
||||||
rc <= bsc [label="(TRANSC) SW Activate Req Ack"];
|
|
||||||
rc <= bsc [label="(TRANSC) Activate SW"];
|
|
||||||
rc => bsc [label="(TRANSC) Activate SW Ack"];
|
|
||||||
rc => bsc [label="(TRANSC) STATE CHG REP (Disabled/Dependency)"];
|
|
||||||
rc => bsc [label="(TRANSC) SW Activated Report"];
|
|
||||||
|
|
||||||
chan => bsc [label="(CHAN 0) STATE CHG REP (Disabled/Dependency)"];
|
|
||||||
chan => bsc [label="(CHAN 1) STATE CHG REP (Disabled/Dependency)"];
|
|
||||||
chan => bsc [label="(CHAN 2) STATE CHG REP (Disabled/Dependency)"];
|
|
||||||
chan => bsc [label="(CHAN 3) STATE CHG REP (Disabled/Dependency)"];
|
|
||||||
chan => bsc [label="(CHAN 4) STATE CHG REP (Disabled/Dependency)"];
|
|
||||||
chan => bsc [label="(CHAN 5) STATE CHG REP (Disabled/Dependency)"];
|
|
||||||
chan => bsc [label="(CHAN 6) STATE CHG REP (Disabled/Dependency)"];
|
|
||||||
chan => bsc [label="(CHAN 7) STATE CHG REP (Disabled/Dependency)"];
|
|
||||||
|||;
|
|
||||||
chan => bsc [label="(CHAN 0) SW Activated Report"];
|
|
||||||
chan => bsc [label="(CHAN 1) SW Activated Report"];
|
|
||||||
chan => bsc [label="(CHAN 2) SW Activated Report"];
|
|
||||||
chan => bsc [label="(CHAN 3) SW Activated Report"];
|
|
||||||
chan => bsc [label="(CHAN 4) SW Activated Report"];
|
|
||||||
chan => bsc [label="(CHAN 5) SW Activated Report"];
|
|
||||||
chan => bsc [label="(CHAN 6) SW Activated Report"];
|
|
||||||
chan => bsc [label="(CHAN 7) SW Activated Report"];
|
|
||||||
}
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
msc {
|
|
||||||
hscale = 2;
|
|
||||||
|
|
||||||
chan [label="Channel"], rc [label="Radio Carrier"], bts [label="BTS"], bsc [label="BSC"];
|
|
||||||
|
|
||||||
...;
|
|
||||||
rc <= bsc [label="(RC) SW Activate Req Ack"];
|
|
||||||
rc <= bsc [label="(RC) Activate SW"];
|
|
||||||
rc => bsc [label="(RC) Activate SW Ack"];
|
|
||||||
rc => bsc [label="(RC) STATE CHG REP (Disabled/Offline)"];
|
|
||||||
rc => bsc [label="(RC) SW Activated Report"];
|
|
||||||
rc <= bsc [label="(TRANSC) IPA RSL Connect"];
|
|
||||||
rc => bsc [label="(TRANSC) IPA RSL Connect Ack"];
|
|
||||||
rc <= bsc [label="(TRANSC) OPSTART"];
|
|
||||||
rc => bsc [label="(TRANSC) OPSTART Ack"];
|
|
||||||
rc <= bsc [label="(TRANSC) Change Adm State (Unlocked)"];
|
|
||||||
rc => bsc [label="(TRANSC) Change Adm State Ack (Unlocked)"];
|
|
||||||
rc => bsc [label="(TRANSC) STATE CHG REP (Disabled/Dependency/Unlocked)"];
|
|
||||||
|||;
|
|
||||||
chan <= bsc [label="(CHAN 0) Set Channel Attributes"];
|
|
||||||
chan => bsc [label="(CHAN 0) Set Channel Attributes Ack"];
|
|
||||||
chan <= bsc [label="(CHAN 0) OPSTART"];
|
|
||||||
chan => bsc [label="(CHAN 0) OPSTART Ack"];
|
|
||||||
chan <= bsc [label="(CHAN 0) Change Adm State (Unlocked)"];
|
|
||||||
chan => bsc [label="(CHAN 0) Change Adm State Ack (Unlocked)"];
|
|
||||||
chan => bsc [label="(CHAN 0) STATE CHG REP (Disabled/Dependency/Unlocked)"];
|
|
||||||
...;
|
|
||||||
chan <= bsc [label="(CHAN 7) Set Channel Attributes"];
|
|
||||||
chan => bsc [label="(CHAN 7) Set Channel Attributes Ack"];
|
|
||||||
chan <= bsc [label="(CHAN 7) OPSTART"];
|
|
||||||
chan => bsc [label="(CHAN 7) OPSTART Ack"];
|
|
||||||
chan <= bsc [label="(CHAN 7) Change Adm State (Unlocked)"];
|
|
||||||
chan => bsc [label="(CHAN 7) Change Adm State Ack (Unlocked)"];
|
|
||||||
chan => bsc [label="(CHAN 7) STATE CHG REP (Disabled/Dependency/Unlocked)"];
|
|
||||||
|||;
|
|
||||||
rc <= bsc [label="(RC) Set Radio Carrier Attributes"];
|
|
||||||
rc => bsc [label="(RC) Set Radio Carrier Attributes Ack"];
|
|
||||||
rc <= bsc [label="(RC) OPSTART"];
|
|
||||||
rc => bsc [label="(RC) OPSTART Ack"];
|
|
||||||
rc <= bsc [label="(RC) Change Adm State (Unlocked)"];
|
|
||||||
rc => bsc [label="(RC) Change Adm State Ack (Unlocked)"];
|
|
||||||
rc => bsc [label="(RC) STATE CHG REP (Disabled/OK/Unlocked)"];
|
|
||||||
rc => bsc [label="(RC) STATE CHG REP (Enabled)"];
|
|
||||||
rc => bsc [label="(TRANSC) STATE CHG REP (Disabled/Offline)"];
|
|
||||||
rc => bsc [label="(TRANSC) STATE CHG REP (Enabled/OK)"];
|
|
||||||
|||;
|
|
||||||
chan => bsc [label="(CHAN 0) STATE CHG REP (Disabled/Offline)"];
|
|
||||||
chan => bsc [label="(CHAN 0) STATE CHG REP (Enabled/OK)"];
|
|
||||||
|||;
|
|
||||||
bts => bsc [label="(BTS) STATE CHG REP (Enabled/OK)"];
|
|
||||||
}
|
|
||||||
@@ -1,950 +0,0 @@
|
|||||||
== Organization & Maintenance Link (OML)
|
|
||||||
|
|
||||||
=== List of Messages
|
|
||||||
|
|
||||||
The following tables list the OML messages used by OsmoBTS, grouped by their
|
|
||||||
level of compliance with 3GPP TS 12.21.
|
|
||||||
|
|
||||||
==== Messages Compliant With TS 12.21
|
|
||||||
|
|
||||||
Specific limitations apply, see the linked sections.
|
|
||||||
|
|
||||||
.Messages compliant with TS 12.21
|
|
||||||
[options="header",cols="10%,10%,20%,35%,5%,20%"]
|
|
||||||
|===
|
|
||||||
| TS 12.21 § | type code (hex) | This document § | Message | <-/-> | Received/Sent by OsmoBTS
|
|
||||||
6+<| *SW Download Management Messages:*
|
|
||||||
| 8.3.7 | 0x10 | <<sw_act_rep>> | SW Activated Report | -> | Sent
|
|
||||||
6+<| *Air Interface Management Messages:*
|
|
||||||
.3+.| 8.6.1 | 0x41 .3+.| <<set_bts_attr>> | Set BTS Attributes | <- | Received
|
|
||||||
| 0x42 | Set BTS Attributes Ack | -> | Sent
|
|
||||||
| 0x43 | Set BTS Attributes Nack | -> | Sent
|
|
||||||
.3+.| 8.6.2 | 0x44 .3+.| <<set_radio_attr>> | Set Radio Carrier Attributes | <- | Received
|
|
||||||
| 0x45 | Set Radio Carrier Attributes Ack | -> | Sent
|
|
||||||
| 0x46 | Set Radio Carrier Attributes Nack | -> | Sent
|
|
||||||
.3+.| 8.6.3 | 0x47 .3+.| <<set_chan_attr>> | Set Channel Attributes | <- | Received
|
|
||||||
| 0x48 | Set Channel Attributes Ack | -> | Sent
|
|
||||||
| 0x49 | Set Channel Attributes Nack | -> | Sent
|
|
||||||
6+<| *State Management and Event Report Messages:*
|
|
||||||
| 8.8.1 | 0x61 | <<state_changed_rep>> | State Changed Event Report | -> | Sent
|
|
||||||
.3+.| 8.8.5 | 0x69 .3+.| <<chg_adm_state>> | Change Administrative State | <- | Received
|
|
||||||
| 0x6A | Change Administrative State Ack | -> | Sent
|
|
||||||
| 0x6B | Change Administrative State Nack | -> | Sent
|
|
||||||
6+<| *Equipment Management Messages:*
|
|
||||||
.3+.| 8.9.2 | 0x74 .3+.| <<opstart>> | Opstart | <- | Received
|
|
||||||
| 0x75 | Opstart Ack | -> | Sent
|
|
||||||
| 0x76 | Opstart Nack | -> | Sent
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
==== Messages Specific to OsmoBTS
|
|
||||||
|
|
||||||
.Messages specific to OsmoBTS, not found in 3GPP TS 12.21
|
|
||||||
[options="header"]
|
|
||||||
[options="header",cols="20%,55%,5%,20%"]
|
|
||||||
|===
|
|
||||||
| This document § | Message | <-/-> | Received/Sent by OsmoBTS
|
|
||||||
| <<ipacc_set_attr>> | Set Attribute | <- | Received
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
==== Messages Not Implemented by OsmoBTS
|
|
||||||
.3GPP TS 12.21 messages not implemented by OsmoBTS
|
|
||||||
[options="header",cols="10%,10%,80%"]
|
|
||||||
|===
|
|
||||||
| TS 12.21 § | type code (hex) | Message
|
|
||||||
3+<| *SW Download Management Messages:*
|
|
||||||
.3+.| 8.3.1 | 0x01 | Load Data Initiate
|
|
||||||
| 0x02 | Load Data Initiate Ack
|
|
||||||
| 0x03 | Load Data Initiate Nack
|
|
||||||
.2+.| 8.3.2 | 0x04 | Load Data Segment
|
|
||||||
| 0x05 | Load Data Segment Ack
|
|
||||||
| 8.3.3 | 0x06 | Load Data Abort
|
|
||||||
.3+.| 8.3.4 | 0x07 | Load Data End
|
|
||||||
| 0x08 | Load Data End Ack
|
|
||||||
| 0x09 | Load Data End Nack
|
|
||||||
.3+.| 8.3.5 | 0x0A | SW Activate Request
|
|
||||||
| 0x0B | SW Activate Request Ack
|
|
||||||
| 0x0C | SW Activate Request Nack
|
|
||||||
.3+.| 8.3.6 | 0x0D | Activate SW
|
|
||||||
| 0x0E | Activate SW Ack
|
|
||||||
| 0x0F | Activate SW Nack
|
|
||||||
3+<| *A-bis Interface Management Messages:*
|
|
||||||
.3+.| 8.4.1 | 0x21 | Establish TEI
|
|
||||||
| 0x22 | Establish TEI Ack
|
|
||||||
| 0x23 | Establish TEI Nack
|
|
||||||
.3+.| 8.4.2 | 0x24 | Connect Terrestrial Signalling
|
|
||||||
| 0x25 | Connect Terrestrial Signalling Ack
|
|
||||||
| 0x26 | Connect Terrestrial Signalling Nack
|
|
||||||
.3+.| 8.4.3 | 0x27 | Disconnect Terrestrial Signalling
|
|
||||||
| 0x28 | Disconnect Terrestrial Signalling Ack
|
|
||||||
| 0x29 | Disconnect Terrestrial Signalling Nack
|
|
||||||
.3+.| 8.4.4 | 0x2A | Connect Terrestrial Traffic
|
|
||||||
| 0x2B | Connect Terrestrial Traffic Ack
|
|
||||||
| 0x2C | Connect Terrestrial Traffic Nack
|
|
||||||
.3+.| 8.4.5 | 0x2D | Disconnect Terrestrial Traffic
|
|
||||||
| 0x2E | Disconnect Terrestrial Traffic Ack
|
|
||||||
| 0x2F | Disconnect Terrestrial Traffic Nack
|
|
||||||
3+<| *Transmission Management Messages:*
|
|
||||||
.3+.| 8.5.1 | 0x31 | Connect Multi-Drop Link
|
|
||||||
| 0x32 | Connect Multi-Drop Link Ack
|
|
||||||
| 0x33 | Connect Multi-Drop Link Nack
|
|
||||||
.3+.| 8.5.2 | 0x34 | Disconnect Multi-Drop Link
|
|
||||||
| 0x35 | Disconnect Multi-Drop Link Ack
|
|
||||||
| 0x36 | Disconnect Multi-Drop Link Nack
|
|
||||||
3+<| *Test Management Messages:*
|
|
||||||
.3+.| 8.7.1 | 0x51 | Perform Test
|
|
||||||
| 0x52 | Perform Test Ack
|
|
||||||
| 0x53 | Perform Test Nack
|
|
||||||
.3+.| 8.7.2 | 0x54 | Test Report
|
|
||||||
| 0x55 | Send Test Report
|
|
||||||
| 0x56 | Send Test Report Ack
|
|
||||||
| 8.7.3 | 0x57 | Send Test Report Nack
|
|
||||||
.3+.| 8.7.4 | 0x58 | Stop Test
|
|
||||||
| 0x59 | Stop Test Ack
|
|
||||||
| 0x5A | Stop Test Nack
|
|
||||||
3+<| *State Management and Event Report Messages:*
|
|
||||||
| 8.8.2 | 0x62 | Failure Event Report
|
|
||||||
.3+.| 8.8.3 | 0x63 | Stop Sending Event Reports
|
|
||||||
| 0x64 | Stop Sending Event Reports Ack
|
|
||||||
| 0x65 | Stop Sending Event Reports Nack
|
|
||||||
.3+.| 8.8.4 | 0x66 | Restart Sending Event Reports
|
|
||||||
| 0x67 | Restart Sending Event Reports Ack
|
|
||||||
| 0x68 | Restart Sending Event Reports Nack
|
|
||||||
.3+.| 8.8.6 | 0x6C | Change Administrative State Request
|
|
||||||
| 0x6D | Change Administrative State Request Ack
|
|
||||||
| 0x6E | Change Administrative State Request Nack
|
|
||||||
.3+.| 8.8.7 | 0x93 | Report Outstanding Alarms
|
|
||||||
| 0x94 | Report Outstanding Alarms Ack
|
|
||||||
| 0x95 | Report Outstanding Alarms Nack
|
|
||||||
3+<| *Equipment Management Messages:*
|
|
||||||
.3+.| 8.9.1 | 0x71 | Changeover
|
|
||||||
| 0x72 | Changeover Ack
|
|
||||||
| 0x73 | Changeover Nack
|
|
||||||
.3+.| 8.9.3 | 0x87 | Reinitialize
|
|
||||||
| 0x88 | Reinitialize Ack
|
|
||||||
| 0x89 | Reinitialize Nack
|
|
||||||
.3+.| 8.9.4 | 0x77 | Set Site Outputs
|
|
||||||
| 0x78 | Set Site Outputs Ack
|
|
||||||
| 0x79 | Set Site Outputs Nack
|
|
||||||
.3+.| 8.9.5 | 0x90 | Change HW Configuration
|
|
||||||
| 0x91 | Change HW Configuration Ack
|
|
||||||
| 0x92 | Change HW Configuration Nack
|
|
||||||
3+<| *Measurement Management Messages:*
|
|
||||||
| 8.10.1 | 0x8A | Measurement Result Request
|
|
||||||
| 8.10.2 | 0x8B | Measurement Result Response
|
|
||||||
| 8.10.3 | 0x8C | Stop Measurement
|
|
||||||
| 8.10.4 | 0x8D | Start Measurement
|
|
||||||
3+<| *Other Messages:*
|
|
||||||
| 8.11.1 | 0x81 | Get Attributes
|
|
||||||
| 8.11.3 | 0x82 | Get Attribute(s) Response
|
|
||||||
| 8.11.1 | 0x83 | Get Attributes Nack
|
|
||||||
.3+.| 8.11.2 | 0x84 | Set Alarm Threshold
|
|
||||||
| 0x85 | Set Alarm Threshold Ack
|
|
||||||
| 0x86 | Set Alarm Threshold Nack
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
=== Details on Compliant OML Messages
|
|
||||||
|
|
||||||
[[sw_act_rep]]
|
|
||||||
==== SW Activated Report
|
|
||||||
|
|
||||||
OsmoBTS will send an _SW Activated Report_ when RF has been activated
|
|
||||||
successfully. The message is compliant with 3GPP TS 12.21 § 8.3.7.
|
|
||||||
|
|
||||||
Upon RF activation, two _SW Activated Report_ messages will be sent, for the Object Classes
|
|
||||||
|
|
||||||
- Radio Carrier (0x02)
|
|
||||||
- Baseband Transceiver (0x04)
|
|
||||||
|
|
||||||
[[set_bts_attr]]
|
|
||||||
==== Set BTS Attributes
|
|
||||||
|
|
||||||
OsmoBTS will receive a _Set BTS Attributes_ message and reply with a
|
|
||||||
corresponding ACK message on success. IE handling is fully compliant to TS
|
|
||||||
12.21, except that a change of BCCH ARFCN or BSIC while in operation is not
|
|
||||||
supported, and hence the _Starting Time_ IE is rejected.
|
|
||||||
|
|
||||||
._Set BTS Attributes_ IEs not handled by OsmoBTS
|
|
||||||
[options="header",cols="10%,30%,60%"]
|
|
||||||
|===
|
|
||||||
| TS 12.21 § | IE Name | Handling
|
|
||||||
| 9.4.52 | Starting Time | not supported (provokes NACK cause 0x10)
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
[[set_radio_attr]]
|
|
||||||
==== Set Radio Carrier Attributes
|
|
||||||
|
|
||||||
This message conforms to 3GPP TS 12.21, with the following limitation,
|
|
||||||
as frequency hopping is not supported by OsmoBTS:
|
|
||||||
|
|
||||||
._Set Radio Carrier Attributes_ IE limitations
|
|
||||||
[options="header",cols="10%,30%,60%"]
|
|
||||||
|===
|
|
||||||
| TS 12.21 § | IE Name | Handling
|
|
||||||
| 9.4.5 | ARFCN List | ignored
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
[[set_chan_attr]]
|
|
||||||
==== Set Channel Attributes
|
|
||||||
|
|
||||||
This message conforms to 3GPP TS 12.21, with the following limitation: the
|
|
||||||
following 3GPP TS 12.21 IEs provoke a NACK response when sent to OsmoBTS, as
|
|
||||||
frequency hopping is not supported:
|
|
||||||
|
|
||||||
._Set Channel Attributes_ IE limitations
|
|
||||||
[options="header",cols="10%,30%,60%"]
|
|
||||||
|===
|
|
||||||
| TS 12.21 § | IE Name | Handling
|
|
||||||
| 9.4.21 | HSN | not supported (provokes NACK cause 0x10)
|
|
||||||
| 9.4.27 | MAIO | not supported (provokes NACK cause 0x10)
|
|
||||||
| 9.4.52 | Starting Time | not supported (provokes NACK cause 0x10)
|
|
||||||
|===
|
|
||||||
|
|
||||||
[[state_changed_rep]]
|
|
||||||
==== State Changed Event Report
|
|
||||||
|
|
||||||
This message is compliant with 3GPP TS 12.21. Exactly these IEs are sent by
|
|
||||||
OsmoBTS:
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message Type (0xf5) | 3GPP TS 12.21 9.1 | M | V | 1
|
|
||||||
| Object Class | 3GPP TS 12.21 9.2 | M | V | 1
|
|
||||||
| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3
|
|
||||||
| Operational State | 3GPP TS 12.21 9.4.38 | O | TV | 2
|
|
||||||
| Availability Status | 3GPP TS 12.21 9.4.7 | O | TL16V (with length of 1) | 3
|
|
||||||
|===
|
|
||||||
|
|
||||||
[[chg_adm_state]]
|
|
||||||
==== Change Administrative State
|
|
||||||
|
|
||||||
This message is compliant with 3GPP TS 12.21 § 8.8.5. It applies to all of the
|
|
||||||
Object Classes defined in 3GPP TS 12.21 § 9.2 as well as
|
|
||||||
<<addnl_obj_classes>>.
|
|
||||||
|
|
||||||
[[opstart]]
|
|
||||||
==== Opstart
|
|
||||||
|
|
||||||
This message is compliant with 3GPP TS 12.21 § 8.9.2. It applies to all of the
|
|
||||||
Object Classes defined in 3GPP TS 12.21 § 9.2 as well as
|
|
||||||
<<addnl_obj_classes>>.
|
|
||||||
|
|
||||||
|
|
||||||
=== Details on OsmoBTS Specific Messages
|
|
||||||
|
|
||||||
[[ipacc_set_attr]]
|
|
||||||
==== Set Attribute
|
|
||||||
|
|
||||||
The message type is 0xf5. This message is sent to OsmoBTS to set
|
|
||||||
attributes on instances of managed objects of the non-standard
|
|
||||||
additional Object Classes (see <<addnl_obj_classes>>).
|
|
||||||
|
|
||||||
The message specifics depend on the Object Class and are detailed in
|
|
||||||
<<addnl_obj_classes>>.
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message Type (0xf5) | 3GPP TS 12.21 9.1 | M | V | 1
|
|
||||||
| Object Class | 3GPP TS 12.21 9.2 | M | V | 1
|
|
||||||
| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3
|
|
||||||
5+<| _Object Class specific IEs follow, see <<addnl_obj_classes>>..._
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
[[addnl_obj_classes]]
|
|
||||||
=== Additional Object Classes
|
|
||||||
|
|
||||||
In addition to 3GPP TS 12.21 Chapter 9.2, the following managed objects
|
|
||||||
are supported:
|
|
||||||
|
|
||||||
.Additional Managed Object Classes
|
|
||||||
[options="header"]
|
|
||||||
[cols="20%,20%,60%"]
|
|
||||||
|===
|
|
||||||
| Value | Name | Description
|
|
||||||
| 0xf0 | GPRS NSE | GPRS-NS Entity
|
|
||||||
| 0xf1 | GPRS CELL | GPRS Cell Entity
|
|
||||||
| 0xf2 | GPRS NSVC | GPRS NS Virtual Circuit
|
|
||||||
|===
|
|
||||||
|
|
||||||
==== GPRS-NSE Managed Object
|
|
||||||
|
|
||||||
There is one NS Entity per BTS. It supports the *Set Attribute* message
|
|
||||||
with the following Information Elements:
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message Type | 3GPP TS 12.21 9.1 | M | V | 1
|
|
||||||
| Object Class | 3GPP TS 12.21 9.2 | M | V | 1
|
|
||||||
| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3
|
|
||||||
| GPRS NSEI | <<NM_ATT_IPACC_NSEI>> | O | TL16V | >= 5
|
|
||||||
| GPRS NS Configuration | <<NM_ATT_IPACC_NS_LINK_CFG>> | O | TL16V | >= 10
|
|
||||||
| GPRS BSSGP Configuration | <<NM_ATT_IPACC_BSSGP_CFG>> | O | TL16V | >= 14
|
|
||||||
|===
|
|
||||||
|
|
||||||
==== GPRS Cell Managed Object
|
|
||||||
|
|
||||||
There is one GPRS Cell entity per BTS. It supports the *Set Attribute*
|
|
||||||
message with the following Information Elements:
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message Type | 3GPP TS 12.21 9.1 | M | V | 1
|
|
||||||
| Object Class | 3GPP TS 12.21 9.2 | M | V | 1
|
|
||||||
| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3
|
|
||||||
| GPRS Routing Area Code | <<NM_ATT_IPACC_RAC>> | O | TL16V | >= 4
|
|
||||||
| GPRS Paging Configuration | <<NM_ATT_IPACC_GPRS_PAGING_CFG>> | O | TL16V | >= 5
|
|
||||||
| GPRS RLC Configuration | <<NM_ATT_IPACC_RLC_CFG>> | O | TL16V | >= 12
|
|
||||||
| GPRS Coding Schemes | <<NM_ATT_IPACC_CODING_SCHEMES>> | O | TL16V | >= 5
|
|
||||||
| GPRS RLC Configuration 2 | <<NM_ATT_IPACC_RLC_CFG_2>> | O | TL16V | >= 8
|
|
||||||
| GPRS RLC Configuration 3 | <<NM_ATT_IPACC_RLC_CFG_3>> | O | TL16V | >= 4
|
|
||||||
|===
|
|
||||||
|
|
||||||
==== GPRS NS-VC Managed Object
|
|
||||||
|
|
||||||
There are two GPRS NS-VC instances per BTS. It supports the *Set
|
|
||||||
Attribute* message with the following Information Elements:
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message Type | 3GPP TS 12.21 9.1 | M | V | 1
|
|
||||||
| Object Class | 3GPP TS 12.21 9.2 | M | V | 1
|
|
||||||
| Object Instance | 3GPP TS 12.21 9.3 | M | V | 3
|
|
||||||
| GPRS NSVCI | <<NM_ATT_IPACC_NSVCI>> | O | TL16V | >= 5
|
|
||||||
| GPRS NS Link Configuration | <<NM_ATT_IPACC_NS_LINK_CFG>> | O | TL16V | >= 11
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
=== Information Elements Overview
|
|
||||||
|
|
||||||
All of the IEs handled by OsmoBTS are listed below, with limitations and
|
|
||||||
additions to TS 12.21 specified in more detail.
|
|
||||||
|
|
||||||
==== IEs Conforming to TS 12.21
|
|
||||||
|
|
||||||
The following Information Elements are accepted by OsmoBTS.
|
|
||||||
|
|
||||||
IEs marked __ignored__ may be sent to OsmoBTS without causing error
|
|
||||||
conditions. These IEs are skipped during message parsing and are never
|
|
||||||
evaluated.
|
|
||||||
|
|
||||||
IEs marked __ignored__ and additionally marked as being received by OsmoBTS
|
|
||||||
(<-) are in fact parsed and their values are stored by OsmoBTS, but these
|
|
||||||
stored items are currently not used in the OsmoBTS code base.
|
|
||||||
|
|
||||||
.IEs conforming to TS 12.21
|
|
||||||
[options="header",cols="5%,10%,40%,5%,40%"]
|
|
||||||
|===
|
|
||||||
| tag (hex) | TS 12.21 § | IE name | <-/-> | Received/Sent by OsmoBTS
|
|
||||||
| 0x00 | 9.4.1 | Abis Channel | | _ignored_
|
|
||||||
| 0x01 | 9.4.2 | Additional Info | | _ignored_
|
|
||||||
| 0x02 | 9.4.3 | Additional Text | | _ignored_
|
|
||||||
| 0x03 | 9.4.4 | Administrative State | <- -> | Received & Sent
|
|
||||||
| 0x04 | 9.4.5 | ARFCN List | <- | Received, with exactly 1 ARFCN: see <<NM_ATT_ARFCN_LIST>>;
|
|
||||||
ignored by _Set Radio Attribute_ message (<<set_radio_attr>>)
|
|
||||||
| 0x05 | 9.4.6 | Autonomously Report | | _ignored_
|
|
||||||
| 0x06 | 9.4.7 | Availability Status | -> | Sent
|
|
||||||
| 0x07 | 9.4.8 | BCCH ARFCN | <- | Received
|
|
||||||
| 0x08 | 9.4.9 | BSIC | <- | Received
|
|
||||||
| 0x09 | 9.4.10 | BTS Air Timer | <- | Received
|
|
||||||
| 0x0a | 9.4.11 | CCCH Load Indication Period | <- | Received
|
|
||||||
| 0x0b | 9.4.12 | CCCH Load Threshold | <- | Received
|
|
||||||
| 0x0c | 9.4.13 | Channel Combination | <- | Received, with additional channel combinations: see <<ie_chan_comb>>
|
|
||||||
| 0x0d | 9.4.14 | Connection Failure Criterion | <- | Received, with limitations see <<ie_conn_fail_crit>>
|
|
||||||
| 0x0e | 9.4.15 | Destination | | _ignored_
|
|
||||||
| 0x0f | 9.4.16 | Event Type | | _ignored_
|
|
||||||
| 0x11 | 9.4.17 | File Data | | _ignored_
|
|
||||||
| 0x12 | 9.4.18 | File Id | | _ignored_
|
|
||||||
| 0x13 | 9.4.19 | File Version | | _ignored_
|
|
||||||
| 0x14 | 9.4.20 | GSM Time | | _ignored_
|
|
||||||
| 0x16 | 9.4.22 | HW Configuration | | _ignored_
|
|
||||||
| 0x18 | 9.4.24 | Intave Parameter | <- | _ignored_
|
|
||||||
| 0x19 | 9.4.25 | Interference level Boundaries | <- | _ignored_
|
|
||||||
| 0x1a | 9.4.26 | List of Required Attributes | | _ignored_
|
|
||||||
| 0x1c | 9.4.28 | Manufacturer Dependent State | | _ignored_
|
|
||||||
| 0x1d | 9.4.29 | Manufacturer Dependent Thresholds | | _ignored_
|
|
||||||
| 0x1e | 9.4.30 | Manufacturer Id | | _ignored_
|
|
||||||
| 0x1f | 9.4.31 | Max Timing Advance | <- | Received
|
|
||||||
| 0x20 | 9.4.34 | Multi-drop BSC Link | | _ignored_
|
|
||||||
| 0x21 | 9.4.35 | Multi-drop next BTS Link | | _ignored_
|
|
||||||
| 0x22 | 9.4.36 | Nack Causes | -> | Sent
|
|
||||||
| 0x23 | 9.4.37 | Ny1 | <- | Received
|
|
||||||
| 0x24 | 9.4.38 | Operational State | -> | Sent
|
|
||||||
| 0x25 | 9.4.39 | Overload Period | <- | _ignored_
|
|
||||||
| 0x26 | 9.4.40 | Physical Config | | _ignored_
|
|
||||||
| 0x27 | 9.4.41 | Power Class | | _ignored_
|
|
||||||
| 0x28 | 9.4.42 | Power Output Thresholds | | _ignored_
|
|
||||||
| 0x29 | 9.4.43 | Probable Cause | | _ignored_
|
|
||||||
| 0x2a | 9.4.44 | RACH Busy Threshold | <- | Received
|
|
||||||
| 0x2b | 9.4.45 | RACH Load Averaging Slots | <- | _ignored_
|
|
||||||
| 0x2c | 9.4.46 | Radio Sub Channel | | _ignored_
|
|
||||||
| 0x2d | 9.4.47 | RF Max Power Reduction | <- | Received
|
|
||||||
| 0x2e | 9.4.48 | Site Inputs | | _ignored_
|
|
||||||
| 0x2f | 9.4.49 | Site Outputs | | _ignored_
|
|
||||||
| 0x30 | 9.4.50 | Source | | _ignored_
|
|
||||||
| 0x31 | 9.4.51 | Specific Problems | | _ignored_
|
|
||||||
| 0x33 | 9.4.53 | T200 | <- | _ignored_ (1s on DCCH, 2s on ACCH)
|
|
||||||
| 0x34 | 9.4.54 | TEI | | _ignored_
|
|
||||||
| 0x35 | 9.4.55 | Test Duration | | _ignored_
|
|
||||||
| 0x36 | 9.4.56 | Test No | | _ignored_
|
|
||||||
| 0x37 | 9.4.57 | Test Report Info | | _ignored_
|
|
||||||
| 0x38 | 9.4.58 | VSWR Thresholds | | _ignored_
|
|
||||||
| 0x39 | 9.4.59 | Window Size | | _ignored_
|
|
||||||
| 0x40 | 9.4.60 | TSC | <- | Received, with limitations: see <<NM_ATT_TSC>>
|
|
||||||
| 0x41 | 9.4.61 | SW Configuration | | _ignored_
|
|
||||||
| 0x43 | 9.4.63 | Perceived Severity | | _ignored_
|
|
||||||
| 0x44 | 9.4.64 | Get Attribute Response Info | | _ignored_
|
|
||||||
| 0x45 | 9.4.65 | Outstanding Alarm Sequence | | _ignored_
|
|
||||||
| 0x46 | 9.4.66 | HW Conf Change Info | | _ignored_
|
|
||||||
| 0x47 | 9.4.32 | Measurement Result | | _ignored_
|
|
||||||
|===
|
|
||||||
|
|
||||||
==== IEs Not Conforming to TS 12.21
|
|
||||||
|
|
||||||
.IEs not conforming to TS 12.21
|
|
||||||
[options="header",cols="5%,10%,30%,55%"]
|
|
||||||
|===
|
|
||||||
| tag (hex) | TS 12.21 § | IE name | Description
|
|
||||||
| 0x15 | 9.4.21 | HSN | presence causes NACK response
|
|
||||||
| 0x17 | 9.4.23 | HW Description | _ignored_ by OsmoBTS, but coding may differ, see <<ie_hw_desc>>
|
|
||||||
| 0x1b | 9.4.27 | MAIO | presence causes NACK response
|
|
||||||
| 0x32 | 9.4.52 | Starting Time | presence causes NACK response
|
|
||||||
| 0x42 | 9.4.62 | SW Description | not supported
|
|
||||||
| 0x48 | 9.4.33 | Measurement Type | not supported
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
==== Additional Attributes and Parameters
|
|
||||||
|
|
||||||
The following Information Elements are defined in addition to those
|
|
||||||
specified in 3GPP TS 12.21 Chapter 9.4.
|
|
||||||
|
|
||||||
All of these additional IEs are _received_ by OsmoBTS.
|
|
||||||
|
|
||||||
These attributes are not used by OsmoBTS, but
|
|
||||||
simply passed to OsmoPCU connected to the PCU socket.
|
|
||||||
|
|
||||||
.Additional IEs handled by OsmoBTS but not defined in TS 12.21
|
|
||||||
[options="header",cols="5%,50%,45%"]
|
|
||||||
|===
|
|
||||||
| tag (hex) | IE name | Description
|
|
||||||
| 0x80 | RSL Destination IP Address | <<NM_ATT_IPACC_DST_IP>>
|
|
||||||
| 0x81 | RSL Destination TCP Port | <<NM_ATT_IPACC_DST_IP_PORT>>
|
|
||||||
| 0x85 | RSL IPA Stream ID | <<NM_ATT_IPACC_STREAM_ID>>
|
|
||||||
| 0x9a | GPRS Routing Area Code | <<NM_ATT_IPACC_RAC>>
|
|
||||||
| 0x9c | GPRS Paging Configuration | <<NM_ATT_IPACC_GPRS_PAGING_CFG>>
|
|
||||||
| 0x9d | GPRS NSEI | <<NM_ATT_IPACC_NSEI>>
|
|
||||||
| 0x9e | GPRS BVCI | <<NM_ATT_IPACC_BVCI>>
|
|
||||||
| 0x9f | GPRS NSVCI | <<NM_ATT_IPACC_NSVCI>>
|
|
||||||
| 0xa0 | GPRS NS Configuration | <<NM_ATT_IPACC_NS_CFG>>
|
|
||||||
| 0xa1 | GPRS BSSGP Configuration | <<NM_ATT_IPACC_BSSGP_CFG>>
|
|
||||||
| 0xa2 | GPRS NS Link Configuration | <<NM_ATT_IPACC_NS_LINK_CFG>>
|
|
||||||
| 0xa3 | GPRS RLC Configuration | <<NM_ATT_IPACC_RLC_CFG>>
|
|
||||||
| 0xa8 | GPRS Coding Schemes | <<NM_ATT_IPACC_CODING_SCHEMES>>
|
|
||||||
| 0xa9 | GPRS RLC Configuration 2 | <<NM_ATT_IPACC_RLC_CFG_2>>
|
|
||||||
| 0xac | GPRS RLC Configuration 3 | <<NM_ATT_IPACC_RLC_CFG_3>>
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
=== Details on IEs
|
|
||||||
|
|
||||||
[[ie_hw_desc]]
|
|
||||||
==== HW Description
|
|
||||||
|
|
||||||
TS 12.21 suggests a series of 5 length-value pairs for the _HW Description_ IE.
|
|
||||||
Instead, OsmoBTS interprets it as a single TL16V. The value of this IE is
|
|
||||||
ignored by OsmoBTS, yet the coding may affect message parsing.
|
|
||||||
|
|
||||||
[width="40%",cols="90%,10%"]
|
|
||||||
[grid="none"]
|
|
||||||
|===
|
|
||||||
| Attribute Identifier (0x17) | 1
|
|
||||||
| Length | 2-3
|
|
||||||
| Ignored | N
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
[[NM_ATT_ARFCN_LIST]]
|
|
||||||
==== ARFCN List
|
|
||||||
|
|
||||||
Since OsmoBTS does not support frequency hopping, the _ARFCN List_ must contain
|
|
||||||
exactly one ARFCN.
|
|
||||||
|
|
||||||
[[ie_chan_comb]]
|
|
||||||
==== Additional Channel Combinations
|
|
||||||
|
|
||||||
In addition to 3GPP TS 12.21 Chapter 9.4.13, the following channel
|
|
||||||
combinations are supported:
|
|
||||||
|
|
||||||
.Additional Channel Combinations
|
|
||||||
[options="header"]
|
|
||||||
[cols="10%,90%"]
|
|
||||||
|===
|
|
||||||
| Value | Description
|
|
||||||
| 0x0b | Reserved for PBCCH + PCCCH + PDTCH/F + PACCH/F + PTCCH/F
|
|
||||||
| 0x0c | Reserved for PBCCH + PDTCH/F + PACCH/F + PTCCH/F
|
|
||||||
| 0x0d | PDTCH/F + PACCH/F + PTCCH/F
|
|
||||||
| 0x80 | ip.access style Dynamic TCH/F / PDCH
|
|
||||||
| 0x81 | Reserved for Dynamic TCH/F / TCH/H
|
|
||||||
| 0x90 | Osmocom style Dynamic TCH/F / TCH/H / PDCH
|
|
||||||
|===
|
|
||||||
|
|
||||||
The _Reserved_ combinations are not actually supported/implemented
|
|
||||||
yet, but merely reserved for such functionality, if it is eventually
|
|
||||||
implemented.
|
|
||||||
|
|
||||||
For more information on how the different dynamic channel combinations
|
|
||||||
work, please see the <<rsl-dynamic-channels>>.
|
|
||||||
|
|
||||||
[[ie_conn_fail_crit]]
|
|
||||||
==== Connection Failure Criterion
|
|
||||||
|
|
||||||
3GPP TS 12.21 Chapter 9.4.14 specifies two different options for the
|
|
||||||
_Connection Failure Criterion_. OsmoBTS only implements the option
|
|
||||||
coded as 0x01, i.e. based upon uplink SACCH error rate
|
|
||||||
(RADIO_LINK_TIMEOUT).
|
|
||||||
|
|
||||||
[[NM_ATT_TSC]]
|
|
||||||
==== TSC
|
|
||||||
|
|
||||||
Due to limitations in the currently supported PHY implementations,
|
|
||||||
OsmoBTS supports only one global TSC for all channels on one TRX, rather
|
|
||||||
than a separate TSC for each timeslot, as expected by 3GPP TS 12.21.
|
|
||||||
|
|
||||||
|
|
||||||
[[NM_ATT_IPACC_DST_IP]]
|
|
||||||
==== RSL Destination IP Address
|
|
||||||
|
|
||||||
The value part of this attribute has a length of 4 octets and is encoded
|
|
||||||
as IPv4 address in network byte order.
|
|
||||||
|
|
||||||
[width="40%",cols="90%,10%"]
|
|
||||||
[grid="none"]
|
|
||||||
|===
|
|
||||||
| Attribute Identifier (0x80) | 1
|
|
||||||
| IPv4 Address (MSB first) | 2-5
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
[[NM_ATT_IPACC_DST_IP_PORT]]
|
|
||||||
==== RSL Destination TCP Port
|
|
||||||
|
|
||||||
The value part of this attribute has a length of 2 octets and contains
|
|
||||||
the TCP destination port for the RSL connection, encoded in network byte
|
|
||||||
order.
|
|
||||||
|
|
||||||
[width="40%",cols="90%,10%"]
|
|
||||||
[grid="none"]
|
|
||||||
|===
|
|
||||||
| Attribute Identifier (0x81) | 1
|
|
||||||
| Port number (MSB first) | 2-3
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
[[NM_ATT_IPACC_STREAM_ID]]
|
|
||||||
==== RSL IPA Stream ID
|
|
||||||
|
|
||||||
The value part of this attribute has a length of one octet and specifies
|
|
||||||
the IPA stream ID to be used for the RSL connection of this TRX.
|
|
||||||
|
|
||||||
[width="40%",cols="90%,10%"]
|
|
||||||
[grid="none"]
|
|
||||||
|===
|
|
||||||
| Attribute Identifier (0x85) | 1
|
|
||||||
| Stream ID | 2
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
[[NM_ATT_IPACC_RAC]]
|
|
||||||
==== GPRS Routing Area Code
|
|
||||||
|
|
||||||
The value part of the GPRS Routing Area code consists of a single octet
|
|
||||||
encoding the GPRS Routing Area Code.
|
|
||||||
|
|
||||||
This attribute is not used by OsmoBTS, but
|
|
||||||
simply passed to OsmoPCU connected to the PCU socket.
|
|
||||||
|
|
||||||
|
|
||||||
[[NM_ATT_IPACC_GPRS_PAGING_CFG]]
|
|
||||||
==== GPRS Paging Configuration
|
|
||||||
|
|
||||||
The value part of this attribute consists of two octets encoded as
|
|
||||||
follows:
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="10%,90%"]
|
|
||||||
|===
|
|
||||||
| Offset | Description
|
|
||||||
| 0 | GPRS Paging repeat time in units of 50ms intervals
|
|
||||||
| 1 | GPRS Paging repeat count
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
[[NM_ATT_IPACC_NSEI]]
|
|
||||||
==== GPRS NSEI
|
|
||||||
|
|
||||||
The value part of the GPRS NSEI is encoded as 16bit integer value in
|
|
||||||
network byte order.
|
|
||||||
|
|
||||||
This attribute is not used by OsmoBTS, but
|
|
||||||
simply passed to OsmoPCU connected to the PCU socket.
|
|
||||||
|
|
||||||
|
|
||||||
[[NM_ATT_IPACC_BVCI]]
|
|
||||||
==== GPRS BVCI
|
|
||||||
|
|
||||||
The value part of this attribute consists of two octets encoding the
|
|
||||||
BSSGP Virtual Circuit Identifier (BVCI) as unsigned 16 bit integer in
|
|
||||||
network byte order.
|
|
||||||
|
|
||||||
|
|
||||||
[[NM_ATT_IPACC_NSVCI]]
|
|
||||||
==== GPRS NSVCI
|
|
||||||
|
|
||||||
The value part of the GPRS NSVCI attribute is a 16bit unsigned integer
|
|
||||||
in network byte order, encoding the GPRS NSVCI as specified in 3GPP TS
|
|
||||||
08.16.
|
|
||||||
|
|
||||||
This attribute is not used by OsmoBTS, but
|
|
||||||
simply passed to OsmoPCU connected to the PCU socket.
|
|
||||||
|
|
||||||
|
|
||||||
[[NM_ATT_IPACC_NS_CFG]]
|
|
||||||
==== GPRS NS Configuration
|
|
||||||
|
|
||||||
The value part of the GPRS NS Configuration consists of an array of 7 octets,
|
|
||||||
each describing one GPRS NS related timer:
|
|
||||||
|
|
||||||
This attribute is not used by OsmoBTS, but
|
|
||||||
simply passed to OsmoPCU connected to the PCU socket.
|
|
||||||
|
|
||||||
|
|
||||||
[[NM_ATT_IPACC_BSSGP_CFG]]
|
|
||||||
==== GPRS BSSGP Configuration
|
|
||||||
|
|
||||||
The value part of the GPRS BSSGP configuration consists of an array of
|
|
||||||
11 octets, each describing one GPRS BSSGP related timer:
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="10%,90%"]
|
|
||||||
|===
|
|
||||||
| Offset | Description
|
|
||||||
| 0 | Blocking Timer (T1)
|
|
||||||
| 1 | Blocking Retries
|
|
||||||
| 2 | Unblocking Retries
|
|
||||||
| 3 | Reset Timer (T2)
|
|
||||||
| 4 | Reset Retries
|
|
||||||
| 5 | Suspend Timer (T3) in units of 100ms
|
|
||||||
| 6 | Suspend Retries
|
|
||||||
| 7 | Resume Timer (T4) in units of 100ms
|
|
||||||
| 8 | Resume Retries
|
|
||||||
| 9 | Capability Update Timer (T5)
|
|
||||||
| 10 | Capability Update Retries
|
|
||||||
|===
|
|
||||||
|
|
||||||
The detailed description of the meaning of those timers is given in the
|
|
||||||
GPRS BSSGP specification 3GPP TS 08.18.
|
|
||||||
|
|
||||||
This attribute is not used by OsmoBTS, but
|
|
||||||
simply passed to OsmoPCU connected to the PCU socket.
|
|
||||||
|
|
||||||
|
|
||||||
[[NM_ATT_IPACC_NS_LINK_CFG]]
|
|
||||||
==== GPRS NS Link Configuration
|
|
||||||
|
|
||||||
This attribute is 8 octets long and encoded as follows:
|
|
||||||
[options="header"]
|
|
||||||
[cols="10%,10%,80%"]
|
|
||||||
|===
|
|
||||||
| Offset | Length | Description
|
|
||||||
| 0 | 2 | GPRS-NS Remote UDP Port Number (SGSN side)
|
|
||||||
| 2 | 4 | GPRS-NS Remote IPv4 Address (SGSN side)
|
|
||||||
| 6 | 2 | GPRS-NS Local UDP Port Number (BTS side)
|
|
||||||
|===
|
|
||||||
|
|
||||||
All values are encoded in network byte order.
|
|
||||||
|
|
||||||
This attribute is not used by OsmoBTS, but
|
|
||||||
simply passed to OsmoPCU connected to the PCU socket.
|
|
||||||
|
|
||||||
|
|
||||||
[[NM_ATT_IPACC_RLC_CFG]]
|
|
||||||
==== GPRS RLC Configuration
|
|
||||||
|
|
||||||
The value part of the GPRS RLC Configuration consists of an array of 9
|
|
||||||
octets, each describing a RLC timer:
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[width="60%",cols="10%,80%,10%"]
|
|
||||||
|===
|
|
||||||
| Offset | Description | Unit
|
|
||||||
| 0 | GPRS RLC Timer T3142 | s
|
|
||||||
| 1 | GPRS RLC Timer T3169 | s
|
|
||||||
| 2 | GPRS RLC Timer T3191 | s
|
|
||||||
| 3 | GPRS RLC Timer T3193 | 10ms
|
|
||||||
| 4 | GPRS RLC Timer T3195 | s
|
|
||||||
| 5 | GPRS RLC Timer T3101 | s
|
|
||||||
| 6 | GPRS RLC Timer T3103 | s
|
|
||||||
| 7 | GPRS RLC Timer T3105 | s
|
|
||||||
| 8 | GPRS RLC CV Countdown | -
|
|
||||||
|===
|
|
||||||
|
|
||||||
The meaning of the RLC timers are specified in 3GPP TS 04.60.
|
|
||||||
|
|
||||||
The countdown value specifies the RLC CV value from which the countdown
|
|
||||||
procedure is started.
|
|
||||||
|
|
||||||
This attribute is not used by OsmoBTS, but
|
|
||||||
simply passed to OsmoPCU connected to the PCU socket.
|
|
||||||
|
|
||||||
|
|
||||||
[[NM_ATT_IPACC_CODING_SCHEMES]]
|
|
||||||
==== GPRS Coding Schemes
|
|
||||||
|
|
||||||
The value part of the GPRS Coding Schemes consists of two octets
|
|
||||||
encoding the available GPRS and EDGE coding schemes.
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
|===
|
|
||||||
| *bit* | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
|
|
||||||
| byte at offset 0 | MCS9 | x | x | x | CS4 | CS3 | CS2 | CS1
|
|
||||||
| byte at offset 1 | MCS8 | MCS7| MCS6 | MCS5 | MCS4| MCS3 | MCS2 | MCS1
|
|
||||||
|===
|
|
||||||
|
|
||||||
This attribute is not used by OsmoBTS, but
|
|
||||||
simply passed to OsmoPCU connected to the PCU socket.
|
|
||||||
|
|
||||||
|
|
||||||
[[NM_ATT_IPACC_RLC_CFG_2]]
|
|
||||||
==== GPRS RLC Configuration 2
|
|
||||||
|
|
||||||
The value part of this attribute is 8 octets long and encoded as
|
|
||||||
follows:
|
|
||||||
[options="header"]
|
|
||||||
[width="60%",cols="10%,10%,70%,10%"]
|
|
||||||
|===
|
|
||||||
| Offset | Length | Description | Unit
|
|
||||||
| 0 | 2 | Downlink TBF Extension Timer | 10ms
|
|
||||||
| 2 | 2 | Uplink TBF Extension Timer | 10ms
|
|
||||||
| 4 | 2 | Initial GPRS Coding Scheme | -
|
|
||||||
|===
|
|
||||||
|
|
||||||
The Initial GPRS Coding Scheme is encoded as follows:
|
|
||||||
[options="header"]
|
|
||||||
[width="40%",cols="50%,50%"]
|
|
||||||
|===
|
|
||||||
| Value | Description
|
|
||||||
| 1 | CS 1
|
|
||||||
| 2 | CS 2
|
|
||||||
| 3 | CS 3
|
|
||||||
| 4 | CS 4
|
|
||||||
|===
|
|
||||||
|
|
||||||
This attribute is not used by OsmoBTS, but
|
|
||||||
simply passed to OsmoPCU connected to the PCU socket.
|
|
||||||
|
|
||||||
|
|
||||||
[[NM_ATT_IPACC_RLC_CFG_3]]
|
|
||||||
==== GPRS RLC Configuration 3
|
|
||||||
|
|
||||||
This attribute contains information about the initial MCS used for new EDGE
|
|
||||||
TBFs.
|
|
||||||
|
|
||||||
It is encoded as follows:
|
|
||||||
[options="header"]
|
|
||||||
[width="40%",cols="50%,50%"]
|
|
||||||
|===
|
|
||||||
| Value | Description
|
|
||||||
| 1 | MCS 1
|
|
||||||
| 2 | MCS 2
|
|
||||||
| 3 | MCS 3
|
|
||||||
| 4 | MCS 4
|
|
||||||
| 5 | MCS 5
|
|
||||||
| 6 | MCS 6
|
|
||||||
| 7 | MCS 7
|
|
||||||
| 8 | MCS 8
|
|
||||||
| 9 | MCS 9
|
|
||||||
|===
|
|
||||||
|
|
||||||
This attribute is not used by OsmoBTS, but
|
|
||||||
simply passed to OsmoPCU connected to the PCU socket.
|
|
||||||
|
|
||||||
=== A-bis OML Initialization / BTS bring-up
|
|
||||||
|
|
||||||
At the time an Abis/IP BTS connects to via OML to the BSC, it is
|
|
||||||
initialized according to the procedures described in 3GPP TS 12.21 as
|
|
||||||
amended by this document.
|
|
||||||
|
|
||||||
Each Managed Object (MO) is separately initialized. The initialization
|
|
||||||
sequence and parameters differ slightly depending on the MO involved.
|
|
||||||
|
|
||||||
Some parts of the sequences described below are optional, such as the
|
|
||||||
Software activation. In the OsmoBTS case, the software is not modular
|
|
||||||
and thus all MOs start with the software fully activated. In effect, no
|
|
||||||
__Software Activate Request__ is being sent by the MO to the BSC, nor
|
|
||||||
does the BSC need to initialize the __Activate Software__ procedure.
|
|
||||||
|
|
||||||
Still, the full sequences are shown in order to explain the Abis/IP
|
|
||||||
protocol.
|
|
||||||
|
|
||||||
Also, the initial state of the MOs at time of OML connection
|
|
||||||
initialization is not always guaranteed to be __Disabled/Notinstalled__.
|
|
||||||
Rather, the BSC implementation has to deal with the initial state as
|
|
||||||
reported by the MOs at time of re-connection.
|
|
||||||
|
|
||||||
==== Site Manager MO Initialization
|
|
||||||
|
|
||||||
.A-bis OML Initialization of Site Manager MO
|
|
||||||
["mscgen"]
|
|
||||||
----
|
|
||||||
include::oml-mo-sitemgr.msc[]
|
|
||||||
----
|
|
||||||
|
|
||||||
The Site Manager MO does not depend on other MOs, nor does it have an
|
|
||||||
Administrative state (__Locked/Unlocked__), thus it immediately commences in
|
|
||||||
the __Enabled__ state.
|
|
||||||
|
|
||||||
==== BTS MO Initialization
|
|
||||||
|
|
||||||
.A-bis OML Initialization of BTS MO
|
|
||||||
["mscgen"]
|
|
||||||
----
|
|
||||||
include::oml-mo-bts.msc[]
|
|
||||||
----
|
|
||||||
|
|
||||||
As shown in the BTS MO, its state is
|
|
||||||
|
|
||||||
* Availability state __Dependency__, meaning it depends on other MOs to
|
|
||||||
be initialized before becoming enabled.
|
|
||||||
* Administrative state __Locked__, as the object is first waiting to
|
|
||||||
receive attributes in the __Locked__ state, before the __Change
|
|
||||||
Administrative State (Unlocked)__ procedure is used to request
|
|
||||||
transitioning into Unlocked state.
|
|
||||||
|
|
||||||
==== Baseband Transceiver MO Initialization
|
|
||||||
|
|
||||||
.A-bis OML Initialization of Baseband Transceiver MO
|
|
||||||
["mscgen"]
|
|
||||||
----
|
|
||||||
include::oml-mo-transceiver.msc[]
|
|
||||||
----
|
|
||||||
|
|
||||||
There is one Baseband Transceiver MO per TRX in the BTS. For a
|
|
||||||
multi-TRX BTS, the above procedure must be repeated for each TRX.
|
|
||||||
|
|
||||||
|
|
||||||
==== Radio Carrier MO Initialization
|
|
||||||
|
|
||||||
.A-bis OML Initialization of Radio Carrier MO
|
|
||||||
["mscgen"]
|
|
||||||
----
|
|
||||||
include::oml-mo-carrier.msc[]
|
|
||||||
----
|
|
||||||
|
|
||||||
There is one Radio Carrier MO per TRX in the BTS. For a multi-TRX BTS,
|
|
||||||
the above procedure must be repeated for each TRX.
|
|
||||||
|
|
||||||
|
|
||||||
==== Channel MO Initialization
|
|
||||||
|
|
||||||
.A-bis OML Initialization of Radio Carrier MO
|
|
||||||
["mscgen"]
|
|
||||||
----
|
|
||||||
include::oml-mo-channel.msc[]
|
|
||||||
----
|
|
||||||
|
|
||||||
There are 8 timeslots in each TRX, and correspondingly 8 Channel MOs in
|
|
||||||
every TRX. The above procedure must thus be repeated for each timeslot
|
|
||||||
in each transceiver of the BTS.
|
|
||||||
|
|
||||||
|
|
||||||
==== Complete BTS Initialization Procedure
|
|
||||||
|
|
||||||
Some of below steps are optional, as is their detailed ordering. In
|
|
||||||
practice, the procedures for different MOs may overlap. The message
|
|
||||||
sequence charts in this document have been hand-crafted to avoid such
|
|
||||||
overlap for the sake of clarity.
|
|
||||||
|
|
||||||
[[oml-msc-1]]
|
|
||||||
.A-bis OML BTS bring-up (1/3)
|
|
||||||
["mscgen"]
|
|
||||||
----
|
|
||||||
include::oml-startup.msc[]
|
|
||||||
----
|
|
||||||
|
|
||||||
As shown in <<oml-msc-1>>, after the OML TCP connection is established,
|
|
||||||
|
|
||||||
. the identity is exchanged via IPA CCM,
|
|
||||||
. the BTS sends an 'OML EVENT STATE CHANGED REPORT' for every
|
|
||||||
Managed Object, and
|
|
||||||
. the BTS subsequently requests the activation of its 'Site Manager' Object
|
|
||||||
which the BSC performs by the 'Activate SW' command.
|
|
||||||
. After successful activation of the software in the Site Manager,
|
|
||||||
.. the state changes to 'Enabled', and an event report is generated
|
|
||||||
accordingly, and
|
|
||||||
.. the BSC is notified about the SW activation in an associated report.
|
|
||||||
. Finally, the BSC requests the start of the Site Manager
|
|
||||||
.. using the 'OPSTART' command,
|
|
||||||
.. which is subsequently acknowledged by the Site Manager.
|
|
||||||
|
|
||||||
[[oml-msc-2]]
|
|
||||||
.A-bis OML BTS bring-up (2/3)
|
|
||||||
["mscgen"]
|
|
||||||
----
|
|
||||||
include::oml-startup2.msc[]
|
|
||||||
----
|
|
||||||
|
|
||||||
[[oml-msc-3]]
|
|
||||||
.A-bis OML BTS bring-up (3/3)
|
|
||||||
["mscgen"]
|
|
||||||
----
|
|
||||||
include::oml-startup3.msc[]
|
|
||||||
----
|
|
||||||
|
|
||||||
<<oml-msc-2>> shows:
|
|
||||||
|
|
||||||
. Software Activation and associated state transitions of the BTS MO;
|
|
||||||
. Setting of the BTS Attributes followed by OPSTART;
|
|
||||||
. Software Activation and associated state transitions of the 'Baseband
|
|
||||||
Transceiver' MO;
|
|
||||||
. Software Activation and associated state transitions of the 'Radio
|
|
||||||
Carrier' MO;
|
|
||||||
. Once the 'Baseband Transceiver' MO has its software activated, the
|
|
||||||
'Channel' MOs (one for each timeslot) indicate their state change as
|
|
||||||
well as software activation.
|
|
||||||
|
|
||||||
<<oml-msc-3>> shows:
|
|
||||||
|
|
||||||
. The 'Radio Carrier' MO Software Activation;
|
|
||||||
. The Request to the 'Baseband Transceiver' MO to establish the RSL
|
|
||||||
signalling connection to the BSC;
|
|
||||||
. Subsequent OPSTART and Change of Administrative State on the 'Baseband
|
|
||||||
Transceiver' MO;
|
|
||||||
. The following procedure takes place for each of the 'Channel' MOs:
|
|
||||||
.. Set the Channel Attributes (such as channel combination),
|
|
||||||
.. OPSTART,
|
|
||||||
.. change the Administrative State to Unlocked,
|
|
||||||
.. followed by a State Change Event Report with the new state.
|
|
||||||
. After all 'Channel' MOs are initialized, the Radio Carrier goes through
|
|
||||||
a similar procedure:
|
|
||||||
.. Set attributes,
|
|
||||||
.. OPSTART,
|
|
||||||
.. change Administrative State to Unlocked,
|
|
||||||
.. followed by a State Change Event Report with the new State (Enabled/OK)
|
|
||||||
. All 'Channel' MOs now also report their state as Enabled/OK.
|
|
||||||
. Finally, the BTS reports its state as Enabled/OK.
|
|
||||||
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
msc {
|
|
||||||
bts [label="TRX"], bsc [label="BSC"];
|
|
||||||
|
|
||||||
bts => bsc [label="TCP Connect (Port 3003, RSL)"];
|
|
||||||
bts box bsc [label="IPA CCM Identification (Port 3003)"];
|
|
||||||
|||;
|
|
||||||
|
|
||||||
bts <= bsc [label="BCCH Information (SI1)"];
|
|
||||||
bts <= bsc [label="BCCH Information (SI2)"];
|
|
||||||
...;
|
|
||||||
bts <= bsc [label="BCCH Information (SI3)"];
|
|
||||||
bts <= bsc [label="BCCH Information (SI4)"];
|
|
||||||
|||;
|
|
||||||
bts <= bsc [label="SACCH FILLING (SI5)"];
|
|
||||||
...;
|
|
||||||
bts <= bsc [label="SACCH FILLING (SI6)"];
|
|
||||||
|||;
|
|
||||||
bts => bsc [label="RF Resource Indication"];
|
|
||||||
...;
|
|
||||||
bts => bsc [label="RF Resource Indication"];
|
|
||||||
...;
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
msc {
|
|
||||||
bts [label="TRX"], bsc [label="BSC"];
|
|
||||||
|
|
||||||
bts => bsc [label="TCP Connect (Port 3003, RSL)"];
|
|
||||||
bts box bsc [label="IPA CCM Identification (Port 3003)"];
|
|
||||||
|||;
|
|
||||||
|
|
||||||
bts <= bsc [label="SACCH FILLING (SI5)"];
|
|
||||||
...;
|
|
||||||
bts <= bsc [label="SACCH FILLING (SI6)"];
|
|
||||||
|||;
|
|
||||||
bts => bsc [label="RF Resource Indication"];
|
|
||||||
...;
|
|
||||||
bts => bsc [label="RF Resource Indication"];
|
|
||||||
...;
|
|
||||||
}
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
msc {
|
|
||||||
hscale = 2;
|
|
||||||
|
|
||||||
ms [label="MS"], bts [label="BTS"], bsc [label="BSC"], Msc [label="MSC"], mgw [label="MGW"];
|
|
||||||
|
|
||||||
ms => bts [label="L1 RACH burst"];
|
|
||||||
bts => bsc [label="RSL CHAN RQD"];
|
|
||||||
bts <= bsc [label="RSL CHAN ACT"];
|
|
||||||
bts => bsc [label="RSL CHAN ACT ACK"];
|
|
||||||
bts <= bsc [label="RSL IMM ASS CMD (RR IMM ASS)"];
|
|
||||||
ms <= bts [label="RR IMMEDIATE ASSIGN"];
|
|
||||||
ms => bts [label="LAPDm SABM (CM SERVICE REQ)"];
|
|
||||||
ms <= bts [label="LAPDm FIXME"];
|
|
||||||
bts => bsc [label="RSL ESTABLISH IND (CM SERVICE REQ)"];
|
|
||||||
bsc => Msc [label="CR (BSSAP COMPLETE L3 (CM SERVICE REQ))"];
|
|
||||||
...;
|
|
||||||
ms box Msc [label="MM Common Procedures (INFO, ID, AUTH, CIPH)"];
|
|
||||||
...;
|
|
||||||
ms => bts [label="CC SETUP"];
|
|
||||||
bts => bsc [label="RSL DATA IND (CC SETUP)"];
|
|
||||||
bsc => Msc [label="DT1 (DTAP (CC SETUP))"];
|
|
||||||
...;
|
|
||||||
ms box Msc [label="CC Signalling"];
|
|
||||||
...;
|
|
||||||
bsc <= Msc [label="BSSAP ASSIGNMENT CMD (TCH)"];
|
|
||||||
bts <= bsc [label="RSL IPA CRCX", id="1"];
|
|
||||||
bts => bsc [label="RSL IPA CRCX ACK (IP/Port @ BTS)"];
|
|
||||||
bsc => Msc [label="FIXME"];
|
|
||||||
Msc => mgw [label="FIXME"];
|
|
||||||
bts <- mgw [label="Start RTP + RTCP UDP Flows"];
|
|
||||||
|
|
||||||
bts <= bsc [label="RSL DATA REQ (RR CHAN MOD MODIFY)"];
|
|
||||||
ms <= bts [label="RR CHAN MOD MODIFY"];
|
|
||||||
ms => bts [label="RR CHAN MOD MODIFY ACK"];
|
|
||||||
bts => bsc [label="RSL DATA IND (RR CHAN MOD MODIFY ACK)"];
|
|
||||||
|||;
|
|
||||||
bts <= bsc [label="RSL MODE MODIFY REQ"];
|
|
||||||
bts => bsc [label="RSL MODE MODIFY ACK"];
|
|
||||||
|
|
||||||
Msc <= mgw [label="FIXME"];
|
|
||||||
bsc <= Msc [label="FIXME"];
|
|
||||||
bts <= bsc [label="RSL IPA MDCX (IP/Port @ MGW)", id="2"];
|
|
||||||
bts => bsc [label="RSL IPA MDCX ACK"];
|
|
||||||
|
|
||||||
bts -> mgw [label="Start RTP + RTCP UDP Flows"];
|
|
||||||
ms box mgw [label="Active Voice Call"];
|
|
||||||
bts => bsc [label="RSL MEAS RES"];
|
|
||||||
...;
|
|
||||||
|
|
||||||
bts <= bsc [label="RSL IPA DLCX"];
|
|
||||||
bts => bsc [label="RSL IPA DLCX ACK"];
|
|
||||||
bts -x mgw [label="Stop RTP + RTCP UDP Flows"];
|
|
||||||
|
|
||||||
bts <= bsc [label="RSL RF CHAN REL"];
|
|
||||||
bts => bsc [label="RSL RF CHAN REL ACK"];
|
|
||||||
}
|
|
||||||
@@ -1,944 +0,0 @@
|
|||||||
== Radio Signalling Link (RSL)
|
|
||||||
|
|
||||||
=== List of Messages
|
|
||||||
|
|
||||||
The following tables list the RSL messages used by OsmoBTS A-bis/IP,
|
|
||||||
grouped by their level of compliance with 3GPP TS 08.58.
|
|
||||||
|
|
||||||
==== Messages Compliant With TS 08.58
|
|
||||||
|
|
||||||
Specific additions and limitations apply, see the linked sections.
|
|
||||||
|
|
||||||
.Messages compliant with TS 08.58
|
|
||||||
[options="header",cols="10%,20%,45%,5%,20%"]
|
|
||||||
|===
|
|
||||||
| TS 08.58 § | This document § | Message | <-/-> | Received/Sent by OsmoBTS
|
|
||||||
5+<| *Radio link layer management messages*
|
|
||||||
| 8.3.1 | - | DATA REQUEST | <- | Received
|
|
||||||
| 8.3.2 | - | DATA INDICATION | -> | Sent
|
|
||||||
| 8.3.3 | - | ERROR INDICATION | -> | Sent
|
|
||||||
| 8.3.4 | - | ESTABLISH REQUEST | <- | Received
|
|
||||||
| 8.3.5 | - | ESTABLISH CONFIRM | -> | Sent
|
|
||||||
| 8.3.6 | - | ESTABLISH INDICATION | -> | Sent
|
|
||||||
| 8.3.7 | - | RELEASE REQUEST | <- | Received
|
|
||||||
| 8.3.8 | - | RELEASE CONFIRM | -> | Sent
|
|
||||||
| 8.3.9 | - | RELEASE INDICATION | -> | Sent
|
|
||||||
| 8.3.10 | - | UNIT DATA REQUEST | <- | Received
|
|
||||||
| 8.3.11 | - | UNIT DATA INDICATION | -> | Sent
|
|
||||||
5+<| *DEDICATED CHANNEL MANAGEMENT MESSAGES*
|
|
||||||
| 8.4.1 | <<CHANNEL_ACTIVATION>> | CHANNEL ACTIVATION | <- | Received
|
|
||||||
| 8.4.2 | <<CHANNEL_ACTIVATION>> | CHANNEL ACTIVATION ACKNOWLEDGE | -> | Sent
|
|
||||||
| 8.4.3 | <<CHANNEL_ACTIVATION>> | CHANNEL ACTIVATION NEGATIVE ACKNOWLEDGE | -> | Sent
|
|
||||||
| 8.4.4 | - | CONNECTION FAILURE INDICATION | -> | Sent
|
|
||||||
| 8.4.5 | - | DEACTIVATE SACCH | <- | Received
|
|
||||||
| 8.4.6 | - | ENCRYPTION COMMAND | <- | Received
|
|
||||||
| 8.4.7 | - | HANDOVER DETECTION | -> | Sent
|
|
||||||
| 8.4.8 | <<MEASUREMENT_RESULT>> | MEASUREMENT RESULT | -> | Sent
|
|
||||||
| 8.4.9 | <<MODE_MODIFY>> | MODE MODIFY | <- | Received
|
|
||||||
| 8.4.10 | - | MODE MODIFY ACKNOWLEDGE | -> | Sent
|
|
||||||
| 8.4.11 | - | MODE MODIFY NEGATIVE ACKNOWLEDGE | -> | Sent
|
|
||||||
| 8.4.14 | - | RF CHANNEL RELEASE | <- | Received
|
|
||||||
| 8.4.15 | <<MS_POWER_CONTROL>> | MS POWER CONTROL | <- | Received
|
|
||||||
| 8.4.19 | - | RF CHANNEL RELEASE ACKNOWLEDGE | -> | Sent
|
|
||||||
| 8.4.20 | <<SACCH_INFO_MODIFY>> | SACCH INFO MODIFY | <- | Received
|
|
||||||
5+<| *COMMON CHANNEL MANAGEMENT MESSAGES*
|
|
||||||
| 8.5.1 | <<BCCH_INFORMATION>> | BCCH INFORMATION | <- | Received
|
|
||||||
| 8.5.2 | - | CCCH LOAD INDICATION | -> | Sent
|
|
||||||
| 8.5.3 | <<CHANNEL_REQUIRED>> | CHANNEL REQUIRED | -> | Sent
|
|
||||||
| 8.5.5 | <<PAGING_COMMAND>> | PAGING COMMAND | <- | Received
|
|
||||||
| 8.5.6 | - | IMMEDIATE ASSIGN COMMAND | <- | Received
|
|
||||||
| 8.5.8 | <<SMS_BROADCAST_COMMAND>> | SMS BROADCAST COMMAND | <- | Received
|
|
||||||
5+<| *TRX MANAGEMENT MESSAGES*
|
|
||||||
| 8.6.1 | <<RF_RESOURCE_INDICATION>> | RF RESOURCE INDICATION | -> | Sent
|
|
||||||
| 8.6.2 | <<SACCH_FILLING>> | SACCH FILLING | <- | Received
|
|
||||||
| 8.6.4 | - | ERROR REPORT | -> | Sent
|
|
||||||
|===
|
|
||||||
|
|
||||||
==== Messages Specific to OsmoBTS
|
|
||||||
|
|
||||||
.Messages specific to OsmoBTS, not found in 3GPP TS 08.58
|
|
||||||
[options="header",cols="15%,15%,45%,5%,20%"]
|
|
||||||
|===
|
|
||||||
2+| This document § | Message | <-/-> | Received/Sent by OsmoBTS
|
|
||||||
5+<| *User Plane Transport Management* (<<user_plane_txp_mgmt>>)
|
|
||||||
.3+.| <<rsl_crcx>> | <<rsl_crcx_msg>> | RSL Create Connection (CRCX) | <- | Received
|
|
||||||
| <<rsl_crcx_msg_ack>> | RSL Create Connection (CRCX) ACK | -> | Sent
|
|
||||||
| <<rsl_crcx_msg_nack>> | RSL Create Connection (CRCX) NACK | -> | Sent
|
|
||||||
.3+.| <<rsl_mdcx>> | <<rsl_mdcx_msg>> | RSL Modify Connection (MDCX) | <- | Received
|
|
||||||
| <<rsl_mdcx_msg_ack>> | RSL Modify Connection (MDCX) ACK | -> | Sent
|
|
||||||
| <<rsl_mdcx_msg_nack>> | RSL Modify Connection (MDCX) NACK | -> | Sent
|
|
||||||
.3+.| <<rsl_dlcx>> | <<rsl_dlcx_msg>> | RSL Delete Connection (DLCX) | <- | Received
|
|
||||||
| <<rsl_dlcx_msg_ack>> | RSL Delete Connection (DLCX) ACK | -> | Sent
|
|
||||||
| <<rsl_dlcx_msg_nack>> | RSL Delete Connection (DLCX) NACK | -> | Sent
|
|
||||||
| <<rsl_dlcx_ind>> | <<rsl_dlcx_ind_msg>> | RSL Delete Connection (DLCX) Indication | -> | Sent
|
|
||||||
5+<| *IPA style PDCH Management* (<<ipa_style_pdch_mgmt>>)
|
|
||||||
.3+.| <<pdch_act>> | <<rsl_pdch_act>> | RSL PDCH Activation | <- | Received
|
|
||||||
| <<rsl_pdch_act_ack>> | RSL PDCH Activation ACK | -> | Sent
|
|
||||||
| <<rsl_pdch_act_nack>> | RSL PDCH Activation NACK | -> | Sent
|
|
||||||
.3+.| <<pdch_deact>> | <<rsl_pdch_deact>> | RSL PDCH Deactivation | <- | Received
|
|
||||||
| <<rsl_pdch_deact_ack>> | RSL PDCH Deactivation ACK | -> | Sent
|
|
||||||
| <<rsl_pdch_deact_nack>> | RSL PDCH Deactivation NACK | -> | Sent
|
|
||||||
|===
|
|
||||||
|
|
||||||
==== Messages Not Implemented by OsmoBTS
|
|
||||||
|
|
||||||
.3GPP TS 08.58 messages not implemented by OsmoBTS
|
|
||||||
[options="header",cols="10%,90%"]
|
|
||||||
|===
|
|
||||||
| TS 08.58 § | Message
|
|
||||||
2+<| *DEDICATED CHANNEL MANAGEMENT MESSAGES*
|
|
||||||
| 8.4.12 | PHYSICAL CONTEXT REQUEST
|
|
||||||
| 8.4.13 | PHYSICAL CONTEXT CONFIRM
|
|
||||||
| 8.4.16 | BS POWER CONTROL
|
|
||||||
| 8.4.17 | PREPROCESS CONFIGURE
|
|
||||||
| 8.4.18 | PREPROCESSED MEASUREMENT RESULT
|
|
||||||
| 8.4.21 | TALKER DETECTION
|
|
||||||
| 8.4.22 | LISTENER DETECTION
|
|
||||||
| 8.4.23 | REMOTE CODEC CONFIGURATION REPORT
|
|
||||||
| 8.4.24 | ROUND TRIP DELAY REPORT
|
|
||||||
| 8.4.25 | PRE-HANDOVER NOTIFICATION
|
|
||||||
| 8.4.26 | MULTIRATE CODEC MODIFICATION REQUEST
|
|
||||||
| 8.4.27 | MULTIRATE CODEC MODIFICATION ACKNOWLEDGE
|
|
||||||
| 8.4.28 | MULTIRATE CODEC MODIFICATION NEGATIVE ACKNOWLEDGE
|
|
||||||
| 8.4.29 | MULTIRATE CODEC MODIFICATION PERFORMED
|
|
||||||
| 8.4.30 | TFO REPORT
|
|
||||||
| 8.4.31 | TFO MODIFICATION REQUEST
|
|
||||||
2+<| *COMMON CHANNEL MANAGEMENT MESSAGES*
|
|
||||||
| 8.5.4 | DELETE INDICATION
|
|
||||||
| 8.5.7 | SMS BROADCAST REQUEST
|
|
||||||
| 8.5.9 | CBCH LOAD INDICATION
|
|
||||||
| 8.5.10 | NOTIFICATION COMMAND
|
|
||||||
2+<| *TRX MANAGEMENT MESSAGES*
|
|
||||||
| 8.6.3 | OVERLOAD
|
|
||||||
2+<| *LOCATION SERVICES MESSAGES*
|
|
||||||
| 8.7.1 | LOCATION INFORMATION
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
=== Message Limitation Details
|
|
||||||
|
|
||||||
[[CHANNEL_ACTIVATION]]
|
|
||||||
==== Channel Activation
|
|
||||||
|
|
||||||
When used on a timeslot using the non-standard channel combination
|
|
||||||
'NM_CHANC_OSMO_TCHFull_TCHHalf_PDCH' as configured by OML, the regular
|
|
||||||
RSL channel activation procedures can not only be used for activation
|
|
||||||
of circuit-switched channels, but also for activation of a PDCH.
|
|
||||||
|
|
||||||
See <<OSMOCOM_DYN_TS>>.
|
|
||||||
|
|
||||||
NOTE:: Do not confuse this with the IPA style _PDCH ACT_ type
|
|
||||||
dynamic PDCH protocol employed by nanoBTS devices (<<ipa_style_pdch_mgmt>>).
|
|
||||||
|
|
||||||
[[MEASUREMENT_RESULT]]
|
|
||||||
==== Measurement Result
|
|
||||||
|
|
||||||
Conforms to 3GPP TS 08.58 § 8.4.8 with this limitation:
|
|
||||||
|
|
||||||
._Measurement Result_ IE limitations
|
|
||||||
[options="header",cols="10%,30%,60%"]
|
|
||||||
|===
|
|
||||||
| TS 08.58 § | IE Name | Handling
|
|
||||||
| 9.3.37 | MS Timing Offset | never sent by OsmoBTS
|
|
||||||
|===
|
|
||||||
|
|
||||||
[[MODE_MODIFY]]
|
|
||||||
==== Mode Modify
|
|
||||||
|
|
||||||
Conforms to 3GPP TS 08.58 § 8.4.9 with these limitations:
|
|
||||||
|
|
||||||
._Mode Modify_ IE limitations
|
|
||||||
[options="header",cols="10%,30%,60%"]
|
|
||||||
|===
|
|
||||||
| TS 08.58 § | IE Name | Handling
|
|
||||||
| 9.3.45 | Main channel reference | _ignored_
|
|
||||||
| 9.3.53 | MultiRate Control | _ignored_
|
|
||||||
| 9.3.54 | Supported Codec Types | _ignored_
|
|
||||||
|===
|
|
||||||
|
|
||||||
[[MS_POWER_CONTROL]]
|
|
||||||
==== MS Power Control
|
|
||||||
|
|
||||||
Conforms to 3GPP TS 08.58 § 8.4.15 with these limitations:
|
|
||||||
|
|
||||||
._MS Power Control_ IE limitations
|
|
||||||
[options="header",cols="10%,30%,60%"]
|
|
||||||
|===
|
|
||||||
| TS 08.58 § | IE Name | Handling
|
|
||||||
| 9.3.31 | MS Power Parameters | _ignored_
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
[[SACCH_INFO_MODIFY]]
|
|
||||||
==== SACCH Info Modify
|
|
||||||
|
|
||||||
Conforms to 3GPP TS 08.58 § 8.4.20, with these exceptions:
|
|
||||||
|
|
||||||
._SACCH Info Modify_ IE limitations
|
|
||||||
[options="header",cols="10%,30%,60%"]
|
|
||||||
|===
|
|
||||||
| TS 08.58 § | IE Name | Handling
|
|
||||||
| 9.3.30 | System Info Type | See below for available types
|
|
||||||
| 9.3.23 | Starting Time | not supported, provokes an _Error Report_ response
|
|
||||||
|===
|
|
||||||
|
|
||||||
._System Info Type_ values that can occur on the SACCH
|
|
||||||
[options="header",width="50%",cols="20%,80%"]
|
|
||||||
|===
|
|
||||||
| Value | Name
|
|
||||||
| 0x05 | RSL_SYSTEM_INFO_5
|
|
||||||
| 0x06 | RSL_SYSTEM_INFO_6
|
|
||||||
| 0x0d | RSL_SYSTEM_INFO_5bis
|
|
||||||
| 0x0e | RSL_SYSTEM_INFO_5ter
|
|
||||||
| 0x47 | RSL_EXT_MEAS_ORDER
|
|
||||||
| 0x48 | RSL_MEAS_INFO
|
|
||||||
|===
|
|
||||||
|
|
||||||
[[BCCH_INFORMATION]]
|
|
||||||
==== BCCH Information
|
|
||||||
|
|
||||||
Conforms to 3GPP TS 08.58 § 8.5.1, with these limitations and extensions:
|
|
||||||
|
|
||||||
._BCCH Information_ IE details
|
|
||||||
[options="header",cols="10%,30%,60%"]
|
|
||||||
|===
|
|
||||||
| TS 08.58 § | IE Name | Handling
|
|
||||||
| 9.3.30 | System Info Type | See <<SACCH_INFO_MODIFY>> for available types
|
|
||||||
| 9.3.11 | L3 Info | This IE may be included instead of a 9.3.39 _Full BCCH Info_ IE.
|
|
||||||
The _Full BCCH Info_ takes precedence over _L3 Info_.
|
|
||||||
To stop SI transmission, both of these IEs must be omitted.
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
[[CHANNEL_REQUIRED]]
|
|
||||||
==== Channel Required
|
|
||||||
|
|
||||||
Conforms to 3GPP TS 08.58 § 8.5.3, with these limitations:
|
|
||||||
|
|
||||||
._Channel Required_ message IE details
|
|
||||||
[options="header",cols="10%,30%,60%"]
|
|
||||||
|===
|
|
||||||
| TS 08.58 § | IE Name | Handling
|
|
||||||
| 9.3.16 | Physical Context | never sent by OsmoBTS
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
[[PAGING_COMMAND]]
|
|
||||||
==== Paging Command
|
|
||||||
|
|
||||||
Conforms to 3GPP TS 08.58 § 8.5.5, with these limitations:
|
|
||||||
|
|
||||||
._Paging Command_ message IE details
|
|
||||||
[options="header",cols="10%,30%,60%"]
|
|
||||||
|===
|
|
||||||
| TS 08.58 § | IE Name | Handling
|
|
||||||
| 9.3.49 | eMLPP Priority | _ignored_
|
|
||||||
|===
|
|
||||||
|
|
||||||
NOTE: If adding the identity to the paging queue fails, the BSC is not notified
|
|
||||||
in any way.
|
|
||||||
|
|
||||||
[[SMS_BROADCAST_COMMAND]]
|
|
||||||
=== SMS Broadcast Command
|
|
||||||
|
|
||||||
Conforms to 3GPP TS 08.58 § 8.5.8, with these limitations:
|
|
||||||
|
|
||||||
._Broadcast Command_ message IE details
|
|
||||||
[options="header",cols="10%,30%,60%"]
|
|
||||||
|===
|
|
||||||
| TS 08.58 § | IE Name | Handling
|
|
||||||
| 9.3.44 | SMSCB Channel Indicator | _ignored_
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
[[RF_RESOURCE_INDICATION]]
|
|
||||||
==== RF Resource Indication
|
|
||||||
|
|
||||||
This message does not conform to 3GPP TS 08.58 § 8.6.1, in that it omits the
|
|
||||||
_Resource Information_ IE that would contain the actual payload data, which
|
|
||||||
renders this message void.
|
|
||||||
|
|
||||||
._RF Resource Indication_ message IE exceptions
|
|
||||||
[options="header",cols="10%,30%,60%"]
|
|
||||||
|===
|
|
||||||
| TS 08.58 § | IE Name | Handling
|
|
||||||
| 9.3.21 | Resource Information | OsmoBTS omits this IE, though TS 08.58
|
|
||||||
specifies it as mandatory.
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
[[SACCH_FILLING]]
|
|
||||||
==== SACCH Filling
|
|
||||||
|
|
||||||
Conforms to 3GPP TS 08.58 § 8.6.2, with these limitations:
|
|
||||||
|
|
||||||
._SACCH Filling_ message IE limitations
|
|
||||||
[options="header",cols="10%,30%,60%"]
|
|
||||||
|===
|
|
||||||
| TS 08.58 § | IE Name | Handling
|
|
||||||
| 9.3.30 | System Info Type | See <<SACCH_INFO_MODIFY>> for available types
|
|
||||||
| 9.3.23 | Starting Time | _ignored_
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
[[user_plane_txp_mgmt]]
|
|
||||||
=== User Plane Transport Management
|
|
||||||
|
|
||||||
This chapter defines the A-bis/IP specific RSL procedures that are
|
|
||||||
introduced in addition to the 3GPP TS 08.58 standard procedures.
|
|
||||||
|
|
||||||
In classic A-bis over E1, user plane traffic is carried over 16kBps
|
|
||||||
sub-slots of 64kBps E1 time-slots according to ETSI/3GPP TS 08.60. As
|
|
||||||
the E1 line is a dedicated line between BTS and BSC, no further
|
|
||||||
addressing information is required.
|
|
||||||
|
|
||||||
In A-bis/IP as described by the present document, new RSL procedures
|
|
||||||
have been introduced to deal with the different properties of
|
|
||||||
the underlying IP based transport medium.
|
|
||||||
|
|
||||||
[[rsl_crcx]]
|
|
||||||
==== RSL Create Connection (CRCX)
|
|
||||||
|
|
||||||
This procedure is used by the BSC to request the BTS to allocate + bind
|
|
||||||
to a BTS-local UDP port for the subsequent transmission of user-plane
|
|
||||||
data via RTP.
|
|
||||||
|
|
||||||
To do so, the BSC sends the *Create Connection (CRCX)* message. In case of
|
|
||||||
successful outcome, the BTS responds with *Create Connection (CRCX)
|
|
||||||
ACK*. In case of any error, the BTS responds with *Create Connection
|
|
||||||
(CRCX) NACK*.
|
|
||||||
|
|
||||||
See <<rsl_crcx_msg>>, <<rsl_crcx_msg_ack>>, <<rsl_crcx_msg_nack>>
|
|
||||||
|
|
||||||
[[rsl_mdcx]]
|
|
||||||
==== RSL Modify Connection (MDCX)
|
|
||||||
|
|
||||||
This procedure is used by the BSC to request the BTS to modify an
|
|
||||||
already-bound BTS-local UDP port for user-plane RTP. It is used in
|
|
||||||
particular to configure the remote IP address and UDP port to which the
|
|
||||||
BTS shall send user-plane RTP traffic. This remote address is normally
|
|
||||||
either a Media Gateway (MGW) of some sort, but could also be the RTP
|
|
||||||
socket of the corresponding other leg of a mobile-to-mobile call.
|
|
||||||
|
|
||||||
To modify a user-plane connection, the BSC sends the *Modify Connection*
|
|
||||||
message. In case of successful outcome, the BTS responds with
|
|
||||||
*Modify Connection (MDCX) ACK*. In case of any error, the BTS responds
|
|
||||||
with *Modify Connection (MDCX) NACK*.
|
|
||||||
|
|
||||||
See <<rsl_mdcx_msg>>, <<rsl_mdcx_msg_ack>>, <<rsl_mdcx_msg_nack>>
|
|
||||||
|
|
||||||
[[rsl_dlcx]]
|
|
||||||
==== RSL Delete Connection (DLCX)
|
|
||||||
|
|
||||||
This procedure is used by the BSC to request the BTS to delete an
|
|
||||||
already-existing BTS-local UDP port for user-plane RTP.
|
|
||||||
|
|
||||||
To delete a user-plane connection, the BSC sends the *Delete Connection
|
|
||||||
(DLCX)* message. In case of successful outcome, the BTS responds with
|
|
||||||
*Delete Connection (DLCX) ACK*. In case of any error, the BTS responds
|
|
||||||
with *Delete Connection (DLCX) NACK*.
|
|
||||||
|
|
||||||
See <<rsl_dlcx_msg>>, <<rsl_dlcx_msg_ack>>, <<rsl_dlcx_msg_nack>>
|
|
||||||
|
|
||||||
[[rsl_dlcx_ind]]
|
|
||||||
==== RSL Delete Connection (DLCX) Indication
|
|
||||||
|
|
||||||
When a BTS-local UDP connection for user-plane RTP is automatically
|
|
||||||
released at the time of RF CHANNEL RELEASE, the BTS sends a unilateral,
|
|
||||||
non-acknowledged *RSL Delete Connection (DLCX) Indication* to the BSC.
|
|
||||||
|
|
||||||
See <<rsl_dlcx_ind_msg>>
|
|
||||||
|
|
||||||
|
|
||||||
[[rsl-dynamic-channels]]
|
|
||||||
=== Dynamic Channel Combinations
|
|
||||||
|
|
||||||
In the classic data model established by ETSI/3GPP for A-bis, each
|
|
||||||
timeslot (channel) is configured using a static channel combination by
|
|
||||||
means of A-bis OML. Particularly in presence of GPRS services, this
|
|
||||||
is very unflexible and leads to inefficient use of air interface
|
|
||||||
resources.
|
|
||||||
|
|
||||||
As such, several methods have been implemented to overcome this
|
|
||||||
limitation. The fundamental operation can be outlined like this:
|
|
||||||
|
|
||||||
* Configuration of a particular _dynamic_ channel combination via OML
|
|
||||||
* activation of TCH works like on a classic TCH channel combination
|
|
||||||
* activation of PDCH requires some specific PDCH activation procedure
|
|
||||||
|
|
||||||
There are two variants implemented in the OsmoBTS A-bis dialect:
|
|
||||||
|
|
||||||
[[ipa_style_pdch_mgmt]]
|
|
||||||
==== IPA Style Dynamic Channels
|
|
||||||
|
|
||||||
This method is used when OML uses 'NM_CHANC_IPAC_TCHFull_PDCH' (0x80)
|
|
||||||
as channel combination for the given time-slot.
|
|
||||||
|
|
||||||
'IPA style' refers to 'ip.access' compatible PDCH activation and deactivation.
|
|
||||||
|
|
||||||
When the IPA style dynamic channel combination _TCH/F or PDCH_
|
|
||||||
is set, the non-standard 'PDCH ACTIVATE' (<<pdch_act>>) and 'PDCH
|
|
||||||
DEACTIVATE' (<<pdch_deact>>) procedures are used for switching an idle
|
|
||||||
channel into PDCH mode and back into idle mode.
|
|
||||||
|
|
||||||
When the channel is used as TCH/F, regular circuit-switched activation
|
|
||||||
is performed, like on any traditional TCH/F. However, the BSC must
|
|
||||||
make sure to first disable the PDCH on the timeslot, before activating
|
|
||||||
it as TCH/F. Likewise, any circuit-switched TCH/F on the channel must
|
|
||||||
be deactivated using standard RSL signalling, before the specific PDCH
|
|
||||||
related procedures are used to enable the PDCH.
|
|
||||||
|
|
||||||
[[pdch_act]]
|
|
||||||
===== PDCH Activate
|
|
||||||
|
|
||||||
This procedure is used by the BSC to request the BTS to activate an
|
|
||||||
IPA style dynamic TCH/F+PDCH channel in PDCH mode.
|
|
||||||
|
|
||||||
The operation is not supported on any other physical channel type.
|
|
||||||
|
|
||||||
See <<rsl_pdch_act>>, <<rsl_pdch_act_ack>>, <<rsl_pdch_act_nack>>
|
|
||||||
|
|
||||||
[[pdch_deact]]
|
|
||||||
===== PDCH Deactivate
|
|
||||||
|
|
||||||
This procedure is used by the BSC to request the BTS to deactivate an
|
|
||||||
active PDCH on any an IPA style dynamic TCH/F+PDCH channel.
|
|
||||||
|
|
||||||
The operation is not supported on any other physical channel type.
|
|
||||||
|
|
||||||
See <<rsl_pdch_deact>>, <<rsl_pdch_deact_ack>>, <<rsl_pdch_deact_nack>>
|
|
||||||
|
|
||||||
===== IPA Style Dynamic Switchover Example
|
|
||||||
|
|
||||||
.Part 1: example for dynamic channel switchover, for IPA style dynamic timeslots
|
|
||||||
["mscgen"]
|
|
||||||
----
|
|
||||||
include::dyn_ts_ipa_style1.msc[]
|
|
||||||
----
|
|
||||||
|
|
||||||
.Part 2: example for dynamic channel switchover, for IPA style dynamic timeslots
|
|
||||||
["mscgen"]
|
|
||||||
----
|
|
||||||
include::dyn_ts_ipa_style2.msc[]
|
|
||||||
----
|
|
||||||
|
|
||||||
|
|
||||||
[[OSMOCOM_DYN_TS]]
|
|
||||||
==== Osmocom Style Dynamic Channels
|
|
||||||
|
|
||||||
This method is in use when OML uses
|
|
||||||
'NM_CHANC_OSMO_TCHFull_TCHHalf_PDCH' (0x90) for the given time-slot.
|
|
||||||
|
|
||||||
The activation of PDCH is performed by using the regular 'RSL CHANNEL ACTIVATE'
|
|
||||||
procedure according to <<CHANNEL_ACTIVATION>>, with these modifications:
|
|
||||||
|
|
||||||
* The 'C-bits' part of the 'Channel Number' IE take the non-standard binary
|
|
||||||
value 11000 (C5 thru C1 as seen in 3GPP TS 08.58 § 9.3.1).
|
|
||||||
* The 'A-bits' part of the 'Activation Type' IE take the non-standard binary
|
|
||||||
value 1111, with an additional fourth bit (add A4 to A3 thru A1 as seen in
|
|
||||||
3GPP TS 08.58 § 9.3.3; all remaining reserved bits as well as the 'R' bit are
|
|
||||||
coded as zero).
|
|
||||||
* The normally mandatory 'Channel Mode' IE is omitted; none of the optional IEs
|
|
||||||
are included.
|
|
||||||
|
|
||||||
Hence the message consists of exactly these IEs:
|
|
||||||
|
|
||||||
.PDCH type _Channel Activation_ message IEs
|
|
||||||
[options="header",cols="10%,30%,60%"]
|
|
||||||
|===
|
|
||||||
| TS 08.58 § | IE Name | Handling
|
|
||||||
| 9.1 | Message discriminator | Dedicated Channel Management
|
|
||||||
| 9.2 | Message type | CHANnel ACTIVation
|
|
||||||
| 9.3.1 | Channel number | 'C-bits' 11000, plus TS bits as usual
|
|
||||||
| 9.3.3 | Activation type | 'A-bits' 1111
|
|
||||||
|===
|
|
||||||
|
|
||||||
===== Osmocom Style Dynamic Switchover Example
|
|
||||||
|
|
||||||
.Part 1: example for dynamic channel switchover, for Osmocom style dynamic timeslots
|
|
||||||
["mscgen"]
|
|
||||||
----
|
|
||||||
include::dyn_ts_osmocom_style1.msc[]
|
|
||||||
----
|
|
||||||
|
|
||||||
.Part 2: example for dynamic channel switchover, for Osmocom style dynamic timeslots
|
|
||||||
["mscgen"]
|
|
||||||
----
|
|
||||||
include::dyn_ts_osmocom_style2.msc[]
|
|
||||||
----
|
|
||||||
|
|
||||||
=== Message Formats and Contents
|
|
||||||
|
|
||||||
[[rsl_crcx_msg]]
|
|
||||||
==== Create Connection (CRCX)
|
|
||||||
|
|
||||||
This message is sent by the BSC to the BTS to request the
|
|
||||||
creation of a user-plane RTP connection for the specified *Channel
|
|
||||||
number*.
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message discriminator | 08.58 9.1 | M | V | 1
|
|
||||||
| Message type | <<own_msg_types>> | M | V | 1
|
|
||||||
| Channel number | 08.58 9.3.1 | M | TV | 2
|
|
||||||
| Destination IP Address | <<RSL_IE_IPAC_REMOTE_IP>> | O | TV | 5
|
|
||||||
| Destination IP Port | <<RSL_IE_IPAC_REMOTE_PORT>> | O | TV | 3
|
|
||||||
| IP Speech Mode | <<RSL_IE_IPAC_SPEECH_MODE>> | O | TV | 2
|
|
||||||
| RTP Payload Type 2 | <<RSL_IE_IPAC_RTP_PAYLOAD2>> | O | TV | 2
|
|
||||||
|===
|
|
||||||
|
|
||||||
[[rsl_crcx_msg_ack]]
|
|
||||||
==== Create Connection (CRCX) ACK
|
|
||||||
|
|
||||||
This message is sent by the BTS to the BSC to acknowledge the
|
|
||||||
successful outcome of creating a user-plane RTP connection. It is sent
|
|
||||||
in response to the *Create Connection (CRCX)*.
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message discriminator | 08.58 9.1 | M | V | 1
|
|
||||||
| Message type | <<own_msg_types>> | M | V | 1
|
|
||||||
| Channel number | 08.58 9.3.1 | M | TV | 2
|
|
||||||
| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | M | TV | 3
|
|
||||||
| Source IP Address | <<RSL_IE_IPAC_LOCAL_IP>> | O | TV | 5
|
|
||||||
| Source IP Port | <<RSL_IE_IPAC_LOCAL_PORT>> | O | TV | 3
|
|
||||||
| RTP Payload Type 2 | <<RSL_IE_IPAC_RTP_PAYLOAD2>> | O | TV | 2
|
|
||||||
|===
|
|
||||||
|
|
||||||
[[rsl_crcx_msg_nack]]
|
|
||||||
==== Create Connection (CRCX) NACK
|
|
||||||
|
|
||||||
This message is sent by the BTS to the BSC to signal the
|
|
||||||
unsuccessful outcome of creating a user-plane RTP connection. It is
|
|
||||||
sent in response to the *Create Connection (CRCX)*.
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message discriminator | 08.58 9.1 | M | V | 1
|
|
||||||
| Message type | <<own_msg_types>> | M | V | 1
|
|
||||||
| Channel number | 08.58 9.3.1 | M | TV | 2
|
|
||||||
| Destination IP Address | <<RSL_IE_IPAC_REMOTE_IP>> | O | TV | 5
|
|
||||||
| Destination IP Port | <<RSL_IE_IPAC_REMOTE_PORT>> | O | TV | 3
|
|
||||||
| Cause | 08.58 9.3.26 | O | TLV | >= 3
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
[[rsl_mdcx_msg]]
|
|
||||||
==== Modify Connection (MDCX)
|
|
||||||
|
|
||||||
This message is sent by the BSC to the BTS to modify the
|
|
||||||
properties of a user-plane RTP connection.
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message discriminator | 08.58 9.1 | M | V | 1
|
|
||||||
| Message type | <<own_msg_types>> | M | V | 1
|
|
||||||
| Channel number | 08.58 9.3.1 | M | TV | 2
|
|
||||||
| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | O | TV | 3
|
|
||||||
| Destination IP Address | <<RSL_IE_IPAC_REMOTE_IP>> | O | TV | 5
|
|
||||||
| Destination IP Port | <<RSL_IE_IPAC_REMOTE_PORT>> | O | TV | 3
|
|
||||||
| IP Speech Mode | <<RSL_IE_IPAC_SPEECH_MODE>> | O | TV | 2
|
|
||||||
| RTP Payload Type 2 | <<RSL_IE_IPAC_RTP_PAYLOAD2>> | O | TV | 2
|
|
||||||
|===
|
|
||||||
|
|
||||||
[[rsl_mdcx_msg_ack]]
|
|
||||||
==== Modify Connection (MDCX) ACK
|
|
||||||
|
|
||||||
This message is sent by the BTS to the BSC to acknowledge the
|
|
||||||
successful modification of a user-plane RTP connection. It is sent in
|
|
||||||
response to a *Modify Connection (MDCX)*
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message discriminator | 08.58 9.1 | M | V | 1
|
|
||||||
| Message type | <<own_msg_types>> | M | V | 1
|
|
||||||
| Channel number | 08.58 9.3.1 | M | TV | 2
|
|
||||||
| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | O | TV | 3
|
|
||||||
| Source IP Address | <<RSL_IE_IPAC_LOCAL_IP>> | C | TV | 5
|
|
||||||
| Source IP Port | <<RSL_IE_IPAC_LOCAL_PORT>> | C | TV | 3
|
|
||||||
| RTP Payload Type 2 | <<RSL_IE_IPAC_RTP_PAYLOAD2>> | O | TV | 2
|
|
||||||
|===
|
|
||||||
|
|
||||||
[[rsl_mdcx_msg_nack]]
|
|
||||||
==== Modify Connection (MDCX) NACK
|
|
||||||
|
|
||||||
This message is sent by the BTS to the BSC to signal the
|
|
||||||
unsuccessful outcome of modifying the user-plane RTP connection for the
|
|
||||||
specified Channel number. It is sent in response to the *Modify
|
|
||||||
Connection (MDCX)*.
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message discriminator | 08.58 9.1 | M | V | 1
|
|
||||||
| Message type | <<own_msg_types>> | M | V | 1
|
|
||||||
| Channel number | 08.58 9.3.1 | M | TV | 2
|
|
||||||
| Cause | 08.58 9.3.26 | M | TLV | >= 3
|
|
||||||
|===
|
|
||||||
|
|
||||||
[[rsl_dlcx_ind_msg]]
|
|
||||||
==== Delete Connection (DLCX) Indication
|
|
||||||
|
|
||||||
This message is sent by the BTS to indicate the automatic
|
|
||||||
deletion of a BTS-local UDP connection for user-plane RTP traffic at the
|
|
||||||
time of RF Channel release.
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message discriminator | 08.58 9.1 | M | V | 1
|
|
||||||
| Message type | <<own_msg_types>> | M | V | 1
|
|
||||||
| Channel number | 08.58 9.3.1 | M | TV | 2
|
|
||||||
| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | M | TV | 3
|
|
||||||
| Connection Id | <<RSL_IE_IPAC_CONN_STAT>> | M | TV | 3
|
|
||||||
| Cause | 08.58 9.3.26 | M | TLV | >= 3
|
|
||||||
|===
|
|
||||||
|
|
||||||
[[rsl_dlcx_msg]]
|
|
||||||
==== Delete Connection (DLCX)
|
|
||||||
|
|
||||||
This message is sent by the BSC to the BTS to request the
|
|
||||||
disconnection of a user-plane RTP connection for the specified Channel
|
|
||||||
number.
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message discriminator | 08.58 9.1 | M | V | 1
|
|
||||||
| Message type | <<own_msg_types>> | M | V | 1
|
|
||||||
| Channel number | 08.58 9.3.1 | M | TV | 2
|
|
||||||
| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | O | TV | 3
|
|
||||||
|===
|
|
||||||
|
|
||||||
[[rsl_dlcx_msg_ack]]
|
|
||||||
==== Delete Connection (DLCX) ACK
|
|
||||||
|
|
||||||
This message is sent by the BTS to signal the successful
|
|
||||||
outcome of deleting the user-plane RTP connection for the specified
|
|
||||||
Channel number. It is sent in response to the *Delete Connection
|
|
||||||
(DLCX)*.
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message discriminator | 08.58 9.1 | M | V | 1
|
|
||||||
| Message type | <<own_msg_types>> | M | V | 1
|
|
||||||
| Channel number | 08.58 9.3.1 | M | TV | 2
|
|
||||||
| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | O | TV | 3
|
|
||||||
| Connection Statistics | <<RSL_IE_IPAC_CONN_STAT>> | C | TV | 29
|
|
||||||
|===
|
|
||||||
|
|
||||||
[[rsl_dlcx_msg_nack]]
|
|
||||||
==== Delete Connection (DLCX) NACK
|
|
||||||
|
|
||||||
This message is sent by the BTS to signal the unsuccessful
|
|
||||||
outcome of deleting the user-plane RTP connection for the specified
|
|
||||||
Channel number. It is sent in response to the *Delete Connection
|
|
||||||
(DLCX)*.
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message discriminator | 08.58 9.1 | M | V | 1
|
|
||||||
| Message type | <<own_msg_types>> | M | V | 1
|
|
||||||
| Channel number | 08.58 9.3.1 | M | TV | 2
|
|
||||||
| Connection Id | <<RSL_IE_IPAC_CONN_ID>> | O | TV | 3
|
|
||||||
| Cause | 08.58 9.3.26 | M | TLV | >= 3
|
|
||||||
|===
|
|
||||||
|
|
||||||
[[rsl_pdch_act]]
|
|
||||||
==== PDCH Activate
|
|
||||||
|
|
||||||
This message is sent by the BSC to request the activation of a PDCH on
|
|
||||||
a IPA style dynamic TCH/F+PDCH channel.
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message discriminator | 08.58 9.1 | M | V | 1
|
|
||||||
| Message type | <<own_msg_types>> | M | V | 1
|
|
||||||
| Channel number | 08.58 9.3.1 | M | TV | 2
|
|
||||||
|===
|
|
||||||
|
|
||||||
NOTE:: This message is *not* used by Osmocom style dynamic channels
|
|
||||||
|
|
||||||
[[rsl_pdch_act_ack]]
|
|
||||||
==== PDCH Activate ACK
|
|
||||||
|
|
||||||
This message is sent by the BTS to confirm the successful activation
|
|
||||||
of a PDCH on a IPA style dynamic TCH/F+PDCH channel.
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message discriminator | 08.58 9.1 | M | V | 1
|
|
||||||
| Message type | <<own_msg_types>> | M | V | 1
|
|
||||||
| Channel number | 08.58 9.3.1 | M | TV | 2
|
|
||||||
| Frame Number | 08.58 9.3.8 | O | TV | 3
|
|
||||||
|===
|
|
||||||
|
|
||||||
NOTE:: This message is *not* used by Osmocom style dynamic channels
|
|
||||||
|
|
||||||
[[rsl_pdch_act_nack]]
|
|
||||||
==== PDCH Activate NACK
|
|
||||||
|
|
||||||
This message is sent by the BTS to reject the successful activation
|
|
||||||
of a PDCH on a IPA style dynamic TCH/F+PDCH channel.
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message discriminator | 08.58 9.1 | M | V | 1
|
|
||||||
| Message type | <<own_msg_types>> | M | V | 1
|
|
||||||
| Channel number | 08.58 9.3.1 | M | TV | 2
|
|
||||||
| Cause | 08.58 9.3.26 | M | TLV | >= 3
|
|
||||||
|===
|
|
||||||
|
|
||||||
NOTE:: This message is *not* used by Osmocom style dynamic channels
|
|
||||||
|
|
||||||
[[rsl_pdch_deact]]
|
|
||||||
==== PDCH Deactivate
|
|
||||||
|
|
||||||
This message is sent by the BSC to request the deactivation of a PDCH
|
|
||||||
on a IPA style dynamic TCH/F+PDCH channel.
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message discriminator | 08.58 9.1 | M | V | 1
|
|
||||||
| Message type | <<own_msg_types>> | M | V | 1
|
|
||||||
| Channel number | 08.58 9.3.1 | M | TV | 2
|
|
||||||
|===
|
|
||||||
|
|
||||||
NOTE:: This message is *not* used by Osmocom style dynamic channels
|
|
||||||
|
|
||||||
[[rsl_pdch_deact_ack]]
|
|
||||||
==== PDCH Deactivate ACK
|
|
||||||
|
|
||||||
This message is sent by the BTS to confirm the successful deactivation
|
|
||||||
of a PDCH on a IPA style dynamic TCH/F+PDCH channel.
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message discriminator | 08.58 9.1 | M | V | 1
|
|
||||||
| Message type | <<own_msg_types>> | M | V | 1
|
|
||||||
| Channel number | 08.58 9.3.1 | M | TV | 2
|
|
||||||
|===
|
|
||||||
|
|
||||||
NOTE:: This message is *not* used by Osmocom style dynamic channels
|
|
||||||
|
|
||||||
[[rsl_pdch_deact_nack]]
|
|
||||||
==== PDCH Deactivate NACK
|
|
||||||
|
|
||||||
This message is sent by the BTS to reject the deactivation of a PDCH
|
|
||||||
on a IPA style dynamic TCH/F+PDCH channel.
|
|
||||||
|
|
||||||
[options="header"]
|
|
||||||
[cols="30%,25%,15%,15%,15%"]
|
|
||||||
|===
|
|
||||||
| INFORMATION ELEMENT | REFERENCE | PRESENCE | FORMAT | LENGTH
|
|
||||||
| Message discriminator | 08.58 9.1 | M | V | 1
|
|
||||||
| Message type | <<own_msg_types>> | M | V | 1
|
|
||||||
| Channel number | 08.58 9.3.1 | M | TV | 2
|
|
||||||
| Cause | 08.58 9.3.26 | M | TLV | >= 3
|
|
||||||
|===
|
|
||||||
|
|
||||||
NOTE:: This message is *not* used by Osmocom style dynamic channels
|
|
||||||
|
|
||||||
=== Information Element Codings
|
|
||||||
|
|
||||||
[[own_msg_types]]
|
|
||||||
==== A-bis/IP specific RSL Message discriminators
|
|
||||||
|
|
||||||
The following message discriminators are used in addition to those
|
|
||||||
indicated in 3GPP TS 08.58 Section 9.1:
|
|
||||||
|
|
||||||
.OsmoBTS specific new message discriminators
|
|
||||||
[options="header",cols="10%,50%,40%"]
|
|
||||||
|===
|
|
||||||
| Message Type | Message | This document §
|
|
||||||
| 0x70 | Create Connection (CRCX) | <<rsl_crcx_msg>>
|
|
||||||
| 0x71 | Create Connection (CRCX) ACK | <<rsl_crcx_msg_ack>>
|
|
||||||
| 0x72 | Create Connection (CRCX) NACK | <<rsl_crcx_msg_nack>>
|
|
||||||
| 0x73 | Modify Connection (MDCX) | <<rsl_mdcx_msg>>
|
|
||||||
| 0x74 | Modify Connection (MDCX) ACK | <<rsl_mdcx_msg_ack>>
|
|
||||||
| 0x75 | Modify Connection (MDCX) NACK | <<rsl_mdcx_msg_nack>>
|
|
||||||
| 0x76 | Delete Connection (DLCX) Indication | <<rsl_dlcx_ind_msg>>
|
|
||||||
| 0x77 | Delete Connection (DLCX) | <<rsl_dlcx_msg>>
|
|
||||||
| 0x78 | Delete Connection (DLCX) ACK | <<rsl_dlcx_msg_ack>>
|
|
||||||
| 0x79 | Delete Connection (DLCX) NACK | <<rsl_dlcx_msg_nack>>
|
|
||||||
| 0x48 | PDCH Activate | <<rsl_pdch_act>>
|
|
||||||
| 0x49 | PDCH Activate ACK | <<rsl_pdch_act_ack>>
|
|
||||||
| 0x4a | PDCH Activate NACK | <<rsl_pdch_act_nack>>
|
|
||||||
| 0x4b | PDCH Deactivate | <<rsl_pdch_deact>>
|
|
||||||
| 0x4c | PDCH Deactivate ACK | <<rsl_pdch_deact_ack>>
|
|
||||||
| 0x4d | PDCH Deactivate NACK | <<rsl_pdch_deact_nack>>
|
|
||||||
|===
|
|
||||||
|
|
||||||
==== A-bis/IP specific RSL IEIs
|
|
||||||
|
|
||||||
The following Information Element Identifiers (IEIs) are used in
|
|
||||||
addition to those indicated in 3GPP TS 08.58 Section 9.3:
|
|
||||||
|
|
||||||
.A-bis/IP specific information elements
|
|
||||||
[options="header",cols="10%,50%,40%"]
|
|
||||||
|===
|
|
||||||
| IEI | Name | This document §
|
|
||||||
| 0x01 | RSL_IE_CHAN_NR | <<RSL_IE_CHAN_NR>>
|
|
||||||
| 0xf0 | RSL_IE_IPAC_REMOTE_IP | <<RSL_IE_IPAC_REMOTE_IP>>
|
|
||||||
| 0xf1 | RSL_IE_IPAC_REMOTE_PORT | <<RSL_IE_IPAC_REMOTE_PORT>>
|
|
||||||
| 0xf3 | RSL_IE_IPAC_LOCAL_PORT | <<RSL_IE_IPAC_LOCAL_PORT>>
|
|
||||||
| 0xf4 | RSL_IE_IPAC_SPEECH_MODE | <<RSL_IE_IPAC_SPEECH_MODE>>
|
|
||||||
| 0xf5 | RSL_IE_IPAC_LOCAL_IP | <<RSL_IE_IPAC_LOCAL_IP>>
|
|
||||||
| 0xf6 | RSL_IE_IPAC_CONN_STAT | <<RSL_IE_IPAC_CONN_STAT>>
|
|
||||||
| 0xf8 | RSL_IE_IPAC_CONN_ID | <<RSL_IE_IPAC_CONN_ID>>
|
|
||||||
| 0xfc | RSL_IE_IPAC_RTP_PAYLOAD2 | <<RSL_IE_IPAC_RTP_PAYLOAD2>>
|
|
||||||
|===
|
|
||||||
|
|
||||||
[[RSL_IE_CHAN_NR]]
|
|
||||||
==== RSL_IE_CHAN_NR
|
|
||||||
|
|
||||||
This information element is coded like 3GPP TS 08.58 Section 9.3.1,
|
|
||||||
but in addition supports the following extended coding:
|
|
||||||
|
|
||||||
* C5..C1 bits 0b11000 for PDCH type channels
|
|
||||||
|
|
||||||
The TN-Bits are not re-defined in this case but use the same encoding
|
|
||||||
as specified in TS 08.58 Section 9.3.1.
|
|
||||||
|
|
||||||
NOTE:: The above extension is only valid on an Osmocom-style dynamic
|
|
||||||
channel, having configured the 'NM_CHANC_IPAC_TCHFull_PDCH' channel
|
|
||||||
combination by OML.
|
|
||||||
|
|
||||||
[[RSL_IE_IPAC_REMOTE_IP]]
|
|
||||||
==== RSL_IE_IPAC_REMOTE_IP
|
|
||||||
|
|
||||||
This information element contains the remote (MGW side) IPv4 address in
|
|
||||||
network byte order. It is encoded as fixed-size element with one byte
|
|
||||||
IEI followed by four bytes IPv4 address.
|
|
||||||
|
|
||||||
[[RSL_IE_IPAC_REMOTE_PORT]]
|
|
||||||
==== RSL_IE_IPAC_REMOTE_PORT
|
|
||||||
|
|
||||||
This information element contains the remote (MGW side) UDP port in
|
|
||||||
network byte order. It is encoded as fixed-size element with one byte
|
|
||||||
IEI followed by two bytes UDP port number.
|
|
||||||
|
|
||||||
[[RSL_IE_IPAC_LOCAL_PORT]]
|
|
||||||
==== RSL_IE_IPAC_LOCAL_PORT
|
|
||||||
|
|
||||||
This information element contains the local (BTS side) IPv4 address in
|
|
||||||
network byte order. It is encoded as fixed-size element with one byte
|
|
||||||
IEI followed by two bytes UDP port number.
|
|
||||||
|
|
||||||
[[RSL_IE_IPAC_SPEECH_MODE]]
|
|
||||||
==== RSL_IE_IPAC_SPEECH_MODE
|
|
||||||
|
|
||||||
This information element encodes the speech mode. It is set according
|
|
||||||
to the voice codec used on the connection. It is encoded as a fixed-size
|
|
||||||
element of two bytes, with one byte IEI followed by one byte Speech mode
|
|
||||||
indicator.
|
|
||||||
|
|
||||||
.A-bis/IP Speech Mode Indicator Values
|
|
||||||
[options="header",width="40%",cols="20%,80%"]
|
|
||||||
|===
|
|
||||||
| Value | Description
|
|
||||||
| 0x00 | TCH/F with FR codec
|
|
||||||
| 0x01 | TCH/F with EFR codec
|
|
||||||
| 0x02 | TCH/F with AMR codec
|
|
||||||
| 0x03 | TCH/H with HR codec
|
|
||||||
| 0x05 | TCH/H with AMR codec
|
|
||||||
|===
|
|
||||||
|
|
||||||
[[RSL_IE_IPAC_LOCAL_IP]]
|
|
||||||
==== RSL_IE_IPAC_LOCAL_IP
|
|
||||||
|
|
||||||
This information element contains the local (BTS side) IPv4 address in
|
|
||||||
network byte order. It is encoded as fixed-size element with one byte
|
|
||||||
IEI followed by four bytes IPv4 address.
|
|
||||||
|
|
||||||
[[RSL_IE_IPAC_CONN_STAT]]
|
|
||||||
==== RSL_IE_IPAC_CONN_STAT
|
|
||||||
|
|
||||||
This information element contains statistics about the RTP connection.
|
|
||||||
|
|
||||||
It is encoded as 29 bytes, with the first byte as IEI and 28 bytes
|
|
||||||
fixed-length payload encoded as follows:
|
|
||||||
|
|
||||||
.A-bis/IP Connection Statistics
|
|
||||||
[options="header",width="60%",cols="15%,15%,70%"]
|
|
||||||
|===
|
|
||||||
| Offset | Size | Description
|
|
||||||
| 0 | 4 | Total number of RTP packets sent
|
|
||||||
| 4 | 4 | Total number of octets sent
|
|
||||||
| 8 | 4 | Total number of RTP packets received
|
|
||||||
| 12 | 4 | Total number of octets received
|
|
||||||
| 16 | 4 | Total number of lost packets in Rx direction
|
|
||||||
| 20 | 4 | Inter-arrival Jitter
|
|
||||||
| 24 | 4 | Average transmission delay
|
|
||||||
|===
|
|
||||||
|
|
||||||
All the above values are encoded in network byte order.
|
|
||||||
|
|
||||||
A detailed definition of the individual values is given in RFC 1889.
|
|
||||||
|
|
||||||
[[RSL_IE_IPAC_CONN_ID]]
|
|
||||||
==== RSL_IE_IPAC_CONN_ID
|
|
||||||
|
|
||||||
This IE is a TV with a value length of two bytes. The value is a 16 bit
|
|
||||||
connection ID in network byte order.
|
|
||||||
|
|
||||||
|
|
||||||
[[RSL_IE_IPAC_RTP_PAYLOAD2]]
|
|
||||||
==== RSL_IE_IPAC_RTP_PAYLOAD2
|
|
||||||
|
|
||||||
This information element contains the RTP payload identifier, which is
|
|
||||||
used in the PT (Payload Type) field of the RTP header in subsequent
|
|
||||||
transmissions of the RTP flow.
|
|
||||||
|
|
||||||
=== A-bis RSL Initialization / BTS bring-up
|
|
||||||
|
|
||||||
Upon receiving the 'IPA RSL CONNECT' OML message by the respective
|
|
||||||
'Baseband Transceiver' MO, the BTS proceeds with establishing a separate
|
|
||||||
TCP connection for the given TRX.
|
|
||||||
|
|
||||||
[[rsl-msc-pri]]
|
|
||||||
.A-bis RSL BTS bring-up for primary TRX
|
|
||||||
["mscgen"]
|
|
||||||
----
|
|
||||||
include::rsl-startup-pri.msc[]
|
|
||||||
----
|
|
||||||
|
|
||||||
[[rsl-msc-sec]]
|
|
||||||
.A-bis RSL BTS bring-up for secondary TRXs
|
|
||||||
["mscgen"]
|
|
||||||
----
|
|
||||||
include::rsl-startup-sec.msc[]
|
|
||||||
----
|
|
||||||
|
|
||||||
The initialization of the primary and secondary TRX slightly differ, as
|
|
||||||
illustrated by the differences of <<rsl-msc-pri>> and <<rsl-msc-sec>>.
|
|
||||||
Since the secondary TRX has no BCCH, it does not (need to) receive any 'RSL
|
|
||||||
BCCH INFORMATION' messages from the BSC.
|
|
||||||
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
== User-Plane Traffic via RTP
|
|
||||||
|
|
||||||
RTP (Realtime Transfer Protocol) is a protocol for streaming audio
|
|
||||||
and video data. It is specified by IETF RFC 1889.
|
|
||||||
|
|
||||||
OsmoBTS A-bis/IP implements RTP as transport medium for circuit-switched
|
|
||||||
user-plane traffic, contrary to the E1 sub-slot based transport
|
|
||||||
specified in 3GPP TS 08.60.
|
|
||||||
|
|
||||||
The RTP transport endpoint parameters are configured using the RSL User
|
|
||||||
Plane Transport Management procedures described in <<user_plane_txp_mgmt>>.
|
|
||||||
|
|
||||||
RTCP is implemented in addition to RTP, on a UDP port number of the RTP
|
|
||||||
port incremented by one.
|
|
||||||
|
|
||||||
=== RTP Payload Formats
|
|
||||||
|
|
||||||
The RTP payload format depends on the voice codec used on the radio
|
|
||||||
channel. The OsmoBTS is simply passing the GSM speech frames between
|
|
||||||
the Um radio interface channels and the RTP payload (and vice-versa).
|
|
||||||
|
|
||||||
No transcoding function is implemented in the BTS!
|
|
||||||
|
|
||||||
.RTP Payload formats
|
|
||||||
[options="header",width="60%",cols="15%,15%,70%"]
|
|
||||||
|===
|
|
||||||
| TCH | Codec | RTP payload format specification
|
|
||||||
| TCH/F | FR | IETF RFC 3551 Section 4.5.8
|
|
||||||
| TCH/F | EFR | IETF RFC 3551 Section 4.5.9
|
|
||||||
| TCH/F | AMR | IETF RFC 4867
|
|
||||||
| TCH/H | HR | IETF RFC 5993
|
|
||||||
| TCH/H | AMR | IETF RFC 4867
|
|
||||||
|===
|
|
||||||
@@ -1,120 +0,0 @@
|
|||||||
== OsmoBTS software architecture
|
|
||||||
|
|
||||||
=== OsmoBTS PHY interface abstraction
|
|
||||||
|
|
||||||
The OsmoBTS PHY interface serves as an internal abstraction layer
|
|
||||||
between given PHY hardware (as provided by the bts_model) and the actual
|
|
||||||
logical transceivers (TRXs) of a BTS inside the OsmoBTS code base.
|
|
||||||
|
|
||||||
|
|
||||||
==== PHY link
|
|
||||||
|
|
||||||
A PHY link is a physical connection / link towards a given PHY. This
|
|
||||||
might be, for example,
|
|
||||||
|
|
||||||
* a set of file descriptors to device nodes in the /dev/ directory
|
|
||||||
(sysmobts, litecell15)
|
|
||||||
* a packet socket for sending raw Ethernet frames to an OCTPHY
|
|
||||||
* a set of UDP sockets for interacting with OsmoTRX
|
|
||||||
|
|
||||||
Each PHY interface has a set of attribute/parameters and a list of 1 to
|
|
||||||
n PHY instances.
|
|
||||||
|
|
||||||
PHY links are numbered 0..n globally inside OsmoBTS.
|
|
||||||
|
|
||||||
Each PHY link is configured via the VTY using its individual top-level
|
|
||||||
vty node. Given the different bts-model / phy specific properties, the
|
|
||||||
VTY configuration options (if any) of the PHY instance differ between
|
|
||||||
BTS models.
|
|
||||||
|
|
||||||
The PHY links and instances must be configured above the BTS/TRX nodes
|
|
||||||
in the configuration file. If the file is saved via the VTY, the code
|
|
||||||
automatically ensures this.
|
|
||||||
|
|
||||||
|
|
||||||
==== PHY instance
|
|
||||||
|
|
||||||
A PHY instance is an instance of a PHY, accessed via a PHY link.
|
|
||||||
|
|
||||||
In the case of osmo-bts-sysmo and osmo-bts-trx, there is only one
|
|
||||||
instance in every PHY link. This is due to the fact that the API inside
|
|
||||||
that PHY link does not permit for distinguishing multiple different
|
|
||||||
logical TRXs.
|
|
||||||
|
|
||||||
Other PHY implementations like the OCTPHY however do support addressing
|
|
||||||
multiple PHY instances via a single PHY link.
|
|
||||||
|
|
||||||
PHY instances are numbered 0..n inside each PHY link.
|
|
||||||
|
|
||||||
Each PHY instance is configured via the VTY as a separate node beneath each
|
|
||||||
PHY link. Given the different bts-model / phy specific properties, the
|
|
||||||
VTY configuration options (if any) of the PHY instance differ between
|
|
||||||
BTS models.
|
|
||||||
|
|
||||||
|
|
||||||
==== Mapping PHY instances to TRXs
|
|
||||||
|
|
||||||
Each TRX node in the VTY must use the 'phy N instance M' command in
|
|
||||||
order to specify which PHY instance is allocated to this specific TRX.
|
|
||||||
|
|
||||||
=== Internal control flow
|
|
||||||
|
|
||||||
==== start-up / sequencing during OsmoBTS start
|
|
||||||
|
|
||||||
.Control flow at OsmoBTS start-up procedure
|
|
||||||
[options="header",cols="10%,35%,55%"]
|
|
||||||
|===
|
|
||||||
| section | function | description
|
|
||||||
| bts-specific | main() | Entering main() from glibc
|
|
||||||
| common | bts_main() | initialization of talloc contexts
|
|
||||||
| common | bts_log_init() | initialization of logging
|
|
||||||
| common | handle_options() | common option parsing
|
|
||||||
| bts-specific | bts_model_handle_options() | model-specific option parsing
|
|
||||||
| common | gsm_bts_alloc() | allocation of BTS/TRX/TS data structures
|
|
||||||
| common | vty_init() | Initialziation of VTY core, libosmo-abis and osmo-bts VTY
|
|
||||||
| common | main() | Setting of scheduler RR priority (if configured)
|
|
||||||
| common | main() | Initialization of GSMTAP (if configured)
|
|
||||||
| common | bts_init() | configuration of defaults in bts/trx/s object
|
|
||||||
| bts-specific | bts_model_init | ?
|
|
||||||
| common | abis_init() | Initialization of libosmo-abis
|
|
||||||
| common | vty_read_config_file() | Reading of configuration file
|
|
||||||
| bts-specific | bts_model_phy_link_set_defaults() | Called for every PHY link created
|
|
||||||
| bts-specific | bts_model_phy_instance_set_defaults() | Called for every PHY Instance created
|
|
||||||
| common | bts_controlif_setup() | Initialization of Control Interface
|
|
||||||
| bts-specific | bts_model_ctrl_cmds_install() | Install model-specific control interface commands
|
|
||||||
| common | telnet_init() | Initialization of telnet interface
|
|
||||||
| common | pcu_sock_init() | Initialization of PCU socket
|
|
||||||
| common | main() | Installation of signal handlers
|
|
||||||
| common | abis_open() | Start of the A-bis connection to BSC
|
|
||||||
| common | phy_links_open() | Iterate over list of configured PHY links
|
|
||||||
| bts-specific | bts_model_phy_link_open() | Open each of the configured PHY links
|
|
||||||
| common | write_pid_file() | Generate the pid file
|
|
||||||
| common | osmo_daemonize() | Fork as daemon in background (if configured)
|
|
||||||
| common | bts_main() | Run main loop until global variable quit >= 2
|
|
||||||
|===
|
|
||||||
|
|
||||||
|
|
||||||
==== At time of OML establishment
|
|
||||||
|
|
||||||
.Control flow at time of OML establishment
|
|
||||||
[options="header",cols="10%,35%,55%"]
|
|
||||||
|===
|
|
||||||
| section | function | description
|
|
||||||
| bts-specific | bts_model_oml_estab() | Called by core once OML link is established
|
|
||||||
| bts-specific | bts_model_check_oml() | called each time OML sets some attributes on a MO, checks if attributes are valid
|
|
||||||
| bts-specific | bts_model_apply_oml() | called each time OML sets some attributes on a MO, stores attribute contents in data structures
|
|
||||||
| bts-specific | bts_model_opstart() | for NM_OC_BTS, NM_OC_SITE_MANAGER, NM_OC_GPRS_NSE, NM_OC_GPRS_CELL, NMO_OC_GPRS_NSVC
|
|
||||||
| bts-specific | bts_model_opstart() | for NM_OC_RADIO_CARRIER for each trx
|
|
||||||
| bts-specific | bts_model_opstart() | for NM_OC_BASEB_TRANSC for each trx
|
|
||||||
| bts-specific | bts_model_opstart() | for NM_OC_CHANNEL for each timeslot on each trx
|
|
||||||
| bts-specific | bts_model_change_power() | change transmit power for each trx (power ramp-up/ramp-down)
|
|
||||||
|===
|
|
||||||
|
|
||||||
==== At time of RSL connection loss
|
|
||||||
|
|
||||||
.Control flow at time of RSL connection loss
|
|
||||||
[options="header",cols="10%,35%,55%"]
|
|
||||||
|===
|
|
||||||
| section | function | description
|
|
||||||
| bts-specific | bts_model_abis_close() | called when either one of the RSL links or the OML link are down
|
|
||||||
|===
|
|
||||||
@@ -1,441 +0,0 @@
|
|||||||
[[osmobts_hardware_support]]
|
|
||||||
== OsmoBTS hardware support
|
|
||||||
|
|
||||||
OsmoBTS consists of a _common_ part that applies to all BTS models as well as
|
|
||||||
_hardware-specific_ parts for each BTS model. The hardware specific parts are
|
|
||||||
generally referred to as the _bts_model_ code.
|
|
||||||
|
|
||||||
The common part includes the core BTS architecture as well as code for
|
|
||||||
implementing the external interfaces such as Abis, control, PCU socket and
|
|
||||||
GSMTAP.
|
|
||||||
|
|
||||||
The bts_model parts include support for driving one particular
|
|
||||||
implementation of a GSM physical layer (PHY). Such a physical layer
|
|
||||||
implementation can come in many forms. Sometimes it runs on a general
|
|
||||||
purpose CPU, sometimes on a dedicated ARM core, a dedicated DSP, a
|
|
||||||
combination of DSP and FPGA.
|
|
||||||
|
|
||||||
Every PHY implementation offers some kind of primitives by which the PHY
|
|
||||||
can be controlled, and by which the PHY exchanges data with the higher
|
|
||||||
layers of the protocol stack in the OsmoBTS code.
|
|
||||||
|
|
||||||
The PHY-specific primitives are encapsulated in the bts_model code, and
|
|
||||||
offered as a PHY-independent _L1SAP_ interface towards the common part of
|
|
||||||
OsmoBTS.
|
|
||||||
|
|
||||||
In addition, each bts_model implements a set of functions that the
|
|
||||||
common part calls. Those functions are pre-fixed by _bts_model__.
|
|
||||||
|
|
||||||
Each bts_model may offer
|
|
||||||
|
|
||||||
* model-specific VTY commands for both configuration and run-time interaction
|
|
||||||
* model-specific command line arguments
|
|
||||||
* model-specific control interface commands
|
|
||||||
|
|
||||||
== `osmo-bts-sysmo` for sysmocom sysmoBTS
|
|
||||||
|
|
||||||
The sysmocom sysmoBTS is a range of GSM BTSs based around an embedded
|
|
||||||
system implementing the PHY in a combination of DSP+FPGA. The PHY is
|
|
||||||
configured by a set of primitives described by header files. Those
|
|
||||||
primitives are exchanged over a set of message queues exposed on the
|
|
||||||
Linux-running ARM core via device nodes in `/dev/msgq/`. Internally,
|
|
||||||
the message queues map to shared memory between the Linux-running ARM
|
|
||||||
core and the DSP running the PHY implementation.
|
|
||||||
|
|
||||||
The OsmoBTS bts_model code for the sysmoBTS can be found in the
|
|
||||||
`src/osmo-bts-sysmo` sub-directory of the OsmoBTS code base.
|
|
||||||
|
|
||||||
`osmo-bts-sysmo` has been the primary target platform for
|
|
||||||
OsmoBTS for many years and is thus the most feature-complete and mature
|
|
||||||
platform supported by OsmoBTS at this point.
|
|
||||||
|
|
||||||
The sysmoBTS PHY supports a direct PHY interface to OsmoPCU, reducing
|
|
||||||
the latency and amount of primitives that OsmoBTS would otherwise need
|
|
||||||
to pass through from the PHY message queues to the PCU socket and
|
|
||||||
vice-versa.
|
|
||||||
|
|
||||||
|
|
||||||
=== `osmo-bts-sysmo` specific command line arguments
|
|
||||||
|
|
||||||
*--dsp-trace 'DSPMASK'*::
|
|
||||||
Set the DSP trace flags (a single hexadecimal 32bit value).
|
|
||||||
This has been deprecated by VTY based commands, see
|
|
||||||
<<osmo-bts-sysmo-dsp-trace>> for further information.
|
|
||||||
*--pcu-direct*::
|
|
||||||
Indicate that an external PCU (e.g. OsmoPCU) will directly
|
|
||||||
open the DSP message queues to the PHY / PH-SAP, and only MPH
|
|
||||||
primitives are passed via OsmoBTS.
|
|
||||||
|
|
||||||
|
|
||||||
=== `osmo-bts-sysmo` specific VTY commands
|
|
||||||
|
|
||||||
For a auto-generated complete syntax reference of the VTY commands,
|
|
||||||
please see the associated _OsmoBTS VTY reference manual_
|
|
||||||
<<vty-ref-osmobts>>. The section
|
|
||||||
below only lists the most important commands.
|
|
||||||
|
|
||||||
==== at the 'SHOW' node
|
|
||||||
|
|
||||||
===== `show trx 0 clock-source`
|
|
||||||
|
|
||||||
Display the currently active clock source configuration for the TRX
|
|
||||||
|
|
||||||
[[osmo-bts-sysmo-dsp-trace]]
|
|
||||||
===== `show trx 0 dsp-trace-flags`
|
|
||||||
|
|
||||||
Show the currently active DSP trace flags for the TRX
|
|
||||||
|
|
||||||
===== `trx 0 dsp-trace-flag`
|
|
||||||
|
|
||||||
Use this command to enable/disable/configure the DSP tracing flags that
|
|
||||||
define what debug messages will appear on `/dev/rtfifo/dsp_trace`.
|
|
||||||
|
|
||||||
==== at the 'ENABLE' node
|
|
||||||
|
|
||||||
===== `trx 0 tx-power <-110-100>`
|
|
||||||
|
|
||||||
Change the current TRX transmit power to the given value in dBm.
|
|
||||||
|
|
||||||
===== `trx 0 rf-clock-info reset`
|
|
||||||
|
|
||||||
Part of the clock calibration procedure:
|
|
||||||
Reset the clock correction value.
|
|
||||||
|
|
||||||
===== `trx 0 rf-clock-info correct`
|
|
||||||
|
|
||||||
Part of the clock calibration procedure:
|
|
||||||
Apply the current measured correction value between the reference clock
|
|
||||||
and the local clock.
|
|
||||||
|
|
||||||
==== at the 'PHY instance' node
|
|
||||||
|
|
||||||
==== `clock-calibration eeprom`
|
|
||||||
|
|
||||||
Obtain clock calibration value from EEPROM.
|
|
||||||
|
|
||||||
==== `clock-calibration default`
|
|
||||||
|
|
||||||
Use hardware default clock calibration value.
|
|
||||||
|
|
||||||
==== `clock-calibration <-4095-4095>`
|
|
||||||
|
|
||||||
Use specified clock calibration value (not EEPROM/default).
|
|
||||||
|
|
||||||
==== `clock-source (tcxo|ocxo|ext|gps)`
|
|
||||||
|
|
||||||
Specify the clock source for the PHY:
|
|
||||||
|
|
||||||
tcxo::
|
|
||||||
Use the TCXO. This is the default on sysmoBTS 2050.
|
|
||||||
ocxo::
|
|
||||||
Use the OCXO (only valid on units equipped with OCXO). This is
|
|
||||||
the default on all sysmoBTS 1002/1020/1100 and SOB-BTS.
|
|
||||||
ext::
|
|
||||||
Use the external clock input.
|
|
||||||
gps::
|
|
||||||
Use the clock derived from GPS. You shouldn't use this clock
|
|
||||||
directly, but rather use the TCXO and regularly re-calibrate
|
|
||||||
against GPS.
|
|
||||||
|
|
||||||
==== `trx-calibration-path PATH`
|
|
||||||
|
|
||||||
Use calibration files from the given 'PATH', rather tan calibration
|
|
||||||
values from the EEPROM.
|
|
||||||
|
|
||||||
=== `osmo-bts-sysmo` specific control interface commands
|
|
||||||
|
|
||||||
==== trx.0.clock-info
|
|
||||||
|
|
||||||
Obtain information on the current clock status:
|
|
||||||
|
|
||||||
----
|
|
||||||
bsc_control.py -d localhost -p 4238 -g trx.0.clock-info
|
|
||||||
Got message: GET_REPLY 1 trx.0.clock-info -100,ocxo,0,0,gps
|
|
||||||
----
|
|
||||||
|
|
||||||
which is to be interpreted as:
|
|
||||||
|
|
||||||
* current clock correction value is -100 ppb
|
|
||||||
* current clock source is OCXO
|
|
||||||
* deviation between clock source and calibration source is 0 ppb
|
|
||||||
* resolution of clock error measurement is 0 ppt (0 means no result yet)
|
|
||||||
* current calibration source is GPS
|
|
||||||
|
|
||||||
When this attribute is set, any value passed on is discarded, but the clock
|
|
||||||
calibration process is re-started.
|
|
||||||
|
|
||||||
==== trx.0.clock-correction
|
|
||||||
|
|
||||||
This attribute can get and set the current clock correction value:
|
|
||||||
|
|
||||||
----
|
|
||||||
bsc_control.py -d localhost -p 4238 -g trx.0.clock-correction
|
|
||||||
Got message: GET_REPLY 1 trx.0.clock-correction -100
|
|
||||||
----
|
|
||||||
|
|
||||||
----
|
|
||||||
bsc_control.py -d localhost -p 4238 -s trx.0.clock-correction -- -99
|
|
||||||
Got message: SET_REPLY 1 trx.0.clock-correction success
|
|
||||||
----
|
|
||||||
|
|
||||||
|
|
||||||
== `osmo-bts-trx` for OsmoTRX
|
|
||||||
|
|
||||||
OsmoTRX is a C-language implementation of the GSM radio modem,
|
|
||||||
originally developed as the 'Transceiver' part of OpenBTS. This radio
|
|
||||||
modem offers an interface based on top of UDP streams.
|
|
||||||
|
|
||||||
The OsmoBTS bts_model code for OsmoTRX is called
|
|
||||||
`osmo-bts-trx`. It implements the UDP stream interface of
|
|
||||||
OsmoTRX, so both parts can be used together to implement a complete GSM
|
|
||||||
BTS based on general-purpose computing SDR.
|
|
||||||
|
|
||||||
As OsmoTRX is general-purpose software running on top of Linux, it is thus not
|
|
||||||
tied to any specific physical hardware. At the time of this writing, OsmoTRX
|
|
||||||
supports a variety of Lime Microsystems and Ettus USRP SDRs via the UHD driver,
|
|
||||||
as well as the Fairwaves UmTRX and derived products.
|
|
||||||
|
|
||||||
OsmoTRX is not a complete GSM PHY but 'just' the radio modem. This
|
|
||||||
means that all of the Layer 1 functionality such as scheduling,
|
|
||||||
convolutional coding, etc. is actually also implemented inside OsmoBTS.
|
|
||||||
|
|
||||||
As such, the boundary between OsmoTRX and `osmo-bts-trx` is at
|
|
||||||
a much lower interface, which is an internal interface of other more
|
|
||||||
traditional GSM PHY implementations.
|
|
||||||
|
|
||||||
Besides OsmoTRX, there are also other implementations (both Free
|
|
||||||
Software and proprietary) that implement the same UDP stream based radio
|
|
||||||
modem interface.
|
|
||||||
|
|
||||||
|
|
||||||
=== `osmo-bts-trx` specific VTY commands
|
|
||||||
|
|
||||||
For a auto-generated complete syntax reference of the VTY commands,
|
|
||||||
pleas see the associated _OsmoBTS VTY reference manual_
|
|
||||||
<<vty-ref-osmobts>>. The section below only lists the most important
|
|
||||||
commands.
|
|
||||||
|
|
||||||
==== at the 'SHOW' node
|
|
||||||
|
|
||||||
===== `show transceivers`
|
|
||||||
|
|
||||||
Display information about configured/connected OsmoTRX transceivers in
|
|
||||||
human-readable format to current VTY session.
|
|
||||||
|
|
||||||
==== at the 'PHY' configuration node
|
|
||||||
|
|
||||||
===== `osmotrx ip HOST`
|
|
||||||
|
|
||||||
Set the IP address for the OsmoTRX interface for both the local (OsmoBTS) and
|
|
||||||
remote (OsmoTRX) side of the UDP flows. This option has been deprecated by the
|
|
||||||
more detailed option `osmotrx ip (local|remote) A.B.C.D`.
|
|
||||||
|
|
||||||
===== `osmotrx ip (local|remote) A.B.C.D`
|
|
||||||
|
|
||||||
Set the IP address for the OsmoTRX interface for either the local (OsmoBTS) or
|
|
||||||
remote (OsmoTRX) side of the UDP flows.
|
|
||||||
|
|
||||||
===== `osmotrx base-port (local|remote) <0-65535>`
|
|
||||||
|
|
||||||
Configure the base UDP port for the OsmoTRX interface for either the
|
|
||||||
local (OsmoBTS) or remote (OsmoTRX) side of the UDP flows.
|
|
||||||
|
|
||||||
===== `osmotrx fn-advance <0-30>`
|
|
||||||
|
|
||||||
Set the number of frames to be transmitted to transceiver in advance of
|
|
||||||
current GSM frame number.
|
|
||||||
|
|
||||||
===== `osmotrx rts-advance <0-30>`
|
|
||||||
|
|
||||||
Set the number of frames to be requested from PCU in advance of current
|
|
||||||
frame number. Do not change this unless you have a good reason!
|
|
||||||
|
|
||||||
===== `osmotrx rx-gain <0-50>`
|
|
||||||
|
|
||||||
Set the receiver gain (configured in the hardware) in dB.
|
|
||||||
|
|
||||||
===== `osmotrx tx-attenuation <0-50>`
|
|
||||||
|
|
||||||
Set the transmitter attenuation (configured in the hardware) in dB.
|
|
||||||
|
|
||||||
===== `osmotrx tx-attenuation oml`
|
|
||||||
|
|
||||||
Use the Value in the A-bis OML Attribute `MAX_POWER_REDUCTION` as
|
|
||||||
transmitter attenuation.
|
|
||||||
|
|
||||||
==== at the 'PHY Instance' configuration node
|
|
||||||
|
|
||||||
===== `slotmask (1|0) (1|0) (1|0) (1|0) (1|0) (1|0) (1|0) (1|0)`
|
|
||||||
|
|
||||||
Configure which timeslots should be active on this TRX. Normally all
|
|
||||||
timeslots are enabled, unless you are running on a cpu-constrained
|
|
||||||
deeply embedded system.
|
|
||||||
|
|
||||||
===== `osmotrx maxdly <0-31>`
|
|
||||||
|
|
||||||
Set the maximum delay for received symbols (in number of GSM symbols).
|
|
||||||
|
|
||||||
|
|
||||||
== `osmo-bts-octphy` for Octasic OCTPHY-2G
|
|
||||||
|
|
||||||
The Octasic OCTPHY-2G is a GSM PHY implementation inside an Octasic
|
|
||||||
proprietary 24-core DSP called OCTDSP.
|
|
||||||
|
|
||||||
This DSP has a built-in Gigabit Ethernet interface, over which it
|
|
||||||
exchanges PHY-layer primitives in raw Ethernet frames with the upper
|
|
||||||
layers running on another CPU attached to the same Ethernet. Those
|
|
||||||
primitives are described in a set of C-language header files.
|
|
||||||
|
|
||||||
OsmoBTS implements the raw Ethernet frame based primitives as well as
|
|
||||||
the associated transport protocol (OKTPKT/OCTVC1) in the
|
|
||||||
`osmo-btso-octphy` bts_model code.
|
|
||||||
|
|
||||||
You can run the `osmo-bts-octphy` on any system connected to the same
|
|
||||||
Ethernet as the OCTDSP running the OCTPHY. This can be either an
|
|
||||||
embedded ARM or x86 SoM part of the OCTBTS hardware, or it can be any
|
|
||||||
other Linux system attached via an Ethernet switch.
|
|
||||||
|
|
||||||
Each OCTDSP running OCTSDR-2G offers a set of primitives part of a
|
|
||||||
OCTPKT session, which is mapped to an OsmoBTS PHY link. Depending on
|
|
||||||
the OCTSDR-2G software version, you may create multiple software TRX by
|
|
||||||
creating multiple OsmoBTS PHY instances inside that PHY link.
|
|
||||||
|
|
||||||
Multiple DSPs may exist in one circuit board, then each of the DSPs is
|
|
||||||
interfaced by one OsmoBTS PHY link, and each of them may have one or
|
|
||||||
more OsmoBTS PHY instances creating a Multi-TRX configuration.
|
|
||||||
|
|
||||||
|
|
||||||
== `osmo-bts-litecell15` for Nutaq/Nuran LiteCell 1.5
|
|
||||||
|
|
||||||
The Nutaq/Nuran LiteCell 1.5 implements a dual-transceiver GSM BTS based
|
|
||||||
on a mixed ARM/DSP/FPGA architecture. The PHY layer is implemented on
|
|
||||||
DSP/FPGA and similar to that of the sysmoBTS: It exchanges primitives
|
|
||||||
described in a set of C-language header files over message queues
|
|
||||||
between the ARM and the DSP.
|
|
||||||
|
|
||||||
This interface is implemented in the `osmo-bts-litecell15` bts_model of
|
|
||||||
OsmoBTS. You would run `osmo-bts-litecell15` on the ARM/Linux processor
|
|
||||||
of the Litecell 1.5.
|
|
||||||
|
|
||||||
The two transceivers of the Litecell 1.5 each have their own set of DSP
|
|
||||||
message queues. Each set of message queues is wrapped into one OsmoBTS
|
|
||||||
PHY link, offering one OsmoBTS PHY instance.
|
|
||||||
|
|
||||||
The Litecell 1.5 PHY supports a direct PHY interface to OsmoPCU,
|
|
||||||
reducing the latency and amount of primitives that OsmoBTS would
|
|
||||||
otherwise need to pass through from the PHY message queues to the PCU
|
|
||||||
socket and vice-versa.
|
|
||||||
|
|
||||||
=== `osmo-bts-trx` specific VTY commands
|
|
||||||
|
|
||||||
For a auto-generated complete syntax reference of the VTY commands,
|
|
||||||
please see the associated _OsmoBTS VTY reference manual_
|
|
||||||
<<vty-ref-osmobts>>. The section below only lists the most important
|
|
||||||
commands.
|
|
||||||
|
|
||||||
==== at the 'SHOW' node
|
|
||||||
|
|
||||||
===== `show phy <0-255> system-information`
|
|
||||||
|
|
||||||
Show information about the hardware platform, DSP and OCTPHY-2G software
|
|
||||||
version.
|
|
||||||
|
|
||||||
===== `show phy <0-255> rf-port-stats <0-1>`
|
|
||||||
|
|
||||||
Show information about the RF port interfaces.
|
|
||||||
|
|
||||||
===== `show phy <0-255> clk-sync-stats`
|
|
||||||
|
|
||||||
Show information about the clock synchronization manager.
|
|
||||||
|
|
||||||
==== at the 'PHY' configuration node
|
|
||||||
|
|
||||||
===== `octphy hw-addr HWADDR`
|
|
||||||
|
|
||||||
Specify the Ethernet hardware address (mac address) of the DSP running
|
|
||||||
the OCTPHY-2G software for this PHY link.
|
|
||||||
|
|
||||||
===== `octphy net-device NAME`
|
|
||||||
|
|
||||||
Specify the Ethernet network device (like `eth0`) through which the DSP
|
|
||||||
can be reached from OsmoBTS.
|
|
||||||
|
|
||||||
===== `octphy rf-port-index <0-255>`
|
|
||||||
|
|
||||||
Specify which RF port should be used for this PHY link.
|
|
||||||
|
|
||||||
===== `octphy rx-gain <0-73>`
|
|
||||||
|
|
||||||
Configure the receiver gain in dB.
|
|
||||||
|
|
||||||
===== `octphy tx-attenuation <0-359>`
|
|
||||||
|
|
||||||
Configure the transmitter attenuation in quarter-dB
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
== `osmo-bts-virtual` for Virtual Um Interface
|
|
||||||
|
|
||||||
This is a special BTS model used for research, simulation and testing.
|
|
||||||
Rather than communicating over a wireless RF interface, the GSM Um
|
|
||||||
messages are encapsulated over GSMTAP/UDP/IP.
|
|
||||||
|
|
||||||
The Virtual Um interface (i.e. virtual radio layer) between OsmoBTS and
|
|
||||||
OsmocomBB allows us to run a complete GSM network with 1-N BTSs and 1-M
|
|
||||||
MSs without any actual radio hardware, which is of course excellent for
|
|
||||||
all kinds of testing scenarios.
|
|
||||||
|
|
||||||
The Virtual Um layer is based on sending L2 frames (blocks) encapsulated
|
|
||||||
via GSMTAP UDP multicast packets. There are two separate multicast
|
|
||||||
groups, one for uplink and one for downlink. The multicast nature
|
|
||||||
simulates the shared medium and enables any simulated phone to receive
|
|
||||||
the signal from multiple BTSs via the downlink multicast group.
|
|
||||||
|
|
||||||
In OsmoBTS, this is implemented via the `osmo-bts-virtual` BTS model.
|
|
||||||
|
|
||||||
Setting up OsmoBTS in its `osmo-bts-virtual` flavor isn't really much
|
|
||||||
different from setting it up with real hardware. The amount of required
|
|
||||||
configuration at the BTS configuration file is (as always) very minimal,
|
|
||||||
as in the GSM network architecture provides almost all relevant
|
|
||||||
configuration to the BTS from the BSC.
|
|
||||||
|
|
||||||
An example configuratin file is provided as part of the osmo-bts source
|
|
||||||
code: `doc/examples/virtual/osmobts-virtual.cfg`
|
|
||||||
|
|
||||||
For more information see
|
|
||||||
http://osmocom.org/projects/cellular-infrastructure/wiki/Virtual_Um
|
|
||||||
|
|
||||||
=== `osmo-bts-virtual` specific VTY commands
|
|
||||||
|
|
||||||
For a auto-generated complete syntax reference of the VTY commands,
|
|
||||||
please see the associated _OsmoBTS VTY reference manual_
|
|
||||||
<<vty-ref-osmobts>>. The section below only lists the most important
|
|
||||||
commands.
|
|
||||||
|
|
||||||
==== at the 'PHY' config node
|
|
||||||
|
|
||||||
===== `virtual-um net-device NETDEV`
|
|
||||||
|
|
||||||
Configure the network device used for sending/receiving the virtual Um
|
|
||||||
interface messages (e.g. `eth0`).
|
|
||||||
|
|
||||||
===== `virtual-um ms-udp-port <0-65535>`
|
|
||||||
|
|
||||||
Configure the UDP port used for sending virtual Um
|
|
||||||
downlink messages towards the MS (default: GSMTAP 4729).
|
|
||||||
|
|
||||||
===== `virtual-um ms-multicast-group GROUP`
|
|
||||||
|
|
||||||
Configure the IP multicast group used for sending virtual
|
|
||||||
Um downlink messages towards the MS (default: 239.193.23.1)
|
|
||||||
|
|
||||||
===== `virtual-um bts-udp-port <0-65535>`
|
|
||||||
|
|
||||||
Configure the UDP port used for receiving virtual Um
|
|
||||||
uplink messages from the MS (default: GSMTAP 4729).
|
|
||||||
|
|
||||||
===== `virtual-um bts-multicast-group GROUP`
|
|
||||||
|
|
||||||
Configure the IP multicast group used for receiving virtual
|
|
||||||
Um uplink messages from the MS (default: 239.193.23.2)
|
|
||||||
@@ -1,210 +0,0 @@
|
|||||||
== BTS Configuration
|
|
||||||
|
|
||||||
The role of the BTS is to handle the GSM radio interface. When the BTS
|
|
||||||
application is starting, the A-bis OML connection is established towards
|
|
||||||
the BSC. Almost all BTS configuration (such as ARFCN, channel
|
|
||||||
configuration, transmit power, etc.) will be sent from the BSC to the
|
|
||||||
BTS via OML messages. After OML start-up has completed, the BSC will
|
|
||||||
instruct the BTS to establish the RSL connections.
|
|
||||||
|
|
||||||
Given that most configuration is downloaded from the BSC into the BTS at
|
|
||||||
start-up time, only some very basic settings have to be made in the
|
|
||||||
OsmoBTS software.
|
|
||||||
|
|
||||||
|
|
||||||
=== Command Line Options
|
|
||||||
|
|
||||||
Ths OsmoBTS executables (`osmo-bts-sysmo`, `osmo-bts-trx`,
|
|
||||||
`osmo-bts-octphy`, `osmo-bts-litecell15`, ...) share the following
|
|
||||||
generic command line options:
|
|
||||||
|
|
||||||
==== SYNOPSIS
|
|
||||||
*osmo-bts-sysmo* [-h|-V] [-d 'DBGMASK'] [-D] [-c 'CONFIGFILE' ] [-s] [-T] [-e 'LOGLEVEL'] [-r 'PRIO'] [-i 'GSMTAP-IP'] [-t <1-255>]
|
|
||||||
|
|
||||||
==== OPTIONS
|
|
||||||
*-h, --help*::
|
|
||||||
Print a short help message about the supported options
|
|
||||||
*-V, --version*::
|
|
||||||
Print the compile-time version number of the OsmoBTS program
|
|
||||||
*-d, --debug 'DBGMASK','DBGLEVELS'*::
|
|
||||||
Set the log subsystems and levels for logging to stderr. This
|
|
||||||
has mostly been superseded by VTY-based logging configuration,
|
|
||||||
see <<logging>> for further information.
|
|
||||||
*-D, --daemonize*::
|
|
||||||
Fork the process as a daemon into background.
|
|
||||||
*-c, --config-file 'CONFIGFILE'*::
|
|
||||||
Specify the file and path name of the configuration file to be
|
|
||||||
used. If none is specified, use `osmo-bts.cfg` in the current
|
|
||||||
working directory.
|
|
||||||
*-s, --disable-color*::
|
|
||||||
Disable colors for logging to stderr. This has mostly been
|
|
||||||
deprecated by VTY based logging configuration, see <<logging>>
|
|
||||||
for further information.
|
|
||||||
*-T, --timestamp*::
|
|
||||||
Enable time-stamping of log messages to stderr. This has mostly
|
|
||||||
been deprecated by VTY based logging configuration, see
|
|
||||||
<<logging>> for further information.
|
|
||||||
*-e, --log-level 'LOGLEVEL'*::
|
|
||||||
Set the global log level for logging to stderr. This has mostly
|
|
||||||
been deprecated by VTY based logging configuration, see
|
|
||||||
<<logging>> for further information.
|
|
||||||
*-r, --realtime 'PRIO'*::
|
|
||||||
Enable use of the Linux kernel realtime priority scheduler with
|
|
||||||
the specified priority.
|
|
||||||
It is recommended you use this option on low-performance
|
|
||||||
embedded systems or systems that encounter high non-GSM/GPRS
|
|
||||||
load.
|
|
||||||
*-i, --gsmtap-ip 'GSMTAP-IP'*::
|
|
||||||
Specify the destination IP address for GSMTAP messages.
|
|
||||||
*-t, --trx-num <1-255>*::
|
|
||||||
Specify the number of TRX supported by this BTS.
|
|
||||||
|
|
||||||
There may be additional, hardware specific command line options by the
|
|
||||||
different bts_model implementations.
|
|
||||||
|
|
||||||
|
|
||||||
=== Configuration using the VTY
|
|
||||||
|
|
||||||
Most configuration as well as run-time monitoring and system
|
|
||||||
introspection is implemented using a command-line based interface
|
|
||||||
called _VTY_. A full reference syntax of all existing VTY command is
|
|
||||||
available as a separate document.
|
|
||||||
|
|
||||||
See <<vty>> for further information on the VTY.
|
|
||||||
|
|
||||||
|
|
||||||
==== Required BTS/TRX configuration
|
|
||||||
|
|
||||||
There are some settings that have to be configured locally in the
|
|
||||||
sysmoBTS, as they cannot be set remotely from the BSC. Those
|
|
||||||
settings are stored in the OsmoBTS configuration file, which commonly
|
|
||||||
is stored in `/etc/osmocom/osmo-bts.cfg`.
|
|
||||||
|
|
||||||
.Example Minimal configuration file
|
|
||||||
----
|
|
||||||
!
|
|
||||||
! OsmoBTS (0.0.1.100-0455) configuration saved from vty
|
|
||||||
!!
|
|
||||||
!
|
|
||||||
phy 0 <1>
|
|
||||||
instance 0 <2>
|
|
||||||
bts 0 <3>
|
|
||||||
band DCS1800
|
|
||||||
ipa unit-id 1801 0 <4>
|
|
||||||
oml remote-ip 192.168.100.11 <5>
|
|
||||||
trx 0 <6>
|
|
||||||
phy 0 instance 0 <7>
|
|
||||||
----
|
|
||||||
<1> You must configure at least one PHY link by means of the PHY node
|
|
||||||
<2> You must configure at least one PHY instance in the PHY link
|
|
||||||
<3> There is always exactly one BTS (`bts 0`) configured in OsmoBTS
|
|
||||||
<4> The `ipa unit-id` is what is used to identify this BTS to the BSC
|
|
||||||
<5> The OML Remote IP is the IP address of the BSC, to which the BTS shall connect to.
|
|
||||||
<6> There must be at least one trx (`trx 0`) in each BTS
|
|
||||||
<7> Every TRX must be mapped to a specific PHY instance this way
|
|
||||||
|
|
||||||
For a full reference of all available VTY configuration parameters,
|
|
||||||
please refer to the OsmoBTS VTY Reference document.
|
|
||||||
|
|
||||||
[[gsmtap]]
|
|
||||||
==== Configuring GSMTAP tracing
|
|
||||||
|
|
||||||
In addition to being able to obtain pcap protocol traces of the A-bis
|
|
||||||
communication and the text-based logging from the OsmoBTS
|
|
||||||
software, there is also the capability of tracing all communication on
|
|
||||||
the radio interface. To do so, OsmoBTS can encapsulate
|
|
||||||
MAC blocks (23byte messages at the L2-L1 interface) into _GSMTAP_ and send
|
|
||||||
them via UDP/IP. At that point, they can be captured with utilities like
|
|
||||||
*tcpdump* or *tshark* for further analysis by the *wireshark* protocol
|
|
||||||
analyzer.
|
|
||||||
|
|
||||||
In order to activate this feature, you first need to make sure to start
|
|
||||||
OsmoBTS using the `-i` or `--gsmtap-ip` command line option, specifying
|
|
||||||
the destination IP address for the GSMTAP messages. In most cases,
|
|
||||||
using 127.0.0.1 for passing the messages over the loopback (`lo`) device
|
|
||||||
will be sufficient.
|
|
||||||
|
|
||||||
OsmoBTS can selectively trace such messages by their L1 SAPI, for both
|
|
||||||
Rx and Tx. For a complete list of L1 SAPI values, please refer to the
|
|
||||||
_OsmoBTS VTY reference manual_ <<vty-ref-osmobts>>.
|
|
||||||
|
|
||||||
For example, to enable GSMTAP tracing for messages on all SDCCH
|
|
||||||
channels, you can use the gsmtap-sapi sdcch command at the CONFIG TRX
|
|
||||||
node of the OsmoBTS VTY.
|
|
||||||
|
|
||||||
.Example: Enabling GSMTAP for SDCCH
|
|
||||||
----
|
|
||||||
OsmoBTS> enable
|
|
||||||
OsmoBTS# configure terminal
|
|
||||||
OsmoBTS(config)# bts 0
|
|
||||||
OsmoBTS(bts)# trx 0
|
|
||||||
OsmoBTS(trx)# gsmtap-sapi sdcch
|
|
||||||
OsmoBTS(trx)# write <1>
|
|
||||||
----
|
|
||||||
<1> the `write` command will make the configuration persistent in the
|
|
||||||
configuration file. This is not required if you wish to enable GSMTAP
|
|
||||||
only in the current session of OsmoBTS.
|
|
||||||
|
|
||||||
De-activation can be performed similarly by using the `no gsmtap-sapi
|
|
||||||
sdcch` command at the `trx` node of the OsmoBTS VTY.
|
|
||||||
|
|
||||||
From the moment they are enabled via VTY, GSMTAP messages will be
|
|
||||||
generated and sent in UDP encapsulation to the IANA-registered UDP port
|
|
||||||
for GSMTAP (4729) at the IP address specified in the command line
|
|
||||||
argument.
|
|
||||||
|
|
||||||
==== Configuring power ramping
|
|
||||||
|
|
||||||
OsmoBTS can ramp up the power of its trx over time. This helps reduce
|
|
||||||
cell congestion in busy environments.
|
|
||||||
|
|
||||||
In this example, the trx starts with 5dBm output power which increases by 1dB
|
|
||||||
every two seconds until it reaches nominal power.
|
|
||||||
Power ramping can use the power-ramp commands at the CONFIG TRX node of the
|
|
||||||
OsmoBTS VTY.
|
|
||||||
|
|
||||||
.Example: Configure power ramping on trx 0
|
|
||||||
----
|
|
||||||
OsmoBTS> enable
|
|
||||||
OsmoBTS# configure terminal
|
|
||||||
OsmoBTS(config)# bts 0
|
|
||||||
OsmoBTS(bts)# trx 0
|
|
||||||
OsmoBTS(trx)# power-ramp max-initial 5 dBm
|
|
||||||
OsmoBTS(trx)# power-ramp step-size 1 dB
|
|
||||||
OsmoBTS(trx)# power-ramp step-interval 2
|
|
||||||
OsmoBTS(trx)# write <1>
|
|
||||||
----
|
|
||||||
<1> the `write` command will make the configuration persistent in the
|
|
||||||
configuration file.
|
|
||||||
|
|
||||||
De-activating power-ramping can be performed by setting the max-initial value
|
|
||||||
to the nominal power. The default max-initial value is 23 dBm.
|
|
||||||
|
|
||||||
|
|
||||||
==== Running multiple instances
|
|
||||||
|
|
||||||
It is possible to run multiple instances of `osmo-bts` on one and the same
|
|
||||||
machine, if the phy-interface is flexible enough to distinguish between
|
|
||||||
different phy hardware interfaces.
|
|
||||||
|
|
||||||
Since usually a BTS instance runs in conjunction with a dedicated PCU instance,
|
|
||||||
the socket path between PCU and BTS has to be distinguished between the running
|
|
||||||
instances. It is possible to change the default socket path via VTY config:
|
|
||||||
|
|
||||||
.Example: Personalize PCU socket path
|
|
||||||
----
|
|
||||||
bts 0
|
|
||||||
pcu-socket /tmp/pcu_bts_2
|
|
||||||
----
|
|
||||||
|
|
||||||
It is also necessary to separate the VTY anc CTRL interfaces of the different
|
|
||||||
instances. The VTY, as well as the CTRL interface can be bound to a free IP
|
|
||||||
address from the loopback range:
|
|
||||||
|
|
||||||
.Example: Binding VTY and CTRL interface to a specific IP address
|
|
||||||
----
|
|
||||||
line vty
|
|
||||||
bind 127.0.0.2
|
|
||||||
ctrl
|
|
||||||
bind 127.0.0.2
|
|
||||||
----
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
[[control]]
|
|
||||||
== Control interface
|
|
||||||
|
|
||||||
The actual protocol is described in <<common-control-if>>, the variables
|
|
||||||
common to all programs using it are described in <<ctrl_common_vars>>. Here we
|
|
||||||
describe variables specific to OsmoBTS. The commands starting with prefix
|
|
||||||
"net.btsN." are specific to a certain BTS so N have to be replaced with BTS
|
|
||||||
number when issuing command. Similarly the
|
|
||||||
TRX-specific commands are additionally prefixed with TRX number e. g.
|
|
||||||
"net.bts1.trx2.thermal-attenuation".
|
|
||||||
|
|
||||||
|
|
||||||
.Variables available over control interface
|
|
||||||
[options="header",width="100%",cols="20%,5%,5%,50%,20%"]
|
|
||||||
|===
|
|
||||||
|Name|Access|Trap|Value|Comment
|
|
||||||
|net.btsN.trxM.thermal-attenuation|RW|No|integer|See <<ther>> for details.
|
|
||||||
|===
|
|
||||||
|
|
||||||
[[ther]]
|
|
||||||
=== thermal-attenuation
|
|
||||||
|
|
||||||
Allowed SET value for thermal attenuation is between 0 to 40 dB. Note: the value
|
|
||||||
is SET in dB units but GET will return value in mdB units used internally.
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
== Support for Dynamic Timeslots (TCH/F, TCH/H, PDCH)
|
|
||||||
|
|
||||||
OsmoBTS supports dynamic switchover of timeslots between different physical
|
|
||||||
channel configurations, initiated by the BSC via (non-standard) Abis messages
|
|
||||||
-- see the _OsmoBTS Abis Protocol Specification_ <<osmobts-abis-spec>>.
|
|
||||||
|
|
||||||
The Abis message handling for dynamic timeslots is independent of the BTS
|
|
||||||
model. However, dynamic switchover will only work for BTS models that implement
|
|
||||||
the internal API to reconnect a timeslot (_bts_model_ts_disconnect()_ and
|
|
||||||
_bts_model_ts_connect()_, see also <<osmobts_hardware_support>>).
|
|
||||||
|
|
||||||
Currently, these OsmoBTS models support dynamic timeslots:
|
|
||||||
|
|
||||||
* _osmo-bts-sysmo_
|
|
||||||
* _osmo-bts-litecell15_
|
|
||||||
* _osmo-bts-trx_
|
|
||||||
|
|
||||||
Dynamic timeslots are driven by the BSC and need to be configured there. When
|
|
||||||
using OsmoBSC or OsmoNITB, see the BTS configuration chapter on dynamic
|
|
||||||
timeslots in <<userman-osmobsc>> or <<userman-osmonitb>>, respectively.
|
|
||||||
@@ -1,156 +0,0 @@
|
|||||||
== OsmoBTS Interfaces
|
|
||||||
|
|
||||||
OsmoBTS offers a set of interfaces to interact with external entities:
|
|
||||||
|
|
||||||
* A-bis/IP interface to talk to the BSC
|
|
||||||
* bts_model specific PHY interface
|
|
||||||
* VTY interface
|
|
||||||
* Osmocom control interface
|
|
||||||
* GSMTAP interface
|
|
||||||
* PCU interface
|
|
||||||
|
|
||||||
|
|
||||||
=== OsmoBTS Abis/IP Interface
|
|
||||||
|
|
||||||
OsmoBTS implements the GSM A-bis interface as described in the relevant
|
|
||||||
3GPP specifications:
|
|
||||||
|
|
||||||
* A-bis RSL according to 3GPP TS 08.58
|
|
||||||
* A-bis OML according to 3GPP TS 12.21
|
|
||||||
|
|
||||||
As the 3GPP specifies A-bis only over E1 interfaces and not over IP,
|
|
||||||
significant enhancements and modifications to the 3GPP specifications are
|
|
||||||
employed. Nevertheless, the implementation tries to stay as close as
|
|
||||||
possible to the 3GPP specifications.
|
|
||||||
|
|
||||||
Please see the _OsmoBTS Abis Protocol Specification_
|
|
||||||
<<osmobts-abis-spec>> for more information on this subject.
|
|
||||||
|
|
||||||
|
|
||||||
=== bts_model specific PHY interface
|
|
||||||
|
|
||||||
This interface is specific to the bts_model that OsmoBTS was compiled
|
|
||||||
for. It can take any form as required by the respective hardware.
|
|
||||||
|
|
||||||
Please see the PHY documentation of your respective BTS hardware for more
|
|
||||||
details.
|
|
||||||
|
|
||||||
|
|
||||||
=== OsmoBTS VTY Interface
|
|
||||||
|
|
||||||
See <<vty>> for further information.
|
|
||||||
|
|
||||||
|
|
||||||
=== OsmoBTS Control Interface
|
|
||||||
|
|
||||||
The general structure of the Omsocom control interface is described in
|
|
||||||
<<common-control-if>>.
|
|
||||||
|
|
||||||
The number of control interface commands/attributes is currently quite
|
|
||||||
limited and largely depends on the bts_model used.
|
|
||||||
|
|
||||||
==== trx.N.thermal-attenuation
|
|
||||||
|
|
||||||
The idea of this parameter is to attenuate the system output power as part of
|
|
||||||
thermal management. In some cases the PA might be passing a critical level,
|
|
||||||
so an external control process can use this attribute to reduce the system
|
|
||||||
output power.
|
|
||||||
|
|
||||||
Please note that all values in the context of transmit power calculation
|
|
||||||
are integers in milli-dB (1/10000 bel), so the below example is setting
|
|
||||||
the attenuation at 3 dB:
|
|
||||||
|
|
||||||
----
|
|
||||||
bsc_control.py -d localhost -p 4238 -s trx.0.thermal-attenuation 3000
|
|
||||||
Got message: SET_REPLY 1 trx.0.thermal-attenuation 3000
|
|
||||||
----
|
|
||||||
|
|
||||||
----
|
|
||||||
bsc_control.py -d localhost -p 4238 -g trx.0.thermal-attenuation
|
|
||||||
Got message: GET_REPLY 1 trx.0.thermal-attenuation 3000
|
|
||||||
----
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
=== OsmoBTS GSMTAP Interface
|
|
||||||
|
|
||||||
GSMTAP is a standard created by Osmocom to UDP-encapsulate GSM protocol
|
|
||||||
messages normally communicated over non-IP interfaces for the primary
|
|
||||||
purpose of protocol analysis in the wireshark dissector.
|
|
||||||
|
|
||||||
The initial purpose was to encapsulate GSM Um frames including some
|
|
||||||
meta-data like ARFCN and GSM frame number into something that can be
|
|
||||||
parsed and dispatched within the wireshark dissector.
|
|
||||||
|
|
||||||
This interface has since been extended to many other
|
|
||||||
GSM/GPRS/UMTS interfaces and protocols, and even to TETRA and GMR.
|
|
||||||
|
|
||||||
In OsmoBTS, it is possible to export both uplink and downlink Um
|
|
||||||
messages via GSMTAP. There is a set of VTY configuration options to
|
|
||||||
specify for which logical channels of the Um interface GSMTAP messages
|
|
||||||
shall be emitted, and to which destination IP address they shall be
|
|
||||||
sent.
|
|
||||||
|
|
||||||
Using GSMTAP it is possible to place a virtual tap at the air interface
|
|
||||||
between BTS and MS, without going through the trouble of setting up an
|
|
||||||
actual radio receiver at the same frequencies. Also, GSMTAP export is
|
|
||||||
performed before the Um air-interface encryption (A5) is performed, so
|
|
||||||
all frames are always in plain text.
|
|
||||||
|
|
||||||
Please refer to <<gsmtap>> for more information on how to configure and
|
|
||||||
use this interface.
|
|
||||||
|
|
||||||
|
|
||||||
=== OsmoBTS PCU Socket Interface
|
|
||||||
|
|
||||||
In order to assist the provisioning of GPRS services over the same radio
|
|
||||||
interface as circuit-switched GSM, OsmoBTS exposes a Unix domain socket
|
|
||||||
based interface towards OsmoPCU.
|
|
||||||
|
|
||||||
OsmoPCU is the Osmocom implementation of the GPRS Packet Control Unit
|
|
||||||
(PCU), which is co-located with the BTS in the Osmocom implementation.
|
|
||||||
Contrary to that, many classic E1-based implementations of the GSM RAN
|
|
||||||
co-locate the PCU with the BSC. However, the GSM specifications keep
|
|
||||||
the location up to the implementor.
|
|
||||||
|
|
||||||
The GPRS network architecture is shown in <<fig-gprs-pcubts>>.
|
|
||||||
|
|
||||||
[[fig-gprs-pcubts]]
|
|
||||||
.GPRS network architecture
|
|
||||||
[graphviz]
|
|
||||||
----
|
|
||||||
digraph G {
|
|
||||||
rankdir=LR;
|
|
||||||
MS0 [label="MS"];
|
|
||||||
MS1 [label="MS"];
|
|
||||||
BTS;
|
|
||||||
BSC;
|
|
||||||
MSC;
|
|
||||||
PCU;
|
|
||||||
SGSN;
|
|
||||||
GGSN;
|
|
||||||
MS0->BTS [label="Um"];
|
|
||||||
MS1->BTS [label="Um"];
|
|
||||||
BTS->BSC [label="Abis"];
|
|
||||||
BSC->MSC [label="A"];
|
|
||||||
BTS->PCU [label="pcu_sock"];
|
|
||||||
PCU->SGSN [label="Gb"];
|
|
||||||
SGSN->GGSN [label="GTP"];
|
|
||||||
}
|
|
||||||
----
|
|
||||||
|
|
||||||
The PCU socket interface serves the following purposes:
|
|
||||||
|
|
||||||
* to pass PCU relevant configuration from BTS to PCU
|
|
||||||
* to forward paging requests from BTS to PCU
|
|
||||||
* to forward RACH Requests from BTS to PCU
|
|
||||||
|
|
||||||
Depending on your bts_model, the PCU may also be passing actual
|
|
||||||
PH-DATA.request / PH-DATA.indication / PH-RTS.indication primitives for
|
|
||||||
the PDCH. This is considered sub-optimal, and some BTS models offer a
|
|
||||||
direct interface by which the PCU can exchange those primitives directly
|
|
||||||
with the PHY.
|
|
||||||
|
|
||||||
The default PCU socket interface name is `/tmp/pcu_sock`, but this can
|
|
||||||
be overridden by the `pcu-socket` VTY command in the BTS configuration
|
|
||||||
VTY node.
|
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
== Overview
|
|
||||||
|
|
||||||
=== About this manual
|
|
||||||
|
|
||||||
This manual should help you getting started with the OsmoBTS software.
|
|
||||||
It will cover aspects of configuring and running OsmoBTS as well as some
|
|
||||||
introduction about its internal architecture and external interfaces.
|
|
||||||
|
|
||||||
=== About OsmoBTS
|
|
||||||
|
|
||||||
OsmoBTS is an implementation of a GSM BTS (Base Transceiver Station). A
|
|
||||||
BTS serves as the interface between the Um radio interface towards
|
|
||||||
phones and the wired Abis interface towards the BSC (Base Station
|
|
||||||
Controller). It also implements the network side of the Layer 2 of the
|
|
||||||
Um radio interface: The LAPDm protocol.
|
|
||||||
|
|
||||||
OsmoBTS is licensed as Free and Open Source Software (FOSS) under _GNU
|
|
||||||
AGPLv3_ <<gnu-agplv3>>. It is developed as one GSM network
|
|
||||||
infrastructure component part of the overall Osmocom project.
|
|
||||||
|
|
||||||
As perhaps the first implementation of a GSM BTS ever in the industry,
|
|
||||||
OsmoBTS is implemented in a vendor-independent way and supports a large
|
|
||||||
variety of transceiver hardware and physical layer implementations from
|
|
||||||
many vendors.
|
|
||||||
|
|
||||||
=== Credits
|
|
||||||
|
|
||||||
OsmoBTS was originally developed in 2011 by Andreas Eversberg and Harald
|
|
||||||
Welte. It has since been maintained by Harald Welte and Holger Freyther
|
|
||||||
at sysmocom.
|
|
||||||
|
|
||||||
=== OsmoBTS in the Osmocom GSM network architecture
|
|
||||||
|
|
||||||
OsmoBTS can be used in combination with the various other GSM network
|
|
||||||
elements developed under the umbrella of the Osmocom project.
|
|
||||||
|
|
||||||
Typical configurations either use OsmoBTS with OsmoBSC, or with
|
|
||||||
OsmoNITB, as can be seen in the following figures.
|
|
||||||
|
|
||||||
[[fig-gsm-classic]]
|
|
||||||
.Classic GSM archtiecture using OsmoBTS with OsmoBTS components
|
|
||||||
[graphviz]
|
|
||||||
----
|
|
||||||
digraph G {
|
|
||||||
rankdir=LR;
|
|
||||||
MS0 [label="MS"]
|
|
||||||
MS1 [label="MS"]
|
|
||||||
MS2 [label="MS"]
|
|
||||||
MS3 [label="MS"]
|
|
||||||
BTS0 [label="OsmoBTS"]
|
|
||||||
BTS1 [label="OsmoBTS"]
|
|
||||||
BSC [label="OsmoBSC"]
|
|
||||||
MSC [label="MSC/VLR"]
|
|
||||||
HLR [label="HLR/AUC"]
|
|
||||||
MS0->BTS0 [label="Um"]
|
|
||||||
MS1->BTS0 [label="Um"]
|
|
||||||
MS2->BTS1 [label="Um"]
|
|
||||||
MS3->BTS1 [label="Um"]
|
|
||||||
BTS0->BSC [label="Abis"]
|
|
||||||
BTS1->BSC [label="Abis"]
|
|
||||||
BSC->MSC [label="A"]
|
|
||||||
MSC->HLR [label="C"]
|
|
||||||
MSC->EIR [label="F"]
|
|
||||||
MSC->SMSC
|
|
||||||
}
|
|
||||||
----
|
|
||||||
|
|
||||||
|
|
||||||
[[fig-gsm-nitb]]
|
|
||||||
.GSM architecture using OsmoBTS + OsmoNITB
|
|
||||||
[graphviz]
|
|
||||||
----
|
|
||||||
digraph G {
|
|
||||||
rankdir=LR;
|
|
||||||
MS0 [label="MS"]
|
|
||||||
MS1 [label="MS"]
|
|
||||||
MS2 [label="MS"]
|
|
||||||
MS3 [label="MS"]
|
|
||||||
BTS0 [label="OsmoBTS"]
|
|
||||||
BTS1 [label="OsmoBTS"]
|
|
||||||
MS0->BTS0 [label="Um"]
|
|
||||||
MS1->BTS0 [label="Um"]
|
|
||||||
MS2->BTS1 [label="Um"]
|
|
||||||
MS3->BTS1 [label="Um"]
|
|
||||||
BTS0->BSC [label="Abis"]
|
|
||||||
BTS1->BSC [label="Abis"]
|
|
||||||
subgraph cluster_nitb {
|
|
||||||
label = "OsmoNITB";
|
|
||||||
BSC
|
|
||||||
MSC [label="MSC/VLR"]
|
|
||||||
HLR [label="HLR/AUC"]
|
|
||||||
BSC->MSC [label="A"]
|
|
||||||
MSC->HLR [label="C"]
|
|
||||||
MSC->EIR [label="F"]
|
|
||||||
MSC->SMSC;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
----
|
|
||||||
|
|
||||||
If intended by the user, it is of course also possible to implement an
|
|
||||||
OsmoBTS-compatible Abis-over-IP interface in any third party BSC. The
|
|
||||||
Abis/IP interface and its protocol are documented in the _OsmoBTS
|
|
||||||
Abis Protocol Specification_ <<osmobts-abis-spec>>. However, be advised
|
|
||||||
that such a configuration is currently not officially supported by
|
|
||||||
Osmocom.
|
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
digraph dtx_dl_amr_fsm {
|
|
||||||
node [shape = doublecircle] ST_VOICE ST_FACCH ST_U_NOINH
|
|
||||||
node [shape = circle]
|
|
||||||
|
|
||||||
// default state for non-DTX and DTX when SPEECH is in progress
|
|
||||||
ST_VOICE -> ST_SID_F1 [ label = "E_SID_F" ]
|
|
||||||
ST_VOICE -> ST_F1_INH_V [ label = "E_INHIB" ]
|
|
||||||
ST_VOICE -> ST_U_NOINH [ label = "E_SID_U" ]
|
|
||||||
ST_VOICE -> ST_VOICE [ label = "E_VOICE" ]
|
|
||||||
ST_VOICE -> ST_VOICE [ label = "E_FACCH" ]
|
|
||||||
|
|
||||||
// SID-FIRST or SID-FIRST-P1 in case of AMR HR: start of silence period (might be interrupted in case of AMR HR)
|
|
||||||
ST_SID_F1 -> ST_SID_F1 [ label = "E_SID_F" ]
|
|
||||||
ST_SID_F1 -> ST_U_NOINH [ label = "E_SID_U" ]
|
|
||||||
ST_SID_F1 -> ST_F1_INH_F [ label = "E_FACCH" ]
|
|
||||||
ST_SID_F1 -> ST_SID_F2 [ label = "E_FIRST" ]
|
|
||||||
ST_SID_F1 -> ST_ONSET_V [ label = "E_ONSET" ]
|
|
||||||
|
|
||||||
// SID-FIRST P2 (only for AMR HR): actual start of silence period in case of AMR HR
|
|
||||||
ST_SID_F2 -> ST_U_NOINH [ label = "E_COMPL" ]
|
|
||||||
ST_SID_F2 -> ST_ONSET_F [ label = "E_FACCH" ]
|
|
||||||
ST_SID_F2 -> ST_ONSET_V [ label = "E_ONSET" ]
|
|
||||||
|
|
||||||
// SID-FIRST Inhibited: incoming SPEECH (only for AMR HR)
|
|
||||||
ST_F1_INH_V -> ST_F1_INH_V_REC [ label = "E_COMPL" ]
|
|
||||||
|
|
||||||
// SID-FIRST Inhibited: incoming FACCH frame (only for AMR HR)
|
|
||||||
ST_F1_INH_F -> ST_F1_INH_F_REC [ label = "E_COMPL" ]
|
|
||||||
|
|
||||||
// SID-UPDATE Inhibited: incoming SPEECH (only for AMR HR)
|
|
||||||
ST_U_INH_V -> ST_U_INH_V_REC [ label = "E_COMPL" ]
|
|
||||||
|
|
||||||
// SID-UPDATE Inhibited: incoming FACCH frame (only for AMR HR)
|
|
||||||
ST_U_INH_F -> ST_U_INH_F_REC [ label = "E_COMPL" ]
|
|
||||||
|
|
||||||
// Silence period with periodic comfort noise data updates (no Inhibition)
|
|
||||||
ST_U_NOINH -> ST_ONSET_F [ label = "E_FACCH" ]
|
|
||||||
ST_U_NOINH -> ST_VOICE [ label = "E_VOICE" ]
|
|
||||||
ST_U_NOINH -> ST_U_NOINH [ label = "E_SID_U" ]
|
|
||||||
ST_U_NOINH -> ST_U_NOINH [ label = "E_SID_F" ]
|
|
||||||
ST_U_NOINH -> ST_ONSET_V [ label = "E_ONSET" ]
|
|
||||||
ST_U_NOINH -> ST_SID_U [ label = "E_COMPL" ]
|
|
||||||
|
|
||||||
// SID-FIRST Inhibition recursion in progress: Inhibit itself was already sent, now have to send the voice that caused it
|
|
||||||
ST_F1_INH_V_REC -> ST_VOICE [ label = "E_COMPL" ]
|
|
||||||
ST_F1_INH_V_REC -> ST_VOICE [ label = "E_VOICE" ]
|
|
||||||
|
|
||||||
// SID-FIRST Inhibition recursion in progress: Inhibit itself was already sent, now have to send the voice that caused it
|
|
||||||
ST_F1_INH_F_REC -> ST_FACCH [ label = "E_COMPL" ]
|
|
||||||
ST_F1_INH_F_REC -> ST_FACCH [ label = "E_VOICE" ]
|
|
||||||
|
|
||||||
// SID-UPDATE Inhibition recursion in progress: Inhibit itself was already sent, now have to send the voice that caused it
|
|
||||||
ST_U_INH_V_REC -> ST_VOICE [ label = "E_COMPL" ]
|
|
||||||
ST_U_INH_V_REC -> ST_VOICE [ label = "E_VOICE" ]
|
|
||||||
|
|
||||||
// SID-UPDATE Inhibition recursion in progress: Inhibit itself was already sent, now have to send the voice that caused it
|
|
||||||
ST_U_INH_F_REC -> ST_FACCH [ label = "E_COMPL" ]
|
|
||||||
ST_U_INH_F_REC -> ST_FACCH [ label = "E_VOICE" ]
|
|
||||||
|
|
||||||
// Silence period with periodic comfort noise data updates (can be inhibited)
|
|
||||||
ST_SID_U -> ST_U_INH_F [ label = "E_FACCH" ]
|
|
||||||
ST_SID_U -> ST_VOICE [ label = "E_VOICE" ]
|
|
||||||
ST_SID_U -> ST_U_INH_V [ label = "E_INHIB" ]
|
|
||||||
ST_SID_U -> ST_U_NOINH [ label = "E_SID_U" ]
|
|
||||||
ST_SID_U -> ST_U_NOINH [ label = "E_SID_F" ]
|
|
||||||
|
|
||||||
// ONSET - end of silent period due to incoming SPEECH frame
|
|
||||||
ST_ONSET_V -> ST_ONSET_V_REC [ label = "E_COMPL" ]
|
|
||||||
|
|
||||||
// ONSET - end of silent period due to incoming FACCH frame
|
|
||||||
ST_ONSET_F -> ST_ONSET_F_REC [ label = "E_COMPL" ]
|
|
||||||
|
|
||||||
// ONSET recursion in progress: ONSET itself was already sent, now have to send the data that caused it
|
|
||||||
ST_ONSET_F_REC -> ST_FACCH [ label = "E_COMPL" ]
|
|
||||||
|
|
||||||
// ONSET recursion in progress: ONSET itself was already sent, now have to send the voice that caused it
|
|
||||||
ST_ONSET_V_REC -> ST_VOICE [ label = "E_COMPL" ]
|
|
||||||
|
|
||||||
// FACCH sending state
|
|
||||||
ST_FACCH -> ST_VOICE [ label = "E_VOICE" ]
|
|
||||||
ST_FACCH -> ST_FACCH [ label = "E_FACCH" ]
|
|
||||||
ST_FACCH -> ST_FACCH [ label = "E_SID_U" ]
|
|
||||||
ST_FACCH -> ST_FACCH [ label = "E_SID_F" ]
|
|
||||||
ST_FACCH -> ST_SID_F1 [ label = "E_COMPL" ]
|
|
||||||
}
|
|
||||||
@@ -1,83 +0,0 @@
|
|||||||
<revhistory>
|
|
||||||
<revision>
|
|
||||||
<revnumber>1</revnumber>
|
|
||||||
<date>December 2015</date>
|
|
||||||
<authorinitials>NJH, HW</authorinitials>
|
|
||||||
<revremark>
|
|
||||||
Initial version, reflecting OsmoBTS master branch as on 2015-Dec-7
|
|
||||||
(commit e28a20a2d9d049cd6312e218a7646593bbc43431).
|
|
||||||
</revremark>
|
|
||||||
</revision>
|
|
||||||
<revision>
|
|
||||||
<revnumber>2</revnumber>
|
|
||||||
<date>February 2016</date>
|
|
||||||
<authorinitials>HW</authorinitials>
|
|
||||||
<revremark>
|
|
||||||
Updated version with Message Sequence Chart of OML and RSL bring-up.
|
|
||||||
</revremark>
|
|
||||||
</revision>
|
|
||||||
<revision>
|
|
||||||
<revnumber>2.1</revnumber>
|
|
||||||
<date>February 2016</date>
|
|
||||||
<authorinitials>HW</authorinitials>
|
|
||||||
<revremark>
|
|
||||||
Fix A-bis OML/RSL port number swap in message seqeuence charts.
|
|
||||||
</revremark>
|
|
||||||
</revision>
|
|
||||||
<revision>
|
|
||||||
<revnumber>2.2</revnumber>
|
|
||||||
<date>July 2016</date>
|
|
||||||
<authorinitials>NJH, HW</authorinitials>
|
|
||||||
<revremark>
|
|
||||||
Add description on Dynamic Channel Configuration in OML and activation in RSL.
|
|
||||||
</revremark>
|
|
||||||
</revision>
|
|
||||||
|
|
||||||
</revhistory>
|
|
||||||
|
|
||||||
<authorgroup>
|
|
||||||
<author>
|
|
||||||
<firstname>Neels</firstname>
|
|
||||||
<surname>Hofmeyr</surname>
|
|
||||||
<email>nhofmeyr@sysmocom.de</email>
|
|
||||||
<authorinitials>NJH</authorinitials>
|
|
||||||
<affiliation>
|
|
||||||
<shortaffil>sysmocom</shortaffil>
|
|
||||||
<orgname>sysmocom - s.f.m.c. GmbH</orgname>
|
|
||||||
<jobtitle>Senior Software Developer</jobtitle>
|
|
||||||
</affiliation>
|
|
||||||
</author>
|
|
||||||
<author>
|
|
||||||
<firstname>Harald</firstname>
|
|
||||||
<surname>Welte</surname>
|
|
||||||
<email>hwelte@sysmocom.de</email>
|
|
||||||
<authorinitials>HW</authorinitials>
|
|
||||||
<affiliation>
|
|
||||||
<shortaffil>sysmocom</shortaffil>
|
|
||||||
<orgname>sysmocom - s.f.m.c. GmbH</orgname>
|
|
||||||
<jobtitle>Managing Director</jobtitle>
|
|
||||||
</affiliation>
|
|
||||||
</author>
|
|
||||||
</authorgroup>
|
|
||||||
|
|
||||||
<copyright>
|
|
||||||
<year>2015-2016</year>
|
|
||||||
<holder>sysmocom - s.f.m.c. GmbH</holder>
|
|
||||||
</copyright>
|
|
||||||
|
|
||||||
<legalnotice>
|
|
||||||
<para>
|
|
||||||
Permission is granted to copy, distribute and/or modify this
|
|
||||||
document under the terms of the GNU Free Documentation License,
|
|
||||||
Version 1.3 or any later version published by the Free Software
|
|
||||||
Foundation; with no Invariant Sections, no Front-Cover Texts,
|
|
||||||
and no Back-Cover Texts. A copy of the license is included in
|
|
||||||
the section entitled "GNU Free Documentation License".
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
The Asciidoc source code of this manual can be found at
|
|
||||||
<ulink url="http://git.osmocom.org/osmo-gsm-manuals/">
|
|
||||||
http://git.osmocom.org/osmo-gsm-manuals/
|
|
||||||
</ulink>
|
|
||||||
</para>
|
|
||||||
</legalnotice>
|
|
||||||
@@ -1,92 +0,0 @@
|
|||||||
:gfdl-enabled:
|
|
||||||
|
|
||||||
OsmoBTS Abis Protocol Specification
|
|
||||||
===================================
|
|
||||||
Neels Hofmeyr <nhofmeyr@sysmocom.de>
|
|
||||||
|
|
||||||
== Introduction
|
|
||||||
|
|
||||||
This document describes the A-bis interface of *OsmoBTS*. Based on 3GPP TS
|
|
||||||
12.21 and 08.58, this document indicates which of the 3GPP specified A-bis
|
|
||||||
messages and IEs are implemented according to 3GPP specifications, which of
|
|
||||||
these are not or not fully implemented, as well as OsmoBTS-specific extensions
|
|
||||||
to the A-bis interface not specified by 3GPP.
|
|
||||||
|
|
||||||
Extensions to the A-bis interface specific to OsmoBTS are detailed in this
|
|
||||||
document. For details on the messages and IEs that comply with above mentioned
|
|
||||||
3GPP specifications, please refer to those documents.
|
|
||||||
|
|
||||||
.3GPP document versions referred to by this document
|
|
||||||
[cols="20%,80%"]
|
|
||||||
|===
|
|
||||||
|3GPP TS 08.56 | version 8.0.1 Release 1999
|
|
||||||
|3GPP TS 08.58 | version 8.6.0 Release 1999
|
|
||||||
|3GPP TS 08.60 | version 8.2.1 Release 1999
|
|
||||||
|3GPP TS 12.21 | version 8.0.0 Release 1999
|
|
||||||
|===
|
|
||||||
|
|
||||||
.IETF documents referred to by his document
|
|
||||||
[cols="20%,80%"]
|
|
||||||
|===
|
|
||||||
|IETF RFC 768 | User Datagram Protocol
|
|
||||||
|IETF RFC 791 | Internet Protocol
|
|
||||||
|IETF RFC 793 | Transmission Control Protocol
|
|
||||||
|IETF RFC 1889 | RTP: A Transport Protocol for Real-Time Applications
|
|
||||||
|IETF RFC 3551 | RTP Profle for Audio and Video Conferences with Minimal Control
|
|
||||||
|IETF RFC 4867 | RTP Payload Format and Files Storage Format for the Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate Wideband (AMR-WB) Audio Codecs
|
|
||||||
|IETF RFC 5993 | RTP Payload Format for Global Systems for Mobile Communications Half Rate (GSM-HR)
|
|
||||||
|===
|
|
||||||
|
|
||||||
== Overview
|
|
||||||
|
|
||||||
The OsmoBTS A-bis interface consists of traffic management messages (RSL, Radio
|
|
||||||
Signalling Link) and network management messages (OML, Operation & Maintenance
|
|
||||||
Link), encapsulated in an IPA multiplex.
|
|
||||||
|
|
||||||
OML and RSL each use a separate TCP connection.
|
|
||||||
|
|
||||||
.TCP port numbers used by OsmoBTS Abis/IP
|
|
||||||
[options="header",width="50%",cols="35%,65%"]
|
|
||||||
|===
|
|
||||||
|TCP Port Number|Usage
|
|
||||||
|3002|A-bis OML (inside IPA multiplex)
|
|
||||||
|3003|A-bis RSL (inside IPA multiplex)
|
|
||||||
|===
|
|
||||||
|
|
||||||
Both TCP connections for OML and RSL are established in the BTS -> BSC
|
|
||||||
direction, i.e. the BTS is running as a TCP client, while the BSC is
|
|
||||||
running as a TCP server.
|
|
||||||
|
|
||||||
The BTS first establishes the TCP connection for OML. Via OML, the BSC
|
|
||||||
instructs the BTS to which IP address the RSL connection shall be
|
|
||||||
established.
|
|
||||||
|
|
||||||
.Overview of A-bis connection establishment
|
|
||||||
["mscgen"]
|
|
||||||
----
|
|
||||||
include::{srcdir}/abis/abis-startup.msc[]
|
|
||||||
----
|
|
||||||
|
|
||||||
=== Identities
|
|
||||||
|
|
||||||
The BTS is locally configured (via administrative means, out of band of
|
|
||||||
this specification) to have a Unit ID. The Unit ID consists of three
|
|
||||||
parts:
|
|
||||||
|
|
||||||
* The Site Number
|
|
||||||
* The BTS number at the site
|
|
||||||
* The TRX number within the BTS
|
|
||||||
|
|
||||||
include::{srcdir}/abis/ipa.adoc[]
|
|
||||||
|
|
||||||
include::{srcdir}/abis/oml.adoc[]
|
|
||||||
|
|
||||||
include::{srcdir}/abis/rsl.adoc[]
|
|
||||||
|
|
||||||
include::{srcdir}/abis/rtp.adoc[]
|
|
||||||
|
|
||||||
include::./common/chapters/port_numbers.adoc[]
|
|
||||||
|
|
||||||
include::./common/chapters/glossary.adoc[]
|
|
||||||
|
|
||||||
include::./common/chapters/gfdl.adoc[]
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
<revhistory>
|
|
||||||
<revision>
|
|
||||||
<revnumber>1</revnumber>
|
|
||||||
<date>January 2016</date>
|
|
||||||
<authorinitials>HW</authorinitials>
|
|
||||||
<revremark>
|
|
||||||
Initial version, reflecting OsmoBTS master branch as on FIXME
|
|
||||||
(commit FIXME).
|
|
||||||
</revremark>
|
|
||||||
</revision>
|
|
||||||
</revhistory>
|
|
||||||
|
|
||||||
<authorgroup>
|
|
||||||
<author>
|
|
||||||
<firstname>Harald</firstname>
|
|
||||||
<surname>Welte</surname>
|
|
||||||
<email>hwelte@sysmocom.de</email>
|
|
||||||
<authorinitials>HW</authorinitials>
|
|
||||||
<affiliation>
|
|
||||||
<shortaffil>sysmocom</shortaffil>
|
|
||||||
<orgname>sysmocom - s.f.m.c. GmbH</orgname>
|
|
||||||
<jobtitle>Managing Director</jobtitle>
|
|
||||||
</affiliation>
|
|
||||||
</author>
|
|
||||||
</authorgroup>
|
|
||||||
|
|
||||||
<copyright>
|
|
||||||
<year>2016</year>
|
|
||||||
<holder>sysmocom - s.f.m.c. GmbH</holder>
|
|
||||||
</copyright>
|
|
||||||
|
|
||||||
<legalnotice>
|
|
||||||
<para>
|
|
||||||
Permission is granted to copy, distribute and/or modify this
|
|
||||||
document under the terms of the GNU Free Documentation License,
|
|
||||||
Version 1.3 or any later version published by the Free Software
|
|
||||||
Foundation; with the Invariant Sections being just 'Foreword',
|
|
||||||
'Acknowledgements' and 'Preface', with no Front-Cover Texts,
|
|
||||||
and no Back-Cover Texts. A copy of the license is included in
|
|
||||||
the section entitled "GNU Free Documentation License".
|
|
||||||
</para>
|
|
||||||
</legalnotice>
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
:gfdl-enabled:
|
|
||||||
|
|
||||||
OsmoBTS User Manual
|
|
||||||
===================
|
|
||||||
Harald Welte <hwelte@sysmocom.de>
|
|
||||||
|
|
||||||
include::./common/chapters/preface.adoc[]
|
|
||||||
|
|
||||||
include::{srcdir}/chapters/overview.adoc[]
|
|
||||||
|
|
||||||
include::./common/chapters/abis.adoc[]
|
|
||||||
|
|
||||||
include::{srcdir}/chapters/interfaces.adoc[]
|
|
||||||
|
|
||||||
include::{srcdir}/chapters/control.adoc[]
|
|
||||||
|
|
||||||
include::./common/chapters/vty.adoc[]
|
|
||||||
|
|
||||||
include::./common/chapters/logging.adoc[]
|
|
||||||
|
|
||||||
include::{srcdir}/chapters/configuration.adoc[]
|
|
||||||
|
|
||||||
include::{srcdir}/chapters/dynamic-timeslots.adoc[]
|
|
||||||
|
|
||||||
include::{srcdir}/chapters/bts-models.adoc[]
|
|
||||||
|
|
||||||
include::{srcdir}/chapters/architecture.adoc[]
|
|
||||||
|
|
||||||
include::./common/chapters/trx_if.adoc[]
|
|
||||||
|
|
||||||
include::./common/chapters/control_if.adoc[]
|
|
||||||
|
|
||||||
include::./common/chapters/port_numbers.adoc[]
|
|
||||||
|
|
||||||
include::./common/chapters/bibliography.adoc[]
|
|
||||||
|
|
||||||
include::./common/chapters/glossary.adoc[]
|
|
||||||
|
|
||||||
include::./common/chapters/gfdl.adoc[]
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!--
|
|
||||||
ex:ts=2:sw=42sts=2:et
|
|
||||||
-*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
|
|
||||||
-->
|
|
||||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
|
|
||||||
"http://docbook.org/xml/5.0/dtd/docbook.dtd" [
|
|
||||||
<!ENTITY chapter-vty SYSTEM "./common/chapters/vty.xml" >
|
|
||||||
<!ENTITY sections-vty SYSTEM "generated/docbook_vty.xml" >
|
|
||||||
]>
|
|
||||||
|
|
||||||
<book>
|
|
||||||
<info>
|
|
||||||
<revhistory>
|
|
||||||
<revision>
|
|
||||||
<revnumber>v1</revnumber>
|
|
||||||
<date>13th October 2016</date>
|
|
||||||
<authorinitials>hw</authorinitials>
|
|
||||||
<revremark>Initial</revremark>
|
|
||||||
</revision>
|
|
||||||
</revhistory>
|
|
||||||
|
|
||||||
<title>OsmoBTS VTY Reference</title>
|
|
||||||
|
|
||||||
<copyright>
|
|
||||||
<year>2016</year>
|
|
||||||
</copyright>
|
|
||||||
|
|
||||||
<legalnotice>
|
|
||||||
<para>This work is copyright by <orgname>sysmocom - s.f.m.c. GmbH</orgname>. All rights reserved.
|
|
||||||
</para>
|
|
||||||
</legalnotice>
|
|
||||||
</info>
|
|
||||||
|
|
||||||
<!-- Main chapters-->
|
|
||||||
&chapter-vty;
|
|
||||||
</book>
|
|
||||||
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
<revhistory>
|
|
||||||
<revision>
|
|
||||||
<revnumber>1</revnumber>
|
|
||||||
<date>October 2016</date>
|
|
||||||
<authorinitials>HW</authorinitials>
|
|
||||||
<revremark>
|
|
||||||
Initial version
|
|
||||||
</revremark>
|
|
||||||
</revision>
|
|
||||||
<revision>
|
|
||||||
<revnumber>2</revnumber>
|
|
||||||
<date>November 2016</date>
|
|
||||||
<authorinitials>MS</authorinitials>
|
|
||||||
<revremark>
|
|
||||||
FSM added
|
|
||||||
</revremark>
|
|
||||||
</revision>
|
|
||||||
<revision>
|
|
||||||
<revnumber>3</revnumber>
|
|
||||||
<date>July 2017</date>
|
|
||||||
<authorinitials>PE</authorinitials>
|
|
||||||
<revremark>
|
|
||||||
Add section and update sequence charts to describe requirement to receive all PH-DATA.ind events
|
|
||||||
</revremark>
|
|
||||||
</revision>
|
|
||||||
</revhistory>
|
|
||||||
|
|
||||||
<authorgroup>
|
|
||||||
<author>
|
|
||||||
<firstname>Harald</firstname>
|
|
||||||
<surname>Welte</surname>
|
|
||||||
<email>hwelte@sysmocom.de</email>
|
|
||||||
<authorinitials>HW</authorinitials>
|
|
||||||
<affiliation>
|
|
||||||
<shortaffil>sysmocom</shortaffil>
|
|
||||||
<orgname>sysmocom - s.f.m.c. GmbH</orgname>
|
|
||||||
<jobtitle>Managing Director</jobtitle>
|
|
||||||
</affiliation>
|
|
||||||
</author>
|
|
||||||
<author>
|
|
||||||
<firstname>Max</firstname>
|
|
||||||
<surname>Suraev</surname>
|
|
||||||
<email>msuraev@sysmocom.de</email>
|
|
||||||
<authorinitials>MS</authorinitials>
|
|
||||||
<affiliation>
|
|
||||||
<shortaffil>sysmocom</shortaffil>
|
|
||||||
<orgname>sysmocom - s.f.m.c. GmbH</orgname>
|
|
||||||
<jobtitle>Software Developer</jobtitle>
|
|
||||||
</affiliation>
|
|
||||||
</author>
|
|
||||||
</authorgroup>
|
|
||||||
|
|
||||||
<copyright>
|
|
||||||
<year>2016</year>
|
|
||||||
<holder>sysmocom - s.f.m.c. GmbH</holder>
|
|
||||||
</copyright>
|
|
||||||
|
|
||||||
<legalnotice>
|
|
||||||
<para>
|
|
||||||
Permission is granted to copy, distribute and/or modify this
|
|
||||||
document under the terms of the GNU Free Documentation License,
|
|
||||||
Version 1.3 or any later version published by the Free Software
|
|
||||||
Foundation; with no Invariant Sections, no Front-Cover Texts,
|
|
||||||
and no Back-Cover Texts. A copy of the license is included in
|
|
||||||
the section entitled "GNU Free Documentation License".
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
The Asciidoc source code of this manual can be found at
|
|
||||||
<ulink url="http://git.osmocom.org/osmo-gsm-manuals/">
|
|
||||||
http://git.osmocom.org/osmo-gsm-manuals/
|
|
||||||
</ulink>
|
|
||||||
</para>
|
|
||||||
</legalnotice>
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1 +0,0 @@
|
|||||||
<vtydoc xmlns='urn:osmocom:xml:libosmocore:vty:doc:1.0'/>
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,57 +0,0 @@
|
|||||||
|
|
||||||
== OsmoBTS PHY interface abstraction
|
|
||||||
|
|
||||||
The OsmoBTS PHY interface serves as an abstraction layer between given
|
|
||||||
PHY hardware and the actual logical transceivers (TRXs) of a BTS inside
|
|
||||||
the OsmoBTS code base.
|
|
||||||
|
|
||||||
|
|
||||||
=== PHY link
|
|
||||||
|
|
||||||
A PHY link is a physical connection / link towards a given PHY. This
|
|
||||||
might be, for example,
|
|
||||||
|
|
||||||
* a set of file descriptors to device nodes in the /dev/ directory
|
|
||||||
(sysmobts, litecell15)
|
|
||||||
* a packet socket for sending raw Ethernet frames to an OCTPHY
|
|
||||||
* a set of UDP sockets for interacting with OsmoTRX
|
|
||||||
|
|
||||||
Each PHY interface has a set of attribute/parameters and a list of 1 to
|
|
||||||
n PHY instances.
|
|
||||||
|
|
||||||
PHY links are numbered 0..n globally inside OsmoBTS.
|
|
||||||
|
|
||||||
Each PHY link is configured via the VTY using its individual top-level
|
|
||||||
vty node. Given the different bts-model / phy specific properties, the
|
|
||||||
VTY configuration options (if any) of the PHY instance differ between
|
|
||||||
BTS models.
|
|
||||||
|
|
||||||
The PHY links and instances must be configured above the BTS/TRX nodes
|
|
||||||
in the configuration file. If the file is saved via the VTY, the code
|
|
||||||
automatically ensures this.
|
|
||||||
|
|
||||||
|
|
||||||
=== PHY instance
|
|
||||||
|
|
||||||
A PHY instance is an instance of a PHY, accessed via a PHY link.
|
|
||||||
|
|
||||||
In the case of osmo-bts-sysmo and osmo-bts-trx, there is only one
|
|
||||||
instance in every PHY link. This is due to the fact that the API inside
|
|
||||||
that PHY link does not permit for distinguishing multiple different
|
|
||||||
logical TRXs.
|
|
||||||
|
|
||||||
Other PHY implementations like the OCTPHY however do support addressing
|
|
||||||
multiple PHY instances via a single PHY link.
|
|
||||||
|
|
||||||
PHY instances are numbered 0..n inside each PHY link.
|
|
||||||
|
|
||||||
Each PHY instance is configured via the VTY as a separate node beneath each
|
|
||||||
PHY link. Given the different bts-model / phy specific properties, the
|
|
||||||
VTY configuration options (if any) of the PHY instance differ between
|
|
||||||
BTS models.
|
|
||||||
|
|
||||||
|
|
||||||
=== Mapping PHY instances to TRXs
|
|
||||||
|
|
||||||
Each TRX node in the VTY must use the 'phy N instance M' command in
|
|
||||||
order to specify which PHY instance is allocated to this specific TRX.
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
|
|
||||||
== start-up / sequencing during OsmoBTS start
|
|
||||||
|
|
||||||
The start-up procedure of OsmoBTS can be described as follows:
|
|
||||||
|
|
||||||
|===
|
|
||||||
| bts-specific | main() |
|
|
||||||
| common | bts_main() | initialization of talloc contexts
|
|
||||||
| common | osmo_init_logging2() | initialization of logging
|
|
||||||
| common | handle_options() | common option parsing
|
|
||||||
| bts-specific | bts_model_handle_options() | model-specific option parsing
|
|
||||||
| common | gsm_bts_alloc() | allocation of BTS/TRX/TS data structures
|
|
||||||
| common | vty_init() | Initialziation of VTY core, libosmo-abis and osmo-bts VTY
|
|
||||||
| common | main() | Setting of scheduler RR priority (if configured)
|
|
||||||
| common | main() | Initialization of GSMTAP (if configured)
|
|
||||||
| common | bts_init() | configuration of defaults in bts/trx/s object
|
|
||||||
| bts-specific | bts_model_init | ?
|
|
||||||
| common | abis_init() | Initialization of libosmo-abis
|
|
||||||
| common | vty_read_config_file() | Reading of configuration file
|
|
||||||
| bts-specific | bts_model_phy_link_set_defaults() | Called for every PHY link created
|
|
||||||
| bts-specific | bts_model_phy_instance_set_defaults() | Called for every PHY Instance created
|
|
||||||
| common | bts_controlif_setup() | Initialization of Control Interface
|
|
||||||
| bts-specific | bts_model_ctrl_cmds_install()
|
|
||||||
| common | telnet_init() | Initialization of telnet interface
|
|
||||||
| common | pcu_sock_init() | Initializaiton of PCU socket
|
|
||||||
| common | main() | Installation of signal handlers
|
|
||||||
| common | abis_open() | Start of the A-bis connection to BSC
|
|
||||||
| common | phy_links_open() | Iterate over list of configured PHY links
|
|
||||||
| bts-specific | bts_model_phy_link_open() | Open each of the configured PHY links
|
|
||||||
| common | write_pid_file() | Generate the pid file
|
|
||||||
| common | osmo_daemonize() | Fork as daemon in background (if configured)
|
|
||||||
| common | bts_main() | Run main loop until global variable quit >= 2
|
|
||||||
| bts-specific | bts_model_oml_estab() | Called by core once OML link is established
|
|
||||||
| bts-specific | bts_model_check_oml() | called each time OML sets some attributes on a MO, checks if attributes are valid
|
|
||||||
| bts-specific | bts_model_apply_oml() | called each time OML sets some attributes on a MO, stores attribute contents in data structures
|
|
||||||
| bts-specific | bts_model_opstart() | for NM_OC_BTS, NM_OC_SITE_MANAGER, NM_OC_GPRS_NSE, NM_OC_GPRS_CELL, NMO_OC_GPRS_NSVC
|
|
||||||
| bts-specific | bts_model_opstart() | for NM_OC_RADIO_CARRIER for each trx
|
|
||||||
| bts-specific | bts_model_opstart() | for NM_OC_BASEB_TRANSC for each trx
|
|
||||||
| bts-specific | bts_model_opstart() | for NM_OC_CHANNEL for each timeslot on each trx
|
|
||||||
| bts-specific | bts_model_change_power() | change transmit power for each trx (power ramp-up/ramp-down
|
|
||||||
|
|
||||||
| bts-specific | bts_model_abis_close() | called when either one of the RSL links or the OML link are down
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user