10 Commits

Author SHA1 Message Date
Pau Espin Pedrol
ed87bd5c74 Bump version: 0.1.0.8-14c9-dirty → 0.2.0
Change-Id: I67c0bde168c91f3d38cb228b4318321a70b68c3e
2021-02-24 14:30:57 +01:00
Pau Espin Pedrol
14c9c7bcd7 smlc_subscr_test: Replace use of deprecated log_set_print_filename() API
hex_category is also set explicitly to keep same results (old API used
to set it internally).

Change-Id: I49365dfcd24bed55101917d2ea034c4327ab51d6
2021-02-24 14:28:37 +01:00
Pau Espin Pedrol
b36a18f139 main: Support setting cmdline --vty-ref-mode
Change-Id: Iadb004319514cb134b0863ea16b3289e6f1a097a
2021-02-24 14:26:30 +01:00
Pau Espin Pedrol
427fbbd541 gitignore: Ignore autofoo files *~
Change-Id: I97997a44e26e8fe9b98606e63aa6d5986d0d85f6
2021-02-24 14:15:48 +01:00
Neels Hofmeyr
5dadf0ae6e manual: describe TA-based positioning and cell locations
Change-Id: I3d8ae0f6fef0c60499a5e133d3dd0ebd54e8c321
2020-10-28 03:19:44 +01:00
Harald Welte
8b6341b02f fix osmo-smlc.service: drop unknown '-s' command line argument
Change-Id: I3804fea29e06280f12b62e8c27d2a0ba4aafa7a0
2020-10-22 16:02:26 +02:00
Harald Welte
dbf98d5433 osmo-smlc.spec.in: Add dependency to autoconf-archive
I don't really understand why our other spec files only contain
a dependency to autoconf and get away with that (while still using
autoconf-archive from configure.ac), but let's try this.

Change-Id: Ica5f58297722b650a3862326d31b8eb8947ee1b6
2020-10-22 08:05:51 +02:00
Harald Welte
63ec8a9c59 debian: the osmo-smlc example is not in the osmo-msc directory
Change-Id: Ie6e2c591fc37fed716f0d30df9096b535f06a118
2020-10-22 08:04:58 +02:00
Harald Welte
fb2abb8f8c debian/spec: Add build depedency to autoconf-archive
Change-Id: I56ff1c97ef7f11ac35eb78558cc7a0049f39cd56
2020-10-21 20:58:02 +02:00
Harald Welte
033b15679c update vty reference XML
Change-Id: Ifae832b399fb905892cab36f6d4fa7704a2541f0
2020-10-21 20:21:40 +02:00
14 changed files with 1057 additions and 37 deletions

1
.gitignore vendored
View File

@@ -34,6 +34,7 @@ stamp-h1
libtool
ltmain.sh
m4/*.m4
*~
# git-version-gen magic
.tarball-version

View File

@@ -39,12 +39,12 @@ m4_ifdef([AX_CHECK_COMPILE_FLAG], [], [
AC_MSG_ERROR([Please install autoconf-archive; re-run 'autoreconf -fi' for it to take effect.])
])
PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 1.3.0)
PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 1.3.0)
PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl >= 1.3.0)
PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 1.3.0)
PKG_CHECK_MODULES(LIBOSMOSIGTRAN, libosmo-sigtran >= 0.10.0)
PKG_CHECK_MODULES(LIBOSMOSCCP, libosmo-sccp >= 0.10.0)
PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 1.5.0)
PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 1.5.0)
PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl >= 1.5.0)
PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 1.5.0)
PKG_CHECK_MODULES(LIBOSMOSIGTRAN, libosmo-sigtran >= 1.4.0)
PKG_CHECK_MODULES(LIBOSMOSCCP, libosmo-sccp >= 1.4.0)
dnl checks for header files
AC_HEADER_STDC

View File

@@ -24,19 +24,21 @@ License: AGPL-3.0-or-later
Group: Hardware/Mobile
URL: https://osmocom.org/projects/osmo-smlc
Source: %{name}-%{version}.tar.xz
BuildRequires: autoconf
BuildRequires: autoconf-archive
BuildRequires: automake >= 1.9
BuildRequires: libtool >= 2
BuildRequires: pkgconfig >= 0.20
%if 0%{?suse_version}
BuildRequires: systemd-rpm-macros
%endif
BuildRequires: pkgconfig(libosmo-netif) >= 0.6.0
BuildRequires: pkgconfig(libosmo-sccp) >= 0.10.0
BuildRequires: pkgconfig(libosmo-sigtran) >= 0.10.0
BuildRequires: pkgconfig(libosmocore) >= 1.2.0
BuildRequires: pkgconfig(libosmoctrl) >= 1.2.0
BuildRequires: pkgconfig(libosmogsm) >= 1.2.0
BuildRequires: pkgconfig(libosmovty) >= 1.2.0
BuildRequires: pkgconfig(libosmo-netif) >= 1.1.0
BuildRequires: pkgconfig(libosmo-sccp) >= 1.4.0
BuildRequires: pkgconfig(libosmo-sigtran) >= 1.4.0
BuildRequires: pkgconfig(libosmocore) >= 1.5.0
BuildRequires: pkgconfig(libosmoctrl) >= 1.5.0
BuildRequires: pkgconfig(libosmogsm) >= 1.5.0
BuildRequires: pkgconfig(libosmovty) >= 1.5.0
BuildRequires: pkgconfig(talloc)
%{?systemd_requires}

View File

@@ -4,7 +4,7 @@ Description=Osmocom Serving Mobile Location Center (SMLC)
[Service]
Type=simple
Restart=always
ExecStart=/usr/bin/osmo-smlc -c /etc/osmocom/osmo-smlc.cfg -s
ExecStart=/usr/bin/osmo-smlc -c /etc/osmocom/osmo-smlc.cfg
RestartSec=2
[Install]

22
debian/changelog vendored
View File

@@ -1,3 +1,25 @@
osmo-smlc (0.2.0) unstable; urgency=medium
[ Harald Welte ]
* contrib/jenkins.sh: Build libosmo-abis, a dependency of libosmo-netif
* fix build of usermanual
* update vty reference XML
* debian/spec: Add build depedency to autoconf-archive
* debian: the osmo-smlc example is not in the osmo-msc directory
* osmo-smlc.spec.in: Add dependency to autoconf-archive
* fix osmo-smlc.service: drop unknown '-s' command line argument
[ Neels Hofmeyr ]
* initial working osmo-smlc implementation
* manual: describe TA-based positioning and cell locations
[ Pau Espin Pedrol ]
* gitignore: Ignore autofoo files *~
* main: Support setting cmdline --vty-ref-mode
* smlc_subscr_test: Replace use of deprecated log_set_print_filename() API
-- Pau Espin Pedrol <pespin@sysmocom.de> Wed, 24 Feb 2021 14:30:56 +0100
osmo-smlc (0.0.1) unstable; urgency=medium
[ Harald Welte ]

9
debian/control vendored
View File

@@ -6,15 +6,16 @@ Build-Depends: debhelper (>=9),
dh-autoreconf,
autotools-dev,
autoconf,
autoconf-archive,
automake,
libtool,
pkg-config,
libsctp-dev,
libtalloc-dev,
libosmocore-dev (>= 1.3.0),
libosmo-sccp-dev (>= 1.1.0),
libosmo-sigtran-dev (>= 1.1.0),
osmo-gsm-manuals-dev (>= 0.2.0)
libosmocore-dev (>= 1.5.0),
libosmo-sccp-dev (>= 1.4.0),
libosmo-sigtran-dev (>= 1.4.0),
osmo-gsm-manuals-dev (>= 1.1.0)
Standards-Version: 3.9.8
Vcs-Git: git://git.osmocom.org/osmo-smlc.git
Vcs-Browser: https://git.osmocom.org/osmo-smlc/

View File

@@ -1,4 +1,4 @@
etc/osmocom/osmo-smlc.cfg
lib/systemd/system/osmo-smlc.service
usr/bin/osmo-smlc
usr/share/doc/osmo-msc/examples/osmo-smlc/osmo-smlc.cfg usr/share/doc/osmo-smlc/examples
usr/share/doc/osmo-smlc/examples/osmo-smlc/osmo-smlc.cfg usr/share/doc/osmo-smlc/examples

View File

@@ -0,0 +1,26 @@
== Configure Cell Locations
To determine geographic location estimates based on the serving cell, OsmoSMLC
needs preconfigured global positions by latitude and longitude, for each cell of
each BSC.
On the `cells` configuration node, cell locations can be indicated by LAC and
CI, or by Cell Global Identity. The following example configures the position
for a cell by LAC 23 and CI 42:
----
cells
lac-ci 23 42 lat 12.3456 lon 23.4567
----
The following example configures the position by a Cell Global Identity with
PLMN 001-01, LAC 2 and CI 3:
----
cells
cgi 001 01 2 3 lat 34.5678 lon 45.6789
----
If a cell's latitude and longitude is not configured, all location requests for
subscribers served by that cell are answered by a BSSMAP-LE Perform Location
Response without a Location Estimate and LCS Cause "Facility not supported".

View File

@@ -0,0 +1,11 @@
== Positioning Methods
So far, OsmoSMLC provides only TA-based positioning.
=== TA-Based Positioning
In TA-based positioning, the serving Cell Id and the Timing Advance (a.k.a.
Access Delay) are provided by the BSC. OsmoSMLC returns a GAD "ellipsoid point
with uncertainty circle" as location estimate. The ellipsoid point is the
latitude and longitude of the serving cell, and the uncertainty circle is the
maximum distance from that cell based on the Timing Advance information.

View File

@@ -63,10 +63,11 @@ has to configure a distinct point-code. See <<cs7_config>>.
===== Configure SCCP/M3UA (AoIP)
OsmoSMLC acts as client to contact an STP instance and establish an SCCP/M3UA
link.
link. OsmoSMLC always uses the SSN "SMLC (BSSMAP-LE)" (SSN code 252). The
configurable point-code defaults to 0.23.6 (190).
An example configuration of OsmoSMLC's Lb SCCP link, assuming the SMLC at
point-code 1.23.6 via an SG listening for M3UA at 127.0.0.1:2905:
point-code 1.23.6, listening for M3UA at 127.0.0.1:2905:
----
cs7 instance 0

View File

@@ -18,6 +18,10 @@ include::./common/chapters/logging.adoc[]
include::./common/chapters/cs7-config.adoc[]
include::{srcdir}/chapters/positioning.adoc[]
include::{srcdir}/chapters/cells.adoc[]
include::./common/chapters/counters-overview.adoc[]
// include::{srcdir}/chapters/counters.adoc[]

File diff suppressed because it is too large Load Diff

View File

@@ -78,6 +78,31 @@ static void print_help()
printf(" --vty-ref-xml Generate the VTY reference XML output and exit.\n");
}
static void handle_long_options(const char *prog_name, const int long_option)
{
static int vty_ref_mode = VTY_REF_GEN_MODE_DEFAULT;
switch (long_option) {
case 1:
vty_ref_mode = get_string_value(vty_ref_gen_mode_names, optarg);
if (vty_ref_mode < 0) {
fprintf(stderr, "%s: Unknown VTY reference generation "
"mode '%s'\n", prog_name, optarg);
exit(2);
}
break;
case 2:
fprintf(stderr, "Generating the VTY reference in mode '%s' (%s)\n",
get_value_string(vty_ref_gen_mode_names, vty_ref_mode),
get_value_string(vty_ref_gen_mode_desc, vty_ref_mode));
vty_dump_xml_ref_mode(stdout, (enum vty_ref_gen_mode) vty_ref_mode);
exit(0);
default:
fprintf(stderr, "%s: error parsing cmdline options\n", prog_name);
exit(2);
}
}
static void handle_options(int argc, char **argv)
{
while (1) {
@@ -90,7 +115,8 @@ static void handle_options(int argc, char **argv)
{"config-file", 1, 0, 'c'},
{"version", 0, 0, 'V' },
{"log-level", 1, 0, 'e'},
{"vty-ref-xml", 0, &long_option, 1},
{"vty-ref-mode", 1, &long_option, 1},
{"vty-ref-xml", 0, &long_option, 2},
{0, 0, 0, 0}
};
@@ -105,14 +131,8 @@ static void handle_options(int argc, char **argv)
print_help();
exit(0);
case 0:
switch (long_option) {
case 1:
vty_dump_xml_ref(stdout);
exit(0);
default:
fprintf(stderr, "error parsing cmdline options\n");
exit(2);
}
handle_long_options(argv[0], long_option);
break;
case 'd':
log_parse_category_mask(osmo_stderr_target, optarg);
break;

View File

@@ -140,10 +140,11 @@ int main()
void *ctx = talloc_named_const(NULL, 0, "smlc_subscr_test");
osmo_init_logging2(ctx, &log_info);
log_set_print_filename(osmo_stderr_target, 0);
log_set_print_filename2(osmo_stderr_target, LOG_FILENAME_NONE);
log_set_print_timestamp(osmo_stderr_target, 0);
log_set_use_color(osmo_stderr_target, 0);
log_set_print_category(osmo_stderr_target, 1);
log_set_print_category_hex(osmo_stderr_target, 0);
g_smlc = smlc_state_alloc(ctx);
@@ -154,4 +155,3 @@ int main()
printf("Done\n");
return 0;
}