summaryrefslogtreecommitdiffstats
path: root/utils
Commit message (Collapse)AuthorAgeFilesLines
* libosmocoding: migrate transcoding routines from OsmoBTSVadim Yanitskiy2017-03-071-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | There are some projects, such as GR-GSM and OsmocomBB, which would benefit from using one shared implementation of GSM 05.03 code. So, this commit introduces a new sub-library called libosmocoding, which (for now) provides GSM, GPRS and EDGE transcoding routines, migrated from OsmoBTS. The original GSM 05.03 code from OsmoBTS was relicensed under GPLv2-or-later with permission of copyright holders (Andreas Eversberg, Alexander Chemeris and Tom Tsou). The following data types are currently supported: - xCCH - PDTCH (CS 1-4 and MCS 1-9) - TCH/FR - TCH/HR - TCH/AFS - RCH/AHS - RACH - SCH Change-Id: I0c3256b87686d878e4e716d12393cad5924fdfa1
* utils/conv_gen.py: add header generation featureVadim Yanitskiy2017-03-061-5/+44
| | | | Change-Id: Iae830d716f01810972edbef14fc5383ac647d0ea
* utils/conv_gen.py: add test vectors generation featureVadim Yanitskiy2017-03-061-2/+76
| | | | Change-Id: Ie10c47ee952f253b1ba77ecf6e79f2c033545bc1
* utils/conv_gen.py: improve application flexibilityVadim Yanitskiy2017-02-091-8/+38
| | | | | | | | | | This change makes the conv_gen application more interactive and flexible, allowing to generate not only code definitions but also the test vectors and header files in the future. Moreover, it becomes possible to select exact code family, such as GSM, GMR etc. Change-Id: I0b476b00234c17f78b41d695cf3bfd13edb64c28
* fix various compiler warnings (on FreeBSD-11.0)Harald Welte2017-02-081-3/+3
| | | | | | | FreeBSD 11.0 uses clang version 3.8.0 which spits various warnings during libosmocore compilation. Let's clean this up a bit. Change-Id: Ic14572e6970bd0b8916604fabf807f1608fa07e5
* osmo-auc-gen: cmdline help: list algorithms; error messagesNeels Hofmeyr2017-02-061-1/+10
| | | | | | | | | | | | In the -h help output, list the names of available algorithms. In case of option parsing failure, also print help() (so that e.g. for a typo in the algorithm, the list of algorithms is printed along with the error message). If there are -2/-3 or -a missing, show an error message that explains this. Change-Id: I76732b28d7a553a6293d1707fe398d28b5ef4886
* osmo-auc-gen: cosmetic: clarify output upon AUTSNeels Hofmeyr2017-02-041-1/+14
| | | | | | | | | | | | | | | | | | | | | When calculating a re-sync vector using AUTS, osmo-gen-vec used to print SQN.MS + 2, the new SQN after vector generation, labeled 'SEQ.MS'. Firstly, s/SEQ/SQN. Secondly, print SQN.MS as umts.sqn - 2, which is the actual SQN recovered from the AUTS. As explained in the comment, SQN.MS + 1 is used to generate the vector, and then umts.sqn is increased a second time to indicate the next SQN. With AUTS calculated from SQN.MS == 23, the output was: AUTS success: SEQ.MS = 25 Output now: AUTS success: SQN.MS = 23, generated vector with SQN = 24, next SQN = 25 Change-Id: I881bbe8246a5e7d3a5065b4b5b533255723b1a9e
* GSUP, OAP, osmo-gen-vec: fix AUTS length to 14, not 16Neels Hofmeyr2017-02-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | GSUP transmits AUTS for UMTS authentication procedures, and OAP uses the same procedures to authenticate. osmo-gen-vec is a utility program that passes AUTS to our osmo_auth_gen_vec_auts() API. According to 3GPP 33.102 6.3.3, AUTS = SQN^AK || MAC-S, which are 6 || 8 == 14 bytes. This is confirmed by 24.008 9.2.3a where the TLV has 16 bytes, TL = 2 and AUTS being the V = 14. It is not harmful for milenage_gen_vec_auts() to pass two more AUTS bytes. But writing 16 bytes to a GSUP struct is a potential problem when passing in a 14 byte long AUTS buffer to the GSUP API, which then reads past the AUTS buffer. The API implies the length, so far to be 16, so passing in a 14 byte buffer to GSUP would require copying to a larger buffer first. Fix this by using a length of 14 for AUTS everywhere instead. This constitues an ABI breakage, we may handle it as a "fix before an official release", otherwise we need a version bump. The OAP protocol document has also been updated, needs an update in the osmo-gsm-manuals as well. Change-Id: If25b173d9ec57ea4c504d860954912b7d82af455
* utils/conv_gen.py: separate code definitionsVadim Yanitskiy2016-12-242-714/+728
| | | | | | | | | This change separates the convolutional code definitions from the code generator logic, allowing us to make further changes in more specific way. For example, adding some new codes, you change the conv_codes.py only because such change isn't related to the generator. Change-Id: I3428561251b7d7a180d1e9b6fcaad50bdbbc37fa
* utils/conv_gen.py: use shared tables if possibleVadim Yanitskiy2016-12-241-37/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | This change introduces the memory usage optimization, mentioned in d2d9760c08f35a231d32f0ebeb73b2927e5573b3. The aim is to make code generator able to detect, whether the same tables are used by several convolutional code definitions, and prevent one from writing these tables multiple times. For now, the detection process isn't fully automatic, so all shared polynomials should be placed inside the 'shared_polys' dictionary, for example: shared_polys = { "xcch" : [ ( G0, 1 ), ( G1, 1 ), ], "mcs" : [ ( G4, 1 ), ( G7, 1 ), ( G5, 1 ), ], } Change-Id: I84760f5cdfdaece376b801d2e6cb2954ee875a3b
* osmo-sim-test.c: Fix rmsg checkHarald Welte2016-11-261-1/+1
| | | | | | | | we wanted to check for !rmsg, but used to check for !msg, missing error returns from read_record_nr(). Change-Id: I79b6a94b1aa947c8329317b0626865c3cd4159c1 Fixes: Coverity CID 57672
* utils/conv_gen.py: explicitly import reduce()Vadim Yanitskiy2016-11-021-0/+1
| | | | | | | | This change finally makes the script able to be executed in Python 3 environment. Due to new Python 3 restrictions, the reduce() should be imported explicitly. Change-Id: Icbc81c29f1a226aeed2c1245a5d60809fe124005
* utils/conv_gen.py: don't mix print and write()Vadim Yanitskiy2016-11-021-32/+34
| | | | | | | This is mostly a code style change, but it also increases the compatibility with Python 3. Change-Id: I5c8271d973f766aeb9cbcab30c4eddfdab54fcbb
* utils/conv_gen.py: add EDGE MCS 1-9 definitionsVadim Yanitskiy2016-10-231-1/+226
| | | | Change-Id: Ie1452342f524a8b60f2babc07398a1d9c9e06aa3
* utils/conv_gen.py: fix some typosVadim Yanitskiy2016-10-231-6/+6
| | | | Change-Id: I3327b92715744af4ef61496ef0121555d9d24799
* utils/conv_gen.py: add RACH, SCH and TCH/AHS definitionsVadim Yanitskiy2016-10-231-1/+162
| | | | Change-Id: I0ea7151f4e8119a8798a9e129b951559e56b0d93
* utils/conv_gen.py: improve output formattingVadim Yanitskiy2016-10-231-6/+32
| | | | | | | | | | | To keep the generated tables readable, line with should be limited. So, now there are the following limitations: - _print_term(): up to 12 numbers per line, - _print_puncture(): up to 12 numbers per line, - _print_x(): up to 4 blocks per line. Change-Id: I95256c4ad402a3c088bdb6c5a5cda8b17c31881c
* utils/conv_gen.py: generate a single fileVadim Yanitskiy2016-10-231-318/+315
| | | | | | | | | | | | | | | | Instead of generating every convolutional code into a separate file (such as conv_xcch_gen.c, conv_cs3_gen.c), it is better to have a single file, containing all definitions, because as many convolutional codes we add, as many entries we will have to add into 'src/gsm/Makefile.am'. This approach increases readability of the Makefile.am, and also makes us able to share some data between some convolutional code definitions. For example: xCCH, RACH, SCH, TCH/F, both CS2 and CS3 may use the same *_state[][2] and *_output[][2] arrays within a single file. This optimization is currently WIP. Change-Id: Ib4e4ee5fdde38429e68e3b2fa50ec03a18f59daa
* utils/conv_gen.py: code style changes (line width, tabs, etc.)Vadim Yanitskiy2016-09-241-181/+233
| | | | Change-Id: I8550910b9f5c16efc6f15f23c7ee52122c588752
* osmo-auc-gen: Print hex values without intermittent spacesHarald Welte2016-06-011-7/+7
| | | | | | | | | | | | | | | | When generating some authentication vectors using the osmo-auc-gen utility, it used to print values like this: AUTN: f7 55 bc 47 de d0 00 00 f9 ed 4b 3f 6c 2a 97 6f which is quite difficult to copy+paste on the terminal. Now it generates the following format: Change-Id: I2805615e0c2087ca632e0658b37a9e06929620b6 AUTN: f755bc47ded00000f9ed4b3f6c2a976f Reviewed-on: https://gerrit.osmocom.org/164 Reviewed-by: Harald Welte <laforge@gnumonks.org> Tested-by: Jenkins Builder
* 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 two missing files (gsm0503.h / conv_gen.py) to previous commitHarald Welte2016-04-291-0/+494
|
* rename osim_file_find_* to osim_file_desc_find_*Harald Welte2016-03-111-1/+1
| | | | they return an osim_file_desc, and not an osim_file, so fix the naming
* utils: add TALLOC_CFLAGS to buildHarald Welte2015-12-081-1/+1
| | | | this is an attempt to fix the FreeBSD build
* osmo-sim-test: add missing includeAlexander Huemer2015-11-071-0/+1
|
* osmo-auc-gen: '-a' is already the algorithm. Fix the helpHolger Hans Peter Freyther2015-05-261-1/+1
|
* build: Fix out-of-tree buildsAndreas Rottmann2015-05-171-1/+1
| | | | | | | | | | | | | | Fixes: In file included from ../../../include/osmocom/core/msgb.h:25:0, from ../../../include/osmocom/sim/sim.h:4, from ../../../src/sim/reader_pcsc.c:30: ../../../include/osmocom/core/bits.h:6:35: fatal error: osmocom/core/bit16gen.h: No such file or directory #include <osmocom/core/bit16gen.h> In file included from ../../include/osmocom/core/msgb.h:25:0, from ../../utils/osmo-sim-test.c:26: ../../include/osmocom/core/bits.h:6:35: fatal error: osmocom/core/bit16gen.h: No such file or directory #include <osmocom/core/bit16gen.h>
* pcsc: Allow to disable the PCSC dependencyHolger Hans Peter Freyther2014-11-141-3/+5
| | | | | | | | * PCSC is enabled by default * --enable-pcsc is enabling it * --disable-pcscis disabling it * Fix the makefile of the utilities to not build pcsc and use the right header files/libraries.
* osmo-sim-test: Fix read_binary() return checkHarald Welte2014-10-271-1/+1
| | | | if we expect rmsg to be set, we should check for it...
* sim: Prepare infrastructure for protocols != T=0 and other driversHarald Welte2014-10-261-2/+2
|
* sim: Make osmo-sim-test compile againHarald Welte2014-10-261-1/+1
|
* sim: add decoding of status wordsHarald Welte2014-10-261-0/+3
|
* sim: strip the SW from the returned data, as SW is passed in msgb->cbHarald Welte2014-10-261-3/+3
|
* sim: add copyright notices and merge file_codec.c into core.cHarald Welte2014-10-261-6/+23
|
* sim: osmo-sim-test: Also dump binary filesHarald Welte2014-10-261-10/+39
|
* initial checkin of 'libosmosim'Harald Welte2014-10-262-0/+375
|
* build: remove unused all_includes and use AM_CPPFLAGSJan Engelhardt2014-10-031-1/+2
| | | | | Preprocessor flags are best placed in AM_CPPFLAGS. Remove use of the unused all_includes variable, which is never set.
* utils: resolve compiler warnings on implicit declarationsJan Engelhardt2014-10-031-0/+1
| | | | | | | CC osmo-auc-gen.o osmo-auc-gen.c: In function 'main': osmo-auc-gen.c:216:3: warning: implicit declaration of function 'time' [-Wimplicit-function-declaration]
* osmo-auc-gen: Fix compiler warnings about aliasingHolger Hans Peter Freyther2014-06-221-4/+7
| | | | | | | | | | | | | | | | | | | I ran "./utils/osmo-auc-gen -2 -a COMP128v1" and verified that the RAND doen't look empty Fixes: osmo-auc-gen.c: In function ‘main’: osmo-auc-gen.c:219:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] *(uint32_t *)&_rand[0] = rand(); ^ osmo-auc-gen.c:220:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] *(uint32_t *)(&_rand[4]) = rand(); ^ osmo-auc-gen.c:221:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] *(uint32_t *)(&_rand[8]) = rand(); ^ osmo-auc-gen.c:222:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] *(uint32_t *)(&_rand[12]) = rand();
* utils: Fix compiler warnings n the osmo-auc-gen utilityHolger Hans Peter Freyther2013-07-141-1/+3
| | | | | | | osmo-auc-gen.c:217:3: warning: implicit declaration of function ‘time’ [-Wimplicit-function-declaration] osmo-auc-gen.c:249:3: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘uint64_t’ [-Wformat] Fixes: Coverity CID 1040668
* osmo-arfcn: Return something from the methodHolger Hans Peter Freyther2013-04-211-0/+1
| | | | This is a fatal error when building RPMs for OpenSUSE.
* build: Don't use the deprecated INCLUDES in the various Makefile.amSylvain Munaut2012-12-111-1/+2
| | | | Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* utils/osmo-arfcn: Implement option to get ARFCN from frequencySylvain Munaut2012-12-111-1/+32
| | | | Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* osmo-arfcn: add support for PCS bandHarald Welte2012-12-061-6/+13
|
* actually install osmo-arfcn and osmo-auc-gen as part of 'make install'Harald Welte2012-11-161-1/+1
|
* Add missing includes to timer_test.c and osmo-auc-gen.cHarald Welte2012-08-021-0/+1
| | | | | | This fixes the build with -Werror-implicit-function-declaration. taken from malformatted patch of Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
* osmo-auc-gen: Add "-I" mode for generating triplets.dat for strongswanHarald Welte2012-06-271-3/+23
| | | | | | If you want to use eap-sim-file with strongswan, you need a triplets.dat file in a specific format. osmo-auc-gen can now generate the respective format automatically.
* osmo-auc-gen: Add mode for verifying user-supplied AUTSHarald Welte2012-03-221-14/+25
| | | | | When -A is used on the command line, the respective AUTS value will be validated and the SQN of the UICC printed.
* update copyright noticeHarald Welte2012-03-211-2/+2
|
* osmo-auc-gen: Add -O to the getop line to make it workHolger Hans Peter Freyther2012-03-211-1/+1
|