aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2018-09-05hack: Send/receive data and control gb messages to/from different SGSN ports ↵user/kluchnikov/gb-sns-hackIvan Kluchnikov4-60/+81
received during SNS configuration procedure This patch is committed for historical purposes and it is required a significant rewrite. Data and control ports numbers are hardcoded, but they should be extracted from SNS-CONFIG message from SGSN. Changes to support both SNS and static configuration are required. Change-Id: I2494544e54c5af80ccea16c45c5f270835f8f346
2018-07-05WIP: Add support for GPRS NS IP Sub-Network-Service (SNS)Harald Welte6-11/+501
Change-Id: I84786c3b43a8ae34ef3b3ba84b33c90042d234ea
2018-07-05WIP: gprs_ns: Add code for SNS-SIZE and SNS-CONFIG encodingHarald Welte2-1/+122
Change-Id: I5c47e1c3c10deb89a7470ee2c03adfc174accc93
2018-07-05gprs_ns.h: Declare gprs_ns_cause_str() which already existed in c fileHarald Welte1-0/+1
Change-Id: Ia95f0cc8d110f95814173bb5a1c11bd85d8cd533
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
2018-06-08fsm: Change semantics of LOGPFSML() log-levelHarald Welte1-1/+2
The general idea about each osmo_fsm_instance having a separate log-level was to be able to selectively increase/show/enable logging for some FSM instances (e.g. of a particular subscriber) while maintaining normal logging verbosity for all other instances of the same FSM. The introduction of LOGPFSML() in Change-Id If295fdabb3f31a0fd9490d1e0df57794c75ae547 broke that idea, as it would use a compile-time log level, irrespective of the osmo_fsm_inst.log_level setting of the given instance. Let's combine the two: Use the explicit level stated at LOGPFSML(), _unless_ this instance has a higher log_level configured. This way, all FSMs should normally be created with osmo_fsm_inst.log_level == LOGL_DEBUG. At that point LOGPFSM() statements would be rendered at debug level, typically below the threshold of most logging configurations. Code that has explicit higher log levels like LOGPFSML(fi, LOGL_ERROR) would always be printed, as it is an error message. And if we now increase the osmo_fsm_inst.log_level, then even the normal LOGPFSM() statements would suddenly be logged at that higher level, selectively increasing log verbosity - like originally intended. Change-Id: I1820f04d0c6f5d5ff08eb95b8c0e88764534491a
2018-06-07fix gsm0808_permitted_speech(): don't return HR3 for TCH_F + AMRNeels Hofmeyr1-1/+1
Change-Id: Icca23940791f97fa64dbc3f2734270b99f9550c1
2018-06-06Add osmo_isqrt32() to compute 32bit integer square rootHarald Welte4-0/+66
Change-Id: I2b96db6e037e72e92317fec874877e473a1cf909
2018-06-05Doxygen: gitignore generated files for libosmoctrlVadim Yanitskiy1-0/+2
Change-Id: Ia888d14c6e1f76374addd9b1ee66523f82fc06c9
2018-06-02tlv: Add TLVP_VAL_MINLEN() to obtain value _if_ length is >= minimumHarald Welte1-0/+10
This is a combination of TLVP_VAP() and TLVP_GET_MINLEN() Change-Id: Ic5a177941219ebc3a3bceb3f68bdb3b2cacb934b
2018-06-02gsm0808: Add value_string for LCLS related IEsHarald Welte3-0/+51
Change-Id: I18d7a29496929c761aeaba9c0aee847befc13108
2018-05-31add osmo_fsm_inst_state_chg_keep_timer()Neels Hofmeyr4-31/+184
Change-Id: I3c0e53b846b2208bd201ace99777f2286ea39ae8
2018-05-31GSUP: introduce new messages for SS/USSD payloadsVadim Yanitskiy6-1/+87
In order to be able to transfer SS/USSD messages via GSUP, this change introduces the following new message types: - OSMO_GSUP_MSGT_PROC_SS_*, and the following new IE: - OSMO_GSUP_SS_INFO_IE which represents an ASN.1 encoded MAP payload coming to/from the mobile station 'as is', without any transcoding. Change-Id: Ie17a78043a35fffbdd59e80fd2b2da39cce5e532 Related: OS#1597
2018-05-31GSUP: implement TCAP-like session managementVadim Yanitskiy6-1/+58
Unlike TCAP/MAP, GSUP is just a transport layer without the dialogue/context. This prevents us from having session based communication, required e.g. for USSD. But we can emulate TCAP dialogue by adding additional IEs, which would allow to relate each message to a particular session. This change introduces the following IEs: - OSMO_GSUP_SESSION_ID_IE, - OSMO_GSUP_SESSION_STATE_IE, which optionally can be used to indicate that the message is related to a session with given ID, and to manage session state, i.e. initiate, continue, and finish. Change-Id: I1cee271fed0284a134ffed103c0d4bebbcfde2a8 Related: OS#1597
2018-05-30gsm0808: Add encoding functions for LCLS BSSMAP messagesHarald Welte3-0/+68
Change-Id: Ib83143e467df068b7d462a8e51d94b9d961ce18f
2018-05-30gsm_08_08.h: Add enum for LCLS config, control and statusHarald Welte1-0/+28
Change-Id: I775aba59942fb6f34fb31b71d2f0f2ac5c3ae831
2018-05-29gsm0480: fix: don't overwrite the data of RELEASE_COMPLETEVadim Yanitskiy1-2/+6
According to the 3GPP TS 04.80, table 2.5 'Release complete', a RELEASE_COMPLETE message may containg optional FACILITY element. Meanwhile, the 0xff byte is used to indicate that there is no decoded message (legacy field). Let's avoid overwriting of a decoded message. Change-Id: I0c85292222749a48ca0c4b2e93f4fa2d61468c18
2018-05-29ports.h: Add ctrl port for osmo-gbproxyDaniel Willmann2-1/+2
Change-Id: I46a1cef3013c9bbf9b5a6d64e83cd84568f2523c
2018-05-28debian: Add libosmoctrl-doc sub-packageHarald Welte4-0/+24
This fixes the debian package builds for libosmocore.git Change-Id: I454e3c0175ab5a89e8925e036a3644299367df0f
2018-05-28Add enum gsm48_progress_descKeith1-0/+12
From GSM 04.08 Section 10.5.4.21 / Table 10.5.127 Change-Id: I6574e8808aaf39fad8026290aa2cc657734e18b5
2018-05-27add gsm0808_create_handover_request_ack()Neels Hofmeyr3-0/+30
Related: OS#2283 (inter-BSC Handover, BSC side, MT) Change-Id: I692292a06c7d66004404560dc4ed933ca9107f9b
2018-05-27add support for gsm0808 HANDOVER REQUIRED messageNeels Hofmeyr4-0/+130
Related: OS#2283 (inter-BSC Handover, BSC side, MO) Change-Id: Idb6dc3eab0282158a17091d97ed77c1e2e3eb3c2
2018-05-27add gsm0808_cell_id_to_list()Neels Hofmeyr3-0/+33
The idea is to be able to add a gsm0808_cell_id to a gsm0808_cell_id_list2: first convert it to a list, then re-use gsm0808_cell_id_list_add(). It will be used by osmo-bsc to manage neighbor-BSS cell identifiers from VTY. Change-Id: Ibf746ac60b1b1e920baf494b396658a5ceabd788
2018-05-26ctrl: Add doxygen API documentation; generate html from itHarald Welte6-12/+1869
Closes: OS#3293 Change-Id: I8dc2f24d4bf557ff7bb0f2f46881f9f8d9d7f86f
2018-05-26ctrl: Introduce libosmoctrl.map to avoid unintended exportsHarald Welte3-0/+38
There are some symbols for use between control_cmd.c and control_if.c, which are not supposed to be exported publicly. Let's make sure we keep those symbols local. Change-Id: Ia85f36a9c4b2ebf4003718e0a230959638370320
2018-05-26cosmetic: Whitespace fixes in control_if.cHarald Welte1-3/+3
Change-Id: I24666d0b90a355e9fdefd280d48900b8cac1de64
2018-05-26Add enum gsm48_cause_coding from GSM 04.08 Section 10.5.4.11Keith1-0/+8
Change-Id: I3d9c8e117ad19f70a3273650d7c0f8280d7bdb9a
2018-05-25remove unused argument from pad_append_ctr() helper functionStefan Sperling1-7/+7
Change-Id: Iff5699be1dc306120cc1752b0a892e4fcbc5a8c0 Fixes: 97d3da2c591984b47839fd1d9a5cba24a7f05fa1 Related: OS#3245
2018-05-24Add a 'show rate-counters' VTY command.Stefan Sperling1-0/+17
Add a new VTY command which shows all rate counters registered with libosmocore. Change-Id: Id60a5aa2d961ae99cddf1e776358a5517dbc573d Depends: Idb3ec12494ff6a3a05efcc8818e78d1baa6546bd Related: OS#3245
2018-05-24introduce vty_out_rate_ctr_group_fmt() functionStefan Sperling2-0/+138
This new function can be used to print a rate counter group according to a format string. The intention is to generalize and replace manual printing of counters as implemented for the 'show statistics' VTY command of osmo-bsc. Related: OS#3245 Related: osmo-bsc commit 71d524c059c5a5c90e7cb77d8a2134c1c68b9cde (g#9217) Change-Id: Idb3ec12494ff6a3a05efcc8818e78d1baa6546bd
2018-05-24mncc: properly export osmo_mncc_name()Harald Welte3-4/+6
For some strange reason, the osmo_mncc_name() inline function was not in the mncc.h header, but in the mncc.c file. Let's fix that. Change-Id: I2c3666510c981dffa4ba25bed517fd7ebd1250f5
2018-05-17gsm: kasumi: Fix dynamic-stack-buffer-overflow on out buffers not multiple ↵Pau Espin Pedrol2-6/+15
of 64 bits Fixes following AddressSanitizer report during gea_test run with gcc 8.1.0: ==8899==ERROR: AddressSanitizer: dynamic-stack-buffer-overflow on address 0x7ffc5f1719bb at pc 0x7fe574adc5fe bp 0x7ffc5f171460 sp 0x7ffc5f171450 WRITE of size 1 at 0x7ffc5f1719bb thread T0 #0 0x7fe574adc5fd in osmo_store64be_ext ../../include/osmocom/core/bit64gen.h:75 #1 0x7fe574adc649 in osmo_store64be ../../include/osmocom/core/bit64gen.h:104 #2 0x7fe574ade936 in _kasumi_kgcore libosmocore/src/gsm/kasumi.c:186 #3 0x7fe574ae2532 in gea4 libosmocore/src/gsm/gea.c:44 #4 0x7fe574ae266c in gea3 libosmocore/src/gsm/gea.c:60 #5 0x7fe574a9b616 in gprs_cipher_run libosmocore/src/gsm/gprs_cipher_core.c:95 #6 0x56422d3fb2ee in test_gea libosmocore/tests/gea/gea_test.c:29 #7 0x56422d3fb506 in main libosmocore/tests/gea/gea_test.c:49 #8 0x7fe5730f406a in __libc_start_main (/usr/lib/libc.so.6+0x2306a) #9 0x56422d3fadf9 in _start (libosmocore/tests/gea/.libs/lt-gea_test+0x1df9) The kasumi_test is updated to calculate the entire array of bits according to expected result. Before this commit it worked by writing the entire last 64bit block, and addressSanitizer cannot catch it because the allocated buffer is 64bit aligned too. Change-Id: I7b2a0224a3b5527d5a3ad7e17efc73081b63eac1
2018-05-16tests: a5_test: Print wrong buffer correctly on errorPau Espin Pedrol1-1/+3
Before this patch, osmo_hexdump is called stacked in th esame printf function. As a result, the first returned buffer is overwriten by the second, which means the printed buffers will show as the same always. Change-Id: I364328a59da31537c6c9b969e34edd360b685081