I'd like to share a VTY config error analysis that has a tricky solution:
I started osmo-bsc -c osmo-bsc.cfg with, according to
openbsc/doc/examples/osmo-bsc:
net
[...]
bts 0
[...]
periodic location update 30
trx 0
[...]
and get this error:
There is no such command.
Error occurred during reading below line:
trx 0
what? 'net / bts / trx' is no command??
Solution: I'm on the vlr_3G branch (incorporating 2G via A-interface) and on
this branch, I've actually moved the 'periodic location update N' command a
level up, from net / bts / periodic to net / periodic (background: assuming
that OsmoMSC does not have individual BTS info, we moved some settings up to
network level; whether this makes sense for osmo-bsc is a different question,
it's just what happens to be on the vlr_3G branch now).
So there is no net / bts / periodic command.
Why do I get an error for net / bts / trx instead?
two reasons:
1. 'trx 0' was the line following the 'periodic' command,
2. since 'periodic' exists one level above, the vty code goes to the parent
node automatically.
About 2: we tend to indent our VTY config files, but in fact the indentation
has no effect whatsoever, it is just eye candy (very useful eye candy).
The code in question: If a command does not exist, try 'vty_go_parent()' and
see if the command exists there. That's what allows us to omit 'exit' in our
config files to go to the parent node explicitly:
libosmocore/src/vty/command.c:
int config_from_file(struct vty *vty, FILE * fp)
{
int ret;
vector vline;
while (fgets(vty->buf, VTY_BUFSIZ, fp)) {
vline = cmd_make_strvec(vty->buf);
/* In case of comment line */
if (vline == NULL)
continue;
/* Execute configuration command : this is strict match */
ret = cmd_execute_command_strict(vline, vty, NULL);
/* Try again with setting node to CONFIG_NODE */
while (ret != CMD_SUCCESS && ret != CMD_WARNING
&& ret != CMD_ERR_NOTHING_TODO
&& is_config_child(vty)) {
HERE -----> vty_go_parent(vty);
ret = cmd_execute_command_strict(vline, vty, NULL);
}
cmd_free_strvec(vline);
if (ret != CMD_SUCCESS && ret != CMD_WARNING
&& ret != CMD_ERR_NOTHING_TODO)
return ret;
}
return CMD_SUCCESS;
}
In this case the 'periodic...' command does in fact now exist one level above,
so the vty_go_parent() is successful and running that command works. But, the
vty config parsing then sits above on the 'network' level, is no longer in 'bts
0' and hence refuses to accept the following bts-level command, in this case
'trx 0'. Confusing!
So it's not a bug, it's a feature. But it's a feature we might see quite often
if we move the 'periodic' command up to network level and users attempt to use
their old config files.
Same goes for the 'timezone' command, BTW, so we might want to rename commands,
or re-consider moving commands one level up in the first place. Maybe we should
leave backward compat catchers in place that print a warning.
~N
--
- Neels Hofmeyr <nhofmeyr(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
* Geschäftsführer / Managing Directors: Harald Welte
Hello FreeCalypso and Osmocom communities,
I am in the process of creating an informal organisation representing
the interests of those members of the GSM universe whose interests are
not represented by GSMA etc, and I am inviting you to join me in this
venture. I propose that we name our informal organisation GSMUA,
standing for GSM Users Association, and my vision for this GSMUA is to
be a counter-body (antibody?) to the official GSMA. I just registered
the gsmua.org domain name, but there is no website or mailing list set
up yet. If someone from the Osmocom camp would like to host the
server infrastructure for gsmua.org, I will happily point the DNS to
you, otherwise the FreeCalypso family can host it on our server.
My vision for GSMUA is to represent the interests of GSM end users
(empowered end users who wish to fully own and control all aspects of
their user equipment while operating on public mobile networks in a
fully spec-compliant manner), small boutique manufacturers of GSM
devices (both MS/user equipment and network infrastructure), small
community network operators and others whose interests are not
represented by GSMA etc, especially in cases where our interests are
in direct conflict with the interests of big players such as giant
device manufacturers, giant commercial network operators and
governments.
A key goal of GSMUA is to be project-neutral, that is, every person
and every small company belonging to any of the categories listed
above (empowered end user, small boutique device manufacturer, small
community network operator etc) should be fully welcome regardless of
which specific project they are associated with. As of today there
are at least two different projects offering GSM MS implementations
(OsmocomBB and FreeCalypso) and at least two different projects
offering network-side GSM implementations (Osmocom and OpenBTS), and I
hope that this number of available alternatives will continue to grow:
freedom of choice is always a good thing. But at the present time
there exists no neutral soil on which members of different projects
with a common interest (GSM networks and devices serving the interests
of end users rather than big corporations and governments) and a
common enemy (just named) can meet, and this lack of neutral meeting
ground is the problem which GSMUA is meant to solve.
I also have one practical application for GSMUA in mind already: to
manage and legitimize recycling of wasted IMEI number ranges. By the
official rules of GSMA etc each different *type* of GSM mobile
equipment requires a different TAC, i.e., a range of at least 1 million
IMEI numbers. So if a small boutique GSM device manufacturer makes a
boutique MS device of which no more than 100 units will ever be made,
999900 IMEI numbers have to be wasted by the official rules. While I
don't know of any manufacturer who got a range of 1 million IMEIs and
only made 100 devices, we do have examples like Openmoko GTA01/02 and
Pirelli DP-L10. In the case of Openmoko GTA02 I've been told that
about 15 thousand units were made in total; in the case of Pirelli
DP-L10 it appears that the total number produced was somewhere under
100 thousand. In each case a full range of 1 million IMEIs was
allocated, and at least 900 thousand numbers out of each range are
currently unused and wasted.
If a small boutique manufacturer wishes to offer a boutique GSM MS
product to the general public and wishes to ship each unit with a
world-unique IMEI that stands a good chance of being accepted as valid
by common GSM networks, and the product in question does not qualify
for IMEI allocation by the official rules (e.g., the product is a
development board specifically intended for users to run their own
firmware and connect to live public networks with it, taking full
personal responsibility for their actions) - the situation I found
myself in with my GSM MS development board - I feel that the small
boutique manuf in question should be empowered to squat on a small
subrange of someone else's IMEI range if it is known beyond reasonable
doubt to be wasted and unused.
However, this recycling of wasted IMEI number ranges could be better
organized and given at least some aura of semi-legitimacy if there
were a community body set up to manage it, and this is where my
proposed GSMUA can come in. Once we get our GSMUA up and running and
assign a group of volunteers to be IMEI recycling managers, any small
GSM or 3G+ device manufacturer who needs a small range of IMEI numbers
will be able to request one from GSMUA, and we will allocate and
assign these small subranges out of whatever wasted range we decide to
squat on, ensuring that each requestor gets a different subrange.
So these are my ideas, and I would like to see them turn into reality.
We are going to need a simple website and a community mailing list at
gsmua.org, and for the IMEI recycling service we will need a small
group of volunteers to serve as its managers - I and Das Signal from
FreeCalypso will be happy to serve on that panel, but it would be nice
to also have someone from the Osmocom camp for better neutrality.
Bright Blessings,
Mychaela Falconia,
Mother of FreeCalypso
Hi all,
I have some uncertainty about how to use the CTRL interface to set TRAPs.
In the OsmoBSC user manual (for example), the example provided doesn't
specify an option to set for the 'var' I might be particularly
interested in monitoring:
`$ ./bsc_control.py -d localhost -m`
Is this the default to monitor all? Can I go about narrowing this?
Also, I don't feel like I quite understand the TRAP portion of "Table
2: Variables available over control interface" in the OsmoBSC user
manual:
For example, the 'name' column seems to generally indicate the 'var'
that one would pass in a GET/SET command, so I'm assuming the 'name'
associated with the TRAP-enabled rows has the same significance. But
these 'names' have no real meaning to me in terms of my experience
with VTY, for example 'notification'.
I have tried to look toward the osmo-nitb unit tests for inspiration,
as there is fantastic coverage for GET/SET, out haven't seen similar
for TRAP.
Can someone please point me in the right direction?
Thanks,
Emily
Dear all,
osmo-gsm-tester is currently capable of setting up an entire network
with one or more BTSs, Modems, NITB, etc. and test signaling + SMS.
Voice testing has always been on the wishlist, but further down on the
TODO list. One issue here is that
a) many modems don't do voice at all (data-only modems for laptops)
b) some modems expose voice only as analog audio (difficult to interface,
would require custom hardware next to the modem, e.g. using USB
soundcard, calibrate the levels, ...)
c) some modems expose the voice as PCM bus. Similarly, would require
some external codec chip and/or USB soundcard or the like, plus a
custom circuit
d) some modems expose voice as "GSM codec frames over UART" or other
highty proprietary formats
e) some modems expose voice as USB audio device. Most convenient, but
only found in some Qualcomm LE based devices such as Sierra Wireless
or Quectel.
Over the weekend I was thinking of yet another method to make this much
simpler: Every phone is supposed to include a voice loop-back mode. In
this mode, the phone siply loops back all voice frames received in the
downlink and sends them back in the uplink. This functionality is
mandatory by the spec, and used to test the receiver performance of the
phone during development, manufacturing and service. IT is specified in
3GPP TS 44.014
(http://www.etsi.org/deliver/etsi_ts/144000_144099/144014/14.00.00_60/ts_144…)
which used to be GSM TS 04.04
(http://www.etsi.org/deliver/etsi_ts/101200_101299/101293/08.06.00_60/ts_101…)
before.
The idea is that one puts a special "Test SIM" (as specified in TS
51.010-1 Annex 4, where EF.AD first byte == 0x80 is the criteria in this
context) into the phone, and then sends some specific commands on Layer3
to activate the loop.
So if we can activate that loop-back functionality from the Osmocom
stack, we could test if we get back the same voice data that we send in
downlink (minus some occasional bit error, but those should be super low
given we're operating omso-gsm-tester over coaxial cabling between MS and
BTS).
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,
The osmocom software that I do not install via apt but build myself gets
installed in $HOME/usr and I do things like:
export PATH="${PATH}:${HOME}/usr/bin"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${HOME}/usr/lib"
export PKG_CONFIG_PATH=$HOME/usr/lib/pkgconfig
MANPATH="${MANPATH}:${HOME}/usr/man"
Therefore I don't have to install to a destination outside my home
directory which in turn means I can avoid some sudo calls.
But that actually does not matter so much, you can mentally substitute
$HOME with '/' and append '/local' in the following if you want.
I don't install to $HOME/usr directly but use stow for 'managing' the
installations, so an installation goes like this:
$ mkdir -p $HOME/src/telco/osmo/libosmo-abis
$ cd $HOME/src/telco/osmo/libosmo-abis
$ git clone git://git.osmocom.org/libosmo-abis
$ autoreconf -i
$ ./configure --prefix=$HOME/usr/stow/libosmo-abis
$ make
$ make install
$ STOW_DIR=$HOME/usr/stow stow libosmo-abis
This has two advantages:
* Good visibility of what is installed by a package.
$ tree $HOME/usr/stow/libosmocore
* Possibility of uninstalling a package even if the Makefile is not
present.
For me those two advantages outweigh the small additional effort of
using stow.
Because of that workflow I sometimes run into situations in which make
runs fail because either header files are not found during compilation
or libraries are not found during linking. The reason is that autotools
variables pointing to pkgconfig supplied directories point to a
destination under the prefix path with which configure was called. If a
dependency was not mentioned in a Makefile.am the required files are not
found because the other dependencies are in other directories.
For a system on which the osmocom-own dependency libs are installed in
distinct directories, current openbsc master HEAD requires the attached
patch for a build to succeed.
I admit that in most situations the dependencies are installed in the
same directory so this does not matter, but it is still a small bug.
Therefore I propose to modify the jenkins build scripts so that they use
distinct, stow managed directories for the dependencies. That should
help to detect oversights, although admittedly developers would have to
adapt their workflows to use stow as well in their daily hacking.
Otherwise an oversight would be detected by jenkings and not locally
which in turn would require additional cleanup commits which is not so
nice.
What is your gut feeling? Does the increased correctness of Makefiles.am
contents justify the (IMO rather small) additional effort of using stow?
Kind regards,
-Alex
Hi all,
I was wondering if it is possible to generate a TDMA frame sync output
on a GPIO line of a USRP device (and/or any other SDR supported by
osmo-trx). This way it would be much easier to do e.g. BER testing
by using a pure waveform/pattern generator for the "MS side". Such
devices (Like an E4433B) can only generate the uplink bursts with
pseudo-random sequence, but they don't have any receiver, so they're not
able to receive the downlink from the BTS in order to lock on the TDMA
frame and transmit the uplink in sync to that.
There are of course specialized devices (CMU-300, ...) or hardware
options that add such receivers for synchronization on the signal
generators, equipment side, but why go there if there would be an easy
way to generate some kind of a frame sync output.
I would appreciate to know even if there's a way to introduce such
"synchronous GPIO toggles" or the like in the command stream to UHD
devices. If that existed, it should be rather simple to insert those
whenever a new burst for TS0 is sent.
A rather computationally (and bandwidth) expensive other option might be
to use the second RF output to generate such a signal, but I was hoping
not having to abuse the 2nd channel for that ;)
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)
In our osmo-gsm-manuals, there are various code listings that one would like to
copy-paste from the PDF. That would theoretically work, but practically, the
'DRAFT' watermark in the backdrop confuses the text marking, hence making
copy-pasting some text from the manuals very very cumbersome. Though I'm not
that sure why we need a 'DRAFT' watermark in an open source manual (it's
implicitly a draft), I am fine with having such a marking.
But I would like the marking to be less obtrusive. We could experiment with
putting a bitmap image in the backdrop instead of text, or even better IMHO
would be to put it in the page header next to the version.
We could also add a generic "DRAFT" disclaimer near the beginning of each
document.
(Same goes for the sysmocom internal manuals, for which it isn't so easy to get
the asciidoc source to paste from.)
Any opinions on this?
~N
Greetings,
Congrats on OsmoCon 2017!
I have been working with OsmocomBB, osmo-sim-auth, mncc-python projects in
Osmocom.
I would like to contribute some code snippets with your acceptance.
To begin with I have committed:
I) MNCC with OsmocomBB - *https://github.com/GerardPinto/call-control-mncc-sap
<https://github.com/GerardPinto/call-control-mncc-sap>* (Has both
implementations in Python and C + Tested voice with gsm-fr with gsm audio
file - works great).
- Some of which can be committed to mncc-python? (In order to support
MNCC with OsmocomBB too) Although, Harald told me it was built for OpenNITB
- I'm not sure, the relevance of this contribution to this repo?
Reason:
1. Solves some mailing list questions: Some questions on mailing list are
pertaining sending voice from PC to phone and receive.
2. Useful for test cases: In the future, if 'gsm-efr' codec is implemented,
we can use these snippets and send audio with gsm-efr sample, instead of
connecting to LCR (Am I correct?)
*Issues faced*: File: l23api.c | function: l1ctl_rx_traffic_req()
264 bits (33 bytes) of voice codec are interleaved into 456 bits. The DAC,
ciphering/deciphering , RF etc. work on 114 bits at a time so, 114 x 4 =
456.
So Layer23 sends 4 - 114 bits into the queue to Layer1 in function =>
l1ctl_rx_traffic_req
*Code*: num = l1a_txq_msgb_count(&l1s.tx_queue[L1S_CHAN_TRAFFIC])
if num > 4 dropping traffic frame. (114 x 4)
The code above indicates if queue has any (114 x 4) bits drop the incoming
voice request.
So I faced the issue of voice packets getting dropped, but that was just
twice/thrice and then it did not give me any trouble (I'm not sure how it
got fixed), I could hear *clear* voice gsm-fr on the called party cell
phone.
*My Question is*: If I happened to send voice packets 33 bytes really fast.
There should be some kind of buffer rather than a check (Code) and drop
frame? - OR this case can never happen?
My apologies, if my understanding is incorrect, I just tried to reverse
engg. from code and GSM codec available online!
II) osmo-sim-auth with added other SIM related API's (still needs code
clean up, SIM response check, code re-usable, README.md etc,)
* https://github.com/GerardPinto/osmo-sim-auth
<https://github.com/GerardPinto/osmo-sim-auth> *
- I did check out PySIM (I think I can add some code to the existing
repository, with your permission).
Could you please let me know if my osmo-sim-auth repo? If it is correct to
combine with PySIM, with the changes done below?
Files modified:
1. SIM.py - Added more API's.
2. osmo-sim-auth.py - Options parser.
Thanks,
Gerard.
Dear all,
today I put together some message sequence charges on the different A
interface configurations. This should serve to establish some kind of
"common understanding" about what is different in terms of
a) classic A interface (E1 on Abis and A)
b) Old OsmoBSC with Abis/IP and SCCPlite+MGCP on A
c) New OsmoBSC with Abis/IP and 3GPP AoIP
d) New OsmoBSC with Abis/E1 and 3GPP AoIP (extended MGW)
The document is in gerrit review, but you can also find a rendered
version of the current draft at
http://people.osmocom.org/laforge/tmp/aoip-mgw-options.pdf
Please let me know if your understanding of the different
protocol/options is different. I'll continue to work on the document
and add some more textual explanation.
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)
Just now I obtained a successful test run of the osmo-gsm-tester with these
combinations:
OsmoNITB with sysmoBTS
OsmoNITB with osmo-bts-trx (Ettus B210)
OsmoMSC + OsmoBSC (AoverIP) with sysmoBTS
OsmoMSC + OsmoBSC (AoverIP) with osmo-bts-trx (Ettus B210)
http://jenkins.osmocom.org/jenkins/view/osmo-gsm-tester/job/osmo-gsm-tester…
yay! :)
All of these are now enabled by default.
~N
--
- Neels Hofmeyr <nhofmeyr(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
* Geschäftsführer / Managing Directors: Harald Welte
> commit b4999b60d48bcbb5aa575973d068e07ab672e095
> Author: Philipp Maier <pmaier(a)sysmocom.de>
> Date: Wed Oct 26 15:19:41 2016 +0200
>
> pcu_sock: add basic pcu interface support
>
> Adds a basic version of a pcu socket interface, similar
> to the one that can be found in osmo-bts.
>
> Change-Id: Ib13cb4099d12fa71e9e0b8727e19ab29e11909b2
This commit adds PCU sockets to OsmoNITB, but these are not configurable,
which is a problem for the osmo-gsm-tester. We cannot have separate OsmoNITB
processes all write to /tmp/pcu_bts, their paths needs to be configurable.
Also they seem to not be cleaned up when the process exits. I now see failures
of OsmoNITB starting because the /tmp/pcu_bts is still present. This appears
when a different user attempts to start an OsmoNITB, i.e. I had a successful
run with the 'jenkins' user and am then trying as 'neels'. I guess the PCU
socket file should be cleaned up on exit??
The third point is that I don't understand why the OsmoNITB or the OsmoBSC need
PCU sockets. The commit log does not explain that unfortunately.
I would like this commit to be reverted until the location is configurable, so
that the osmo-gsm-tester can continue to run across several users. (and several
NITBs at once, which we're not using yet, but in principle could want to.)
I have a ticket for this in the OsmoGSMTester project, we may need to move it
to a different parent project or create a new ticket:
https://osmocom.org/issues/2293
~N
Hi.
Most (if not all) of Osmocom libraries can be built for static linking. With the
addition of https://gerrit.osmocom.org/#/c/2748/ we can leverage this to also build
static OpenBSC which comes in handy while testing from time to time.
Would be nice to add this option to jenkins as well (for OpenBSC as well as all the
libraries).
What do you think?
--
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
I was thinking about how to setup an automated real device test for the repo and/or PRs especially. I have devices and cables, just was thinking about how to automate the re-loading of firmware (via an interface to the power button I suppose).
Any work ongoing on this front? I'd be happy to contribute as I have a server I'm going to use for nano3g, calypsobts, development.
-Craig
--------------------------------------------
On Thu, 5/18/17, Harald Welte <laforge(a)gnumonks.org> wrote:
Subject: OsmocomBB compile testing / Re: libosmocore embedded build
To: "André Boddenberg" <dr.blobb(a)gmail.com>
Cc: baseband-devel(a)lists.osmocom.org, "OpenBSC" <openbsc(a)lists.osmocom.org>, "Vadim Yanitskiy" <axilirator(a)gmail.com>
Date: Thursday, May 18, 2017, 1:24 PM
Hi Andre and others.
We currently have a series of patches from
Vadim pending in gerrit for
OsmocomBB.
They cannot move ahead, as we have no compile testing /
jenkins job which would give this a +1.
To resolve this, we should
also start to have a jenkins compile testing
job for OsmocomBB. The "host" (PC)
part of the code is built against
regular
libosmocore, just like e.g. openbsc or osmo-bts. That
should be
possible even so far, and it might
make sense to start with that.
Basically you need to:
* git
clone osmocom-bb
* cd src/host/layer23
* regular 'autoreconf -fi &&
./configure && make'
compile-testing the 'embedded'
(firmware) part is not possible easily in
the current master. However, as a second
step, and after the
libosmocore embedded
build has run (and it is installed to
/usr/local/arm-none-eabi), and if you use the
laforge/remove-libosmocore
branch in
OsmocomBB, you should also be able to compile-test the
firmware using
* git clone osmocom-bb
* cd
src/target/firmware && make
There currently is no "make check"
tests for either the host utilities
or the
firmware, and of course we have no clue if the resulting
binaries
will do anything useful on an
actual pone [yet!], but I still think the
two steps above would be very useful to move
ahead, and to unify the
patch
submission/review/verification/approval/merge process in
gerrit
with what we have established for the
network-side projects like OsmoBTS
& co.
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,
for some time, I've been wanting to have an easy way to run
m3ua-testtool and sua-testtool as part of our regular regression
testing setup.
After some very disappointing trials using docker (see my blog), I
managed to make this work using the 'unshare' program (part of
util-linux).
The key regquirement basically is:
* create a network namespace
* configure some netdevice / ip adresses in it
* run the software under test (osmo-stp in this case)
* run the test suite
* tear down everything
Initially I tried to do this using 'ip netns', but the problem is that
you normally require root permissions to configure the netdevice inside
the new namespace. And being root is of course difficult if you think
of a jenkins build slave.
However, 'unshare' offers the ability to map your real UID to root
inside the namespace. At that point, everything can be done as
non-root.
The resulting scripts are in libosmo-sccp/contrib/test:
"run-in-ns.sh" is a simple wrapper around unshare, so you have to call
something like
./run-in-ns.sh ./test-m3ua.sh
In order to use the m3ua-testtool, you will need to
* install guile
* clone + build + install https://github.com/nplab/guile-sctp
* clone + build m3ua-testtool and sua-testtool from git.osmocom.org,
no installation of this require.
I would appreciate feedback from others trying to reproduce the above
setup on their machine[s]. All tests should be GREEN/PASS.
If anyone knowns how to integrate this with jenkins for libosmo-sccp,I
think it would be great to have this as part of our testing of gerrit
patches.
I'm not so sure if it makes sense to try to integrate this with "make
check", as it is not a unit test (and it would only work on Linux).
I'm planning to use the saee "run-in-ns.sh" approach for my SCCP
level tests implemented in TTCN-3/Titan.
One further idea is if it make sense to report the test reuslts in a
more friendly way. Right now it's deailed osmo-stp logs interspersed
with output from the tester. Mayb there's some more information we can
feed back into jenkins? Again, I have very little understanding of
jenkins.
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,
gapk (the GSM Audio Pocket Knife) now has tests that can be
executed in order to determine if encoding and decoding from/to most
supported formats still work "most" as the file source can only read
codecs with fixed block size, so AMR cannot be tested yet.
It would be great if somebody[tm] would jump in to add this to jenkins,
so new commits can be tested against this. Thanks in advance!
The test is not integrated with autotest, I wasn't sure if it makes
sense. Probably yes, to unify with other projects?
In either case, after a successful 'make', you should be able to do a
(cd test && ./test_all_formats.sh) and get some meaningful output as
well as a status code (1 = error, 0 = success).
Patches for autotest integration or any other step towards CI
integration is much appreciated.
I'm planning to disable direct git commit and move patch submissions to
gerrit soon, too (to get the benefit of pre-merge patch verification).
I'll also be working on some usage examples on gapk in the redmine wiki
and/or included with the tool. By now you can use it as a RTP sink to
transcode an RTP stream and play it back on your sound card via ALSA,
which is very useful, particularly in combination with a patch that will
enable you to issue a MDCX from the BSC VTY, requesting the BTS to
redirect the RTP stream e.g. to that gapk RTP sink.
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.
It seems like some of the recent changes to libosmocore cased following build failures:
[ 216s] +/usr/src/packages/BUILD/tests/testsuite.dir/at-groups/9/test-source: line 25: 28875 Illegal instruction $abs_top_builddir/tests/conv/conv_gsm0503_test
See https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/l…
Could you please have a look as to what's causing it? I'm also puzzled by the build failing on 16.10 only. Versions 16.04 and 17.04 seems to be fine.
--
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
Just noticed, in redmine, it's best to search without any projects selected,
even if they are the parent of some others you intend to search in:
- go to osmocom.org
- enter 'AoverIP' in the search field (do not select a particular project).
- find 5 issues, they are from projects OsmoMSC and OsmoBSC.
versus:
- select 'Cellular Infrastructure', next to the search field at 'Jump to a Project'
- enter 'AoverIP' in the search field.
- Find no issues at all.
Why? OsmoMSC and OsmoBSC are both subprojects of Cellular Infrastructure.
... good to know.
~N
Hi All,
We are having “INCOMPATIBLE_DESTINATION” error in Freeswitch using the half rate configuration of each timeslots in NITB.
Our setup have 1 OSMO-NITB (with OSMO-BTS-TRX, OSMO-TRX, and OSMO-SIP-CONNECTOR) and 2 Freeswitch. One of the Freeswitch is local in the server while the other Freeswitch is at the cloud.
Using the Full Rate Configuration of each timeslots, we do not encounter the “INCOMPATIBLE_DESTINATION” error and we successfully connected 2 phone calls.
Upon using the Half Rate Configuration, "INCOMPATIBLE_DESTINATION” error occurs.
We played around the codecs of Freeswitch but unfortunately, we were not able to complete the call. It always disconnects the call immediately after the MT answers.
Does anyone tried this kind of setup before?
What equivalent codec does the “default-codec tch/h hr” or GSM-HR-08 as seen in Freeswitch?
OS: Ubuntu 16.10
OSMO Elements:
OSMO-TRX
OSMO-BTS-TRX
OSMO-NITB
OSMO-SIP-CONNECTOR
SDR: Ettus B210
Softswitch: Freeswitch (Version 1.6)
Attached are the config files used for OSMO Elements.
Best Regard,
Ron Menez
ron.menez(a)entropysolution.com<mailto:ron.menez@entropysolution.com>
Dear all,
when we originally moved a lot of generic code from OpenBSC to
libosmo{core,gsm} to re-use it from OsmocomBB, we created an 'embedded'
build of libosmocore, which can use [most of] the library code also in
deeply embedded, OS-less 'bare metal' microcontroller environments.
The ability to build libosmocore this way has been broken for many
years, but I've fixed that in recent libosmocore master. Below command
works for me [tm]:
./configure --prefix=/usr/local/arm-none-eabi \
--host=arm-none-eabi \
--enable-embedded \
--disable-shared \
CFLAGS="-Os -ffunction-sections -fdata-sections -nostartfiles -nodefaultlibs"
What we'd need now is:
1) make sure embedded builds continue to work by building libosmocore
for embedded as part of the jenkins setup (using gcc-arm-none-eabi
debian package). Any volunteers?
2) start to use this embedded build from simtrace2 firmware, osmocom-bb
and the upcoming fimrware for the RFDN[1]. So far,
* osmocom-bb uses an old clone of libosmocore,
* simtrace2 is using some copy+pasted fork of some libosmocore files
* rfdn is using some copy+pasted fork of some libosmocore files
The above is no longer required.
3) consider if we can shrink the resource requirements of some
libosmocore parts. One issue coming up are the static buffers in
osmo_hexdump[] or the like. If your total processor RAM is 8k or
16k, then spending 4k on the buffer for hex-dumping is indeed a bit
excessive.
Any help is appreciated, particularly on the jenkins side.
Regards,
Harald
[1] (1:8 splitter-combiner with adjustible step attenuators, part of the
osmo-gsm-tester setup we're building at sysmocom). Code will be
released as soon as the hardware is validated.
--
- 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)
> Can someone else may have a
> quick look at log [2] to point me in the
> right direction? Afaics build dependencies are
> available but the
> compilation itself
> fails.
> [2] https://jenkins.osmocom.org/jenkins/job/TEST_libosmocore_arm_none_eabi/arch…
Looks like the tests are failing. My build seems to work but when I run "make check-am" in tests I get a different error related to talloc. This is on a Debian 8 stable box using arm-none-eabi and newlib from debian packages. Maybe the
make of timer_test fails and doesn't log somehow? I"m not sure.
craig@z500:~/libosmocore/tests$ vi timer/timer_test.
timer_test.c timer_test.ok
craig@z500:~/libosmocore/tests$ vi timer/timer_test.c
craig@z500:~/libosmocore/tests$ make check-am
make timer/timer_test sms/sms_test ussd/ussd_test smscb/smscb_test bits/bitrev_test a5/a5_test conv/conv_test auth/milenage_test lapd/lapd_test gsm0808/gsm0808_test gsm0408/gsm0408_test gb/bssgp_fc_test gb/gprs_bssgp_test gb/gprs_ns_test gprs/gprs_test kasumi/kasumi_test gea/gea_test logging/logging_test fr/fr_test codec/codec_test loggingrb/loggingrb_test strrb/strrb_test vty/vty_test comp128/comp128_test utils/utils_test smscb/gsm0341_test stats/stats_test ctrl/ctrl_test bitvec/bitvec_test msgb/msgb_test bits/bitcomp_test tlv/tlv_test gsup/gsup_test oap/oap_test fsm/fsm_test write_queue/wqueue_test socket/socket_test coding/coding_test conv/conv_gsm0503_test abis/abis_test endian/endian_test sercomm/sercomm_test
make[1]: Entering directory '/home/craig/libosmocore/tests'
CC timer/timer_test.o
In file included from timer/timer_test.c:31:0:
../include/osmocom/core/talloc.h:4:20: fatal error: talloc.h: No such file or directory
#include <talloc.h>
^
compilation terminated.
Makefile:1336: recipe for target 'timer/timer_test.o' failed
make[1]: *** [timer/timer_test.o] Error 1
make[1]: Leaving directory '/home/craig/libosmocore/tests'
Makefile:1529: recipe for target 'check-am' failed
make: *** [check-am] Error 2
Hi all,
here's a (late) recap on the "dependency-artifacts" topic discussed
with Holger and Neels at OsmoDevCon.
The "mv $artifact"-issue, which occurs when run within a docker
container has been resolved. Now artifacts are created inside a
temporary directory within the ARTIFACT_STORE and not inside the
Docker container, so the "mv" command won't take as long as a "cp"
anymore.
Moreover, artifacts are now stored per jenkins job and not per git
project. A JOB_NAME-directory inside the ARTIFACT_STORE is created for
each jenkins job to distinguish between them. This means artifacts
aren't shared across jobs which build the same git project. This might
change in the future, but is safe for now as some jenkins jobs might
need dependencies built with different configurations.
Note: the necessary disk space for openBSC artifacts of one
matrix-configuration job is ~400 MB (~50 MB per axis).
Furthermore, each jenkins job takes care about garbage collection on
its own by simply deleting the entire content of its
JOB_NAME-directory inside the ARTIFACT_STORE.
The two scripts osmo-{build,artifacts}.sh have been tested [1][2],
shellcheck'ed and pushed to gerrit [3].
The following actions are pending to enable the use of artifacts
inside contrib/jenkins.sh within each git repository, but can not be
applied by me:
- setting ARTIFACT_STORE environment variable for each jenkins slave
- copying osmo-artifact.sh and osmo-build.sh to ~/bin of each slave user
- adding a new docker volume for the ARTIFACT_STORE to the image
But, let's review first. =)
Cheers,
André
[1] https://jenkins.blobb.me/job/openBSC_multi-configuration_withArtifacts_test…
[2] https://jenkins.blobb.me/job/openBSC_multi-configuration_withArtifacts_test…
[3] https://gerrit.osmocom.org/#/c/2465/
Since our A-interface efforts are slowly shaping out, I am adding a build of
OsmoMSC that is capable of A over IP to our osmo-gsm-tester setup.
For that purpose, I created the branch 'aoip' by glorifying my branch that
combines pmaier's AoIP branches (for OsmoBSC and for OsmoMSC) to be the one
that osmo-gsm-tester will build the AoIP binaries from.
This will converge with vlr_3G and ultimately will become the new master
branch(es) of our planned new osmo-bsc and osmo-msc git repositories.
Overview of current "root level" branches:
master: active 2G development
vlr_2G: OsmoNITB capable of external HLR and UMTS authentication
vlr_3G: OsmoMSC that can do 3G with an hNodeB, but no 2G
aoip: OsmoMSC that has 3G disabled but can do 2G over A-interface with a
separate OsmoBSC. The reason why 3G is disabled there is the early
code state; vlr_3G and aoip will soon become identical.
~N
--
- Neels Hofmeyr <nhofmeyr(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
* Geschäftsführer / Managing Directors: Harald Welte
Hi all,
some of you have heard me talk about my first steps in TTCN-3 and
Eclipse Titan for testing of libosmo-sccp SIGTRAN code.
Ericsson has thankfully agreed to release their M3UA and SCCP code
(called "protocol emulation"). I received an advance copy to get
started. Now, they have officially released it at:
git://git.eclipse.org/gitroot/titan/titan.ProtocolEmulations.SCCP.gitgit://git.eclipse.org/gitroot/titan/titan.ProtocolEmulations.M3UA.gitgit://git.eclipse.org/gitroot/titan/titan.TestPorts.MTP3.git
Using my earlier version of that code, I was able to craft some test
cases for connectionless and connection-oriented SCCP (as shown on
OsmoDevCon).
I will now need to port that code onto the officially released git
repositories above, and after that I'll of course release that on
osmocom.org.
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 All,
Is there the an equivalent configuration from OpenBTS’ Control.LUR.!OpenRegistration.Message in OSMO? This is the welcome SMS to the devices when they attached to an open registration network.
What we are trying to do is replicate most of the features from OpenBTS and migrate it to OSMO.
Another feature we are looking for is a trigger to an external server for every LUR of devices.
Best Regard,
Ron Menez
ron.menez(a)entropysolution.com<mailto:ron.menez@entropysolution.com>
Hello,
I had success running an 3G network with the nano3G femtocell and osmocom-software a month ago, but I did not follow the changes which happend during the last 4 weeks.
With the latest version of the software from git I am not able to register any phone on the network! The test result of 3 different phones:
* iPhone: Can see the 3G network, but cannot join
* Samsung S5 duos: Not seeing the network, when searching for providers
* Acer Liqid M330: Not able to join the network
I did not test the iPhone and S5 on the previous version of the network, but the Acer was running perfectly with it.
What I did:
* checked out the latest source-code and compiled it with the script osmocom.org/attachments/download/2670/clone_and_build_osmocom_3g.sh after completely removing the old source code
[I had to change the script to use "sudo make install", because /usr/local/ is not writable for users on my system]
=> When I checked the created directories I realized, that "/usr/local/include/openbsc " has a trailing space!
* I verifyed, that all needed dependencies mentioned in clone_and_build_osmocom_3g.sh are installed (running debian8 32bit)
* verifyed that the initial config of the nano3G [according to http://osmocom.org/projects/cellular-infrastructure/wiki/Configuring_the_ip…] is present
* I checked my config-files ggsn.conf, osmo-hlr.cfg, osmo-msc.cfg, mgcp.cfg, osmo-hnbgw.cfg, osmo-sgsn.cfg against those provided by osmocom.org/attachments/download/2669/3G-config-example.tar, but they only differ in ip-addresses and ip-networks due to my local network configuration.
* I created a new hlr.db with
sqlite3 hlr.db < src/osmo-hlr/sql/hlr.sql
sqlite3 hlr.db < own_hlr.sql
echo "update auc_3g set sqn = 32 where sqn < 32;" | sqlite3 hlr.db
with own_hlr.sql containing the IMSIs and auth-data of the used USIM-cards like:
INSERT INTO "subscriber" (id, imsi, msisdn) VALUES(1,'901700000014910','1111');
INSERT INTO "auc_3g" VALUES(1,5,'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx','yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy',NULL,32,5);
When running the network and trying to join with different smartphones:
=> in sgsn.log I can see messages like:
ESC[0;m20170514014440104 DGPRS <000f> gprs_subscriber.c:699 SUBSCR(901700000014913) Received GSUP message OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR
ESC[0;m20170514014440104 DGPRS <000f> gprs_subscriber.c:455 SUBSCR(901700000014913) Send authentication info has failed with cause 2, handled as: Permission denied
ESC[0;m20170514014440104 DGPRS <000f> gprs_subscriber.c:463 SUBSCR(901700000014913) GPRS send auth info req failed, access denied, GMM cause = 'IMSI unknown in HLR' (2)
ESC[0;m20170514014440104 DGPRS <000f> gprs_subscriber.c:813 SUBSCR(901700000014913) Updating subscriber authentication info
=> when looking at the RANAP-packages captured from eth0 I can see also "GSM A-I/F DTAP - Attach Reject" "GMM Cause: IMSI unknown in HLR"
* I checked, that the IMSIs and auth-data is present in hlr.db
=> I observed that for one subscriber (the Acer Phone, which was connected to the network with a previous version of the software) the sqn number in auc_3g Table is increased, where the value of other subscribers is still 32 (=initial value)
=> in hnbgw.log I can only see the IMSI of the acer-phone, but not of the two other phones. So it looks like phones who had joined the network before are seen there, but phones which IMSIs are new to the network do not show up there
ESC[0;m20170514014439016 DHNBAP <0001> hnbgw_hnbap.c:436 UE-REGISTER-REQ ID_type=1 imsi=901700000014913 cause=1
ESC[0;m20170514014439016 DHNBAP <0001> hnbgw.c:176 created UE context: id 0x17, imsi 901700000014913, tmsi 0x0
=> in hlr.log I can also only the the IMSI of the Acer phone (keys changed) when 5 vectors are created:
ESC[0;mESC[1;33m20170514014439573 DAUC <0003> db_auc.c:132 901700000014913: No 2G Auth Data
ESC[0;mESC[1;33m20170514014439573 DAUC <0003> db_auc.c:213 901700000014913: Calling to generate 5 vectors
ESC[0;mESC[1;33m20170514014439573 DAUC <0003> auc.c:94 Computing 5 auth vectors: 3G only (2G derived from 3G keys)
ESC[0;mESC[1;33m20170514014439573 DAUC <0003> auc.c:96 3G: k = kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
ESC[0;mESC[1;33m20170514014439573 DAUC <0003> auc.c:99 3G: OP = oooooooooooooooooooooooooooooooo
ESC[0;mESC[1;33m20170514014439573 DAUC <0003> auc.c:101 3G: for sqn ind 0, previous sqn was 32
ESC[0;mESC[1;33m20170514014439573 DAUC <0003> auc.c:113 vector [0]: rand = rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
ESC[0;mESC[1;33m20170514014439573 DAUC <0003> auc.c:137 vector [0]: sqn = 64
ESC[0;mESC[1;33m20170514014439573 DAUC <0003> auc.c:139 vector [0]: autn = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
ESC[0;mESC[1;33m20170514014439573 DAUC <0003> auc.c:140 vector [0]: ck = cccccccccccccccccccccccccccccccc
ESC[0;mESC[1;33m20170514014439573 DAUC <0003> auc.c:141 vector [0]: ik = iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
ESC[0;mESC[1;33m20170514014439573 DAUC <0003> auc.c:142 vector [0]: res = 22222222222222222222222222222222
ESC[0;mESC[1;33m20170514014439573 DAUC <0003> auc.c:143 vector [0]: res_len = 8
ESC[0;mESC[1;33m20170514014439573 DAUC <0003> auc.c:147 vector [0]: kc = kckckckckckckck
ESC[0;mESC[1;33m20170514014439573 DAUC <0003> auc.c:148 vector [0]: sres = resrestes
ESC[0;mESC[1;33m20170514014439573 DAUC <0003> auc.c:149 vector [0]: auth_types = 0x3
....
I am running the network as non-privileged user (only ggsn with sudo), but this user can write hlr.db.
Does this user also need to have write-access to files under /usr/local ?
As it looks to me that there is a problem with new USIMs, which have never joined the network: Do the USIMs need special preparation for joining the network? (the USIMs are bought from the sysmocom-shop)
has anybody have the same problems or can give me a hint, where to look for an error? Thanks!
greetings,
Andreas
Dear all,
I've seen dozens of tickets in recent weeks being assigned to the group
"Osmocom Developers". That group is a really large group of redmine
users, quite a number of which don't even work on the GSM/cellular
protocol part.
Assigning issues to that group has the result that they will show up in
*every group members* "My issues" / "My page". And as those issues are
not relevant to most people, they will increase the noise ration of
important information in that default view.
So please think twice before you decide to assign an issue to that
group. It should only be done if you think the issue actually deserves
such a wide audience.
If you don't yet know who will handle a ticket, simply have no assignee.
Also, we (at least Holger, Sylvain, Neels and I) can easily create more
groups for more specific teams, e.g. an "osmo-gsm-tester developers"
group or the like.
Thanks for your attention.
--
- 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 are looking for a way to route all SMS to freeswitch to convert it to SIP-Message. The reason behind this is a better control and additional VAS for SMS transactions.
The forum that we had stumble upon is dated four years ago (http://openbsc.osmocom.narkive.com/9hGGHzZP/help-with-asterisk-setup-to-sto…) and it seems that it was not yet supported by OSMO-NITB by that time.
Not sure if there is already an existing document regarding this case but, can anyone confirm if this is doable and help us on how to do it?
We are using the following:
OS: Ubuntu 16.10
OSMO Elements:
osmo-nitb
osmo-sip-connector
osmo-bts-trx
osmo-trx
Ettus SDR
Best Regards,
Ron Rylan B. Menez
Hallo,
when setting up a 3G network with the nano3G the default filename of the HLR according to osmo-hlr is hlr.db (source code: hlr.c), but the run.sh script, which is included in https://osmocom.org/attachments/download/2636/3G-config-example-v5.tar tries to access hlr.sqlite3 (7th line: sqlite3 hlr.sqlite3 "delete from sms"). So, when starting an error message occures: "Error: no such table: sms".
greetings,
Andreas
Hi All,
We are trying to used a specific pool of number (extension) for the "subscriber-create-on-demand” configuration in osmo-nitb.
Unfortunately, when we used the range from 9570000000 to 9579999999, it returns a different value upon running “show running-config”.
So we tried to change it from the config file of openbsc.conf. After restarting the osmo-nitb application, different value still shows upon running “show running-config”.
But the supported Min and Max value for the "subscriber-create-on-demand random” is from 1-9999999999.
Attached is the config file we used and below is the “show running-config” value of "subscriber-create-on-demand random" value.
nitb
subscriber-create-on-demand
subscriber-create-on-demand random 980065408 990065407
no assign-tmsi
Best Regards,
Ron Rylan B. Menez
Dear all,
Most BTS code I have, generate only one or two 200 kHz channels, but I need
to test a receiver using several (multiplexed) 200 kHz channels, composing
approximately 5 MHz of total bandwidth. This should be a "valid" multiplex
signal (correct and "decodable" control channel). Can anyone pointout where
should I start to put together the software to generate a binary file with
such signal? I guess I can inspect the code of a BTS that supports two TRX
(two 200 kHz channels) but I would like to double check whether there is a
more direct approach.
Thanks beforehand,
Marcus Dias
UFPA - Lasse - LaPS
On Wed, May 10, 2017 at 12:43:42PM +0000, Max wrote:
> To view, visit https://gerrit.osmocom.org/2552
>
> Patch Set 1:
>
> > I guess this could use an entry in 'TODO-RELEASE' to note the fixed API?
>
> Why? TODO-RELEASE is for keeping track of API/ABI changes so we bump corresponding versions when necessary. Docstring change requires neither API not ABI bump.
In my view the API doc describes how the API/ABI *should* behave, and if it
mismatches that's like a bug in the API. If we fix that bug, that's interesting
for users of the API, right?
~N
Hi.
Is there a way for osmo-bts-trx to get osmo-trx version programmatically (at runtime)?
--
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
Hi Max and Harald,
As I mentioned above, my suggestion is to keep the source code
"as portable as possible", which doesn't mean absolutely portable.
I don't suggest to add other UNIX platforms (Darwin, Solaris, etc.)
to our portability scope, I suggest to perform checks on the same
platforms as we currently do, but additionally to have both Clang
and GCC on both slaves.
Why Clang?
- it's default compiler on FreeBSD (recent distributions);
- it has its own big community;
- it has growing compatibility with GCC, see:
en.wikipedia.org/wiki/Clang#Performance_and_GCC_compatibility
Why different versions?
- different distributions provide different versions available
out of the box, i.e. some (such as FreeBSD) provide the latest
version, while some other provide a bit dated versions;
- some things may change in newer versions, e.g. from my recent
experience: Clang 4.0 has support of the __builtin_cpu_supports
built-in, while older versions don't.
I see the only disadvantage of this approach - longer total build
time. So, if you guys support this idea, I could do all configuration
and installation related work. Also, I'll try to contribute some
computing power to Jenkins: there are some servers in my university,
which power isn't used anyhow, so they mostly idle all the time.
> Recently I decided to dig into FreeBSD's world, because one of my
> changes in Gerrit does build fine on Debian slave, but doesn't on
> FreeBSD.
Here I found the problem. Cite from GCC's documentation page
x86-Built-in-Functions.html at gcc.gnu.org:
> If you specify command-line switches such as -msse, the compiler
> could use the extended instruction sets even if the built-ins
> are not used explicitly in the program. For this reason, applications
> that perform run-time CPU detection must compile separate files for
> each supported architecture, using the appropriate flags. In
> particular, the file containing the CPU detection code should be
> compiled without these options.
Adding SIMD flags to a whole project breaks portability between
different CPUs, so I added these flags for viterbi_sse.lo only.
Now the problem seems solved.
With best regards,
Vadim Yanitskiy.
Dear all,
> @fixeria: re the C compiler used on the FreeBSD build slave:
> it is actually, apparently:
>
> FreeBSD clang version 3.4.1
> 20140512
> x86_64-unknown-freebsd10.3
>
> At least that's what a libosmocore ./configure step shows in
> its config.log.
I would like to start a little discussion about FreeBSD build
slave. As it turned out, every new commit is being checked on
clang compiler too! It was a bit unexpectedly to me, because
we already discussed about this in Gerrit:
https://gerrit.osmocom.org/#/c/2100/
> Max:
> > Do we officially support anything besides gcc?
>
> Harald:
> > not really, but then it is also nice to be portable. My vote
> > would be to merge the current patch under discussion, but open
> > a ticket as a reminder that this should be made more portable.
> > I suppose mplayer/ffmpeg/fftw or other libs with heavily
> > optimized algorithms also have a solution to that.
Recently I decided to dig into FreeBSD's world, because one of my
changes in Gerrit does build fine on Debian slave, but doesn't on
FreeBSD. So, I spent a whole night with my laptop and finally
installed and configured FreeBSD first time in my experience.
https://gerrit.osmocom.org/#/c/2100/
I am running 11.0 STABLE, and by default it comes with clang as
default compiler. There is no GCC installed by default. I tried
to build my change with different versions of clang and found the
following interesting facts:
- Recent clang-4.0 does support the __builtin_cpu_supports call,
so runtime CPU detection should work in this case too. I don't
know if it works in other versions. So, I suggest to add a new
configure.ac task, which would check whether compiler supports
this call or not.
- Regarding to my change, it builds fine on several tested clang
versions: clang-3.4.2, clang-3.9, clang-4.0. And I see two
possible reasons, why the build fails on FreeBSD:
1) Version 3.4.1 is pretty dated, and we cat try to upgrade it.
2) Clang compiles the source code in a different way, when some
SIMD flags are provided. But target CPU doesn't support some
of provided SIMD flags. Now in both OsmoTRX and libosmocore
we only check whether compiler supports some SIMD flags, but
we don't check whether these flags are supported by current
build machine CPU. So, lack of the last check and specific
optimization / compilation way of clang may cause the fail.
I still need to know supported SIMD features of FreeBSD
build machine to confirm or refute this assumption.
I also have an idea: what if we could build our projects with several
compilers (GCC and clang) and with their several versions (the three
latest for example) on Jenkins at the same time? I think, it would be
great to keep our projects as portable as possible.
With best regards,
Vadim Yanitskiy.
On Fri, May 05, 2017 at 03:28:48PM +0000, postmaster(a)Radisyscorp.onmicrosoft.com wrote:
> Your message to Sivasankari.Theerthagiri(a)radisys.com couldn't be delivered.
>
> Sivasankari.Theerthagiri wasn't found at radisys.com.
Dear Radisys,
since we are having a problem with a patch from Sivasankari Theerthagiri and
since that contact is apparently no longer available, do you have another
contact that could help resolve the issue?
Thanks!
~N
> From: Neels Hofmeyr <nhofmeyr(a)sysmocom.de>
> To: openbsc(a)lists.osmocom.org
> CC: sivasankari <Sivasankari.Theerthagiri(a)radisys.com>
> Subject: PCU broken: PACCH paging omitted
> User-Agent: Mutt/1.5.23 (2014-03-12)
>
> Trying to fix a PCU breakage, I introduced another error, causing paging to be
> broken. All the details are at:
> https://osmocom.org/issues/2241
> https://gerrit.osmocom.org/2420
>
> I need help: could anyone verify whether the patch is doing the right thing
> now? Otherwise we will need to revert the whole series of breaking patches:
>
> http://git.osmocom.org/osmo-pcu/commit/?id=da7250ad2c1cd5ddc7d3c6e10435a00b…
> "Add counter at BTS level And statistics at TBF/MS level."
> sivasankari <Sivasankari.Theerthagiri(a)radisys.com>
>
> http://git.osmocom.org/osmo-pcu/commit/?id=b78a4a6dfef217c538d45949a6ae725e…
> "fix segfault: check for NULL tbf in sched_select_ctrl_msg()"
> Neels Hofmeyr <nhofmeyr(a)sysmocom.de>
>
> Thanks for any help!
>
> ~N
--
- Neels Hofmeyr <nhofmeyr(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
* Geschäftsführer / Managing Directors: Harald Welte
Hi Alexander and all,
> I don't think those patches will change this if your seeing a failure with
> a --without-sse build.
I hope, it should, because even with --without-sse we still had
-march=native.
http://git.osmocom.org/osmo-trx/commit/?id=78b5627fa1c911713a776e4aa1cb2d8f…
Neels, do you still have the same problem with running on osmo-gsm-tester
setup?
With best regards,
Vadim Yanitskiy.
Trying to fix a PCU breakage, I introduced another error, causing paging to be
broken. All the details are at:
https://osmocom.org/issues/2241https://gerrit.osmocom.org/2420
I need help: could anyone verify whether the patch is doing the right thing
now? Otherwise we will need to revert the whole series of breaking patches:
http://git.osmocom.org/osmo-pcu/commit/?id=da7250ad2c1cd5ddc7d3c6e10435a00b…
"Add counter at BTS level And statistics at TBF/MS level."
sivasankari <Sivasankari.Theerthagiri(a)radisys.com>
http://git.osmocom.org/osmo-pcu/commit/?id=b78a4a6dfef217c538d45949a6ae725e…
"fix segfault: check for NULL tbf in sched_select_ctrl_msg()"
Neels Hofmeyr <nhofmeyr(a)sysmocom.de>
Thanks for any help!
~N
--
- Neels Hofmeyr <nhofmeyr(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
* Geschäftsführer / Managing Directors: Harald Welte
Hello,
And, what is the different of "nano3G" and the "sysmocell 5000" !?
Chears,
De : "openbsc-request(a)lists.osmocom.org" <openbsc-request(a)lists.osmocom.org>
À : openbsc(a)lists.osmocom.org
Envoyé le : Jeudi 4 mai 2017 18h32
Objet : OpenBSC Digest, Vol 31, Issue 6
Send OpenBSC mailing list submissions to
openbsc(a)lists.osmocom.org
To subscribe or unsubscribe via the World Wide Web, visit
https://lists.osmocom.org/mailman/listinfo/openbsc
or, via email, send a message with subject or body 'help' to
openbsc-request(a)lists.osmocom.org
You can reach the person managing the list at
openbsc-owner(a)lists.osmocom.org
When replying, please edit your Subject line so it is more specific
than "Re: Contents of OpenBSC digest..."
Today's Topics:
1. Re: osmo-bts-trx error / osmo-trx illegal instruction (core
dumped) (Max)
2. 3G openBSC (dga-mi.imi.fct(a)intradef.gouv.fr)
3. Re: 3G openBSC (Harald Welte)
4. RE: 3G openBSC (dga-mi.imi.fct(a)intradef.gouv.fr)
5. Re: dependency artifacts for faster
builds/gerrit-verifications (Neels Hofmeyr)
6. gerrit: thanks for login link (Neels Hofmeyr)
7. Re: gerrit: thanks for login link (Holger Freyther)
8. Re: dependency artifacts for faster
builds/gerrit-verifications (Neels Hofmeyr)
----------------------------------------------------------------------
Message: 1
Date: Wed, 3 May 2017 13:48:57 +0200
From: Max <msuraev(a)sysmocom.de>
To: openbsc(a)lists.osmocom.org
Subject: Re: osmo-bts-trx error / osmo-trx illegal instruction (core
dumped)
Message-ID: <6b2ef79f-5121-aea9-4c00-90adc5bb4cc2(a)sysmocom.de>
Content-Type: text/plain; charset=utf-8
You might want to have a look at 78b5627fa1c911713a776e4aa1cb2d8f3a04bd8f in osmo-trx
which seems to be related.
On 03.05.2017 13:45, Vadim Yanitskiy wrote:
> Hi Alexander and all,
>
> > I don't think those patches will change this if your seeing a failure with
> > a --without-sse build.
>
> I hope, it should, because even with --without-sse we still had -march=native.
> http://git.osmocom.org/osmo-trx/commit/?id=78b5627fa1c911713a776e4aa1cb2d8f…
--
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
------------------------------
Message: 2
Date: Thu, 4 May 2017 09:40:14 +0000
From: "dga-mi.imi.fct(a)intradef.gouv.fr"
<dga-mi.imi.fct(a)intradef.gouv.fr>
To: "'openbsc(a)lists.osmocom.org'" <openbsc(a)lists.osmocom.org>
Subject: 3G openBSC
Message-ID:
<2BB505A96EF4274B86685F94F1A1B6FD23007140(a)INF31BRUZ--WM15.DR-RES.INTRADEF.GOUV.FR>
Content-Type: text/plain; charset="us-ascii"
Hello,
I would like to know whether the 3G openBSC platform is enough stable to start using it for data and voice services.
Which 3G femtocell do you recommand ?
Is it possible to use Sysmocom SIM for 3G UE registration?
Best regards,
Remi
[ENVOYE PAR INTERNET]
Hello,
I would like to know whether the 3G openBSC platform is enough stable to start using it for data and voice services.
Which 3G femtocell do you recommand ?
Is it possible to use Sysmocom SIM for 3G UE registration?
Best regards,
Remi
[ENVOYE PAR INTERNET]
Hi all,
I am currently working on https://gerrit.osmocom.org/#/c/2075/
The problem is that the conv.h should be shared between several
source code files, and it works fine for all of them, excepting
the gsm0503_test_vectors.c, which will be generated automatically
by the utils/conv_gen.py in the next commit.
The header is currently included this way:
#include "conv.h"
And building in separate directory fails:
CC conv/gsm0503_test_vectors.o
conv/gsm0503_test_vectors.c:25:18: fatal error:
conv.h: No such file or directory
#include "conv.h"
^
compilation terminated.
This is why I tried to move this header to the global include
directory. According to received feedback from Harald and
Sylvain, this approach isn't good and I need to find another one.
Any suggestions how to make the conv/gsm0503_test_vectors.c
able "to see" the conv.h header?
With best regards,
Vadim Yanitskiy.
Hi All,
Upon running "osmo-bts-trx -c osmo-bts.cfg” while "osmo-nitb -C -c openbsc.conf -T -P -m” and “osmo-trx” are running, the following error shows and also shuts down “osmo-trx”
osmo-bts-trx error:
root@entropy:~/osmocom_files# osmo-bts-trx -c osmo-bts.cfg
((*))
|
/ \ OsmoBTS
<0017> control_if.c:725 CTRL at 127.0.0.1 4238
<0010> telnet_interface.c:95 telnet at 127.0.0.1 4241
<0012> input/ipaccess.c:885 enabling ipaccess BTS mode, OML connecting to 192.168.1.129:3002
<000b> trx_if.c:584 Open transceiver for phy0.0
<0012> input/ipa.c:129 connection done.
<0012> input/ipaccess.c:706 received ID get
<0001> oml.c:475 Ignoring T200[0] (150 ms) as sent by BSC due to suspected LAPDm bug!
<0001> oml.c:475 Ignoring T200[1] (180 ms) as sent by BSC due to suspected LAPDm bug!
<0001> oml.c:475 Ignoring T200[2] (180 ms) as sent by BSC due to suspected LAPDm bug!
<0001> oml.c:475 Ignoring T200[3] (1680 ms) as sent by BSC due to suspected LAPDm bug!
<0001> oml.c:475 Ignoring T200[4] (520 ms) as sent by BSC due to suspected LAPDm bug!
<0001> oml.c:475 Ignoring T200[5] (165 ms) as sent by BSC due to suspected LAPDm bug!
<0001> oml.c:475 Ignoring T200[6] (1680 ms) as sent by BSC due to suspected LAPDm bug!
<0001> oml.c:844 ADM state already was Unlocked
<0012> input/ipa.c:129 connection done.
<0012> input/ipaccess.c:706 received ID get
<0009> pcu_sock.c:651 PCU socket not connected, dropping message
<0009> pcu_sock.c:651 PCU socket not connected, dropping message
<0009> pcu_sock.c:651 PCU socket not connected, dropping message
<0009> pcu_sock.c:651 PCU socket not connected, dropping message
<0009> pcu_sock.c:651 PCU socket not connected, dropping message
<0009> pcu_sock.c:651 PCU socket not connected, dropping message
<0009> pcu_sock.c:651 PCU socket not connected, dropping message
<0009> pcu_sock.c:651 PCU socket not connected, dropping message
<0009> pcu_sock.c:651 PCU socket not connected, dropping message
<0009> pcu_sock.c:651 PCU socket not connected, dropping message
<0009> pcu_sock.c:651 PCU socket not connected, dropping message
<0009> pcu_sock.c:651 PCU socket not connected, dropping message
<000b> trx_if.c:187 No response from transceiver for phy0.0
<0009> pcu_sock.c:848 PCU socket connected to external PCU
<0001> oml.c:72 Reporting FAILURE to BSC: 0.3.20170425
<0000> rsl.c:624 (bts=0,trx=0,ts=4,ss=0) not sending CHAN ACT ACK
<0000> rsl.c:624 (bts=0,trx=0,ts=5,ss=0) not sending CHAN ACT ACK
<0000> rsl.c:624 (bts=0,trx=0,ts=6,ss=0) not sending CHAN ACT ACK
<0000> rsl.c:624 (bts=0,trx=0,ts=7,ss=0) not sending CHAN ACT ACK
<000b> trx_if.c:187 No response from transceiver for phy0.0
<000b> trx_if.c:187 No response from transceiver for phy0.0
<000b> trx_if.c:187 No response from transceiver for phy0.0
<000b> trx_if.c:187 No response from transceiver for phy0.0
<000b> trx_if.c:187 No response from transceiver for phy0.0
<000b> trx_if.c:187 No response from transceiver for phy0.0
<000b> trx_if.c:187 No response from transceiver for phy0.0
<000b> trx_if.c:187 No response from transceiver for phy0.0
<0007> l1sap.c:413 Invalid condition detected: Frame difference is > 1!
<0001> bts.c:208 Shutting down BTS 0, Reason No clock from osmo-trx
<000b> trx_if.c:203 CTRL NOHANDOVER ignored: No clock from transceiver, please fix!
<000b> trx_if.c:203 CTRL NOHANDOVER ignored: No clock from transceiver, please fix!
<0000> rsl.c:528 (bts=0,trx=0,ts=4,ss=0) not sending REL ACK
<000b> trx_if.c:203 CTRL NOHANDOVER ignored: No clock from transceiver, please fix!
<000b> trx_if.c:203 CTRL NOHANDOVER ignored: No clock from transceiver, please fix!
<0000> rsl.c:528 (bts=0,trx=0,ts=5,ss=0) not sending REL ACK
<000b> trx_if.c:203 CTRL NOHANDOVER ignored: No clock from transceiver, please fix!
<000b> trx_if.c:203 CTRL NOHANDOVER ignored: No clock from transceiver, please fix!
<0000> rsl.c:528 (bts=0,trx=0,ts=6,ss=0) not sending REL ACK
<000b> trx_if.c:203 CTRL NOHANDOVER ignored: No clock from transceiver, please fix!
<000b> trx_if.c:203 CTRL NOHANDOVER ignored: No clock from transceiver, please fix!
<0000> rsl.c:528 (bts=0,trx=0,ts=7,ss=0) not sending REL ACK
Shutdown timer expired
osmo-trx logs:
NOTICE 139966735525632 16:51:01.4 Transceiver.cpp:794:driveControl: Changing TSC from 0 to 7
NOTICE 139966735525632 16:51:01.4 Transceiver.cpp:243:start: Starting the transceiver
Illegal instruction (core dumped)
osmo-nitb logs:
Thu Apr 27 16:50:43 2017 <001e> input/ipa.c:263 accept()ed new link from 192.168.1.129 to port 3002
Thu Apr 27 16:50:43 2017 <001e> input/ipa.c:263 accept()ed new link from 192.168.1.129 to port 3003
Thu Apr 27 16:50:43 2017 <0004> bsc_init.c:288 bootstrapping RSL for BTS/TRX (0/0) on ARFCN 885 using MCC=1 MNC=1 LAC=1 CID=1 BSIC=63
BTS 0 reported connected PCU version 0.3.20170425
Thu Apr 27 16:51:06 2017 <001e> input/ipaccess.c:241 Sign link vanished, dead socket
Thu Apr 27 16:51:06 2017 <001e> input/ipaccess.c:69 Forcing socket shutdown with no signal link set
Thu Apr 27 16:51:06 2017 <0020> bsc_init.c:341 Lost some E1 TEI link: 1 0x7f5f48820070
Thu Apr 27 16:51:06 2017 <0020> bsc_init.c:341 Lost some E1 TEI link: 2 0x7f5f48820070
^Csignal 2 received
Also attached the configuration files used.
What seems causes the issue?
OS: Ubuntu 16.04
SDR: B210
Best Regards,
Ron Rylan B. Menez
Operations Manager
+63 998 989 7973
+63 2 893 1781
[cid:bbb8aa9b-ea08-431b-bb55-8cc77a18e169@apcprd06.prod.outlook.com]
Singapore * Philippines
Products:
Gridloc*Intelle*Hype*Lighthouse*Telco Services*Software Development
This email (including any attachment to it) is confidential and intended only for the use of the individual named above and may contain information that is privileged. If you are not the intended recipient, you are notified that any dissemination, distribution or copying of this email is strictly prohibited. If you have received this email in error, please notify us immediately by return email or telephone and destroy the original message (including any attachment to it). Thank you.
@fixeria: re the C compiler used on the FreeBSD build slave:
it is actually, apparently:
FreeBSD clang version 3.4.1
20140512
x86_64-unknown-freebsd10.3
At least that's what a libosmocore ./configure step shows in its config.log.
~N
Hello,
is it possible to connect the openbsc from the vlr_3G Branch with sip-connector to asterisk as described on https://osmocom.org/projects/osmo-sip-conector/wiki/Osmo-sip-connector, or are there changes in the vlr_3G Branch that makes this impossible?
When trying to set this up I was able to call an UMTS-Phone which was connected to the nano3G from a softphone using jitsi, and the UMTS-Phone was ringing, but it was not possible to answer the call.
I have only limited experiences with asterisk and so I am for example unsure about what voice-codecs to use, if my asterisk-config is correct,... and so I would like to know if it should work in principle and I have to find the correct configuration.
have a nice weekend,
Andreas