summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Support cipher mode reject with extended causeMax2018-11-197-1/+89
| | | | | | | | | | | | | * add function to generate cipher mode reject with extended (2-byte) Cause IE * add function to get (extended) Cause value * add corresponding (extended cause) test * update existing (non-extended cause) test * use enum as a parameter for existing non-extended version to make interface more unified Change-Id: Id5509b94a18180a44f45300caaa02b843c166fa3 Related: OS#3187
* Move msgb_push helpers to public headerMax2018-11-193-39/+25
| | | | | | | | | | The msgb_wrap_with_TL() is generally useful so it make sense to make it public to facilitate code re-use. Other helpers can be implemented as trivial wrappers over existing tlv.h functions. Update headers and code accordingly. Change-Id: I37e91d031fba28cf1c6735b8069b0265746f55e6
* gsm48: gsm48_decode_freq_list: Improve documentation of paramter fPau Espin Pedrol2018-11-181-1/+1
| | | | Change-Id: Id8e3afff737211ded3c5689f2c83b1a544b42f9d
* Update GSM0808_LCLS enumsMax2018-11-182-0/+6
| | | | | | | | Add values indicating that LCLS control/config/status value has not been received yet. Change-Id: I52dc6a52f5ee043ed2c1625ffecfd495e3c746b1 Related: OS#2487
* Update 3GPP TS 08.08 Cause handlingMax2018-11-186-9/+59
| | | | | | | | | | | | * add Class definitions * add helper to check for extended bit * add helper to get Cause's Class * use enum in gsm0808_cause_name() and gsm0808_create_cipher_reject() to avoid confusion between class and cause * update gsm0808_create_cipher_reject() comments Change-Id: I31b31dfc22eb4b6b07089e1255246ac458125340 Related: OS#3187
* Add helper wrapper for BSSAP TLV parsingMax2018-11-181-0/+3
| | | | Change-Id: Ib228368901ce90a02a5664f2510593371c7d29cd
* fsm: fix apidoc of osmo_fsm_state_name()Philipp Maier2018-11-161-1/+1
| | | | | | | The api documentation of osmo_fsm_state_name() refers to an FSM instance, but it really means the state of an FSM. Change-Id: I88ddd6048426d380c49170e66f57b3843398c046
* gsm29118: add value strings for SGSAP IEIPhilipp Maier2018-11-163-1/+40
| | | | | | | | The value strings for the SGSAP IEI are missing, lets add a set of value strings and a function to retrieve them. Change-Id: I2787303174f74ffba86675bce2c12f680d8ea708 Related: OS#3615
* gsm/protocol/gsm_08_58.h: Fix typoMartin Hauke2018-11-151-1/+1
| | | | | | | | | | | | | | Fix a typo that prevents building on ppc64 (Power8, Big Endian). Tested with gcc version: 8.2.1+r265487 /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../include -DBUILDING_LIBOSMOCORE -Wall -Wall -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -DBUILDING_LIBOSMOCORE -Wall -c -o panic.lo panic.c In file included from ../include/osmocom/gsm/rsl.h:6, from gsmtap_util.c:37: ../include/osmocom/gsm/protocol/gsm_08_58.h:60:4: error: expected specifier-qualifier-list before 'sapi' sapi:3; ^~~~ Change-Id: I4a40fc68cb6dfdfadfcc34213c4ecdabbbc356f2
* merge_doc.xsl: move to osmo-gsm-manuals.gitOliver Smith2018-11-121-48/+0
| | | | | | | | Allows building the manuals without the checked out libosmocore source. Related: OS#3385 Depends: I8e7036fae062ee783cb132b14608827a82c5e7c7 (osmo-gsm-manuals) Change-Id: Ifb81b18422987cdf36b75993d2782abf93b5f48c
* gsm_29_118: add missing include to header filePhilipp Maier2018-11-071-0/+1
| | | | | | | | | The header file gsm_29_118.h is defining variables of type struct value_string, which is declared in core/utils.h. We should add an include to utils.h to prevent confusion when the header is used. Change-Id: I9f9bb62d29cd068820ad5aa677717bd448de3f4a Related: OS#3615
* socket.c: fix IP and port buffer sizesOliver Smith2018-11-061-4/+4
| | | | | | | | Use INET6_ADDRSTRLEN (46) instead of 64 for IP address buffers, and 6 instead of 16 for port buffers (the highest possible port number is 65535). Change-Id: Ia25e2f3277ad2f60df31c08d12f42c1e6d2a14a6
* jenkins: print gcc version in logNeels Hofmeyr2018-11-061-1/+5
| | | | Change-Id: I8dfac78868f64213413e80cc52ac585d9d4a2c93
* core/msgb.h: introduce msgb_l4len() helperVadim Yanitskiy2018-11-072-0/+13
| | | | | | | | | | There is already a group of similar functions for L1, L2 and L3, but L4 was missing. The L4 is usually used for parsing of complex L3 messages, such as SS/USSD and SMS. This change introduces a similar halper for L4. Change-Id: I755f2d654bbdad2a8b4f94df9023bdd370b07ae6
* Fix deprecation warning in gsm0808_testMax2018-11-061-4/+12
| | | | | | Use gsm0808_create_layer3_2() directly instead of deprecated wrapper. Change-Id: I44772666c929dfd94d25953379cf51b371ce202c
* gsm/gsup.h: cosmetic: use tab for comment alignmentVadim Yanitskiy2018-11-061-1/+1
| | | | Change-Id: Id71d4b45e2b9f42da5e23e709ad97d4d0abfc3d9
* gsm48: correct apidoc for gsm48_generate_mid()Philipp Maier2018-11-021-0/+1
| | | | | | | The API documentation lacks the the description for the last parameter, lets add a description for it. Change-Id: Ibcd25d3a7ddd7075eb15daff6dba42236d14d945
* Update cipher reject functionMax2018-11-022-1/+2
| | | | | | | | * add note about (yet) unsupported standard feature * use enum constant instead of hex value Change-Id: I5cc5fc1ae8d5474dbc8d3385a493adf6420a3c98 Related: OS#3187
* gsm0808: cosmetic: rename parameter "reason" to "cause"Philipp Maier2018-10-302-4/+4
| | | | | | | | | The function that generates the clear command takes a parameter "reason", which is the cause code. Lets give it the name "cause" to have a coherent naming scheme that matches the other functions and the 3gpp specs. Change-Id: I7b6c15e8fa8db13deef5041095944ca1c58fb99f
* gsm0808: fix doxygen apidocPhilipp Maier2018-10-301-1/+1
| | | | | | | | The api documentation names a parametery by a different name than it is listed in the parameter list of the function. Lets make the apidoc coherent. Change-Id: Id21ed1e920fb64522a734f206efbe2871ec05b06
* make 'show rate-counters' show group indexStefan Sperling2018-10-291-1/+1
| | | | | | | | | | | | | | Show each rate counter group's index in the output of the 'show rate-counters' command, to provide some way of telling apart distinct instances of the same rate counter group. This is not a very user-friendly UI because these indices are generated internally by libosmocore and/or applications, so users cannot easily assign meaning to these indices. However, the current rate counter implementation doesn't allow for more. Change-Id: Ieb151239407e4b2f8859fefec8d0670f5ddf908a Related: OS#3674
* stop printing group description in vty_out_rate_ctr_group_fmt()Stefan Sperling2018-10-292-3/+1
| | | | | | | | | | | | | | When vty_out_rate_ctr_group_fmt() prints the description of a counter group, it assumes this description should appear at the beginning of a line. However, the caller might be printing counters in an indented context. So just let the caller worry about printing the group title if necessary (there is currently only one known caller, which is updated in this commit). Note that printing of the group title was an undocumented feature. Change-Id: I2c55cb54e8b7a7c8c6cf72f22287083767ed0201 Related: OS#2660
* gsm23003: Add MME domain name related helper functionsHarald Welte2018-10-286-0/+185
| | | | | | | osmo_gen_mme_group_domain(), osmo_gen_mme_group_domain() and osmo_gen_home_network_domain() Change-Id: Ia882d9db05ec0037e593aeebea21bc31adb680bb
* add osmo_sock_get_{local,remote}_ip{,_port}()Oliver Smith2018-10-262-25/+92
| | | | | | | | | | Return only the IP or port of either the local or remote connection, not the whole set of IP and port of both the local and remote connection like osmo_sock_get_name() does it. This is needed for OS#2841, where we only want to print the remote IP. Related: OS#2841 Change-Id: I6803c204771c59a2002bc6a0e6b79c83c35f87e1
* cosmetic: fix typo (soocket -> socket)Oliver Smith2018-10-251-1/+1
| | | | Change-Id: I2184bf12398902d933f3744bc094418cc6961e86
* stats_statsd: Send all stat_items as gaugesDaniel Willmann2018-10-241-11/+8
| | | | | | | | | | | | | When sending a statsd metric we need to specify a type which can be a "g"auge, "c"ounter, "t"imer, "h"istogram, and "m"eter. We used to just pass the stat_item unit into this field, but that is the unit of the metric (Seconds for a timer, % for utilization, ...). Change the type field so stat_items are sent as "g"auges. Note that negative values don't seem to be supported by statsd. Change-Id: Ia16270d36c9a14521594de4b99a48c83e4ac07d4
* vty: adjust telnet logMax2018-10-241-1/+1
| | | | | | | Adjust wording so telnet command can be directly copy-pasted from the log to access the interface without the need for further editing. Change-Id: I1876447f9285adcd1b09937a6121afabd0b32e52
* libosmogsm/gsup.c: fix error code in osmo_gsup_encode()Vadim Yanitskiy2018-10-211-1/+1
| | | | | | | Missing (unset) type of to be encoded message is not a memory allocation failure (-ENOMEM), this is definitely a mistake. Change-Id: Ibbac18e2b68b765c17c2bc959c4c085037953a7f
* SGsAP protocol definitions (header + C file)Harald Welte2018-10-215-1/+304
| | | | Change-Id: Idddfc9b851eb4c2fa7dd661a9ce1b03a04883109
* gsm_08_58.h: Introduce struct abis_rsl_chan_nrPau Espin Pedrol2018-10-211-3/+32
| | | | | | | | | | | | It will allow to make code handling chan_nr values more easier to read and less prone to errors. union is used to be able to get the full octet in case we need to pass it somewhere else or encode it. An extra union is used in struct abis_rsl_common_hdr and others to allow using fields directly while keeping API compatibility. Change-Id: Icd6822021207270a00106c50f8ca6b93c1250df9
* vty.c: Set vty->fd to -1 after closing the FDHarald Welte2018-10-211-1/+3
| | | | Change-Id: I07d105f4a810dd809fbf6feb5c04e7410020c887
* telnet_interface: avoid double-close of fd()Harald Welte2018-10-211-1/+1
| | | | | Change-Id: Ibd81f29fa22d53553bd73c055d6a1f5255a69bad Fixes: Coverity CID#135238
* timerfd_create(): Fix error handling of osmo_fd_register()Harald Welte2018-10-211-1/+8
| | | | | Change-Id: Ia2528cc3e3155bbc9cb32dee0e3af99cc6e1c654 Closes: Coverity CID#188853
* osmo-config-merge: fclose() what we fopen()Harald Welte2018-10-211-0/+2
| | | | | Change-Id: Ib44f902e5bca2277f1b340d34fabbd2a298d683e Fixes: Coverity CID#188851
* gsm0808: allow decoding of zero length speech codec lists.Philipp Maier2018-10-162-10/+23
| | | | | | | | | | | | | | | | | | | | | 3GPP_TS_48.008, 3.2.2.103 Speech Codec List states the following: "The length indicator (octet 2) is a binary number indicating the absolute length of the contents after the length indicator. The length depends on the number and type of Speech Codec Elements to be included. The minimum length of one Speech Codec Element is 1 octet and the maximum length is 3 octets. The maximum number of Speech Codec Elements within the Speech Codec List is not defined." This clearly refers only to the length of a single speech codec element but not on the overall list. So speech codec lists with length 0 are indeed permitted by the spec. - Remove the assertion that checks on zero length speech codec lists. Change-Id: I1eb1f4466b98bdd26d765b0e4cc690b5e89e9dd6 Related: OS#3657
* add support for ipaccess messages on the ctrl interfaceStefan Sperling2018-10-151-5/+29
| | | | | | | | | In ctrl_handle_msg(), check for IPACCESS protocol messages and respond to such messages in the same way as ipa_ccm_rcvmsg_base() does. This will allow the TTCN3 IPA "chopped ping" test to pass on control interfaces. Change-Id: I9d7137c830981ccad03806b30b776e2b1f1b4699 Related: OS#2010
* gsm_08_58.h: Introduce struct abis_rsl_link_idPau Espin Pedrol2018-10-101-1/+24
| | | | | | | | | | | | It will allow to make code handling link_id values more easier to read and less prone to errors. union is used to be able to get the full octet in case we need to pass it somewhere else or encode it. An extra union is used in struct abis_rsl_common_hdr to allow using fields directly while keeping API compatibility. Change-Id: Ibd75a493bcfdf46c028ea466867d0c0d83d46343
* fix error handling gprs_ns_nsip_listen()Stefan Sperling2018-10-101-1/+4
| | | | | | | | | If we cannot bind the listening socket, reset related fields in the osmo fd structure to NULL again. Otherwise our caller might eventually try to use an uninitialized osmo fd. Change-Id: Ia953b2eff54cac0bd980944291f75db14df09a34 Related: OS#3643
* GSMTAP: fix typos in commentsShinjo Park2018-10-071-2/+2
| | | | Change-Id: I2e710141ee90ddc8b5336d5f81e99bd918d10106
* GSMTAP: add definitions for LTE NAS subtypesShinjo Park2018-10-071-0/+8
| | | | | | | | Wireshark GSMTAP dissector has LTE NAS subtypes for plain NAS messages and NAS messages with security header. This commit adds definition for these subtypes. Change-Id: I49d15fb13299c1bcbe0fb7e50bf222294c7a49ef
* GSMTAP: add definitions for new LTE RRC channelsShinjo Park2018-10-071-10/+25
| | | | | | | Later release of 3GPP TS 36.331 added new LTE RRC channels. This commit additionally defines LTE RRC message types existing in Release V15.3.0. Change-Id: Ifa48b2227be15af04c9a4702d2025abcc660f0df
* vty logging: fix crash when missing 'logging enable'Neels Hofmeyr2018-10-012-0/+11
| | | | | | | | | | | | | | | We must explicitly check the return value of osmo_log_vty2tgt(), or may run into a segfault. I wasn't aware of this and introduced numerous such cases in I36f17c131cc70ce5a1aef62fd9693097de230cd4. Reproduce: on the VTY, do not issue 'logging enable', invoke 'logging level force-all LEVEL' first. Show in logging_vty_test.vty that this situation is now again amended by telling the user that logging was not enabled. Related: OS#3611 Change-Id: Id11702d1801d6654ca5e5a51b597a0d802e2e8dd
* Revert "osmo-config-merge: Add manual page"Harald Welte2018-09-295-95/+1
| | | | | | | | | | | | | | | | | | This reverts commit 6dd00d876e2b947e070f776f90fbb8305a237d21. Unfortunately, it seems older a2x versions don't support "-D" for manpage generation: All the osmocom master builds started to fail with: make[2]: Entering directory '/build/deps/libosmocore/man' a2x --doctype manpage --format manpage -D . osmo-config-merge.adoc a2x: WARNING: --destination-dir option is only applicable to HTML based outputs a2x: ERROR: "xmllint" --nonet --noout --valid "/build/deps/libosmocore/man/osmo-config-merge.xml" returned non-zero exit status 127 Makefile:545: recipe for target 'osmo-config-merge.8' failed Change-Id: I0f45362d3e978c328d962a5c0d883eade27b875c
* osmo-config-merge: Add manual pageDaniel Willmann2018-09-285-1/+95
| | | | Change-Id: Ifaa5afe28779a805764caf76a89efb0a3169942e
* osmo-config-merge: Fix some small issuesDaniel Willmann2018-09-281-4/+15
| | | | | | | | | Allocate NULL context after exit_usage() calls and free it before exit so * sanitizer is happy. Also handle the error cases gracefully when a file is unreadable or formatted wrong. Change-Id: I966e63a3f7d0ff71ee0b88922aa3807d073aa232
* utils/osmo-config-merge: explicitly return from main()Vadim Yanitskiy2018-09-271-0/+2
| | | | | | | | | | | | This change fixes the following compiler warning: osmo-config-merge.c: In function ‘main’: osmo-config-merge.c:268:1: warning: control reaches end of non-void function [-Wreturn-type] Despite it isn't critical, let's get rid of this warning. Change-Id: I7a80a85c8b3180dc086cd9fd20356aab16ea8100
* ensure unix socket paths are NUL-terminated for bind/connectStefan Sperling2018-09-261-7/+5
| | | | | | | | | | | | | | | The unix(7) man page recommends that sun_path is NUL-terminated when struct sockaddr_un is passed to a bind() or connect() call. Non-NUL-terminated paths only need to be dealt with at the receiving end of a UNIX domain socket. Commit 896ff6d erroneously assumed otherwise. This commit almost reverts 896ff6d: It only leaves the added osmo_strlcpy() overflow check in place. Change-Id: I6c4ac6b0a0eef4842beae4107f6f09f6cd29172a Fixes: 896ff6db161465d506bb9bb5bee2cdeef220dd2e Related: OS#2673
* osmo-config-merge: Don't use C99 'for' loop initial declarationsHarald Welte2018-09-251-2/+4
| | | | | | | | | | | | | The existing code passed gerrit build verification but failed the master builds with the following error: osmo-config-merge.c:148:4: error: 'for' loop initial declarations are only allowed in C99 or C11 mode for (int i = 0; i < cur_indent - indent; i++) { ^ osmo-config-merge.c:148:4: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code Change-Id: Ia29e85b648c1a427be88242306634efe890e250d
* logging_vty: Ensure writing well-formed config filesHarald Welte2018-09-252-15/+15
| | | | | | | We want to have well-formed config files that print exactly one space per VTY/config node level, and not two. Change-Id: Ia75c7067284ea225cffe13ca71bad05a7747ae66
* Add new osmo-config-merge utilityHarald Welte2018-09-255-2/+275
| | | | | | | | | | | | | | | | | | | | | | | This utility allows you to merge an incremental config "patch" into an osmocom-style config file. The patch file follows the same syntax as the original config file. It works by appending the leaf nodes of the patch file to the respective nodes of the input config file. This process allows configuration file changes/updates to be performed in a more stable/reliable way than by means of [unified] diff files, as they break every time the context lines break. osmo-config-merge doesn't suffer from this problem, as it understands the tree-like nature of VTY config files. NITE: This only works with configuration files that have proper indenting, i.e. every level in the hierarchy must be indented excatly one character, not multiple. Change-Id: I61997a3668cc3a40d12ca023272f6d782e6fbefe