summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Add functions to detect HR/FR SID framesMax2016-06-012-0/+71
| | | | | | | | | | | Add functions which check if given FR or HR frame (packed in RTP) contains SID (SIlence Descriptor) and corresponding tests. Related: OS#22 Change-Id: I4051e3c0d4fb9ee93d7e9e0ef4abaf9f18e227ca Reviewed-on: https://gerrit.osmocom.org/160 Tested-by: Jenkins Builder Reviewed-by: Harald Welte <laforge@gnumonks.org>
* Add helper functions for AMR codecMax2016-05-312-1/+107
| | | | | | | | | | | | | | | | | | | * 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-302-0/+14
| | | | | | | | | | 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>
* misc: Some spelling errors correctedRuben Undheim2016-05-252-2/+2
| | | | | | | Change-Id: Ibfc239b84879556624ca6020ae6a63d102640c94 Reviewed-on: https://gerrit.osmocom.org/114 Tested-by: Jenkins Builder Reviewed-by: Neels Hofmeyr <nhofmeyr@sysmocom.de>
* Revert "gsm48: move to hex TMSI representation"Holger Freyther2016-05-201-1/+2
| | | | | | | | | | | | | | | | | This is a "flag" day change. Old OpenBSC break with new libosmocore because suddenly there is the 0x in front. I am afraid we need to find a better solution here. I think we will need to create a gsm48_mi_to_string variant that takes a mode parameter to enable the TMSI mode and deprecate the old method. Right now we should not break old versions of OpenBSC. This reverts commit 78ad042f94afd5bf7de477ae634e9d2fdd9c9dc4. Change-Id: I2f61e626f2f9088b492e1b643c3dcc9bce77d52b Reviewed-on: https://gerrit.osmocom.org/86 Tested-by: Jenkins Builder Reviewed-by: Holger Freyther <holger@freyther.de>
* Fix build for OSXArran Cudbard-Bell2016-05-201-1/+13
| | | | | | | Change-Id: I580a500edcf4812e570be586890abef746083a8c Reviewed-on: https://gerrit.osmocom.org/74 Tested-by: Jenkins Builder Reviewed-by: Holger Freyther <holger@freyther.de>
* gsm48: move to hex TMSI representationVadim Yanitskiy2016-05-201-2/+1
| | | | | | | | | | | | | Previously, we traditionally displayed a TMSI in its integer representation, which is quite unusual in the telecom world. A TMSI is normally printed as a series of 8 hex digits. Review at https://gerrit.osmocom.org/57/ Change-Id: Ifd25365bfa3b4ee95b16979740c3229948ce17f2 Reviewed-on: https://gerrit.osmocom.org/57 Tested-by: Jenkins Builder Reviewed-by: Harald Welte <laforge@gnumonks.org> Reviewed-by: Holger Freyther <holger@freyther.de>
* Add function to make Uplink MeasurementMax2016-05-172-0/+22
| | | | | | | | | | | 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-122-1/+47
| | | | | | | | | | | | * 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
* api doc: auth_core.c: add \returns, cosmeticNeels Hofmeyr2016-05-101-2/+9
| | | | | | | | | | | | | | | Add various missing \returns doxygen entries. In osmo_auth_3g_from_2g(), also adjust two comment-closing instances to match common style and add a period to end a sentence. (The recent addition of osmo_auth_3g_from_2g() raised my attention, and I added more return value docs while at it.) Change-Id: Iea71eb666bc061acb6b14215f398bd38d17b3ad3 Reviewed-on: https://gerrit.osmocom.org/33 Tested-by: Jenkins Builder Reviewed-by: Holger Freyther <holger@freyther.de>
* GSUP: Add support for RAND in SendAuthInfo.reqHarald Welte2016-05-061-1/+12
| | | | | | 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/+9
| | | | | 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-063-1/+477
| | | | | | | 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/+62
|
* tlv: Import osmo_shift_* and osmo_match_shift_* from openbscHarald Welte2016-05-052-0/+177
| | | | | 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-0518-47/+212
| | | | | This adds and improves doxygen API descriptions all over libosmocore, reducing the 'white spots' that don't have any documentation.
* import gsm_04_08_gprs.[ch] from openbsc.gitHarald Welte2016-05-053-1/+148
| | | | | | 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/+15
| | | | | 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().
* auth_core: Add osmo_auth_3g_from_2g() to compute CK+IK from KcHarald Welte2016-05-052-0/+42
| | | | | This function performs the C5+C4 conversion to derive UMTS key material from a 2G-only subscriber.
* conv_gen: Use python2 to execute the scriptHolger Hans Peter Freyther2016-04-291-1/+1
| | | | | | | | | | | | | | | | | | | | | The script does not work with python3: $ python3 utils/conv_gen.py File "utils/conv_gen.py", line 124 def _print_term(self, fi, num_states, pack = False): Second there is no 'python' on FreeBSD and one needs to select the major version to use. GEN conv_cs3_gen.c GEN conv_xcch_gen.c GEN conv_cs2_gen.c python: not found python: not found python: not found By using python2 we solve both issues. On Debian python2 is located inside the python-minimal package.
* Add code generator for convolutional codesMax Suraev msuraev@sysmocom.de2016-04-292-0/+20
| | | | | | | | | | | | | | | | Add python utility to generate .c code with convolutional encoder/decoder based on polynomial description of the code. If argument given it'll be interpreted as intended output directory, otherwise current working directory is used. Codes for *CCH, CS2/3 and TCH/AFS are generated. Corresponding manual implementations are removed from tests. This introduce build-time dependency on python. The main work for this patch was generously contributed by Sylvain Munaut. Fixes: OS#1629
* milenage/aes: Address undefined behavior on bitshiftHolger Hans Peter Freyther2016-04-241-1/+1
| | | | | | | | | | | | | | | | | Extend the u8 to u32 before going to shift it. Fixes: milenage/aes-internal.c:799:4: runtime error: left shift of 128 by 24 places cannot be represented in type 'int' #0 0x7f84e9fe86a2 in rijndaelKeySetupEnc (/home/builder/jenkins/workspace/Osmocom_Sanitizer/source/libosmocore/src/gsm/.libs/libosmogsm.so.5+0xfa6a2) #1 0x7f84e9febad8 in aes_encrypt_init (/home/builder/jenkins/workspace/Osmocom_Sanitizer/source/libosmocore/src/gsm/.libs/libosmogsm.so.5+0xfdad8) #2 0x7f84e9fe7d14 in aes_128_encrypt_block (/home/builder/jenkins/workspace/Osmocom_Sanitizer/source/libosmocore/src/gsm/.libs/libosmogsm.so.5+0xf9d14) #3 0x7f84e9febe7d in milenage_f1 (/home/builder/jenkins/workspace/Osmocom_Sanitizer/source/libosmocore/src/gsm/.libs/libosmogsm.so.5+0xfde7d) #4 0x7f84e9fee2ce in milenage_generate (/home/builder/jenkins/workspace/Osmocom_Sanitizer/source/libosmocore/src/gsm/.libs/libosmogsm.so.5+0x1002ce) #5 0x7f84e9fe76d7 in milenage_gen_vec (/home/builder/jenkins/workspace/Osmocom_Sanitizer/source/libosmocore/src/gsm/.libs/libosmogsm.so.5+0xf96d7) #6 0x7f84e9fe6c08 in osmo_auth_gen_vec (/home/builder/jenkins/workspace/Osmocom_Sanitizer/source/libosmocore/src/gsm/.libs/libosmogsm.so.5+0xf8c08) #7 0x401441 in main (/home/builder/jenkins/workspace/Osmocom_Sanitizer/source/libosmocore/tests/auth/.libs/lt-milenage_test+0x401441) #8 0x7f84e8e33a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f) #9 0x400e58 in _start (/home/builder/jenkins/workspace/Osmocom_Sanitizer/source/libosmocore/tests/auth/.libs/lt-milenage_test+0x400e58)
* Fix unaligned access found by addr. sanitizerMax2016-04-242-4/+4
| | | | | | | | gprs_bssgp.c:461:9: runtime error: load of misaligned address 0x62100001a66b for type 'uint32_t', which requires 4 byte alignment gprs_ns.c:937:16: runtime error: load of misaligned address 0x61d00002a97f for type 'uint16_t', which requires 2 byte alignment
* Add function for appending range1024 to bitvecMax2016-04-232-1/+37
| | | | | Add convenience function to append range1024 encoded data (see 3GPP TS 44.018 Annex J) to a given bitvec.
* Deprecate comp128Max2016-04-222-2/+7
| | | | | 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-50/+58
| | | | | Mark the functions as deprecated to discourage their use: people should use unified osmo_a5 which supports all the A5/1-4 ciphers.
* Improve code reuseMax2016-04-221-32/+3
| | | | Use generic functions covered by testsuit for SQN calculations.
* Update internal GPRS cipher APIMax2016-04-222-2/+22
| | | | | Update internal API (for GPRS cipher implementors): make it compliant with ETSI TS 155.22. External API left untouched.
* Add function to get osmo_earfcn bit sizeMax2016-04-162-0/+25
| | | | | | 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).
* logging.c: assert category_token allocation (CID #57871)Neels Hofmeyr2016-04-161-0/+1
|
* Add ubit <-> sbit convertorsMax2016-04-121-0/+24
| | | | | Move functions for conversion between soft and unpacked bits to main library as they are generally useful.
* gb: Add bssgp_pdu_str to libosmogb namespaceMax2016-04-121-0/+1
| | | | [hfreyther: To be used by osmo-pcu]
* Add missing docs for bssgp bvc reset vty commandMax2016-04-071-2/+8
| | | | Fixes the build failure with extended tests enabled.
* Add vty command to explicitly reset given BVCIMax2016-04-051-0/+20
| | | | | It's useful for debugging and is similar to existing reset command for nsvc.
* select: Externalize fd_set filling and dispatchHolger Hans Peter Freyther2016-03-311-32/+51
| | | | | | | | | | | | | | | | 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-1/+27
| | | | This can be used with get_value_string() to improve debugging output.
* sim: make osim_reader_ops publicHarald Welte2016-03-191-7/+0
|
* Add new osmo_fd_get_by_fd() functionHarald Welte2016-03-191-0/+12
| | | | | | 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-172-2/+316
| | | | | The tables permit code to determine the APDU class of an APDU based on it APDU/TPDU header (CLA/INS/P1/P2/P3).
* Improve BSSGP debug outputMax2016-03-172-17/+17
| | | | | Print string representation of Cause IE and PDU type instead of numerical value.
* Rename struct to better match libosmocore conventionsMax2016-03-171-3/+3
|
* Revert "gsm48: move to hex TMSI representation"Harald Welte2016-03-171-1/+1
| | | | This reverts commit f451ce66eb8206bad1078849723edcb209632834.
* gsm48: move to hex TMSI representationVadim Yanitskiy2016-03-171-1/+1
| | | | Signed-off-by: Vadim Yanitskiy <axilirator@gmail.com>
* Add basic EARFCN supportMax2016-03-172-0/+54
| | | | | | 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/+40
| | | | | | | | | 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-152-21/+36
| | | | | | | | | | 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 pdisc + msg type bitmasksNeels Hofmeyr2016-03-151-2/+2
| | | | | | | | | | | | | | | | 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/+46
|
* rename osim_file_find_* to osim_file_desc_find_*Harald Welte2016-03-111-3/+5
| | | | 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/+25
| | | | | 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.