| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
log_enable_multithread() enables use of locks inside the
implementation. Lock use is disabled by default, this way only
multi-thread processes need to enable it and suffer related
complexity/performance penalties.
Locks are required around osmo_log_target_list and items inside it,
since targets can be used, modified and deleted by different threads
concurrently (for instance, user writing "logging disable" in VTY while
another thread is willing to write into that target).
Multithread apps and libraries aiming at being used in multithread apps
should update their code to use the locks introduced here when
containing code iterating over osmo_log_target_list explictly or
implicitly by obtaining a log_target (eg. osmo_log_vty2tgt()).
Related: OS#4088
Change-Id: Id7711893b34263baacac6caf4d489467053131bb
|
|
|
|
|
|
|
|
|
|
|
| |
This way if the process is started with no file associated (eg. no -c
param and default cfg path doesn't exist), config can be later saved
into a file by passing the parameter. Otherwise, until now this message
was displayed:
Can't save to configuration file, using vtysh.
Related: OS#4024
Change-Id: I38edcf902a08b6bd0ebb9aa6fc1a7041421af525
|
|
|
|
| |
Change-Id: I436daa804aac11622fde24afe9ea35193d9e9beb
|
|
|
|
|
|
|
|
|
|
|
| |
This is useful for timers expected to have a range of valid or expected
values.
Validation is done at runtime when timer values are set by the app or by
the user through the VTY.
Related: OS#4190
Change-Id: I4661ac41c29a009a1d5fc57d87aaee6041c7d1b2
|
|
|
|
| |
Change-Id: I9b4c7e737c83c65e358496e4540c14be5abc5474
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
OSMO_GSUP_SUPPORTED_RAT_TYPES_IE corresponds to the Supported RAT Types
Indicator from 3GPP TS 29.002. See 8.1.2 MAP_UPDATE_LOCATION service,
which indicates the capabilities of the MSC/VLR to the HLR.
So far, have room for eight RAT types in the gsup_msg. That is an arbitrary
random choice without any rationale.
OSMO_GSUP_CURRENT_RAT_TYPE_IE is useful to communicate the currently
used RAN / RAT type of the current subscriber during Location Updating Request.
Change-Id: I93850710ab55a605bf61b95063a69682a2899bb1
|
|
|
|
|
|
|
| |
We first set the ISTRIP bit only to remove it in the next line.
Let's try to avoid confusing the reader.
Change-Id: Icba43dd4b6dc4f9c7f8fcf91d24b3baac4e0c74a
|
|
|
|
| |
Change-Id: I837c8303a7bb47b690cc8841cf5cafba8ac338af
|
|
|
|
|
|
|
| |
Since structure 'osmo_gcr_parsed' does contain arrays, GCC is not
happy about the way we initialize it. Let's do it explicitly.
Change-Id: Ia814b4a4ed5bec84ff1f69232f7f7d5ca0d19794
|
|
|
|
| |
Change-Id: I4b9e12e34f69d98fa87179c7ee390e31001ec943
|
|
|
|
|
|
|
|
|
| |
Nothinh really forbids this case, it's totally fine allocating all space
of msgb as headroom. osmo-pcu actually does that in
gprs_rlcmac_ul_tbf::snd_ul_ud().
Related: OS#4029
Change-Id: Ibe05d08e3169a2603e891f76682a3b352a93ec7a
|
|
|
|
|
|
|
|
|
| |
logging_internal.h
This list is really not needed by applications and currently only used
internally in logging.c and logging_vty.c.
Change-Id: I5dca069512bfcd0826194427c5482fad8bfd0232
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Projects not containing libraries may also want to contain a
TODO-RELEASE in order to write down when a new API available only on
libosmoXYZ current master (hence configure.ac and debian cannot be
updated during the patch using the API until the APIs are available in a
new release). This way, during release process of the project, the
maintainer can see that a release of libosmoXYZ is needed beforehand and
then update configure.ac of project accordingly with the new version of
libosmoXYZ.
Furthermore, we want to update the file only if mode DRY_RUN is not
selected.
Change-Id: I409b7eb8c23d21473f25dd2000f5d4447b24adb9
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ECU implementation for FR is currently tested by calling the related
functions directly and by using the generic ECU abstraction layer. However,
the test "test_fr_concealment" only tests directly. Lets add a version
that uses the generic ECU abstraction layer as well.
The generic ECU abstraction layer obsolets the public API functions
osmo_ecu_fr_reset() and osmo_ecu_fr_conceal(), lets tag those functions
as dprecated.
Change-Id: Ib0c8a9b164f14ea4fa00688f760a76cdb4890af4
|
|
|
|
| |
Change-Id: Ic0a3a407c592262104af315f845f0bbd116ab26b
|
|
|
|
| |
Change-Id: I3d548fcc7d500baf37134b14af91bc7b284ce6ad
|
|
|
|
|
|
|
| |
First user is osmo-bts in I6b7bb2e1d61502b61214f854a4ec5cbb7267545b.
Related: OS#2356
Change-Id: I814cb3328d99faca9220adb5a80ffb934f219d7d
|
|
|
|
|
|
|
|
|
| |
Global symbol osmo_log_info is declared in logging.c as non-const,
because it is modified. As soon as logging_internal.h is included into
logging.c, the compiler warns about osmo_log_info being declared twice
differently.
Change-Id: Iea961c3caeb12ddf60c99d4dca644bb9ab538767
|
|
|
|
|
|
|
|
|
|
|
|
| |
I missed code review, so here are my comments in form of a follow-up patch
for Id56a1226d724a374f04231df85fe5b49ffd2c43c.
- Fix 'as_unit' arg name to 'val_unit' as in the C file and API doc.
- Explain rounding-up behavior of value conversion in API doc.
- Use osmo_tdef_get_entry() instead of a loop.
Related: OS#4190
Change-Id: Ia91c2f17e40fb9e79ffa5a7f28ce9c3605664402
|
|
|
|
|
|
|
| |
enum node_type is defined in osmocom/vty/command.h
va_list is defined in stdarg.h
Change-Id: Ia439a7097ae7a9765e229e5f66e07af3fe490ecc
|
|
|
|
|
|
|
|
|
| |
This API is already useful for users willing to set a given timer to a
given value. It will also contain code later that checks for value being
inside valid range for that timer.
Related: OS#4190
Change-Id: Id56a1226d724a374f04231df85fe5b49ffd2c43c
|
|
|
|
|
|
|
|
|
|
| |
As 3GPP doesn't specify how the BSC shall communicate ETWS Primary
Notifications over Abis/RSL, we have to use a vendor-specific RSL
message for this. And in order to know if the peer supports this
feature, we introduces BTS_FEAT_ETWS_PN.
Change-Id: I89c24a81ada6627694a9632e87485a61cbd3e680
Related: OS#4046, OS#4047
|
|
|
|
|
| |
Change-Id: I36fc2ffc22728887d1cb8768c7fcd9739a8ec0fc
Related: OS#4046, OS#4047
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We don't want to expose the details of a given ECU implementation to
the user (e.g. osmo-bts), but have a generic abstraction layer where
an ECU implementation can simply register a few call-back functions
with the generic core.
As the developer and copyright holder of the related code, I hereby
state that any ECU implementation using 'struct osmo_ecu_ops' and
registering with the 'osmo_ecu_register()' function shall not be
considered as a derivative work under any applicable copyright law;
the copyleft terms of GPLv2 shall hence not apply to any such ECU
implementation.
The intent of the above exception is to allow anyone to combine
third party Error Concealment Unit implementations with libosmocore,
including but not limited to such published by ETSI.
Change-Id: I4d33c9c7c2d4c7462ff38a49c178b65accae1915
|
|
|
|
| |
Change-Id: I1dce8ace228814b5a7246a00b31309ab9461d266
|
|
|
|
|
|
|
| |
The user length is the first IE *in* the fixed-length TV, make sure
cbsp_dec_write_repl() respects that.
Change-Id: I864cafac2466a89a4bd9644bc73363fff2babd03
|
|
|
|
| |
Change-Id: I6916e2330e004f20a22f273147fa6288d18b5d0d
|
|
|
|
|
|
|
|
| |
The CBSP code assumed that gsm0808_decode_cell_id_u() would return
the number of bytes it has consumed/parsed. But it actually always
returns '0', whcih makes us run in an endless loop :(
Change-Id: I5758af4ec11a827d4b888a3a16c4ec22de90a7d6
|
|
|
|
|
|
|
| |
The pointless '(R)->ip?' condition of the previous commit made me want to
protect against R == NULL instead.
Change-Id: Ie2f47ad8ae585aaf67a6476c67f8e014820a72bc
|
|
|
|
|
|
|
| |
Since (R)->ip is a char[], it is always non-NULL. The (x ? : "") condition is
completely pointless. Remove it.
Change-Id: I13ed06776a784cfa99bbdfca2bb4dfe12913a1ec
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a VTY closes, dispatch the VTY_CLOSED signal before tearing down the VTY
buffer and fd.
In particular this fixes:
- a crash during telnet_close_client(), invoked by the VTY_CLOSED event, which
logs to DLGLOBAL and uses vty->obuf that, so far, vty_close() had already
unallocated earlier (OS#4164).
- the logging about closing a telnet session so far logged:
DLGLOBAL INFO Closing telnet connection r=NULL<->l=NULL
By dispatching the VTY_CLOSED event while the fd is still valid, we instead
get the actual connection IP address and port being closed:
DLGLOBAL INFO Closing telnet connection r=127.0.0.1:36708<->l=127.0.0.1:4258
Related: OS#4164
Change-Id: I1d235cbfbfb9aaf411316642c7bcfac12106df44
|
|
|
|
|
|
|
|
|
|
| |
Rather than having applications maintain their own talloc cotexts,
let's offer some root talloc contexts in libosmocore. Let's also
make them per thread right from the beginning. This will help
some multi-threaded applications to use talloc in a thread-safe
way.
Change-Id: Iae39cd57274bf6753ecaf186f229e582b42662e3
|
|
|
|
| |
Change-Id: Icaec95a9c6105fd17bc1151fdc77394f4efd3b70
|
|
|
|
|
|
|
|
| |
This way it's easier by osmo_verify_transcript_vty.py to skip and avoid
breaking existent test in osmo-hlr.
Fixes: d0b3b9edac978c91bf84aa2537aa24426685b1fb
Change-Id: Iab9423661e4f4eefca2e3d02b60a43f913ed92a3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The intention of osmo_tdef_get()'s val_if_not_present argument was to return a
default timeout, or to optionally abort the program for missing timer
definitions if the default timeout is < 0. This was the case in the original
implementation of this API in osmo-bsc, but in the migration to libosmocore,
the argument was by accident changed to an unsigned type. In consequence, the
assertion in the implementation that was intended to abort the program seemed
bogus to coverity, and was fixed by removal in
I7a544d2d43b83135def296674f777e48fe5fd80a -- the wrong direction, as is obvious
from the API doc for osmo_tdef_get().
Note that osmo-bsc master passes -1 in various places and expects the
program-abort behavior that was missing from the libosmocore implementation.
Change the val_if_not_present argument to a signed type, and revert removal of
the assertion, so that passing -1 has the effect described in the API doc:
program abort on missing timer definition.
This bug was not detected because it is hard to write tests that expect a
program abort to happen, hence no tests for this API feature exist.
Related: OS#4152
Change-Id: Ie61c3c85069916336e6dbd91a2c16f7634816417
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When reading SUT logs resulting from TTCN3 runs, it can be hard to figure out
which log section corresponds to which test code. Add a 'logp' command on VIEW
and ENABLE nodes that simply echos an arbitrary message on log output, useful
to set markers / explanations from the TTCN3 code, which then appear in all log
outputs and can make it trivial to figure out which log section is interesting.
logging_vty_test# logp lglobal notice This is the log message
DLGLOBAL NOTICE This is the log message
From TTCN3, could be used like this, e.g. in BSC_Tests.ttcn:
private function f_logp(charstring log_msg) runs on MSC_ConnHdlr
{
// log on TTCN3 log output
log(log_msg);
// log in stderr log
f_vty_transceive(BSCVTY, "logp lglobal notice " & log_msg);
}
...
f_logp("f_probe_for_handover(" & log_label & "): Ending the test: Handover Failure stops the procedure.");
Change-Id: Ife5dc8999174c74e0d133729284fe526d6eaf8d9
|
|
|
|
| |
Change-Id: I64c6d3dc08ff87b673ba6225f98546e86f91bcfd
|
|
|
|
|
|
|
| |
openbsc's directory structure is a bit different (has most stuff inside
an extra subdir). Let's account for that.
Change-Id: I407cf47d8339d99c74a976460ea84fffe679dfd8
|
|
|
|
| |
Change-Id: I614080361f3cc5bfb89994a8e8e36981529cd439
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and debian/control
Sample output for current osmo-msc master:
Releasing 1.3.1.191-7ea0d -> 1.4.0...
ERROR: configure.ac <libosmocore, 1.0.0> does NOT match debian/control <libosmocore, 0.10.0>!
ERROR: configure.ac <libosmo-netif, 0.4.0> does NOT match debian/control <libosmo-netif, 0.1.0>!
ERROR: configure.ac <libosmo-sigtran, 1.0.0> does NOT match debian/control <libosmo-sigtran, 0.8.0>!
ERROR: configure.ac <libosmo-mgcp-client, 1.5.0> does NOT match debian/control <libosmo-mgcp-client, 1.1.0>!
ERROR: configure.ac <libosmo-gsup-client, 1.0.0> does NOT match debian/control <libosmo-gsup-client, 0.2.1>!
ERROR: configure.ac <libsmpp34, 1.13.0> does NOT match debian/control <libsmpp34, 1.12>!
ERROR: configure.ac <libasn1c, 0.9.30> does NOT match debian/control <libasn1c, 0.9.28>!
ERROR: configure.ac <libosmo-ranap, 0.3.0> does NOT match debian/control <libosmo-ranap, 0.2.0>!
ERROR: exiting due to previous errors
make: *** [osmo-release.mk:9: release] Error 1
Change-Id: I702a82c1b0e21dbe71a334a6f8bc62efe07859a6
|
|
|
|
| |
Change-Id: Ib929bfac3689f35aaa58d7d079a46fff188b7e8e
|
|
|
|
|
|
|
|
|
|
| |
This option allows testing if everything is in place before attempting
release related actions such as commiting, applying tag, etc.
It's also useful during development of the osmo-release.sh release
itself, sine it makes test iterations faster (no need to undo actions
done).
Change-Id: Ie5c320b7c92f92fcc37287bb9801368265a986b3
|
|
|
|
| |
Change-Id: I05dd1f2725e05f856f1d27c9201a0005de101b8f
|
|
|
|
|
|
|
|
|
|
| |
As a result whitespace ended up in some variables and then command
"expr" was not happy about it.
It was spotted because src/coding/Makefile.am had some whitespacing.
Since it's the only one, let's drop the whitespace there too to have
similar line in all Makefile.am files.
Change-Id: I33afef5e4ef9eb36de81274533f46598ba9a0edb
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some toolchains (such as sysmobts 201705 one) containing the TLS bug on
old ARM gcc versions (<7.3.0) also crash if the initial workaround found
is aplied (CFLAGS="-mtls-dialect=gnu2"). In that scenario, let's provide
a way to disable the workaround (to avoid "ld" crashing) and warn the
user about requirement to build with -O0 to avoid runtime crashes.
Related: OS#4062
Related: SYS#4628
Change-Id: I04ff8c702eabcf4f6e7b59e11aece2744267cefe
|
|
|
|
|
|
|
|
|
|
|
|
| |
Check if compiler being used contains the bug. GCC 7.3.0 is the oldest
version containing the fix, and version 6.3.0 is known to contain the
bug. Bug is only known to appear so far only on ARM32. If the bug is
present, gcc will generate a wrong binary which wil lend up segfaulting
when accessing TLS (__thread) variables under certain conditions.
Related: OS#4062
Related: SYS#4628
Change-Id: I8acc2cf41b73da0c3290f1cefd79f2bc68b0e77d
|
|
|
|
|
|
|
|
|
|
|
| |
Since March 15th 2017, libosmocore API logging_vty_add_cmds() had its
parameter removed (c65c5b4ea075ef6cef11fff9442ae0b15c1d6af7). However,
definition in C file doesn't contain "(void)", which means number of
parameters is undefined and thus compiler doesn't complain. Let's remove
parameters from all callers before enforcing "(void)" on it.
Related: OS#4138
Change-Id: Iaea795521361a8e5b3b45eaeb35e6eda69163af3
|
|
|
|
|
|
|
|
|
|
|
| |
There's no real good reason for using that function (static buffer)
instead of osmo_str_tolower_buf(local buffer), so let's use the later.
In any case, we get rid of TLS variables in those places, which is a
performance improvement.
It will also allow later shrinking of those buffers if we decide to
define maximum logging category and level name length.
Change-Id: I2e99de1142020e4d80ef0a094e4e751f7903f5f9
|
|
|
|
|
|
|
|
|
|
|
| |
This way we get rid of extra 128 bytes in memory per thread created.
It makes sense to share the buffer since it's same size and it doesn't
make much sense to be using both osmo_str_tolower and osmo_strtoupper at
the same time (usually you either want to move everything to uppercase
or everything to lowerase). In required scenarios, one can still use the
_buf versions.
Change-Id: I032803faa0e27c2efdff1ff276acabab95a8319a
|
|
|
|
|
|
|
|
| |
The pseudotalloc layer doesn't yet support talloc_named() API
which will be used by the upcoming "context" change. Let's add
this function to pseudotalloc.c for our arm-non-eabi builds.
Change-Id: I4d91ebd73a3357a17ef9143a1b41b90186d4c128
|