aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2016-11-02Add osmo_fsm_unregister() to headerMax2-1/+2
Previously function was defined but not exposed so there were a way to register FSM but no way to unregister it. Change-Id: I2e749d896009784b77d6d5952fcc38e1c131db2b
2016-11-02utils/conv_gen.py: explicitly import reduce()Vadim Yanitskiy1-0/+1
This change finally makes the script able to be executed in Python 3 environment. Due to new Python 3 restrictions, the reduce() should be imported explicitly. Change-Id: Icbc81c29f1a226aeed2c1245a5d60809fe124005
2016-11-02utils/conv_gen.py: don't mix print and write()Vadim Yanitskiy1-32/+34
This is mostly a code style change, but it also increases the compatibility with Python 3. Change-Id: I5c8271d973f766aeb9cbcab30c4eddfdab54fcbb
2016-11-01Fix typo in osmo_fsm_log_addr()Max1-1/+1
Previously function parameter was ignored, fsm_log_addr was always set to false. Change-Id: I74f06eab2dfa81dbb95e01f0b4b26448fd1b98f8
2016-10-27gsm0408: Completing GSM 04.08 RR message typesPhilipp4-2/+123
- Add missing message types to be up to date with the latest specification release (3GPP TS 04.18) - Add value strings to translate RR message type identifiers into human readable strings. (see gsm48_rr_msg_name() in gsm48.h Change-Id: I3ceb070bf4dc8f5a071a5d43c6aa2d4e84c2dec6
2016-10-27COSMETIC: moving rr_cause_name() in gsm48.cPhilipp1-5/+5
rr_cause_name() is located a far of from value_string rr_cause_names[] while other value string functions are located right below their related value string definitions. This commit moves rr_cause_name() below rr_cause_names[] as it should be Change-Id: Ie6c03a6ea02c370d8733db5ba2a709610cd70ce7
2016-10-23utils/conv_gen.py: add EDGE MCS 1-9 definitionsVadim Yanitskiy3-1/+301
Change-Id: Ie1452342f524a8b60f2babc07398a1d9c9e06aa3
2016-10-23utils/conv_gen.py: fix some typosVadim Yanitskiy1-6/+6
Change-Id: I3327b92715744af4ef61496ef0121555d9d24799
2016-10-23utils/conv_gen.py: add RACH, SCH and TCH/AHS definitionsVadim Yanitskiy3-1/+212
Change-Id: I0ea7151f4e8119a8798a9e129b951559e56b0d93
2016-10-23gsm/gsm0503.h: fix typoVadim Yanitskiy1-1/+1
Change-Id: I263d61111544eeb7227e1e0e8f2d14479eae2079
2016-10-23utils/conv_gen.py: improve output formattingVadim Yanitskiy1-6/+32
To keep the generated tables readable, line with should be limited. So, now there are the following limitations: - _print_term(): up to 12 numbers per line, - _print_puncture(): up to 12 numbers per line, - _print_x(): up to 4 blocks per line. Change-Id: I95256c4ad402a3c088bdb6c5a5cda8b17c31881c
2016-10-23utils/conv_gen.py: generate a single fileVadim Yanitskiy3-326/+321
Instead of generating every convolutional code into a separate file (such as conv_xcch_gen.c, conv_cs3_gen.c), it is better to have a single file, containing all definitions, because as many convolutional codes we add, as many entries we will have to add into 'src/gsm/Makefile.am'. This approach increases readability of the Makefile.am, and also makes us able to share some data between some convolutional code definitions. For example: xCCH, RACH, SCH, TCH/F, both CS2 and CS3 may use the same *_state[][2] and *_output[][2] arrays within a single file. This optimization is currently WIP. Change-Id: Ib4e4ee5fdde38429e68e3b2fa50ec03a18f59daa
2016-10-20Revert "Constify ctrl_cmd struct fields where appropriate"Neels Hofmeyr2-4/+3
This reverts commit ed9d6da5df98538adc70aa03cb569eb9505d04b6. The commit is good as such, but it causes many compiler warnings in the OpenBSC build. We want this to be re-applied as soon as we have patches ready that fix the fallout in openbsc.git. See also https://lists.osmocom.org/pipermail/openbsc/2016-October/009802.html Related: OS#1829 Change-Id: I722ad60232a6ef5b4cb984b92c42851de26b3ccd
2016-10-18vty/show asciidoc: counters: improve table headersAlexander Couzens1-5/+8
add [options=header] to every table header vty/show asciidoc: rename reference field into "Reference" vty/show asciidoc: capilize table header field names Change-Id: Ie991f4db77a60afb86a2a0b35c137586527f6228
2016-10-18vty/show asciidoc: add user readable description of the versionAlexander Couzens1-0/+10
Change-Id: Ie0f1b3894361c58386da9defb225979fa0ee6a18
2016-10-18stats_statsd: use int64_t instead of int for value and delta.Alexander Couzens1-3/+3
The stats infrastructure use int64_t for values and delta. So the statsd reporter get call with int64_t. Change-Id: I33df86de60007a64fa853d6d3af9b609877a8fc6
2016-10-13vty/osmo_counter: use name if description is NULLAlexander Couzens1-1/+5
`show stats` shows (null) for osmocom_counters when description is null. OpenBSC> show stats Ungrouped counters: (null): 4 Change-Id: I553b88a6fca688924b1f2b49e8cb17e90f057bb1
2016-10-12configure: add --enable-sanitize, use in jenkins.shNeels Hofmeyr2-2/+15
--enable-sanitize adds address sanitizer CFLAGS/CPPFLAGS to the entire build. Also pass UBSAN_OPTIONS to the test suite run (only has effect during runtime). Add this flag to jenkins.sh's configure step. To ensure that we get the sanitize results, add 'make check' to jenkins to catch sanitize failures; Keep 'make distcheck' without ASAN; it has its own configure which omits --enable-sanitize. This way we test both with and without ASAN. Change-Id: Idf7f46fa048608c2951f2473cb528f6c8dc2681d
2016-10-12gsm/Makefile.am: use proper top_builddir/top_srcdir pathsNeels Hofmeyr1-3/+3
This fixes the conv*gen.c targets when building in a different directory than the source tree. Notably, building in a different dir worked when the generated sources were already present from a previous build inside the source directory. Change-Id: I5a9b780ad4ba607ea39854dcf7207ed05f5447bc
2016-10-12Add function to send TRAP over Control InterfaceMax2-0/+22
Change-Id: Ic0b8d88c4f5c4d42c3f8fb754f8eabf049c9e388 Related: OS#1646
2016-10-12jenkins.sh: drop unecessary PATH, now in slave configNeels Hofmeyr1-1/+0
Change-Id: Ifaff3e5e13c920eb716a5609bfec2f96e10f17b0
2016-10-12gsm0408: Adding 3g spcific RR message typesPhilipp1-0/+5
GSM 04.18, which is the successor of GSM 04.08, describes additional RR 3g specific message types. This commit adds four new message types related to paging and notifiction See also 3GPP TS 04.18, section 10.4, table 10.4.1 Change-Id: I071cc9ecac342b5221fa0ec0b782b04b51b40e93
2016-10-12fix USSD: SS message type mask should be 0x3f, not 0xbfNeels Hofmeyr1-1/+1
See 04.80[1], section 3.4: the highest two bits are used as counter or ignored and do not contribute to the SS "Miscellaneous message group". Previous mask of 0xbf included the highest bit, fix to 0x3f. Observed a value of 0xbb that should mean 0x3b="Register" during testing of 3G USSD requests, which seem to be the first to send a nonzero highest bit to our code. The erratic mask of 0xbf lead to an unhandled message type of 0xbb. [1] 3GPP TS 24.080 version 7.2.0 Release 7 / ETSI TS 124 080 V7.2.0 (2006-09) Change-Id: I299001a9e36c16f55622a0acd5d4a55ca49d0055
2016-10-11Constify ctrl_cmd struct fields where appropriateMax2-3/+4
Change-Id: I3f55c1d4b965d215dc9b16f4b284b7fea4bde9e9
2016-10-01build: be robust against install-sh files above the root dirNeels Hofmeyr1-0/+3
Explicitly set AC_CONFIG_AUX_DIR. To reproduce the error avoided by this patch: rm install-sh # in case it was already generated. touch ../install-sh # yes, outside this source tree autoreconf -fi This will produce an error like ... configure.ac:16: error: required file '../ltmain.sh' not found configure.ac:5: installing '../missing' src/Makefile.am: installing '../depcomp' autoreconf: automake failed with exit status: 1 See also automake (vim `which automake`) and look for 'sub locate_aux_dir'. Change-Id: If2afbe62e9ceeac8052c7b882ff92a548f3af0bf
2016-09-30Mark inline header function as staticMax1-1/+1
Change-Id: Ib751f7467d54cbcae76f72448a38e30f2ecc63d4
2016-09-30jenkins.sh: output all test logs when 'make check' failedNeels Hofmeyr1-1/+3
Assume that cat-testlogs.sh from osmo-ci is installed in $HOME/osmo-ci/scripts, and call from jenkins.sh upon 'make check' failure. Change-Id: I18a08e7ade1a53783d5a4171fe825f61b49457be
2016-09-28osmo_select_main(): drop useless call to osmo_timers_check()3G_2016_09Neels Hofmeyr1-2/+0
osmo_timers_check() does nothing more than counting the active timers. It is of no use to count them when not using the return value in any way. Change-Id: I8d35ca90a4c16d6f1c7f9793d663e5479783efed
2016-09-28AMR: add function to check speech framesMax1-0/+21
Add convenience function osmo_amr_is_speech() to check if given AMR frame is speech frame: non-speech frames often require special processing. Change-Id: Ifaab02a2f581acc302b367d34fd2fc28a4d1e2e3
2016-09-27gsm0408_test: initialize msgb talloc ctxNeels Hofmeyr1-0/+1
Change-Id: Ib26214add1932e93651c248cc09fbc68339b4dce
2016-09-27msgb: add msgb_talloc_ctx_init(), deprecate msgb_set_talloc_ctx()Neels Hofmeyr2-2/+24
So far each and every main() scope creates a msgb talloc context and either passes it to msgb_set_talloc_ctx() or sets tall_msgb_ctx directly (by defining it extern first). Remove some code duplication: add one central function that creates the "msgb" talloc context for all. Most users of msgb employ a talloc_named_const(), but osmo-bts uses a talloc_pool() instead. Offer both ways by means of the pool_size argument, and for both ways make sure the context is called "msgb". Suggest that msgb users should move to this new function: deprecate msgb_set_talloc_ctx(). To be able to do so, include core/defs.h in msgb.h. There's a tradeoff between hiding the msgb talloc context behind API that tries to guess all use cases versus avoiding code dup. This patch opts against code dup and boldly assumes that all future use is covered. Also, the new function suggests to not access tall_msgb_ctx directly, which can be considered a style improvement. It seems that not all main scopes that use msgb actually initialize the msgb ctx. As a fallback for these, explicitly initialize tall_msgb_ctx to NULL. Change-Id: I747fbbf977c4d2c868c8dead64cfc5fd86eb8d4c
2016-09-26bitrev_test: don't omit last byte from test result checkNeels Hofmeyr2-25/+28
The osmo_hexdump of the output in sh_chk() omitted the last byte of the returned bytes from the osmo_nibble_shift_*() functions. Determine the number of bytes from nibbles divided by two plus one for any odd nibble number. Output this number of bytes of output data. Memset the output buffer to get well-defined bytes for unwritten places. Also assert that we have enough buffer length for all nibbles. Change-Id: I011f42bca555caec0dfe8688ff1f28303fa04fad
2016-09-26Fix ASAN failure in bitrev_testMax2-3/+3
Previously while testing osmo_nibble_shift_left_unal() following error was triggered by AddressSanitizer upon offs == 12 and the last sh_chk line, i.e. shift left of 12 nibbles from in2: ==3890== ERROR: AddressSanitizer: stack-buffer-overflow on address 0xbff5b5b6 at pc 0xb6186862 bp 0xbff5b4a8 sp 0xbff5b49c READ of size 1 at 0xbff5b5b6 thread T0 #0 0xb6186861 (/home/msuraev/source/gsm/libosmocore/src/.libs/libosmocore.so.7.0.0+0xc861) #1 0x8049d8b (/home/msuraev/source/gsm/libosmocore/tests/bits/.libs/lt-bitrev_test+0x8049d8b) #2 0x804a9d1 (/home/msuraev/source/gsm/libosmocore/tests/bits/.libs/lt-bitrev_test+0x804a9d1) #3 0xb5fe3af2 (/lib/i386-linux-gnu/libc-2.19.so+0x19af2) #4 0x8048a30 (/home/msuraev/source/gsm/libosmocore/tests/bits/.libs/lt-bitrev_test+0x8048a30) Address 0xbff5b5b6 is located at offset 38 in frame <main> of T0's stack: This frame has 3 object(s): [32, 38) 'in2' [96, 104) 'out' [160, 168) 'in1' The reason is incorrect range in test cycle. Fix it and adjust test output accordingly. Tweaked-by: Neels Hofmeyr <nhofmeyr@sysmocom.de> Fixes: OW#1589 ("undefined behavior in libosmocore triggered by tests") Change-Id: I5eb3f600290c05b4ab9ac2450a28d616e6b415fd
2016-09-24utils/conv_gen.py: code style changes (line width, tabs, etc.)Vadim Yanitskiy1-181/+233
Change-Id: I8550910b9f5c16efc6f15f23c7ee52122c588752
2016-09-23gprs: Increase NS_ALLOC_SIZE to 3kDaniel Willmann1-1/+2
2k can be insufficient when responding with a STATUS message to a long LLC packet because the original message is included in the STATUS. Change-Id: I6f76751cfadf61e87ce4367a38907083e1c98562 Ticket: SYS#2967 Sponsored-by: On-Waves ehf
2016-09-23log CTRL bind address and portNeels Hofmeyr1-0/+3
Log 'CTRL at 1.2.3.4 5678' from ctrl_interface_setup*. All callers can now drop any extra 'CTRL at 1.2.3.4 5678' logging. Change-Id: If449d0514e3d0cc1b346d7452194d931aa090166
2016-09-23log telnet bind address and portNeels Hofmeyr1-1/+8
Log 'telnet at 1.2.3.4 5678' from telnet_init*. All callers can now drop any extra 'VTY at 1.2.3.4 5678' logging. Change-Id: I1da7b9076311d9458caea732fc0daace6533a3fd
2016-09-22timer_test: set 8 as default steps, use the default in testsuite.atNeels Hofmeyr3-16/+281
Change-Id: I5070578e9fe2bdacaad000eaafb8dc5f549d6f3e
2016-09-22timer_test: print more details to stdout to checkNeels Hofmeyr2-4/+116
The test is now fully deterministic, so include all detail in stdout, to check for. Change-Id: Iecf6387f1d25253fcf1260777673853030c1d326
2016-09-22timer_test: redirect some output from stderr to stdoutNeels Hofmeyr2-20/+24
This way we can check the output in timer_test.ok. Change-Id: Ia3bba1c650be3558d370e0f59d4ee7f36ef97506
2016-09-22timer_test: remove all random elementsNeels Hofmeyr1-3/+6
Change-Id: I9833031407e99f5d7a1144c26b68a7e320b2020d
2016-09-22timer_test: do not use real time: deterministic and fasterNeels Hofmeyr1-20/+15
Use osmo_gettimeofday_override* to decouple the timer test from real time. No longer call osmo_select_main(), since select() actually waits for real time. This reduces the timer_test to the osmo_timer_* logic and excludes the real time and osmo_timers_nearest() accuracy testing with actual waiting involved. This may be seen as a loss, but is more fit for a test suite. The main point here is to get deterministic results in jenkins, so that we don't have to retrigger jobs based on timing failures; added bonus is that the test runs much faster now. Change-Id: Ic5649512df86dd17070daa2f314159eafaf8feb8
2016-09-22add osmo_gettimeofday as a shim around gettimeofdayNeels Hofmeyr10-17/+87
This allows feeding a custom time for unit tests by overriding osmo_gettimeofday. Change-Id: Ic7a81a6eb51f27fe452962b91f2eae2070d87089
2016-09-22timer_test: remove unused precision values and confusing logNeels Hofmeyr2-8/+2
Change-Id: I1570b7096c757d63d23e0950feeeb7230f8a5c9f
2016-09-22timer_test: also report early finishes, report timing on errorNeels Hofmeyr2-5/+19
When a timer was late, show the timing details. Also count whether timers fired early, for completeness' sake. Change-Id: Id3942637d77a28b5092ffffcc3e6d9d67c2b8e68
2016-09-22fix timer_test: don't forget to set tv_usec on the stop timeNeels Hofmeyr1-0/+1
The timer_test schedules timers and records the desired stop time. Also store the usec value of the desired stop time, because scheduling at e.g. sec N usec 999999 but recording sec N usec 0, and then receiving a timer at sec N+1 usec 0 is only 1 usec late, but records as 1000000 usecs late. This might have been the main cause of the timer test not working well on the osmocom build server. Change-Id: I13bb60f7d341a397f95d13d9c63c40188b6cd5a0
2016-09-19remove unused local variable in get_rate_ctr()Neels Hofmeyr1-1/+1
Unused after 22886d9e320ecf734d2827d825a191b977f70d2c "Fix retrieving rate_ctr over control interface" Change-Id: Ib5411da80c4eb4f905a5ed87c60477eca2cdff42
2016-09-19remove unused function get_rate_ctr_group()Neels Hofmeyr1-37/+0
Unused after 22886d9e320ecf734d2827d825a191b977f70d2c "Fix retrieving rate_ctr over control interface" Change-Id: I405367ef6ba5833957778a79dd398ce5ea29307e
2016-09-10build: tests: don't link system installed libosmogsm.Neels Hofmeyr1-5/+10
Add src/gsm/libosmogsm.la explicitly to some test linkages, because otherwise the linker would pick the libosmogsm already installed on the system instead of the one that was just built in the source tree. I noticed because a libosmogsm needing some more symbols from libosmocodec was still installed, while the patch that cause it was already removed. Thus I caught all(?) test binaries that linked libosmogsm from $PREFIX. Change-Id: Ie61d60e1506f16de20add70fd0f44ebfa7a00a75
2016-09-09fix GGSN Ctrl port to 4257Neels Hofmeyr2-1/+2
4253 used to collide with the sysmobts-mgr VTY port. Note, openggsn does not actually have a Ctrl interface yet. Change-Id: If0fa0e606dabd5bc89907a56ef18cdbbbdedb4b7