Dear Osmocom community,
I have been working on GAPK (GSM Audio Packet Knife) for some
time, and now I would like to share some achievements.
Previously GAPK was represented as a single binary that
could be called with some command line arguments in order
to perform required operations. This is only handy for
humans, but not for other programs, which may also need
to perform some format / codec conversations or audio
capture / playback.
One of such programs is the mobile from OsmocomBB project.
Currently, when you're making a voice call, both audio
capture and playback are only possible on the L1 side,
i.e. on a Calypso based phone. Of course, the audio stream
can be redirected via MNCC socket, but this is not what
a regular OsmocomBB user would like to do. Moreover, there
is a lack of AMR codec support.
Also, there is another GNURadio based project named GR-GSM.
In short, this is a set of blocks for GSM signal reception,
demodulation and further processing. At the moment, one has
TCH Full Rate decoding capabilities only. Audio playback is
not supported yet.
Having these projects in my mind, I have got an idea of
creating a shared library from the GAPK source code. And,
a few days ago I was managed to get the audio playback
working in OsmocomBB. I hope, this library will be also
usable for other projects.
Brief list of changes were made:
- Composed a shared library named libosmogapk
- All exposed symbols have got an 'osmo_gapk' prefix
- Added a pkg-config manifest and a symbol export map
- Integrated the Osmocom logging framework
- Benchmarking is now disabled by default
- Processing queue now based on the linuxlist
- Fixed program exit due to ALSA buffer underrun
- Fixed ALSA audio playback from file
- Old gapk application was renamed to 'osmo-gapk'
and linked against the library
- Adjusted verbosity level (normal / debug)
- Fixed I/O combinations (ALSA, RTP, file...) check
All changes could be found at the fixeria/lib branch of GAPK.
I hope to see them merged, and open for discussions ;)
With best regards,
Vadim Yanitskiy.
Hi List!
As there isn't so much about GPRS on here, I though I might
write something about experiments over the last couple of
weeks with data inside and outside of the lab.
I've installed up to date versions of osmo-bts and osmo-pcu
on sysmobts 2050 hardware and it's working great!
Dynamic channels are really nice, with half rate TCH and AMR
working perfectly. Thanks for all that work!
The question for this experiment was if it was going to be
feasible to actually do anything with several hundred data
hungry spying devices.... I mean mobile phones on the network.
For the traffic control, I setup a local blacklisting or
whitelisting dns server.
I've tried both. Blacklisting the worst culprits would be
nice, but in practice I think I'll have to go for
whitelisting only the intended permitted services.
I configured pcodns1 in the ggsn to point to this DNS
server, AND I setup a port 53 redirect to catch quite a lot
of traffic from android that likes to just talk directly to
8.8.8.8 anyway.
In the wild, some dns request analysis reveals the worst
culprits (this is a very basic analysis) appear to be all
the google update stuff, play store etc, facebook iCloud,
(all to be expected) , and certain CDNs. Some research shows
that these CDN companys specialize in delivery of
advertising content inside apps such as mobile platform
games. Such is the sad state of affairs on today's internet.
Fortunately, we have iptables and ip sets and we have AS
blocks assigned to certain bandwidth hungry corporations :-)
So turns out it seems quite feasible to supply service for
text messages with certain popular IM services to many phones.
Short voice clips worked quite well in the lab tests,
although support for media such as pictures and videos was
not so great. I have yet to successfully send an image
(sourced via device camera within the app) over a "secret"
chat with Telegram messenger.
As this is not a very low level report, rather intended as
some light reading :) I also have a question in a similar
light vein.
I'm still getting to grips with the log messages available
in the pcu , the sgsn and not so much the ggsn, and I'm
observing and learning the sequence of events, so at some
point I should be able to present a better report about this
with some relevant traces and better analysis.
For now, In the lab tests I am constantly monitoring the RF
uplink; I observe that a phone will attach and then go
quiet. A foreground running app may report that it is
"connecting" or some such, and the little arrows may be
flashing to show that apparently we are transmitting data,
but there is nothing on the uplink. My guess here is the OS
has sent something and the baseband is saying yes yes doing
it.. but the baseband at the same time is waiting for
something from the network (and not getting it)?
This situation can persist for some time.. several minutes.
I have observed that if I initiate any data transfer from
the network side then the uplink is established. By the same
token, If I transfer a file from the network (http download
or some such), the same applies. The link stays active and
the IM chat session is very responsive alongside the file
transfer. Shortly after the file transfer completes, the
uplink is quiet again and the latency in the IM session
becomes a problem.
>From a UX point of view.. Let me put it this way.. I can
start an IM chat, send a message.. but then we get to this
quiet uplink sitation and the messages stop sending.. so
from the user's point of view it's frustrating. the phone
looks like it's transmitting.. until there are timeouts and
disconnections and the app may show some indication to the
user that it is having trouble connecting to the network.
However if I run something on the network side like a script
that sends one ping to the phone every ten seconds, this
keeps the connection 'alive' and the IM session is much more
satisfactory for the user.
I should note I believe I observe this also on commercial
networks in some places like certain Berlin U-bahn stations
where you can still find (only) GPRS data coverage. Also, a
more scientific report is needed, but I seem to observe some
phones behaving "better" than others, as in being a little
more active on the uplink. Maybe it is related to power
saving configuration?
The not very low level and scientific question here is: Is
this kind of thing tunable with gprs parameters?
Any tips on which ones to play with? ( Quite happy to wait
until I can send a more useful report too! )
Thanks!
Keith.
See <http://jenkins.osmocom.org/jenkins/job/Coverity-Upload/label=linux_amd64_de…>
------------------------------------------
[...truncated 1.84 MB...]
test_apps/Makefile.am:17: but option 'subdir-objects' is disabled
binaries/Makefile.am:9: 'test_apps/Makefile.am' included from here
test_apps/Makefile.am:17: warning: source file '$(TESTAPPS_SOURCE_DIR)/esme.c' is in a subdirectory,
test_apps/Makefile.am:17: but option 'subdir-objects' is disabled
binaries/Makefile.am:9: 'test_apps/Makefile.am' included from here
test_pdu/Makefile.am:72: warning: source file '$(TESTPDU_SOURCE_DIR)/core.c' is in a subdirectory,
test_pdu/Makefile.am:72: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:72: warning: source file '$(TESTPDU_SOURCE_DIR)/generic_nack_test.c' is in a subdirectory,
test_pdu/Makefile.am:72: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:76: warning: source file '$(TESTPDU_SOURCE_DIR)/core.c' is in a subdirectory,
test_pdu/Makefile.am:76: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:76: warning: source file '$(TESTPDU_SOURCE_DIR)/outbind_test.c' is in a subdirectory,
test_pdu/Makefile.am:76: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:80: warning: source file '$(TESTPDU_SOURCE_DIR)/core.c' is in a subdirectory,
test_pdu/Makefile.am:80: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:80: warning: source file '$(TESTPDU_SOURCE_DIR)/query_sm_resp_test.c' is in a subdirectory,
test_pdu/Makefile.am:80: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:84: warning: source file '$(TESTPDU_SOURCE_DIR)/core.c' is in a subdirectory,
test_pdu/Makefile.am:84: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:84: warning: source file '$(TESTPDU_SOURCE_DIR)/query_sm_test.c' is in a subdirectory,
test_pdu/Makefile.am:84: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:88: warning: source file '$(TESTPDU_SOURCE_DIR)/core.c' is in a subdirectory,
test_pdu/Makefile.am:88: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:88: warning: source file '$(TESTPDU_SOURCE_DIR)/replace_sm_resp_test.c' is in a subdirectory,
test_pdu/Makefile.am:88: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:92: warning: source file '$(TESTPDU_SOURCE_DIR)/core.c' is in a subdirectory,
test_pdu/Makefile.am:92: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:92: warning: source file '$(TESTPDU_SOURCE_DIR)/replace_sm_test.c' is in a subdirectory,
test_pdu/Makefile.am:92: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_apps/Makefile.am:4: warning: source file '$(TESTAPPS_SOURCE_DIR)/tcp.c' is in a subdirectory,
test_apps/Makefile.am:4: but option 'subdir-objects' is disabled
binaries/Makefile.am:9: 'test_apps/Makefile.am' included from here
test_apps/Makefile.am:4: warning: source file '$(TESTAPPS_SOURCE_DIR)/smpp.c' is in a subdirectory,
test_apps/Makefile.am:4: but option 'subdir-objects' is disabled
binaries/Makefile.am:9: 'test_apps/Makefile.am' included from here
test_apps/Makefile.am:4: warning: source file '$(TESTAPPS_SOURCE_DIR)/sendwp.c' is in a subdirectory,
test_apps/Makefile.am:4: but option 'subdir-objects' is disabled
binaries/Makefile.am:9: 'test_apps/Makefile.am' included from here
test_pdu/Makefile.am:4: warning: source file '$(TESTPDU_SOURCE_DIR)/core.c' is in a subdirectory,
test_pdu/Makefile.am:4: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:4: warning: source file '$(TESTPDU_SOURCE_DIR)/submit_multi_resp_test.c' is in a subdirectory,
test_pdu/Makefile.am:4: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:8: warning: source file '$(TESTPDU_SOURCE_DIR)/core.c' is in a subdirectory,
test_pdu/Makefile.am:8: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:8: warning: source file '$(TESTPDU_SOURCE_DIR)/submit_multi_test.c' is in a subdirectory,
test_pdu/Makefile.am:8: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:96: warning: source file '$(TESTPDU_SOURCE_DIR)/core.c' is in a subdirectory,
test_pdu/Makefile.am:96: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:96: warning: source file '$(TESTPDU_SOURCE_DIR)/submit_sm_resp_test.c' is in a subdirectory,
test_pdu/Makefile.am:96: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:100: warning: source file '$(TESTPDU_SOURCE_DIR)/core.c' is in a subdirectory,
test_pdu/Makefile.am:100: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:100: warning: source file '$(TESTPDU_SOURCE_DIR)/submit_sm_test.c' is in a subdirectory,
test_pdu/Makefile.am:100: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:104: warning: source file '$(TESTPDU_SOURCE_DIR)/core.c' is in a subdirectory,
test_pdu/Makefile.am:104: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:104: warning: source file '$(TESTPDU_SOURCE_DIR)/unbind_resp_test.c' is in a subdirectory,
test_pdu/Makefile.am:104: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:108: warning: source file '$(TESTPDU_SOURCE_DIR)/core.c' is in a subdirectory,
test_pdu/Makefile.am:108: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
test_pdu/Makefile.am:108: warning: source file '$(TESTPDU_SOURCE_DIR)/unbind_test.c' is in a subdirectory,
test_pdu/Makefile.am:108: but option 'subdir-objects' is disabled
binaries/Makefile.am:8: 'test_pdu/Makefile.am' included from here
binaries/Makefile.am: installing 'aux_config/depcomp'
test_apps/Makefile.am:26: warning: variable 'analizer_SOURCES' is defined but no program or
test_apps/Makefile.am:26: library has 'analizer' as canonical name (possible typo)
test_apps/Makefile.am:17: warning: variable 'esme_SOURCES' is defined but no program or
test_apps/Makefile.am:17: library has 'esme' as canonical name (possible typo)
test_apps/Makefile.am:4: warning: variable 'sendwp_SOURCES' is defined but no program or
test_apps/Makefile.am:4: library has 'sendwp' as canonical name (possible typo)
test_apps/Makefile.am:30: warning: variable 'analizer_LDFLAGS' is defined but no program or
test_apps/Makefile.am:30: library has 'analizer' as canonical name (possible typo)
test_apps/Makefile.am:24: warning: variable 'esme_LDFLAGS' is defined but no program or
test_apps/Makefile.am:24: library has 'esme' as canonical name (possible typo)
test_apps/Makefile.am:11: warning: variable 'sendwp_LDFLAGS' is defined but no program or
test_apps/Makefile.am:11: library has 'sendwp' as canonical name (possible typo)
+ ./configure --prefix=/home/osmocom-build/osmo-ci/coverity/install-Osmocom
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for pkg-config... /usr/bin/pkg-config
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.20... yes
checking for ANSI C header files... (cached) yes
checking for stdlib.h... (cached) yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking for stdint.h... (cached) yes
checking for string.h... (cached) yes
checking for LIBXML2... no
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for memset... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating def_frame/Makefile
config.status: creating def_list/Makefile
config.status: creating binaries/Makefile
config.status: creating test_apps/Makefile
config.status: creating libsmpp34.pc
config.status: creating aux_config/config.h
config.status: executing depfiles commands
config.status: executing libtool commands
+ make -j 3
echo 1.12.10-05bc > .version-t && mv .version-t .version
make all-recursive
make[1]: Entering directory '/home/osmocom-build/osmo-ci/coverity/source-Osmocom/libsmpp34'
Making all in binaries
make[2]: Entering directory '/home/osmocom-build/osmo-ci/coverity/source-Osmocom/libsmpp34/binaries'
/bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -MT libsmpp34_la-smpp34_dumpBuf.lo -MD -MP -MF .deps/libsmpp34_la-smpp34_dumpBuf.Tpo -c -o libsmpp34_la-smpp34_dumpBuf.lo `test -f '../src/smpp34_dumpBuf.c' || echo './'`../src/smpp34_dumpBuf.c
/bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -MT libsmpp34_la-smpp34_dumpPdu.lo -MD -MP -MF .deps/libsmpp34_la-smpp34_dumpPdu.Tpo -c -o libsmpp34_la-smpp34_dumpPdu.lo `test -f '../src/smpp34_dumpPdu.c' || echo './'`../src/smpp34_dumpPdu.c
/bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -MT libsmpp34_la-smpp34_pack.lo -MD -MP -MF .deps/libsmpp34_la-smpp34_pack.Tpo -c -o libsmpp34_la-smpp34_pack.lo `test -f '../src/smpp34_pack.c' || echo './'`../src/smpp34_pack.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -MT libsmpp34_la-smpp34_dumpBuf.lo -MD -MP -MF .deps/libsmpp34_la-smpp34_dumpBuf.Tpo -c ../src/smpp34_dumpBuf.c -fPIC -DPIC -o .libs/libsmpp34_la-smpp34_dumpBuf.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -MT libsmpp34_la-smpp34_pack.lo -MD -MP -MF .deps/libsmpp34_la-smpp34_pack.Tpo -c ../src/smpp34_pack.c -fPIC -DPIC -o .libs/libsmpp34_la-smpp34_pack.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -MT libsmpp34_la-smpp34_dumpPdu.lo -MD -MP -MF .deps/libsmpp34_la-smpp34_dumpPdu.Tpo -c ../src/smpp34_dumpPdu.c -fPIC -DPIC -o .libs/libsmpp34_la-smpp34_dumpPdu.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -MT libsmpp34_la-smpp34_dumpBuf.lo -MD -MP -MF .deps/libsmpp34_la-smpp34_dumpBuf.Tpo -c ../src/smpp34_dumpBuf.c -o libsmpp34_la-smpp34_dumpBuf.o >/dev/null 2>&1
mv -f .deps/libsmpp34_la-smpp34_dumpBuf.Tpo .deps/libsmpp34_la-smpp34_dumpBuf.Plo
/bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -MT libsmpp34_la-smpp34_unpack.lo -MD -MP -MF .deps/libsmpp34_la-smpp34_unpack.Tpo -c -o libsmpp34_la-smpp34_unpack.lo `test -f '../src/smpp34_unpack.c' || echo './'`../src/smpp34_unpack.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -MT libsmpp34_la-smpp34_unpack.lo -MD -MP -MF .deps/libsmpp34_la-smpp34_unpack.Tpo -c ../src/smpp34_unpack.c -fPIC -DPIC -o .libs/libsmpp34_la-smpp34_unpack.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -MT libsmpp34_la-smpp34_pack.lo -MD -MP -MF .deps/libsmpp34_la-smpp34_pack.Tpo -c ../src/smpp34_pack.c -o libsmpp34_la-smpp34_pack.o >/dev/null 2>&1
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -MT libsmpp34_la-smpp34_dumpPdu.lo -MD -MP -MF .deps/libsmpp34_la-smpp34_dumpPdu.Tpo -c ../src/smpp34_dumpPdu.c -o libsmpp34_la-smpp34_dumpPdu.o >/dev/null 2>&1
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -MT libsmpp34_la-smpp34_unpack.lo -MD -MP -MF .deps/libsmpp34_la-smpp34_unpack.Tpo -c ../src/smpp34_unpack.c -o libsmpp34_la-smpp34_unpack.o >/dev/null 2>&1
mv -f .deps/libsmpp34_la-smpp34_pack.Tpo .deps/libsmpp34_la-smpp34_pack.Plo
/bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -MT libsmpp34_la-smpp34_structs.lo -MD -MP -MF .deps/libsmpp34_la-smpp34_structs.Tpo -c -o libsmpp34_la-smpp34_structs.lo `test -f '../src/smpp34_structs.c' || echo './'`../src/smpp34_structs.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -MT libsmpp34_la-smpp34_structs.lo -MD -MP -MF .deps/libsmpp34_la-smpp34_structs.Tpo -c ../src/smpp34_structs.c -fPIC -DPIC -o .libs/libsmpp34_la-smpp34_structs.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -MT libsmpp34_la-smpp34_structs.lo -MD -MP -MF .deps/libsmpp34_la-smpp34_structs.Tpo -c ../src/smpp34_structs.c -o libsmpp34_la-smpp34_structs.o >/dev/null 2>&1
mv -f .deps/libsmpp34_la-smpp34_structs.Tpo .deps/libsmpp34_la-smpp34_structs.Plo
/bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -MT libsmpp34_la-smpp34_params.lo -MD -MP -MF .deps/libsmpp34_la-smpp34_params.Tpo -c -o libsmpp34_la-smpp34_params.lo `test -f '../src/smpp34_params.c' || echo './'`../src/smpp34_params.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -MT libsmpp34_la-smpp34_params.lo -MD -MP -MF .deps/libsmpp34_la-smpp34_params.Tpo -c ../src/smpp34_params.c -fPIC -DPIC -o .libs/libsmpp34_la-smpp34_params.o
mv -f .deps/libsmpp34_la-smpp34_unpack.Tpo .deps/libsmpp34_la-smpp34_unpack.Plo
gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -fPIC -g -O2 -MT core.o -MD -MP -MF .deps/core.Tpo -c -o core.o `test -f '../test_pdu/core.c' || echo './'`../test_pdu/core.c
mv -f .deps/core.Tpo .deps/core.Po
gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -fPIC -g -O2 -MT submit_multi_resp_test.o -MD -MP -MF .deps/submit_multi_resp_test.Tpo -c -o submit_multi_resp_test.o `test -f '../test_pdu/submit_multi_resp_test.c' || echo './'`../test_pdu/submit_multi_resp_test.c
make[2]: *** No rule to make target '../binaries/libsmpp34.la', needed by 'submit_multi_resp_test'. Stop.
make[2]: *** Waiting for unfinished jobs....
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../aux_config -I../src -I.. -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -Wall -D_REENTRANT -DBSD_COMP -D_POSIX_PTHREAD_SEMANTICS -g -O2 -MT libsmpp34_la-smpp34_params.lo -MD -MP -MF .deps/libsmpp34_la-smpp34_params.Tpo -c ../src/smpp34_params.c -o libsmpp34_la-smpp34_params.o >/dev/null 2>&1
mv -f .deps/submit_multi_resp_test.Tpo .deps/submit_multi_resp_test.Po
mv -f .deps/libsmpp34_la-smpp34_dumpPdu.Tpo .deps/libsmpp34_la-smpp34_dumpPdu.Plo
mv -f .deps/libsmpp34_la-smpp34_params.Tpo .deps/libsmpp34_la-smpp34_params.Plo
make[2]: Leaving directory '/home/osmocom-build/osmo-ci/coverity/source-Osmocom/libsmpp34/binaries'
Makefile:460: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/osmocom-build/osmo-ci/coverity/source-Osmocom/libsmpp34'
Makefile:368: recipe for target 'all' failed
make: *** [all] Error 2
[WARNING] Build command ./build_Osmocom.sh exited with code 2. Please verify that the build completed successfully.
Emitted 454 C/C++ compilation units (100%) successfully
454 C/C++ compilation units (100%) are ready for analysis
For more details, please look at:
/home/osmocom-build/osmo-ci/coverity/source-Osmocom/cov-int/build-log.txt
Build step 'Execute shell' marked build as failure
Dear Osmocom community,
since the NITB-split has completed, and we have integrated 3G fully
into master, and also merged nitb-split and nitb packages in one
feed, the next step on the agenda was to create packages/feeds that
are more stable than "nightly".
After a long day of "release engineering" work and related fixes,
starting from today, Osmocom not only has the "osmocom:nightly" feed
tracking the "master of the day" of all repositories.
We now also have a "osmocom:latest" feed for various Debian and Ubuntu
GNU/Linux distributions which contains packages for the last tagged
version of each source code repository.
The setup is fairly similar to that of the "osmocom:nightly" packages
and is described at
https://osmocom.org/projects/cellular-infrastructure/wiki/Latest_Builds
I've also removed all known references to Nightly_Builds on the wiki and
replaced it with a reference to the new Binary_Packages page explaining
the differences between Nightly_Builds and Latest_Builds:
https://osmocom.org/projects/cellular-infrastructure/wiki/Binary_Packages
As you can see at
https://build.opensuse.org/project/monitor/network:osmocom:latest
almost all the packages are building already. I intend to fix the
remaining three (osmo-bsc, osmo-msc and osmo-pcu) shortly.
--
- Harald Welte <hwelte(a)sysmocom.de> http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Alt-Moabit 93
* 10559 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Director: Harald Welte
Hi.
For quite some time Osmocom packages are available in Debian [1] and Ubuntu [2]
repositories. That's a really nice thing although there're only minor distro-specific
updates between different releases so far.
In addition to usual "fix old bugs, add new features (and bugs :)" progress, there're
bigger changes happening in Osmocom [3] projects.
Most notably: we now have multiple repositories for BSC/MSC/SGSN instead of single
OpenBSC repo. The process is not finished yet (doc/manuals update is still under way
for example) but I think it's already a good time to discuss how can we bring those
changes into Debian/Ubuntu repositories. We already have nightly builds for all
packages from new repositories [4] as well as old ones [5].
The basic question is - what shall we do to get the packages built from new
repositories into Debian/Ubuntu?
Is there something we (upstream) can do, to facilitate the process?
Are there some notable .deb-specific patches you'd like to see merged?
Should I have used some other channel to communicate instead of emails I've fetched
from changelogs?
[1]
https://packages.debian.org/search?keywords=osmocom&searchon=names&suite=st…
[2]
https://packages.ubuntu.com/search?suite=all§ion=all&arch=amd64&keyword…
[3] https://osmocom.org/issues/2257
[4] https://build.opensuse.org/project/monitor/network:osmocom:nitb-split:night…
[5] https://build.opensuse.org/project/monitor/network:osmocom:nightly
--
Max Suraev <msuraev(a)sysmocom.de> http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Alt-Moabit 93
* 10559 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Director: Harald Welte
Dear Osmocom community,
I would like to point out that at sysmocom, we're currently (again)
hiring [1]. If you happen to have an interest in open source cellular
communications and are fluent in C language development, we would
love to hear from you.
sysmocom probably doesn't need any introduction here, but just in case:
The company was founded by Holger Freyther and Harald Welte, two of the
leading OpenBSC and Osmocom developers from the very early days of the
project. Today we are responsible for by far the largest number of commits
to the Osmocom GSM/3G infrastructure related git repositories.
Among our current priorities are automatic testing for the GPRS PCU,
generalization of the OsmoMGW media gateway, support for load-based hand-over,
inter-BSC hand-over as well as various improvements on the lower layers
of the GPRS protocol stack.
We're very dedicated to the cause in furthering the capabilities of
open source cellular infrastructure from 2G to 4G. We believe in
working upstream, no open core or dual licensing.
If you have an interest working with an enthusiastic, strong technical
and dedicated team of Osmocom hackers, please don't hesitate to let me know,
best by e-mail to jobs(a)sysmocom.de
Thanks,
Harald
p.s.: I hope this kind of message is not disturbing to anyone. I think
it is important to the Osmocom project to have more paid people working
on the stack, so it is justified. The positions we are seeking to fill
will work [almost exclusively] on Osmocom, so it's not a random job ad
but in the very interest of Osmocom, and hence on-topic for this list.
[1] https://www.sysmocom.de/jobs/
--
- Harald Welte <hwelte(a)sysmocom.de> http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Alt-Moabit 93
* 10559 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Director: Harald Welte
Hi Neels,
I was reading the subj and I have a couple questions:
> Note that not all information is copied to the hlr.db, just IMSI and 2G auth tokens.
Are at least extension values migrated as well? Could you explicitly
list what is not migrated?
Maybe just list exact list of values migrated to make sure there is no
confusion by users?
> # ---------- to OsmoBSC:
Is '#' a valid comment for Osmocom files? I always saw ';' used instead.
And one note:
Not sure if you have time for that, but what would be really helpful
is a table with all OsmoNITB, OsmoBSC and OsmoMSC configuration values
listed and three columns showing where the value belongs. That would
make it much easier to users to migrate and (I would expect) reduce
the number of questions on the mailing list. Something like this:
Configuration value OsmoNITB OsmoBSC OsmoMSC
network / network country code 901 yes no yes
msc / msc-addr msc_remote no yes no
PS Great work! Keep it up!
--
Regards,
Alexander Chemeris.
CTO/Founder, Fairwaves, Inc.
https://fairwaves.co
Dear Community,
while working on the "osmocom:latest" builds the last few days, I noticed
that some packages (notably osmo-pcu) install a config file to /etc/osmocom,
while most other packages simply install some example config files to
/usr/share/doc/* and don't create either /etc/osmocom nor any config files
in it - despite the systemd jobs depending on it.
For sure, the behavior should be unified across all Osmocom packages, but
in which way?
What is the best practise here? What do our users expect?
Let's have a discussion here and note the conclusion in
https://osmocom.org/issues/2602 before implementing it.
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi all,
I've created a prototyp'ish JJB YAML file [1] that holds all current
gerrit verification jobs on jenkins.osomocom.org. Holger and Lynxis
suggested to explore this way of managing Jenkins jobs in the "jenkins
build slaves: Rationale for some builds in docker vs. some not?"
thread.
Following differences occurred, while clicking through all gerrit jobs
configurations:
- some jobs using gcc c compiler warnings v3, some v4
- some jobs are verifying drafts, some not
- only two gerrit jobs are allowing concurrent builds
Are these differences wanted? All job differences are commented in the
YAML file. The jobs are deployed on jenkins.blobb.me [2].
What do you think about this approach [1] in general?
Regards,
André
[1] https://gerrit.osmocom.org/#/c/3911/1
[2] https://jenkins.blobb.me/view/gerrit-JJB/
Dear all,
Holger and I (plus later the sysmocom team) had a discussion about whether
we should continue to keep the FreeBSD build testing.
Right now, jenkins is set up in a way to test build of a patch on Linux
(currently Debian 8) and FreeBSD (currently 10.3). Only if it builds
and passes "make check", the patch gets the magical "+V" so it can be
merged.
While in general it's of course good practise to write portable code and
to test building on multiple operating systems, this adds quite a bit of
extra effort:
* patches every so often don't build on FreeBSD due to include header
differences or the like, requiring extra iterations of a patch
* the build takes longer time as the build matrix is multiplied by two
operating systems
* we cannot easily/safely migrate the way we buld to docker, as docker
on FreeBSD is experimental
Particularly during my recent OpenGGSN developments (IPv6) support, this
was a big PITA and I'm sure I spent more time in debugging FreeBSD build
issues than actually writing the code in the first place.
Given that we arr not aware of anyone using the Osmocom stack on
FreeBSD, the suggestion is thus to focus our available time on actual GSM
related features rather than fixing up portability issues.
So unless we receive significant complains as a response to this e-mail,
we will disable the automatic build testing for patches on FreeBSD.
This doesn't mean we will drop related code from our projects. We still
appreciate build and other fixes for other platforms, but those would
have to come as contributions from users on those platforms, rather than
something that's actively maintained and tested by Osmocom upstream.
If we want to extend build testing, I think it's more useful to have e.g.
ARM/Linux builds, or clang builds on Linux than the FreeBSD builds.
Let me know what you think.
Regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi team
I want to test the data on timeslot basis, where I can activate alternate
timeslot oN B200.
How this is possible?
I tried to add parameters in bts-conf file with slotmask as 10101010. But I
don't see any change.
I also tried to change this value from 0xff to 0xaa in osmo-bts-trx code,
but I get error.
Can u please help?
Regards
Mayuri
Talking about libosmocore changes that break builds ;)
By chance I noticed that since now osmo-gsm-tester tests fail for AoIP,
osmo-msc bailing with
fsm.c:150 Attempting to register FSM with illegal identifier 'FSM RESET'
fsm.c:216 Attempting to allocate FSM instance of type 'FSM RESET' with illegal identifier 'FSM RESET INST'
@pmaier, please fix osmo-msc's FSM name in a_reset.c ASAP. We can't test
OsmoMSC until you do. Thanks!
~N
Dear Osmocom comunity,
after my patches being in gerrit since October 3 without getting any
significant review comments, I decided to rebase+merge the code to
enforce correct "identifiers" for entnties like rate_ctr or osmo_fsm
which get registered to libosmocore and which are subsequently
automatically exported via CTRL.
A valid identifier is from now on known as any 7-bit ASCII string
excluding characters from the following set:
:., {}[]()<>|~\\^`'\"?=;/+*&%$#!
This has caused some (not entirely unexpected) breakage in osmo-bts.git
and osmo-bsc.git and is the cause of a couple of "red" Jenkins builds
for those projects. I've quickly followed-up with patches for those
two repositories to make sure other people/patches don't suffer from
fall-out.
What's important to note from now on and in the future:
* don't use any string identifiers that violate osmo_identifier_valid()
* check the return value of calls like osmo_fsm_register() as they may
fail if your identifiers are incorrect
* use ':' as separator in rate_ctr_group or rate_ctr names. Any existing
'.' will be transparently converted to ':' for compatibility reasons.
* if you find other sub-systems in the libosmo* universe that use string
identifiers for certain objects, let's try to introduce calls to
osmo_identifier_valid() in all of their registration paths to ensure
that we could later on add automatic export of such objects to CTRL
or other interfaces without having to change the name at that point.
Things that come to my mind are e.g.
* SCCP global titles and AS/ASP names in libosmo-sigtran
* SMPP ESME names in osmo-{msc,nitb}
Patches welcome!
Regards,
Harald
--
- Harald Welte <hwelte(a)sysmocom.de> http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Alt-Moabit 93
* 10559 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Director: Harald Welte
Hello all,
I am getting the following error and osmocom-bts-virtual just closes giving
following error.
bts.c:208 Shutting down BTS 0, Reason Abis close
<0006> bts_model.c:161 Unimplemented bts_model_trx_deact_rf
<0006> bts_model.c:55 Unimplemented bts_model_trx_close
Please help
Thanks
Anindya
Hi Neels,
On Mon, Oct 23, 2017 at 03:54:40AM +0200, Neels Hofmeyr wrote:
> Ah, damn. I checked all of the repositories I know to use the VTY, I didn't
> imagine that OsmocomBB also has a VTY. That's really my fault then.
I think in general we should not fall into that trap. We have *no clue* at all
who might be using libosmo* for whatever purpose. If we provide a libary with
a given API/ABI, then it's our responsibility to keep that ABI/API as stable as
possible.
I understand that it was hardly possible without fall-out in that particular
case, and for sure there are exceptions.
However, completely unrelated to this particular topic (and hence the Cc
to openbsc@) I'm not happy in general with the way how "carlessly" we
sometimes introduce breakage. We have to be more disciplined in general
on this. All of us.
BTW: The fact that this change has gone into master without being
noticed also means that possibly we're not modelling osmocom-bb as a
downstream user of libosmocore that needs to be rebuilt (and at least
checked if it starts up correctly?) whenever testing a libosmocore
change. That's also something to investigate. Maybe there's some way
we can test this without too much effort.
Regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
This patch was merged, but I frankly don't like what it does.
Building in a separate dir is fine, but it does so with a bunch of changes
along that introduce indenting errors and potentially destroy the scripts'
certainty of building cleanly every time.
Please still reply to my comments at
https://gerrit.osmocom.org/#/c/3132/
...maybe actually here on the ML instead of on gerrit?
Thanks!
~N
On Sat, Oct 21, 2017 at 07:55:00PM +0000, OBS Notification wrote:
> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/l…
>
> Package network:osmocom:nightly/libosmocore failed to build in xUbuntu_16.04/i586
The failure is
[ 235s] +/usr/src/packages/BUILD/tests/testsuite.dir/at-groups/9/test-source: line 25: 32555 Illegal instruction $abs_top_builddir/tests/conv/conv_gsm0503_test
Seems our cpu feature selection isn't working on that particular build host.
Should we investigate or just hope to hit another build host next time?
~N
Hi.
When we're making new library release we got to make sure that the API/ABI versions
are properly updated by correctly setting *_LIBVERSION which has 3 components:
current[:revision[:age]].
That's documented in
https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info…
The rules are as follows:
1. If the library source code has changed at all since the last update, r++;
2. If any interfaces have been added, removed, or changed since the last update, c++,
r=0;
3. If any interfaces have been added since the last public release, a++;
4. If any interfaces have been removed or changed since the last public release, a=0.
What's not clear to me is how those rules should be used. Do we apply them sequentially?
For example, I've added function lol_what() to public API of my library with previous
LIBVERSION=3:2:1 and would like to compute new LIBVERSION properly.
According to rule #1 I've got to update revision: 3:3:1
According to rule #2 I've got to update current and reset revision: 4:0:1
The rules are conflicting so let's assume latest rule wins and apply further rules:
According to rule #3 I've got to increase age: 4:0:2
So far so good but do correct me if I'm misunderstanding it.
Now LIBVERSION=4:0:2 is released, I've removed lol_what() and added foobar()
functions. Let's bump the LIBVERSION:
#1: 4:1:2
#2: 5:0:2
#3: 5:0:3
#4: 5:0:0
Am I interpreting this right? We only increase revision if no interfaces have been
added, removed, or changed since the last update? This means that "current" and
"revision" increments are mutually exclusive.
--
Max Suraev <msuraev(a)sysmocom.de> http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Alt-Moabit 93
* 10559 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Director: Harald Welte
Hello everyone,
we are struggling to set up an 2G network using single bsc and msc
components rather than osmo-nitb.
We successfully managed to run an 2G-Network with osmo-nitb using an
usrp-n210 as trx.
Now how is the BSC supposed to connect to the MSC? In an older build of the
osmo-bsc and like described in the osmo-msc user manual I was able to setup
an cs7 instance using the m3ua via osmo-stp to the msc. But as I'm using
the nighlty-packages now there is no longer a way to configure cs7
instances in the BSC and since we are completely new to this project we
aren't up to date with all the recent changes. Apologizes for that.
We're also struggling to build the osmo-bsc sources. It quits with
"bsc_vty.c:313:5: error: implicit declaration of function ‘OSMO_SEC2DAY’".
So I guess there is a package missing but I couldn't find out which one it
is.
TIA
Best regards,
Ralf
Hi,
I have even tried authorizing imsi via sql. I could able to authorize by following https://osmocom.org/projects/osmonitb/wiki/OsmoNITB and it lists the extension number, exactly what I have assigned.
But the error still persists.
Issues listed below is similar to what I'm facing but is there any solution for this?
http://lists.osmocom.org/pipermail/openbsc/2012-February/004695.htmlhttps://osmocom.org/issues/1648#note-19
Thanks,
Sudhanthiradasan R
From: Sudhanthiradasan R
Sent: Monday, October 16, 2017 6:28 PM
To: openbsc(a)lists.osmocom.org
Subject: Location Update Error
Hello,
I'm getting below error, when I ran "/usr/local/osmo_built/bin/osmo-nitb -c ./../osmo_cfg/osmo-nitb_2trx.cfg -l ./../osmo_cfg/hlr.sqlite3 -P -C --debug=DRLL:DCC:DMM:DRR:DRSL:DNM"
<0000> abis_rsl.c:2013 (bts=0,trx=1,ts=0,ss=0) SAPI=0 ESTABLISH INDICATION
<0000> gsm_04_08.c:3960 Dispatching 04.08 message, pdisc=5
<0002> gsm_04_08.c:1389 LOCATION UPDATING REQUEST: MI(IMSI)=901550000001016 type=NORMAL
<0001> gsm_04_08.c:149 (bts 0 trx 1 ts 0 pd 05) Sending 0x18 to MS.
<0000> abis_rsl.c:2013 (bts=0,trx=1,ts=0,ss=0) SAPI=0 ERROR INDICATION
<0000> abis_rsl.c:1954 (bts=0,trx=1,ts=0,ss=0) ERROR INDICATION cause=SABM frame with information not allowed in this state in state=ACTIVE
<0002> gsm_04_08.c:596 Location Updating Request procedure timedout.
<0002> gsm_04_08.c:474 Subscriber 901550000001016:
<0001> gsm_04_08.c:149 (bts 0 trx 1 ts 0 pd 05) Sending 0x04 to MS.
Anyone had the same issue earlier? Is there any solution for this error?
Thanks,
Sudhanthiradasan R
::DISCLAIMER::
----------------------------------------------------------------------------------------------------------------------------------------------------
The contents of this e-mail and any attachment(s) are confidential and intended for the named recipient(s) only.
E-mail transmission is not guaranteed to be secure or error-free as information could be intercepted, corrupted,
lost, destroyed, arrive late or incomplete, or may contain viruses in transmission. The e mail and its contents
(with or without referred errors) shall therefore not attach any liability on the originator or HCL or its affiliates.
Views or opinions, if any, presented in this email are solely those of the author and may not necessarily reflect the
views or opinions of HCL or its affiliates. Any form of reproduction, dissemination, copying, disclosure, modification,
distribution and / or publication of this message without the prior written consent of authorized representative of
HCL is strictly prohibited. If you have received this email in error please delete it and notify the sender immediately.
Before opening any email and/or attachments, please check them for viruses and other defects.
----------------------------------------------------------------------------------------------------------------------------------------------------
Hi All,
We tried to edit the maxdly and maxdlynb in osmo-bts-trx through CLI and everything works fine.
But after saving the configuration and restarting the osmo-bts-trx instance, it give an unable to parse error.
The reason we found is that, the osmo-bts-trx needed the “osmotrx maxdly 2” string to parse the config file correctly but the CLI config save is only “maxdly 2”.
So we need to edit the config file manually so that the osmo-bts-trx can parse the config file correctly.
Best Regard,
Ron Menez
ron.menez(a)entropysolution.com<mailto:ron.menez@entropysolution.com>
[cross-post to many lists, please follow-up-to openbsc(a)lists.osmocom.org]
Dear all,
time is flying, and I would like to start early with discussions and planning
about OsmoCon and OsmoDevCon in 2018. It helps to start early.
Side note: We have some pending issues about the events from last year at
http://osmocom.org/projects/osmo-dev-con/issues - I've incorporated them
in the text below.
== OsmoDevCon ==
For OsmoDevCon, I think it's easy: We keep it as-is. Same procedure as
every year, which means:
* same venue, same catering options
* same concept of 'anyone contributing to Osmocom can apply for
registration until all seats are taken'
* same idea of inviting some few speaker[s] doing other FOSS mobile
communications work to join us
The parts that we need to change, IMHO:
* don't reduce from 4 to 3 days like last year. Have full 4 days again
* sort topics per day / half-day, i.e. have "GSM/UMTS Cellular
Infrastructure" days for BTS/BSC/NITB/MSC/HLR/SGSN/GGSN & Co,
but then have other days for other projects. This would enable people
not interested in the [continued evolvement] of the cellular projects
be able to skip those days, or to simply meet in an adjacent room for
parallel hacking sessions/discussions
* try to be a bit more structured with the schedule in general. The
existing approach works for people who attend all the event all day
long, but not so well for people with other plans / limited time
Any further change requests or topics to discuss?
Please note that Pablo Neira has offered to kindly host an OsmoDevCon in
Seville (Spain). I've attended a number of netfilter workshops he
organized there, and he's doing a great job! However, given the large
number of attendees from Berlin (and Germany in general), I think this
would make things more complicated, and more expensive for most
attendees. If you disagree with that assessment: I'm open for having
the discussion, I just thought it's more practical/economic to do it in
Berlin.
=== 10 year Anniversary Party ===
Given that 2018 marks the 10 year anniversary of Dieter and me hacking
with the Siemens BS-11 in 2008, I think the 2018 incarnation deserves
some special celebration of some form. I have no concrete idea yet, but
for sure we should so something, and it should be at/around
OsmoDevCon. And for sure we should have a BS-11 around :)
== OsmoCon ==
The public OsmoCon was welcomed and was a success. However,
let's start this discussion with a review of last years event.
=== Registration ===
* Registrations came in way too late. Two weeks ahead of the event, we were
considering to cancel it. And then within the last few days, we had
to turn people down due to limited seating capacity
* To make planning more reliable, we see on other option but to
significantly raise the registration fee combined with an equally
significant discount for early booking
=== Duration ===
* Many people requested multiple days rather than just one, in order to
make more out of (long distance) travels. This is obvious, but as we
had no idea how many people would attend at all (or if we have to
cancel due to lack of attendance), planning multiple days in the first
incarnation would have been high risk and a multitude of work
* I would suggest to expand to two or even three days this week,
possibly one days with tutorials and the other day with tech talks
* Slightly less crammed schedule due to multiple days
=== Venue ===
We recognize this yearso venue was not the best option, due to
* Bad ventilation in the basemenet
* Difficult to find
* No space next to the conference room where people can meet / hang out
in parallel to talks (not everyone attends every talk)
I still like the "understatement" of the venue. I'd prefer any hostel /
non-profit / hackerspace / university over luxurious hotels any time.
Going to an expensive venue means more or less automatically more
expensive ticket fees, which again is more likely to exclude pure
community members without a commercial activity related to Osmocom.
So any future venue would ideally:
* be able to hold slightly more people than this year
* have a second room or large lobby in which people can meet for
extended coffee breaks in parallel to some talks, as needed
* be slightly easier to find (and we have to put up some signs outside
and in the lobby)
* have better WiFi and/or wired connectivity
=== Programme / Format ===
* less crammed over multiple days
* some more "interactive" formats were requested, for users to provide
feedback to developers
* there was some discussion about topics / speakers in redmine last
year, but not too much participation [until it was too late].
* I'd suggest a more formal CfP process with a submission deadline that
allows us to publish a preliminary schedule long ahead of the event
=== Video Recordings ===
I think they were a big success, and it was a very big surprise that the
CCC Video Operations Center was volunteering to help such a small and
niche-interest event like OsmoCon. We should make sure that we can
repeat this for 2018.
== Dates / Frequency ==
Having OsmoCon and OsmoDevCon back to back becomes somewhat long, if
OsmoCon is 2-3 days and OsmoDevCon is 4 days. Basically we're looking at
a full week for those of you who would like to attend both events. But
then, I think the number of people attending both events is actually not
all that big. Without checking the details, I think not more than half
of the OsmoDevCon attendees were attending OsmoCon. I would expect that
tendency to remain or even increase.
I still think it's good to keep them back-to-back.
In terms of frequency, I would actually suggest we move to a 6-month
cycle rather than a 12-month cycle. There's a lot of development going
on at all time. I understand that not everyone is able to attend two
events just on Osmocom, especially if it's a spare time / hobby type
activity. That's ok, I think there's no problem with attending either
of the two only, and catching up by video recordings and/or mail on the
other.
The qeustion is: Should that second event be developer-oriented or
user-oriented? Or again both? Any comments here?
Ok, that was a somewhat lengthy e-mail. Please make sure to provide any
feedback you may have as early as possible, to increase the chances of
your feedback being reflected in the planning.
Happy hacking,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hello,
I need some help regarding configuration of 3rd party msc to the openbsc.
I have seen the msc command in the openBSC terminal which I entered and
felt like a profile creation for MSC's. But I got little confused doing it,
can anyone provide me any documentation regarding basic connection that I
need to do in order to get a up and running GSM network.
Thanks
Anindya
Hi Max!
Since https://gerrit.osmocom.org/#/c/3148/
I am no longer able to individually control log levels in
the vty.
I used to use logging level all everything, then this
allowed me to do such as
logging level smpp fatal (get rid of annoying bind check
every 30 secs)
logging level [category i'm interested in] debug
Now, all I seem to be able to do is turn all categories to a
level with
logging level all debug or logging level all notice.
individual category directives such as logging level pag
fatal make no difference.
What am I missing?
Thanks!
BTW, I get the behaviour I need back by moving your check
below the check for "all"::
diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c
index 01480b1..fb2cab8 100644
--- a/src/vty/logging_vty.c
+++ b/src/vty/logging_vty.c
@@ -213,17 +213,18 @@ DEFUN(logging_level,
return CMD_WARNING;
}
- if (strcmp(argv[1], "everything") == 0) { /* FIXME:
remove this check once 'everything' is phased out */
- vty_out(vty, "%% Ignoring deprecated logging
level %s%s", argv[1], VTY_NEWLINE);
- return CMD_SUCCESS;
- }
-
/* Check for special case where we want to set
global log level */
if (!strcmp(argv[0], "all")) {
log_set_log_level(tgt, level);
return CMD_SUCCESS;
}
+ if (strcmp(argv[1], "everything") == 0) { /* FIXME:
remove this check once 'everything' is phased out */
+ vty_out(vty, "%% Ignoring deprecated logging
level %s%s", argv[1], VTY_NEWLINE);
+ return CMD_SUCCESS;
+ }
+
+
if (category < 0) {
vty_out(vty, "Invalid category `%s'%s",
argv[0], VTY_NEWLINE);
return CMD_WARNING;
Hello,
I'm getting below error, when I ran "/usr/local/osmo_built/bin/osmo-nitb -c ./../osmo_cfg/osmo-nitb_2trx.cfg -l ./../osmo_cfg/hlr.sqlite3 -P -C --debug=DRLL:DCC:DMM:DRR:DRSL:DNM"
<0000> abis_rsl.c:2013 (bts=0,trx=1,ts=0,ss=0) SAPI=0 ESTABLISH INDICATION
<0000> gsm_04_08.c:3960 Dispatching 04.08 message, pdisc=5
<0002> gsm_04_08.c:1389 LOCATION UPDATING REQUEST: MI(IMSI)=901550000001016 type=NORMAL
<0001> gsm_04_08.c:149 (bts 0 trx 1 ts 0 pd 05) Sending 0x18 to MS.
<0000> abis_rsl.c:2013 (bts=0,trx=1,ts=0,ss=0) SAPI=0 ERROR INDICATION
<0000> abis_rsl.c:1954 (bts=0,trx=1,ts=0,ss=0) ERROR INDICATION cause=SABM frame with information not allowed in this state in state=ACTIVE
<0002> gsm_04_08.c:596 Location Updating Request procedure timedout.
<0002> gsm_04_08.c:474 Subscriber 901550000001016: LOCATION UPDATING REJECT LAC=1 BTS=0
<0001> gsm_04_08.c:149 (bts 0 trx 1 ts 0 pd 05) Sending 0x04 to MS.
Anyone had the same issue earlier? Is there any solution for this error?
Thanks,
Sudhanthiradasan R
::DISCLAIMER::
----------------------------------------------------------------------------------------------------------------------------------------------------
The contents of this e-mail and any attachment(s) are confidential and intended for the named recipient(s) only.
E-mail transmission is not guaranteed to be secure or error-free as information could be intercepted, corrupted,
lost, destroyed, arrive late or incomplete, or may contain viruses in transmission. The e mail and its contents
(with or without referred errors) shall therefore not attach any liability on the originator or HCL or its affiliates.
Views or opinions, if any, presented in this email are solely those of the author and may not necessarily reflect the
views or opinions of HCL or its affiliates. Any form of reproduction, dissemination, copying, disclosure, modification,
distribution and / or publication of this message without the prior written consent of authorized representative of
HCL is strictly prohibited. If you have received this email in error please delete it and notify the sender immediately.
Before opening any email and/or attachments, please check them for viruses and other defects.
----------------------------------------------------------------------------------------------------------------------------------------------------
Hi.
While looking at osmocom/netif/datagram.h I've noticed that it's organized
differently compared to other libosmo*. Most notably, it does not have structure
definitions, only brief declarations in datagram.h while the actual definition is in
datagram.c
This effectively means that client code using the library do not have access to
struct internals and have to use various "osmo_dgram_.x_set_*()" functions to
manipulate them.
This got me curious - what are the pros and cons of this approach?
I can see the benefit of being able to change struct internals without changing the
API. I can also see the downside in having to define lot's of boilerplate
setter/getter functions.
What else?
Are there other nice things about this approach? Is there a way to avoid or at least
simplify setter/getter boilerplate? Are there some other downsides to this?
--
Max Suraev <msuraev(a)sysmocom.de> http://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Alt-Moabit 93
* 10559 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Director: Harald Welte
We're still having massive stability problems with osmo-bts-trx on the osmo-gsm-tester.
I have run a tcpdump on the ntp port for the past days, and nothing is doing
ntp besides the actual ntp service.
Today I started ntp while an osmo-bts-trx run was active and what do you know,
the osmo-bts-trx process exits immediately. I think this is bad, osmo-bts-trx
shouldn't use wall clock time for precise timing needs.
Besides that, I have no idea what could cause the clock skews, except maybe
that the CPU or the USB are not fast enough?? I'm wondering, is there still
such a thing as a separate linux realtime kernel?
We will soon take to productive use another main unit which will be a cleanly
installed OS. If we see the same problems on that system and can't find a
software fix, we may need to reconsider the tester for osmo-bts-trx...
~N
Hello,
Apologies in advance for not responding to the relevant thread/message
IDs. First time poster, long time reader.
Reviewing the relevant email thread about "randomness of identifiers"
and the design in the proposed changes [0] by Max, it seems that the
patch is reasonable with one or two exceptions.
Using OpenSSL is neither necessary, nor sufficient. My understanding is
that it brings other restrictions on the use of the RNG, the state of
the process, as well as a history of serious security concerns. There
are a number of OpenSSL forks such as LibreSSL that seem to be
addressing memory safety which might be a better choice.
Many user space PRNGs now use getrandom() internally with added
complexity in user space which does not seem strictly necessary. If the
system RNG is properly seeded at boot, getrandom() should not block at
any later point in the system's lifetime. After Nadia Heninger's work[1]
attacking the Linux PRNG, the kernel team greatly improved the state of
the kernel's RNG/RNG interfaces. If the system RNG is not properly
seeded, it is game over. Systems running OpenBSC need to have
cryptographically secure source of random numbers. If a user space
cryptographic library really is required, it would probably be better to
use NaCL [2] which is a well designed library for cryptography. It
considers many cryptographic concerns such as various side channel
attacks and properly handles each concern in a systematic manner.
OpenSSL and its family do not seem to have been so carefully designed.
There was recently an interesting design posted [3] by djb about the
design of "Fast-key-erasure random-number generators" which sounds
exactly like what is desired for this use case. It should be extremely
easy to implement. Still, the use of getrandom() without re-seeding is
probably necessary and should also be sufficient even for non GNU/Linux
systems.
Returning to Max's patch:
[4] - A lack of a good random number generator should be a hard
build/runtime failure.
[5] - GNU_TLS is suggested and on the mailing list, OpenSSL, neither
seems to be needed.
Using glibc interface is less complicated than a full user space RNG.
Has anyone reviewed it? Can it fail? If so, how does it fail? It is
simple enough that intuitively it should be safe. Using the system call
directly should ensure the guarantees of the API are met without any
issues. The issue of re-seeding [6] is also one worth re-considering.
One lesson learned from various problems with TLS is worth considering
here as well: it should be secure to expose random outputs from the
(P)RNG and still, it is better to _never_ expose random outputs directly
to the network or to an attacker. A simple design for that is simply to
hash or encrypt random bytes as djb suggests in his [3] design. Raw PRNG
bytes may allow an attacker to break your PRNG as was the case with
ExtendedRandom and DualEC [7]. The Debian OpenSSL case [8] is also
informative, though of a completely different class of worst case
failures, one hopes.
Regarding the conclusion of the reviewer: merging Max's code while
removing the rand() failure mode would be a net improvement for OpenBSC.
The build should fail without getrandom(). Is there any system where
this is an expected failure mode? Anything more complex probably
deserves a design discussion with a well defined threat model for a
given system.
Happy Hacking,
RS
As an aside: If for some reason there is no cryptographically secure
hardware RNG on the OpenBSC system, one wonders if it might be of
interest to use the available RF interfaces as part of a design for such
an RNG. There would be concerns about adversarial control of inputs, of
course. It is also reasonable to try to have multiple sources of
entropy, especially if the only hardware RNG device is one that isn't
verifiable by end users such as RDRAND [9].
[0] https://gerrit.osmocom.org/#/c/1526
[1] https://crypto.stanford.edu/RealWorldCrypto/slides/nadia.pdf
[2] https://nacl.cr.yp.to/features.html
[3] https://blog.cr.yp.to/20170723-random.html
[4] https://gerrit.osmocom.org/#/c/1526/8/utils/osmo-auc-gen.c
[5] https://gerrit.osmocom.org/#/c/1526/8//COMMIT_MSG
[6] https://blog.cr.yp.to/20140205-entropy.html
[7] https://en.wikipedia.org/wiki/Bullrun_%28decryption_program%29
[8]
https://freedom-to-tinker.com/2013/09/20/software-transparency-debian-opens…
[9] https://en.wikipedia.org/wiki/RdRand#Reception
Hi all,
upstream asn1c (https://github.com/vlm/asn1c) has made significant
progress in 2017. It now has basic support for information object
classes, and while doing some S1AP related test I also could compile an
unmodified RANAP ASN.1 syntax from osmo-iuh.git commit
8f2fb0cca5f990b26478e9ec1207fa1e39e691eb - i.e. before all the various
rewrites and hacks that we added to make it pass the much older asn1c
that we were using at the time.
In case anyone wants to play with this, I've had success with asn1c up
to git commit
https://github.com/vlm/asn1c/commit/e700b208bc0b252c85390a80ee63f3687fb2d970
until
https://github.com/vlm/asn1c/commit/ea6635bdae9667bcf6111a25d896c556c946c11a
unfortunately introduces a regression that's tracked in
https://github.com/vlm/asn1c/issues/185
Resolving that regression seems like it requires quite a bit of insight
into asn1c internals, which nobody in Osmocom currently has.
What's still missing from upstream is APER support. Sadly, he
maintainer @vlm states clearly that APER is not a short-term goal for
him. However, ss UPER is supported, and there's the somewhat incomplete
Eurecom/OAI hacks (with our fixes on top) as well as work in the
following pull-request https://github.com/vlm/asn1c/pull/125 I don't
think that's such a big issue anymore. It would be best to create
somewhat of a test suite and then get the APER code up to a state until
it passes that test suite. I'd be happy to put some of my (or sysmocom
developer) time into that.
But assuming that the regression parsing/compiling the ASN.1 syntax can
somehow be fixed, I think there's some clear "light at the end of the
tunnel" that we could compile the 3GPP syntax for RUA, HNBAP, RANAP and
S1AP as-is, without first rewriting it, and without the asn1tostruct.py
hack.
Regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi!
yesterday I saw that the github.com mirrors of the
osmo-{bsc,msc,hlr,mgw,sgsn,ggsn} repositories had not yet been created
so far. We have mirrors on github so we can at times look at what
people are doing in public clones of the repositories. This is useful
as in the 21st century, a lot of developers have to have adopted a
quality of "fork and never contribute back" attitude :/
In the past, we had to ask github staff to manually configure a mirror,
as this is not possible to do via their website for some reason.
It seems that this is now discouraged and they suggest to use a
post-receive hook that replicates to github.
I chose another path and used the already existing gerrit replication
plugin which we use to replicate form gerrit to git.osmocom.org. This
replication plugin is now also pushing to the respective github.com
mirrors.
I'm contacting github.com staff to convert all repositories to this
new-style setup. This ensures the setup is identical for all mirrors,
and has the added benefit that we get quicker replication than the
once-per-hour poll.
The setup is documented at
https://osmocom.org/projects/osmocom-servers/wiki/Github_mirrors
Regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Dear all,
this is a post about https://osmocom.org/issues/2362 in which I try to
resolve the "naming fuck-up" regarding the automatic export of rate_ctr.
In short:
* CTRL uses '.' to separate individual elements/nodes of the command
* a lot of rate_ctr groups we use so far use '.' in their group names
(e.g. 'bssgp.bss_ctx') and counter names (e.g. 'tx.bytes')
* This makes the counters un-exportable via CTRL
I have a libosmocore patch that verifies the validity of counter names
(to not contain spaces or dots) at registration time. This way we can
catch any application with erroneous behaviour.
However, this causes the following problem: New libosmocore versions
will make old apps crash or at least fail to have propre counters, as
their names are wrong :(
Also, I don't like to replace all '.' in the counter with '_', as in
seen in the example of 'bssgp.bss_ctx' there is a semantic difference.
'bssgp.' is denoted to indicate the code module from which the counter
is, and 'bss_ctx' denotes the specific object whose counters we refer
to. Manually replacing this with 'bssgp_bss_ctx' is ugly.
One alternative would be to replace '.' with ':' or '/', which are not
characters with a special functoin in the CTRL syntax. This could be
even done automatically at counter registration time, simply replace all
occurrences of '.' with ':' (and log a warning as a reminder to fix the
code?).
I prefer that more, but the question is which characters should be
reserved for CTRL syntactic purpoess, and which are free to use by the
applications to name elements of the CTRL string/node.
Any input to this? I personally would go for ':'. As CTRL is very
loosely modelled after sysfs, ':' also occurs frequently in sysfs names
such as '/sys/bus/usb/devices/1-3:2.0'
So we'd keep the '.' as path/node separator, and we use ':' as separator
inside counter (and possibly other) names, which is opaque to CTRL.
Opinions?
Should we further restrict the CTRL interface strings (and those of
systems exporting to CTRL) to standard US 7-bit ASCII with a limited set
of special characters such as ":-_@" but prevent any non-printable chars
or special chars like "{|}()~[]\^`'?<>=;/+*&%$#!"? I would support such
a motion. We could even make it more general and use that for all our
identifier strings and have a general validation function that all code
modules call whenever validating a string identifier used, such as e.g.
osmo_fsm names, etc.
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
I looked at why the 420G of the Osmocombuild1 root fs are full.
1)
Slave "build1-debian9-lxc" is running as lxc called 'docker'.
/var/lib/lxc/docker/rootfs/var/lib/docker/vfs/dir contains 221G in 333 docker
snapshots. It seems to me that these are growing indefinitely, that nothing is
removing docker hashes that have been built. Does anyone have a discarding
strategy ready that we can deploy there? We need to add one to avoid the build
slave filling up again. https://osmocom.org/issues/2539
For now I did
docker rmi $(docker images -q -f dangling=true)
and rm'd a few stopped containers that had started an openbsc test:
docker rm $(docker ps -aq)
which removed hundreds of hashes and freed ~110G
But half of the 221G are still there, not sure if we need those.
I also note that this lxc is not starting automatically after I rebooted
Osmocombuild1 (to get rid of some stuck processes).
I added
lxc.start.auto = 1
to /var/lib/lxc/docker/config
Now the server is back up and running, the lxc is started, but the jenkins
slave refuses to connect. It tries port 45 but nothing is listening
there. I think I've hit this before but can't remember how to solve it :/
https://osmocom.org/issues/2540
2)
Slave "Osmocombuild1" is running as user osmocom-build on the host's OS itself.
The workspaces make up one large chunk of the disk fill: 94G.
Looking at OpenBSC@3, it builds up to 3.8G from the various build matrix
workspaces, where each has a compiled libosmocore at >110MB and osmo-iuh
at >130MB. Then the parrallel builds each make an own workspace, exploding the
total. The good news is that it should cap *somewhere* and not grow
indefinitely.
We probably should adjust the OpenBSC and various gerrit jobs to clean up the
workspace after they are done. We so far never needed the binaries.
https://osmocom.org/issues/2538
~N
Dear all,
Max has been pushing https://gerrit.osmocom.org/#/c/1526 for quite some
time, but there was still no conclusion in its review.
I guess after more than 8 months in limbo, it's about time we decide how
to move ahead with this.
In general, we *want* secure/safe identifiers like TMSIs that are not
easy to predict by an attacker. Using rand() or some other
pseudo-random generator with a predictible seed like the time of the
process start is probably not the best choice here.
Using the rather strong entropy pool of /dev/urandom or getrandom()
is apparently not a good choice either: We can exhaust the entropy pool
at whch point we would have to block/wait, which we of course cannot in
our architecture.
So what do we do? I think we first have to differentiate on the type of
randomness needed. Is it a random identifier like TMSI? Is it a random
challenge used in cryptographic authentication? Is it random data used
for a key? Those require different levels of randomness.
For TMSI allocation, my "cryptographic gut feeling"[tm] is that something
like rand() or any other pseudo-random generator of significantly large
period is sufficient *if* it is seeded by a non-predictable value. So
something like seeding with getrandom() result should be fine?
For random challenges in authentiation I would probably go for
direct use of urandom / getrandom(). If the entropy is exhausted, the
quality of the random numbers will get lower, but getrandom() will
always return up t 256 bytes.
For long-term stable key (Ki/Op) generation for provisioning SIM cards +
populating a HLR, I would certainly opt for using stronger randomness
sources. However, I don't think we actually implement that anywhere, do
we?
What do you guys think? Is there somebody on this list more
cryptographically qualified to give us proper guidance? If you know
somebody skilled who might want to help but is not on this list, would
you invite them to join this discussion?
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi All,
We successfully installed osmo-bsc, osmo-trx, and osmo-bts-trx in Ubuntu 16.04.
All osmo elements were successfully run except for osmo-bts-trx.
Upon running osmo-bts-trx while the osmo-trx and osmo-bsc is running, “Aborted (core dumped)” error is shown:
((*))
|
/ \ OsmoBTS
<0017> control_if.c:788 CTRL at 127.0.0.1 4238
<0010> telnet_interface.c:102 telnet at 127.0.0.1 4241
<0012> input/ipaccess.c:884 enabling ipaccess BTS mode, OML connecting to 192.168.1.41:3002
<000b> trx_if.c:589 Open transceiver for phy0.0
<0012> input/ipa.c:129 connection done.
<0012> input/ipaccess.c:705 received ID get
<0001> oml.c:223 O&M Get Attributes [0], Manufacturer Dependent State is unsupported by TRX.
<0001> oml.c:223 O&M Get Attributes [0], Manufacturer Dependent State is unsupported by TRX.
Assert failed trx oml.c:156
backtrace() returned 10 addresses
/usr/local/osmo-bts/src/osmo-bts-trx/osmo-bts-trx() [0x4123f7]
/usr/local/osmo-bts/src/osmo-bts-trx/osmo-bts-trx() [0x413692]
/usr/local/osmo-bts/src/osmo-bts-trx/osmo-bts-trx() [0x42532d]
/usr/local/lib/libosmoabis.so.6(+0xbdc4) [0x7f3b6c921dc4]
/usr/local/lib/libosmoabis.so.6(+0x96ce) [0x7f3b6c91f6ce]
/usr/local/lib/libosmocore.so.8(osmo_select_main+0x242) [0x7f3b6d5c4862]
/usr/local/osmo-bts/src/osmo-bts-trx/osmo-bts-trx() [0x423b64]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7f3b6bf3e830]
/usr/local/osmo-bts/src/osmo-bts-trx/osmo-bts-trx() [0x404e19]
Aborted (core dumped)
We tried to run the osmo-bts-trx without the osmo-bsc, it only shows “Reason Abis close”:
((*))
|
/ \ OsmoBTS
<0017> control_if.c:788 CTRL at 127.0.0.1 4238
<0010> telnet_interface.c:102 telnet at 127.0.0.1 4241
<0012> input/ipaccess.c:884 enabling ipaccess BTS mode, OML connecting to 192.168.1.41:3002
<000b> trx_if.c:589 Open transceiver for phy0.0
<000d> abis.c:135 Signalling link down
<0001> bts.c:208 Shutting down BTS 0, Reason Abis close
Shutdown timer expired
We know that the latter logs is normal since no osmo-bsc is running.
May we know what causes the core dumped? Is it a configuration issue in our side?
Attached also are the pcap and config files used and taken during the testing.
We used the latest git from "https://git.osmocom.org” for the installation.
TIA
Best Regard,
Ron Menez
ron.menez(a)entropysolution.com<mailto:ron.menez@entropysolution.com>
Comments are welcome for https://osmocom.org/issues/2534
I want to remove gsup_client code dup and need a place to put it. Can't go to
libosmocore, because it uses libosmo-abis' IPA Multiplex.
My main open question is: libosmo-abis sounds like it is specifically for the
A-bis interface.
But GSUP, which we use to talk to the OsmoHLR, is not at all related to A-bis.
Does it make sense to put it in libosmo-netif? Or move the IPA Multiplex to
libosmocore? And hence remove some duplication between libosmo-abis and
libosmo-netif?
What do you guys think is worth the trouble?
Just move gsup to libosmo-abis.git and care later?
Thanks!
~N
Hi Max,
I asked before and now we have https://gerrit.osmocom.org/4127 so let me ask
again:
What is bumpversion used for in your 'make release' setup?
I would expect version bumping to be a human choice.
How is it intended to work?
~N
Hi All,
Is there a link on how to integration osmo-bsc to osmo-msc? or osmo-bsc_nat is required to integrate osmo-bsc to osmo-msc?
A config file for both osmo-bsc and osmo-msc that can be shared will be greatly appreciated.
TIA.
Best Regard,
Ron Menez
ron.menez(a)entropysolution.com<mailto:ron.menez@entropysolution.com>
another call for anyone aware of important branches on openbsc.git to please
name them, so that they can be migrated to the new repositories.
But foremost, please name them, thanks!
~N
Hi all,
for a while now I notice that it can take really long to just do a 'git fetch'
of few kilobytes volume (or none at all) on a couple of repositories. I would
expect a rapid trickle through all, most to be finished within half a second,
but sometimes it takes three full minutes to bump 21 git repositories. These
are all from the gerrit ssh URL.
Does anyone know what causes this delay? Would it be gerrit processing time,
server load or network congestion? I haven't taken a closer look yet...
~N
HI Neels,
Thanks for provided answers and tips.
Femto wich I plane to use is Alcatel.
My primary target is Packet core, so femto-osmohnbgw-osmosgsn(osmo-hlr)-osmoggsn.
Alredy know this want be easy task, But I will try, I expect also problem with SIM authentication. In past I did protocol simulators in Python (Gb, S11, Gn, Gx, Gy), wich were used in production for testing.
When I hopfuly install osmo-iuh, I wll conect femto to it and try to configure it, will sniff trafic via wireshark between and check whats happening,
Now I will try to rebulid IuH again.
BR
Goran
The information contained in this e-mail message is privileged and confidential and is for the exclusive use of the addressee. The person who receives this message and who is not the addressee, one of his employees or an agent entitled to hand it over to the addressee, is informed that he may not use, disclose or reproduce the contents thereof, and is kindly asked to notify the sender and delete the e-mail immediately.