aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2018-08-20Bump version: 0.12.0.1-37945-dirty → 0.12.10.12.1Pau Espin Pedrol1-0/+6
Change-Id: I56eb7bdebb17231feee9ef5dbe5010428bf09ed4
2018-08-20vty: Makefile: Fix LIBVERSION typo introduced in 0.12.0 releasePau Espin Pedrol1-1/+1
Setting age to 5 is cleary an error, it should be increment by one instead as APIs were added 0.11->0.12 and none modified or removed. Change-Id: I3b3bc808349bc2f949ef9eef64f39e7202ddf946
2018-07-27Bump version: 0.11.0.91-9d4a3-dirty → 0.12.00.12.0Pau Espin Pedrol12-18/+131
Change-Id: I7e66432f37e13fd4c31389e3d89593fa0981e58f
2018-07-26logging.c: Fix whitespace typoPau Espin Pedrol1-1/+1
Change-Id: I943763e175dca6f3078923a494b052319b78574d
2018-07-25logging_vty: Simplify code in config_write_log_singlePau Espin Pedrol1-7/+1
Since we ignore "logging level CAT everything" in logging_level_cmd, we can never run into the case in which we have loglevel==EVERYTHING, so we can simplify this code and make it esier for later removal of everything keyword. Change-Id: I4e76c65a11cc22616c6dfc632435617ebb861c03
2018-07-25logging: log_vty_command_string: Fix undercount of buf alloc sizePau Espin Pedrol1-1/+1
Change-Id: I7aca0ce3d2981001e8081f7cee0dea3e2aaf8f7c
2018-07-25stats_statsd: sanitize statsd nameAlexander Couzens1-1/+22
The statsd protocol use ':' as seperator between name and value. It's not allowed to use the seperator in a name. Replace ':' with '.' before sending the packet to the statsd server. Change-Id: Ib46d08481e8ca04afd97cb9ae241e4e39c91ad66
2018-07-24stats_vty: Add asciidoc sections between the different countersDaniel Willmann1-0/+3
Change-Id: Ie37be744abd8c47211d64877bcd17f94465bd423
2018-07-22gprs_ns.h: Declare gprs_ns_cause_str() which already existed in c fileHarald Welte1-0/+1
Change-Id: Ia95f0cc8d110f95814173bb5a1c11bd85d8cd533
2018-07-21rate_ctr: Improve loggingPau Espin Pedrol1-15/+20
Previous logic regarding logging of verification and mangling of rate_ctr groups made it difficult to debug when an issue occurrs. Change-Id: I992d165cab5ee6ca9b5b7e4a2210a0951954bd34
2018-07-21tests: codec: ecu_fr: Add buffer with unequal XMAXC valuesPau Espin Pedrol2-17/+47
This buffer verifies that all XMAXC fields must be zero before the entire buffer is considered as silent by osmo_ecu_fr_conceal(). Change-Id: I14a192d001b5e167437cedbe76a1a3dd84dde35c
2018-07-21tests: codec: ecu_fr: Print XMAXC fieldsPau Espin Pedrol2-25/+54
This makes it easy to debug how XMAXC fields are decreased every iteration in osmo_ecu_fr_conceal(). Change-Id: I678d4be5e0b15b05873b0d3bf5ea5bbee7bef839
2018-07-21libosmocodec: FR err concealment: Fix too many silent frames generatedPau Espin Pedrol1-10/+6
As stated in its own documentation, reduce_xmaxcr_all() should only return true when ALL XMAXC fields return true. However, previous implementation returned true when at least one of them returned true. As a result, if any of the sections is silent (for instance because one of the bursts was lost), the whole frame is silenced, returning a zeroed buffer. Related: OS#2700 Fixes: 40def49ac4b8babbd1b17c232137ce50a428706b ("libosmocodec: implement ECU (Error Concealment Unit) for FR") Change-Id: I1624b7c6574f53d0593a61645d4fdc5d56cabe96
2018-07-20vty: initialize termios before using itAlexander Couzens1-1/+1
valgrind complains about using unitialised bytes in syscalls. I could imagine this happens when tcgetattr fails to set termios. Change-Id: I9d165911fa3127afa8f836fa5c5c2e14a949474a
2018-07-20add osmo_sockaddr_to_str_and_uint()Neels Hofmeyr4-0/+148
This came from osmo-bsc refactoring patch I82e3f918295daa83274a4cf803f046979f284366 https://gerrit.osmocom.org/#/c/osmo-bsc/+/9671/6/src/osmo-bsc/gsm_data.c@1708 Add regression test in utils_test.c. Change-Id: I1f2918418c38918c5ac70acaa51a47adfca12b5e
2018-07-20utils_test: check stderr to catch sanitizer issuesNeels Hofmeyr3-2/+3
Recent OS#3407 shows that we should verify stderr to catch sanitizer failures. (They might not always be ignorable like that one.) Change-Id: Ic9e437a1cc96ae081e0fd6a9b6e3156987e14c0c
2018-07-20utils_test: fix isqrt_test calculation rangeNeels Hofmeyr1-1/+1
Multiplying the uint16_t x by itself seems to default to be calculated in int32_t range, while it obviously needs uint32_t. This causes sporadic sanitizer barfs: Testing integer square-root utils_test.c:445:18: runtime error: signed integer overflow: 60369 * 60369 cannot be represented in type 'int' The final result is still correct, because it is in fact interpreted as uint32_t. Cast to uint32_t to make sure the sanitizer doesn't complain. Related: OS#3407 Change-Id: I83c14e38deaa466d977ee43c9420534ed90f090d
2018-07-19libosmocoding: clarify return values for TCH decoding functionsPau Espin Pedrol1-4/+8
Change-Id: I7d6c61e6a1b5d1fae26f385b420ff55246c4b62f
2018-07-16tests: ctrl: Test received ERROR messages are handled correctlyPau Espin Pedrol2-2/+55
Change-Id: I3c8e95aaa1ca222d4cd1395e548f8461bf9d4cd6
2018-07-16ctrl: ctrl_handle_msg: Avoid sending back received ERROR msgsPau Espin Pedrol1-2/+3
Change-Id: I396fd1e7548beea31b2b7aa9f764edb765b02941
2018-07-16ctrl: Introduce ctrl_cmd_parse3 APIPau Espin Pedrol3-1/+22
Callers require to know whether the returned ERROR cmd was received or generated locally, in order to send it or do something with it locally. Related: OS#3394 Change-Id: Ide9170e5c31967c353f8fe4e8227e64130b91eae
2018-07-14coding: Documentation typo fix.Alexander Chemeris1-1/+1
Change-Id: I6ca873b3decaf50e7b79b5ab2269919c862a4fe0
2018-07-14coding: Fix (E)GPRS BER calculation to correctly account for puncturing.Alexander Chemeris1-5/+24
Previously we didn't take into account puncturing and BER was always around 30% for GPRS/EDGE bursts because of they use puncturing coding unlike "classical" GSM bursts. Change-Id: I9da22e7051522d06d923fcec3b63cbed8db93910
2018-07-12gsm0808: Add value_string for encryption algorithmsPau Espin Pedrol3-0/+14
Change-Id: Iadf6460c438d02c53c2eaa9e42d51844ad28859a
2018-07-12ctrl: Fix parsing of ERROR recvd msgs with id=errPau Espin Pedrol1-1/+2
Our implementation generates ERROR CTRL messages with ID=error when it is unable to parse a CMD. However, it doesn't account for them when trying to receive and parse this kind of message. As a result, it will return an ERROR message with a different description. This commit fixes the old behaviour to success at parsing and returning the received description to the caller. Change-Id: I564ab1a7e845388f87accda44fbf165e5adc2480
2018-07-12ctrl: Log CMD TYPE on invalid ID numberPau Espin Pedrol1-1/+2
Change-Id: Ia890d4b841ef02342cc1cf7f5926866b040dc8ab
2018-07-12gsm_08_08: gsm0808_permitted_speech does not have value stringsPhilipp Maier3-0/+19
enum gsm0808_permitted_speech does not have any value strings. Lets add value strings to make debugging easier. Change-Id: I5b5612a5df2758b0137a34c17f7c8c2b3f07c806
2018-07-12gsm_04_08: add function to get value stringPhilipp Maier1-0/+2
The value string table gsm48_chan_mode_names[] lacks a function to get the value string by a value. Lets add one. Change-Id: I0757bcc278c140e18249e35864338e19cdaa3cf7
2018-07-11vty: fix use-after-free and memleaks in is_cmd_ambiguous()Neels Hofmeyr3-20/+124
vty_test: add test against ambiguous cmd causing use-after-free and memory leaks. Add this test along with the fix, because the new test triggers the memory use-after-free and leaks, causing build failures. Add cmd_deopt_with_ctx() to allow passing a specific talloc ctx. is_cmd_ambiguous(): keep all cmd_deopt() allocations until the function exits. Add a comment explaining why. Before this, if a command matched an optional "[arg]" with square brackets, we would keep it in local var 'matched', but we would free the string it points to at the end of that loop iteration; upon encountering another match, we would attempt to strcmp against the freed 'matched'. Instead of adding hard-to-read and -verify free/alloc dances to keep the 'matched' accurately freed/non-freed/..., just keep all cmd_deopt() string allocated until done. Needless to say that this should have been implemented on a lower level upon inventing optional args, but at least this is fixing a program crash. Related: OS#33903390 Change-Id: Ia71ba742108b5ff020997bfb612ad5eb30d04fcd
2018-07-09vty: cosmetic: cmd_deopt(): use talloc_strndup(), not memcpy()Neels Hofmeyr1-8/+1
Change-Id: Ibf870ae02be706f802482f7cff6589a70cde8320
2018-07-09vty/command.c: talloc from tall_vty_cmd_ctx, not NULLNeels Hofmeyr1-3/+3
Change-Id: Iaa409b4f63557c8fb028bbb322b5e7253393c05c
2018-07-02Don't enforce Python 2 for utilitiesVadim Yanitskiy5-5/+6
The conv_gen.py utility was tested against both Python 2 and 3, so there is no need to enforce Python 2. Also, having: #!/usr/local/bin/python{2|3} is a bad idea, because Python may be installed in a different location. Change-Id: I6007d481047b584db13d6eda70fb99f11f9ddaa1
2018-06-29osmo_panic(): Annotate as __attribute__ ((noreturn))Harald Welte2-2/+9
In Change-Id I5a70eb65952cbc329bf96eacb428b07a9da32433 we redirected all OSMO_ASSERT() via osmo_panic(). However, this caused various applications to have build failures, as OSMO_ASSERT() now appeared to be able to return to the call site. Let's inform the compiler explicitly that there's no return from osmo_panic(). Change-Id: I8adf4c7b0ee6a4581cef8dd4e9f6a1dfde70ee55
2018-06-28Don't call abort() directly, always use osmo_panic()Harald Welte3-5/+5
A loooong time ago, we introduced osmo_panic() as a wrapper around abort(). The advantage is, that this wrapper can be overridden, and that it will also work in embedded (bare iron) targets, where the abort simply translates to an infinite loop. Change-Id: I5a70eb65952cbc329bf96eacb428b07a9da32433
2018-06-28jenkins_arch.sh: Exit with error on unknown architectureHarald Welte1-0/+1
The jenkins build job used to call this script using an "arch" it doesn't understand. This should have resulted in an error, but it didn't as there was a missing "exit 1" statement :( Related: OS#3360 Change-Id: Ib27c9ebaf2630c432b1923f8e14b36e7772a6033
2018-06-28jenkins_arch.sh: Accept "arm-none-eabi" as alias for "arm"Harald Welte1-1/+1
The jenkins build job is calling the script using "amd64" and "arm-none-eabi", while the script expects "amd64" and "arm". Let's add "arm-none-eabi" as an alias for "arm". Closes: OS#3360 Change-Id: Idedd4778a63d67cdbf4f4d538bf4a225abb7547a
2018-06-28jenkins_arm.sh: Don't run 'make check' on embedded buildsHarald Welte1-1/+1
If we're cross-compiling for arm-none-eabi, we cannot execute test programs. Change-Id: I64e88a31091b67c37c308c44013c42d4574d2312
2018-06-28Fix embedded (arm-none-eabi) buildsHarald Welte5-0/+28
Due to OS#3360, build testing for arm-none-eabi was unfortunately skipped for a long time. This is a number of fixes that make the compile test pass again. Related: OS#3360 Change-Id: I88e3c8e1a8786ca2a6a023b0d27c74be200a8588
2018-06-25return error to sender upon bssgp_tlv_parse() failureStefan Sperling1-0/+2
Return "invalid mandatory information" error status to the sender in case bssgp_tlv_parse() failed. To avoid loops, do not respond with an error status to STATUS PDUs which failed parsing. Change-Id: If73719b75a94d6742bdefc9b6572525cb00a96ee Related: OS#3178
2018-06-25check bssgp_tlv_parse() return code in bssgp_rcvmsg()Stefan Sperling1-0/+5
The return code from bssgp_tlv_parse() was not checked for a parsing error. In case of a parsing error the stored return code could have been overwritten later in this function. Explicitly check for a parsing error and log corresponding packets. Change-Id: Id3d7c52ec3df2bcf4efcee0e0b14fe22ef96964e Related: OS#3178
2018-06-18add and tweak inter-BSC HO APINeels Hofmeyr4-2/+129
Add: gsm0808_create_handover_detect() gsm0808_create_handover_complete() gsm0808_create_handover_failure() To existing structs gsm0808_old_bss_to_new_bss_info and gsm0808_handover_required, add a final 'more_items' flag that makes future extensions API and ABI compatible. Fix the msgb string for Handover Request Ack. Extend some API doc comments. Related: OS#2283 (inter-BSC Handover, BSC side, MT) Change-Id: I03ee7ce840ecfa0b6a33358e7385528aabd4873f
2018-06-18gsm: lapdm.c: Add missing new line char in notice log stringPau Espin Pedrol1-1/+1
Change-Id: I92c78ea01570dc1f4be11b113c07f0aa3b342c8f
2018-06-16gsm 04.80: Add value_string for component type and op codeHarald Welte3-0/+44
Change-Id: I2615a88db5224d65f37c7cc505e183ec8b196e8a
2018-06-16gsup: Add value_string for Session State IEHarald Welte3-0/+14
In Change-Id I1cee271fed0284a134ffed103c0d4bebbcfde2a8 we added support for a new session state IE, but we didn't add any value_string array for string conversion of it. Let's fix this. Change-Id: I3d9f087786dc37c42498fa9a2be07483ec93ba7b
2018-06-14Add function gprs_nsvc_state_appendDaniel Willmann3-0/+25
A common function to append the nsvc state from osmo-sgsn or osmo-gbproxy Change-Id: I7f0eaff7329ab98cad792d30b20ab053007aab85
2018-06-11gsup: Add osmo_gsup_get_err_msg_type() functionHarald Welte3-0/+25
This function can be used to resolve the error message type for a given message type. Can be used by generic error handlers that work for any incoming message type. Change-Id: Ic637bec53dd7fe3ec83da99b49b4eae34d5602b2
2018-06-11gsm/gsm0480: refactor and expose gsm0480_parse_facility_ie()Vadim Yanitskiy5-16/+81
This function can be used when there is only a part of GSM 04.80 message available - Facility IE, e.g. when a message is carried over GSUP/MAP. Let's expose it. Refactoring includes the following: - adding the 'gsm0480_' prefix; - correcting inverted return value; - cosmetic code style changes. Change-Id: I623c39ffbe6cdee65eade8435a2faa04d0da193e
2018-06-11gsm/gsm0480.c: introduce gsm0480_extract_ie_by_tag()Vadim Yanitskiy5-0/+172
In some cases, there is no need to parse the whole message, e.g. during the conversion from DTAP to GSUP/MAP. This function can be used to extract given IE from a message. Change-Id: I3989d061903352473305f80712f1a1560d05df3d
2018-06-09vty: Add logging_vty_add_deprecated_subsysHarald Welte2-0/+22
This function permits the user to register deprecated log categories, which will ensure that if log categories are removed from a program, old config files will still load. We simply dynamically allocate a cmd_element and install it at CFG_LOG_NODE. Not registering it at VIEW_NODE or ENABLE_NODE ensures that it's not accessible from the interactive VTY, but only from the config file / configure node. Change-Id: I171f62ea2dc565b3a6c3eecd27fb7853e2529598
2018-06-09vty: Don't dump deprecated commands in XML exportHarald Welte1-2/+4
we don't want to include deprecated commands in our VTY reference manuals. Change-Id: I5e179c9dca297b8c4bdbdf4e0e5b1d69eecc4232