summaryrefslogtreecommitdiffstats
path: root/include/osmocom
Commit message (Collapse)AuthorAgeFilesLines
* Patched structs for big-endian architecturesRuben Undheim2016-05-311-0/+160
| | | | | | | | Change-Id: I29eafe481e112d18c624b1c83add0d53c354dbe4 Reviewed-on: https://gerrit.osmocom.org/124 Tested-by: Jenkins Builder Reviewed-by: Neels Hofmeyr <nhofmeyr@sysmocom.de> Reviewed-by: Harald Welte <laforge@gnumonks.org>
* Add helper functions for AMR codecMax2016-05-311-0/+31
| | | | | | | | | | | | | | | | | | | * add functions to encode/decode various codec paramters from RTP payload with AMR frame according to RFC 4867 * those functions are extended version based on code from osmo-bts' amr.c by Andreas Eversberg * add corresponding enum types and strings for logging * add regression tests It's useful both to replace manual parsing in osmo-bts with fuctions covered by test suite and as a debugging helpers for issues related to AMR. Change-Id: Ia217679a07d3fbc970f435e20f6eac33d34bd597 Related: OS#1562 Reviewed-on: https://gerrit.osmocom.org/118 Tested-by: Jenkins Builder Reviewed-by: Holger Freyther <holger@freyther.de>
* Add strings with PH primitive namesMax2016-05-301-0/+2
| | | | | | | | | | It's useful debugging helper while troubleshooting L1-related issues. Change-Id: Id7a6d478fd725c51f54ad746bdf9b9095579ff77 Reviewed-on: https://gerrit.osmocom.org/117 Tested-by: Jenkins Builder Reviewed-by: Max <msuraev@sysmocom.de> Reviewed-by: Holger Freyther <holger@freyther.de>
* Fixing build on Mac OSXBeshr Al Nahas2016-05-281-1/+1
| | | | | | | | | Fix minor syntax error Change-Id: I67f9a1e41fa5b1da3a4b10fc76138e153b767241 Reviewed-on: https://gerrit.osmocom.org/125 Tested-by: Jenkins Builder Reviewed-by: Holger Freyther <holger@freyther.de>
* Fix build for OSXArran Cudbard-Bell2016-05-201-0/+11
| | | | | | | Change-Id: I580a500edcf4812e570be586890abef746083a8c Reviewed-on: https://gerrit.osmocom.org/74 Tested-by: Jenkins Builder Reviewed-by: Holger Freyther <holger@freyther.de>
* Add function to make Uplink MeasurementMax2016-05-171-0/+4
| | | | | | | | | | | It assembles RSL Uplink Measurement IE according to 3GPP TS 08.58 ยง9.3.25. The function is based on lchan_build_rsl_ul_meas() from OsmoBTS but optionally includes DTX information. Change-Id: Ib37107bcc9909e5105ea711de42d3fb1db7e8d9e Reviewed-on: https://gerrit.osmocom.org/44 Tested-by: Jenkins Builder Reviewed-by: Harald Welte <laforge@gnumonks.org>
* Set DTX in Cell OptionsMax2016-05-121-1/+14
| | | | | | | | | | | | * rename field of struct gsm48_cell_options to better match the spec * add comments with spec references * add function for setting DTX in cell options struct * add necessary enum type Change-Id: I5a8924f57669c951b2e51b663d95f1d360062a54 Reviewed-on: https://gerrit.osmocom.org/39 Reviewed-by: Harald Welte <laforge@gnumonks.org> Tested-by: Jenkins Builder
* logging: Use __BASE_FILE__ instead of __FILE__Harald Welte2016-05-122-5/+5
| | | | | | | | | | | | | | Apparently __FILE__ expands to nasty '../../..' paths when BUILDDIR != SRCDIR. This in turn leads to ugly log lines like: <0000> ../../../../osmo-bts/src/common/rsl.c:1642 (bts=0,trx=0,ts=0,ss=0) Handing RLL msg UNIT_DATA_IND from LAPDm to MEAS REP Where we certainly wouldn't want the "../../../../osmo-bts" part. Change-Id: If6d2de33c3b6bb2943954bbd81eff261dc279d58 Reviewed-on: https://gerrit.osmocom.org/38 Tested-by: Jenkins Builder Reviewed-by: Harald Welte <laforge@gnumonks.org>
* GSUP: Add support for RAND in SendAuthInfo.reqHarald Welte2016-05-061-0/+1
| | | | | | In the autentication re-sync case, we need not only the AUTS from the MS/UE, but also the RAND that we sent as part of the failed authentication challenge.
* GSUP: Add OSMO_GSUP_CN_DOMAIN_IE to differentiate CS and PS planeHarald Welte2016-05-061-0/+7
| | | | | We're starting to use GSUP for circuit-switched (CS) plane, so we need to differentiate the two planes somehow from each other.
* import gprs_gsup_message.[ch] from openbsc as gsup.[ch]Harald Welte2016-05-062-1/+141
| | | | | | | Move those routines from OpenBSC to libosmogsm, so they can be re-used from other programs. I think it was a mistake to add them only inside the openbsc repository in the first place. We need to pay more attention to this in the future.
* Import osmo_{encode,decode}_big_endian() from openbscHarald Welte2016-05-051-0/+4
|
* tlv: Import osmo_shift_* and osmo_match_shift_* from openbscHarald Welte2016-05-051-0/+11
| | | | | These routines have nothing to do with specifically the BSC, so import them to the TLV parser we keep in libosmogsm.
* Update doxygen annotations in libosmocoreHarald Welte2016-05-059-139/+162
| | | | | This adds and improves doxygen API descriptions all over libosmocore, reducing the 'white spots' that don't have any documentation.
* add new header file for TS 23.003Harald Welte2016-05-051-0/+23
|
* import gsm_04_08_gprs.[ch] from openbsc.gitHarald Welte2016-05-051-0/+397
| | | | | | The definitions in this header file (and associated strings in the c file) are generic about the GPRS Layer3 signalling protocols, and thus should be part of the library.
* Add log_fini() function to release all memory allocated by logging frameworkHarald Welte2016-05-051-0/+1
| | | | | This is e.g. quite useful to call at the end of test code, in order to show that all memory allocated actually is released before exit().
* add two missing files (gsm0503.h / conv_gen.py) to previous commitHarald Welte2016-04-291-0/+74
|
* Add function for appending range1024 to bitvecMax2016-04-231-0/+13
| | | | | Add convenience function to append range1024 encoded data (see 3GPP TS 44.018 Annex J) to a given bitvec.
* Deprecate comp128Max2016-04-221-2/+6
| | | | | Mark function as deprecated to discourage its usage: people should use generic API in osmocom/crypt/auth.h
* Deprecate osmo_a5_1 and osmo_a5_2Max2016-04-221-2/+3
| | | | | Mark the functions as deprecated to discourage their use: people should use unified osmo_a5 which supports all the A5/1-4 ciphers.
* Update internal GPRS cipher APIMax2016-04-221-2/+6
| | | | | Update internal API (for GPRS cipher implementors): make it compliant with ETSI TS 155.22. External API left untouched.
* Addditional classmark check against A5/4 supportMax2016-04-221-1/+13
| | | | | Add classmark check function according to GSM 04.08 Chapter 10.5.1.7 Fix interface to use unsigned for unsigned value.
* Add function to get osmo_earfcn bit sizeMax2016-04-161-0/+1
| | | | | | This function returns the number of bits necessary to pack osmo_earfcn into Repeated E-UTRAN Neighbour Cells IE (3GPP TS 44.018 Table 10.5.2.33b.1).
* Add ubit <-> sbit convertorsMax2016-04-121-0/+3
| | | | | Move functions for conversion between soft and unpacked bits to main library as they are generally useful.
* vty: Make a reservation for the osmo-sip-connectorHolger Hans Peter Freyther2016-03-311-0/+1
| | | | | The osmo-sip-connector is a new application and is a MNCC to SIP bridge. It is not implementing transcoding or RTP proxying at all.
* select: Externalize fd_set filling and dispatchHolger Hans Peter Freyther2016-03-311-0/+6
| | | | | | | | | | | | | | | | To integrate with an external event loop (in this case glib) we need to allow an application to get a filled out fd_set and then dispatch it. osmo_fds and maxfds are static and I decided to keep it that way and instead create two routines to fill the fdset and then one to dispatch the result. The public header file does not include sys/select.h and we can compile the library without select, so I didn't want to require having to include this file, and used void * for the parameter. Mark the routines as inline to avoid a call from the select function. I have confirmed that inlining has an effect on x86 using Debian's gcc-4.9.2-10 compiler
* Export names for gsm_chan_t and gsm48_chan_modeMax2016-03-302-0/+7
| | | | This can be used with get_value_string() to improve debugging output.
* sim: make osim_reader_ops publicHarald Welte2016-03-191-2/+7
|
* Add new osmo_fd_get_by_fd() functionHarald Welte2016-03-191-0/+2
| | | | | | This function can be used to obtain the osmo_fd corresponding to a given fd. The latter can be useful when integrating libosmocore main loop with other libraries.
* sim: add class_tables / card profilesHarald Welte2016-03-171-0/+42
| | | | | The tables permit code to determine the APDU class of an APDU based on it APDU/TPDU header (CLA/INS/P1/P2/P3).
* add missing #include <stdbool.h>Harald Welte2016-03-171-0/+1
|
* Rename struct to better match libosmocore conventionsMax2016-03-171-4/+4
|
* Add basic EARFCN supportMax2016-03-171-1/+31
| | | | | | Add structure representing group of EARFCNs with common priority, threshold etc. Add functions to populate this structure.
* Add function to add bits from array to bitvecMax2016-03-171-0/+3
| | | | | | | | | Add function which adds specified number of bits from each element of array to the bit vector prefixing each addition with one and finishing entire sequence with adding 0. This is very common patter for various repetitive data structures described with CSN.1 in 3GPP standards. Corresponding test vectors and doxygen headers are added too.
* gsm48: factor out MCC+MNC BCD parsing for re-use in UMTSNeels Hofmeyr2016-03-151-0/+3
| | | | | | | | | | For 3G, I need a BCD composer/parser similar to gsm48_generate_lai()/ gsm48_decode_lai(). Those functions also handle a trivial extra member (lac) which I don't need in this way for 3G. So create new functions to take on the MCC+MNC BCD handling and call those from gsm48_generate_lai() and gsm48_decode_lai(). In this way, the 3G code in openbsc can use only the BCD functionality without code duplication.
* 04.08: add inline funcs for transaction id bitsNeels Hofmeyr2016-03-151-0/+19
| | | | | | Various users of gsm48_hdr apply the same hardcoded shifts/bitmasks to obtain the transaction ID encoded in the upper nibble of the protocol discriminator. Centralize. Patch for openbsc.git will follow.
* 04.08: switch to r99 msg type bitmasks by defaultNeels Hofmeyr2016-03-151-1/+1
| | | | | [hfreyther: Separated from the previous patch to allow an easy revert]
* 04.08: add inline funcs for pdisc + msg type bitmasksNeels Hofmeyr2016-03-151-0/+56
| | | | | | | | | | | | | | | | Add inline functions for both release <= 98 and release >= 99 as well as a default define. Use the release 98 by default since the current code base uses the r98 bitmasks. These inline functions relieve callers of the decision on masking bits of the protocol discriminator and message type octets. Also add a define for the protocol discriminator extension to one octet length (GSM48_PDISC_EXTEND). Apply new pdisc function in gsm0480.c. [hfreyther: Make the hdr param const]
* Add helper function to convert numerical BSSGP PDU type to stringMax2016-03-111-0/+1
|
* Add support for SI2quater messagesMax2016-03-111-0/+7
| | | | Add basic data structure for System information Type 2quater.
* rename osim_file_find_* to osim_file_desc_find_*Harald Welte2016-03-111-3/+3
| | | | they return an osim_file_desc, and not an osim_file, so fix the naming
* sim: Add osim_file_find_{fid,sfid}() functionsHarald Welte2016-03-111-0/+6
| | | | | We don't always want to look-up by name, but the latter is the only implemented 'find' function so far. Let's change that.
* log: Add conditional logging based on log_check_levelJacob Erlbeck2016-02-291-4/+20
| | | | | | | | | | | | | | Currently the LOGP/DEBUGP arguments are always evaluated even if no logging will happen at all. This can be expensive, for instance if hexdumps or pretty printed object names are generated. This causes high base load especially on embedded devices and is a major part of CPU usage e.g. of the osmo-pcu. This commit uses the log_check_level function to avoid the evaluation of the parameters if it is known in advance, that no logging entry will be generated. Sponsored-by: On-Waves ehf
* log: Add log_check_level functionJacob Erlbeck2016-02-291-0/+1
| | | | | | | | | | | | | | | | | | This commit adds this predicate function which can be used to avoid the execution of code if a certain log level is not enabled. The function will only return 0 (false), if it is sure that a logging call for the same facility and level will not produce any output. This safety criterion shall ensure, that no logging output is lost due to the use of this predicate as a guard. On the other hand, even if the predicate returns != 0 (true), no logging output might get generated by a similar logging command. Note that the current implementation is not focussed on performance, which could be improved by using a lookup table instead of iterating through every target. Sponsored-by: On-Waves ehf
* fix gsm_7bit_decode API comment: septets, not octetsNeels Hofmeyr2016-02-291-1/+2
|
* Add byte printing macrosMax2016-02-251-0/+21
| | | | | | It's sometimes handy for debugging to be able to immediately see which bits are set in a given byte. Generalize macro used for that in bitvec tests and make it available for the rest of the library.
* vty: add ctrl section for Control interface bind addressNeels Hofmeyr2016-02-252-1/+10
| | | | | | | | | | | | | | | | | | | | | | | This may seem like overkill for a mere const char * config item, but it makes the Control interface VTY commands reusable in any main() scope (inspired by libosmo-abis' VTY config). Add API functions ctrl_vty_init() and ctrl_vty_get_bind_addr(), in new files src/ctrl/control_vty.c and include/osmocom/ctrl/control_vty.h, compiled and/or installed dependent on ENABLE_VTY. Using these functions allows configuring a static const char* with the VTY commands ctrl bind A.B.C.D which callers shall subsequently use to bind the Control interface to a specific local interface address, by passing the return value of ctrl_vty_get_bind_addr() to control_interface_setup(). Add CTRL_NODE to enum node_type, "eating" RESERVED4_NODE to heed that comment on avoiding ABI changes.
* add ctrl_interface_setup_dynip() for bind addressNeels Hofmeyr2016-02-251-0/+4
| | | | | | Make the ctrl interface bind address configurable, so that it may be made available on other addresses than 127.0.0.1. The specific aim is to allow running multiple osmo-nitbs alongside each other (commits in openbsc follow).
* vty: add bind command for telnet vty lineNeels Hofmeyr2016-02-251-0/+3
| | | | | | | | | | | | | | | | | | | | Add VTY command line vty bind A.B.C.D The command merely stores the configured IP-address, which can then be used by the calling main program to set the telnet port of the VTY line. (Commits in openbsc and osmo-iuh will follow up on this.) Add function vty_get_bind_addr() to publish the address in the vty.h API. Add static vty_bind_addr to store. For allocation/freeing reasons, a NULL address defaults to 127.0.0.1. BTW, I decided against allowing keywords 'any' and 'localhost' in place of an actual IP address to make sure a written config is always identical to the parsed config.