summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* lapd_core: Fix crash in lapd_dl_flush_hist()Harald Welte2016-08-011-1/+1
| | | | | | | | When lapd_dl_flush_hist() was called before we actually had started a transmit history from lapd_dl_init(), we woul segfault before this patch. Change-Id: Ifa677c9b335dd2884b4f3e44699d901957a0500b
* Mark input string to osmo_talloc_replace_string() as constHarald Welte2016-07-281-1/+1
| | | | | | | This allows us to pass in strings that are 'const', which for the source of a copy should be the normal/regular case anyway. Change-Id: Icee6a5f88babd3a4e30bf0886f0f8d3b865d80ce
* egprs: Add CPS tables from TS 04.60Tom Tsou2016-07-255-1/+137
| | | | | | | | Includes EGPRS coding and puncturing scheme (CPS) tables from 3GPP TS 04.60. Currently osmo-bts-trx is the only user of CPS table values, but this may change with gprsdecode and other utilities. Change-Id: I09fe6514a0e2e51bb3206f8387633f7e0255345f
* Update structure in libosmocore for 11 bit RACHbhargava2016-07-241-1/+11
| | | | | | | | Parameters are added to the structure ph_rach_ind_param to differentiate the type of RACH received from Layer 1. This is to further support the 11 bit RACH. Change-Id: Ic4f0f2424a3af7599d986044be25ea4fcc0ca477
* Add define for invalid TAMax2016-07-231-0/+2
| | | | | | | | Add GSM48_TA_INVALID which is invalid Timing Advance value according to 3GPP TS 44.018 § 10.5.2.40. Change-Id: I061760ccac656f39164562a7883f8ab522cd0911 Related: OS#1526
* rsl: add rsl_act_type_name()Neels Hofmeyr2016-07-233-0/+22
| | | | Change-Id: Ie90c76d8aef42d5e2c9be94f4b206d4994e305f8
* dyn TS: add definitions for dynamic TCH/F_TCH/H_PDCHNeels Hofmeyr2016-07-234-0/+6
| | | | | | | | | | | Add: * GSM_PCHAN_TCH_F_TCH_H_PDCH * NM_CHANC_OSMO_TCHFull_TCHHalf_PDCH * RSL_CHAN_OSMO_PDCH * RSL_ACT_OSMO_PDCH Related: OS#1776 Change-Id: Ib1a8b11f37af4686d00ac88beba38557aa29edc2
* gsm_08_58.h: introduce RSL_CHAN_NR_1 constantNeels Hofmeyr2016-07-231-0/+1
| | | | | | | | | | | Using the RSL_CHAN_* constants, we sometimes need to add 1 to the chan bits to indicate e.g. the second TCH/H channel. RSL_CHAN_NR_1 marks this lowest channel bit that needs to be added. The name is analogous to RSL_CHAN_NR_MASK. Change-Id: Iea06432039d1cd23cc6b5acec308bb829b596d47
* fix compiler warning: gsup.c: missing bracesNeels Hofmeyr2016-07-171-1/+1
| | | | | | | osmo_auth_vector's first member is an array, so for a zero initializer, we should add a second set of array braces. Change-Id: Iace448caca8152e46244f26c3af250f2035c99eb
* bitvec: Force inlining of bitvec_set_bit_pos/bitvec_set_bitHolger Hans Peter Freyther2016-07-161-2/+2
| | | | | | | | | | | | | | The PCU is using bitvec_write_field a lot but on the arm-poky-linux-gnueabi-gcc v4.8.1 the calls to set_bit and set_bit_pos are not inlined. The inlined variant has been a more quick for the PCU compressed bitmap decompression testcase. Used objdump -d to look at the bitvec_write_field before and after the change. The branch to bitvec_set_bit is gone and a inlined version has been used. Change-Id: I0b6b90610f4c17f02e4efa064c3bf1ac2dccb22a
* Add function to check TA validityMax2016-07-161-0/+10
| | | | | | | | Check if given Timing Advance is valid according to 3GPP TS 44.018 § 10.5.2.40. Change-Id: I5cb6149d6e36fda8cb3f557e4d6d3a724da805a5 Related: OS#1545
* ussd: Decode interrogateSS that doesn't have testHolger Hans Peter Freyther2016-07-122-0/+13
| | | | | | | | | | | | Keith of Rhizomatica has an issue of a unrejected interrogateSS. Start with just decoding the message and printing the empty test and the code. What is kind of missing is the classification between invoke, returnResult and returnResultLast that we need to add in the long run. Change-Id: Iadfa156707a96f2a34f3948c7cc9a74435f17114
* Add EGPRS RLC/MAC headers from 3GPP TS 04.60Tom Tsou2016-07-122-0/+209
| | | | | | For shared use by osmo-pcu and osmo-bts-trx. Change-Id: I500cdc87cd30faf36c8cd92d234642f809c8f2aa
* Add GEA3 & GEA4 ciphersMax2016-07-1111-5/+225
| | | | | | | | | | | Corresponding test code include both official test vectors from the specs and data from over-the-air tests. This obsoletes libosmo-crypt-a53 as it was last missing piece unimplemented in libosmogsm. Change-Id: I939e4f6b91b4a7c591ef3761fe2d46ed1c2fb2d3 Related: OS#1582
* fsm: delete the timer when changing stateHarald Welte2016-07-101-0/+3
| | | | | | | In osmo_fsm_inst_state_chg(), we need to stop any not-yet-expired timer of the old state before transitioning into the new state. Change-Id: I2558f9a7027a877ea8263785ed3c8d70d2513996
* fsm: talloc + copy the 'id' passed into a FSMHarald Welte2016-07-101-1/+2
| | | | | | | | | | The 'id' is used to generate the human-readable name of the FSM. However, when the FSM creates slave FSMs later, the caller-passed "ID" mgiht long be gone again (e.g. it was on stack memory). So let's copy the 'id' string to a chunk of dynamically-allocated memory at time of FSM start to ensure we have it later when creating child FSMs. Change-Id: Ib88a2c02c5c91f17b4ec1e9db57a06d6d66465fb
* fsm: call 'onenter' as last step of a state changeHarald Welte2016-07-101-3/+4
| | | | | | | This is useful to allow the user to terinate the fsm from the onenter() callback. Change-Id: Ia45a1f3279e702028250e10dc54b2d46a4039905
* Add strings with GPRS GMM messagesMax2016-07-083-0/+26
| | | | | Change-Id: I48477b733e2da72f59349c00554dd3e080c9f445 Related: OS#1582
* Add function to check GMM encryptabilityMax2016-07-073-1/+28
| | | | | | | | Check if particular GMM message can be encrypted according to 3GPP TS 24.008 § 4.7.1.2 Related: OS#1582 Change-Id: I7ad0e03c2c738d174dd6bc3453f332eeb8da1e7d
* gitignore tests/fsm/fsm_testNeels Hofmeyr2016-07-071-0/+1
| | | | | | was added in 136e73764e7f58e52ffb13d01304fef30eb7d291 Change-Id: I0f344cc459626f71316f99341f79b5f0479ad82c
* Add missing osmo_c4 exportMax2016-07-071-0/+1
| | | | | Change-Id: Iaf53b31b4fa3860301054e970907ada061360b28 Related: OS#1741
* lapd_dl_flush_hist(): Don't flush a non-existant historyHarald Welte2016-07-031-0/+3
| | | | | | | | | | | If lapd_dl_flush_hist() is called after lapd_dl_exit(), dl->tx_hist has already been free'd and set to NULL. Check for this before attempting to de-reference a NULL pointer. This bug breaks OpenBSC with any E1 based BTSs using DAHDI. Change-Id: I117ba3445fa5e8097e21c11c5a6337de6ba46c7d Related: OS#1760
* Clarify GPRS algorithmMax2016-06-291-5/+6
| | | | | | | | Add spec reference and set explicit values for enum representing ciphering algorithm for GPRS encryption. Change-Id: Ia9ee429b73a37d52599fce70778cfe87b767411c Related: OS#1582
* Clarify GPRS ciphering directionMax2016-06-291-2/+3
| | | | | | | | Add spec reference and set explicit values for enum representing direction parameter for GPRS encryption. Change-Id: Iaf1b13da2e889d55cc9dd7516710104dba48c992 Related: OS#1582
* tests: test actual support status for auth. algoMax2016-06-294-4/+10
| | | | | | | Check if library actually support Milenage, COMP128 v2 and v3 algorithms instead of just printing enum values or nothing. Change-Id: I2b98481f56a8381058d4b29db5e8a36eb193eee9
* Add function to check MS GEA capabilitiesMax2016-06-293-1/+36
| | | | | | | | Add function which parses MS network capability IE value for bits indicating support for particular version of GEA. Change-Id: I785cef37dd272a2fab9b172f6e1392f865174e9a Relates: OS#1582
* Make C4 function globally availableMax2016-06-293-5/+5
| | | | | | | | | This function perform 64 -> 128 bit key expansion which useful for converting between UMTS CK and GSM Kc, A5/3 and A5/4, GEA3 and GEA4 keys. Change-Id: I5a6c6deef6027cd6af144c9062d4c9166be26904 Related: OS#1582
* Add strings for GPRS ciphersMax2016-06-293-0/+13
| | | | | Change-Id: I050bda5fb50aad42fe2d72de39f8256b4fb12fb2 Related: OS#1582
* gitignore: *-libtool for differing platformsNeels Hofmeyr2016-06-281-0/+3
| | | | Change-Id: Ia8c011b53d4256305e70f78372a4aa0019b1131b
* Mark input parameter to bitvec_set_bits() as 'const'Harald Welte2016-06-272-2/+2
| | | | | | | The input data is accessed in a read-only manner, so it should be marked with the const qualifier. Change-Id: I0d6b86289fa647594f3da1f1c0e0168685307a37
* fsm: Introduce default time-out handlingHarald Welte2016-06-272-9/+16
| | | | | | | | | | | If a FSM doesn't specify any timer_cb, simply terminate the FSM by default on time-out. This is a reasonable default for most cases, and avoids copy+pasting a one-line timer_cb function in every FSM. Also, even if there is a timer_cb, let it have a return value to decide if the core should terminate after return from timer_cb or not. Change-Id: I0461a9593bfb729c82b7d1d1cf9f30b1079d0212
* Fix potential segfault in msg_dequeueMax2016-06-231-3/+6
| | | | Change-Id: I06e9c5ba3e00c73a4e52d2583ce3492f236275ce
* Add octet-aligned/unaligned shift functionsMax2016-06-204-0/+183
| | | | | | | | | The actual code is from OsmoBTS' tch.c by Harald Welte. Add unit tests, doxygen annotation and extra memory safety check. Those functions are used in several BTS implementations but seems generic enough to be generally useful. Change-Id: I2b1901c4161e8035f059585901dca593b661556d
* Add Finite State Machine abstraction codeHarald Welte2016-06-169-3/+738
| | | | | | | | | | This code is supposed to formalize some of the state machine handling in Osmocom code. Change-Id: I0b0965a912598c1f6b84042a99fea9d522642466 Reviewed-on: https://gerrit.osmocom.org/163 Tested-by: Jenkins Builder Reviewed-by: Harald Welte <laforge@gnumonks.org>
* Add UMTS AKA related MM/GMM message type and IE definitionsHarald Welte2016-06-163-1/+22
| | | | | | | Change-Id: Id45ea2c631ee589a4df1f8213da6f7e7d1bf6616 Reviewed-on: https://gerrit.osmocom.org/305 Reviewed-by: Harald Welte <laforge@gnumonks.org> Tested-by: Jenkins Builder
* Add structures defining decoded TS 23.003 identitiesHarald Welte2016-06-162-0/+81
| | | | | | | Change-Id: I6423f8d75bb3e7aeca285854ab3232a087d62b57 Reviewed-on: https://gerrit.osmocom.org/304 Reviewed-by: Harald Welte <laforge@gnumonks.org> Tested-by: Jenkins Builder
* gsup: Add OSMO_GSUP_MSGT_AUTH_FAIL_REPORTHarald Welte2016-06-161-0/+2
| | | | | | | | | The VLR must be able to notify the HLR of authentication failures. Change-Id: I156cff76e092b3548b05534141b61887ee6be3f3 Reviewed-on: https://gerrit.osmocom.org/303 Reviewed-by: Harald Welte <laforge@gnumonks.org> Tested-by: Jenkins Builder
* gsup.c: Fix encoding of UMTS auth vectorsHarald Welte2016-06-161-6/+22
| | | | | | | | | | Encoding auth vectors worked fine for GSM authentication, but didn't yet include the new IEs for UMTS authentication yet. Change-Id: I7fa5ba1c950292bd0a9874b3102a27f221ce390d Reviewed-on: https://gerrit.osmocom.org/302 Reviewed-by: Harald Welte <laforge@gnumonks.org> Tested-by: Jenkins Builder
* vty: Fix documentation of 'show asciidoc counters' VTY commandHarald Welte2016-06-151-1/+1
| | | | | | | | | | VTY documentations strings follow a certain structure, and we need to follow that to make the interactive help work. Change-Id: I0bb0bda68dbbf9995338ec555ff99d73a223162c Reviewed-on: https://gerrit.osmocom.org/276 Reviewed-by: Harald Welte <laforge@gnumonks.org> Tested-by: Harald Welte <laforge@gnumonks.org>
* Fix retrieving rate_ctr over control interfaceMax2016-06-141-13/+7
| | | | | | | | | | | | Allow getting either particular counter (e. g. rate_ctr.per_hour.e1inp.0.hdlc.abort) or entire rate counter group for a given index (e. g. rate_ctr.per_hour.e1inp.0). Change-Id: I2b0109536170f7b5388d3236df30b98f457aa98d Fixes: OS#1730 Reviewed-on: https://gerrit.osmocom.org/274 Tested-by: Jenkins Builder Reviewed-by: Harald Welte <laforge@gnumonks.org>
* add vty call show asciidoc: generate a documentation for countersAlexander Couzens2016-06-143-0/+197
| | | | | | | | | | | For each counter group a ascii doc table is generated containing all single counter with a reference to a section to add additional information to the counter Change-Id: Ia8af883167e5ee631059299b107ea83c8bbffdfb Reviewed-on: https://gerrit.osmocom.org/70 Reviewed-by: Harald Welte <laforge@gnumonks.org> Tested-by: Harald Welte <laforge@gnumonks.org>
* add rsl_or_ipac_msg_name() for both standard and ip.access msg typesNeels Hofmeyr2016-06-133-0/+13
| | | | | | | | | | | Context: in osmo-bts, I want to look up an RSL message name in rsl_msgt_names and fall back to rsl_ipac_msgt_names if not found, because the IPAC PDCH ACT and DEACT messages are sent in a standard ABIS_RSL_MDISC_DED_CHAN. Change-Id: Ic9ba721a1469cf51aed97ab0f44a7fe055c94b1f Reviewed-on: https://gerrit.osmocom.org/231 Reviewed-by: Harald Welte <laforge@gnumonks.org> Tested-by: Jenkins Builder
* add get_value_string_or_null() to handle unknown itemsNeels Hofmeyr2016-06-132-3/+20
| | | | | | | | | | | | | | | | | Add get_value_string_or_null() to return NULL in case the given value is not found in the list of strings, to be able to cleanly fall back to another list of strings. Absorb the lookup loop from get_value_string(). Context: in osmo-bts, I want to look up an RSL message name in rsl_msgt_names and fall back to rsl_ipac_msgt_names if not found, because the IPAC PDCH ACT and DEACT messages are sent in a standard ABIS_RSL_MDISC_DED_CHAN. In a subsequent commit, get_value_string_or_null() will be used by new rsl_or_ipac_msg_name(). Change-Id: I1fa3907e28d528d2758bc3eae9d19e6c1168f5e5 Reviewed-on: https://gerrit.osmocom.org/230 Reviewed-by: Harald Welte <laforge@gnumonks.org> Tested-by: Jenkins Builder
* api doc: get_value_string(): mention composition in static bufferNeels Hofmeyr2016-06-131-0/+4
| | | | | | | Change-Id: I93dad98711ef69f8a1e196efa029a842a1ff5bd6 Reviewed-on: https://gerrit.osmocom.org/229 Reviewed-by: Harald Welte <laforge@gnumonks.org> Tested-by: Jenkins Builder
* gitignore: add gsup_test, tlv_testNeels Hofmeyr2016-06-071-0/+2
| | | | | | | Change-Id: Ied1cbc7a48bdbc3696e9d8657285071c377d6de5 Reviewed-on: https://gerrit.osmocom.org/207 Tested-by: Jenkins Builder Reviewed-by: Holger Freyther <holger@freyther.de>
* 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
* Add functions to detect HR/FR SID framesMax2016-06-015-0/+108
| | | | | | | | | | | 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>
* 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-318-4/+245
| | | | | | | | | | | | | | | | | | | * 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-303-0/+16
| | | | | | | | | | 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>