summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* gsm: Add Kasumi cipher implementationSylvain Munaut2014-06-169-4/+397
| | | | | Submitted-by: Max <max.suraev@fairwaves.co> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* bits: Add left circular shift functionMax2014-06-161-0/+10
| | | | | Submitted-by: Max <max.suraev@fairwaves.co> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* Add missing entry in .gitignore for utils_testMax2014-06-161-0/+1
| | | | | Submitted-by: Max <max.suraev@fairwaves.co> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* core: Add generic LE/BE load/store uint type convertors and use them in msgbMax2014-06-167-12/+377
| | | | | Submitted-by: Max <max.suraev@fairwaves.co> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* include: Switch to #pragma once patternSylvain Munaut2014-06-1688-351/+88
| | | | Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* gsmtap: add LTE defines to GSMTAP v2Max2014-06-151-1/+10
| | | | | Submitted-by: Max <max.suraev@fairwaves.co> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* build: Add .version to EXTRA_DISTSylvain Munaut2014-06-151-1/+1
| | | | | | | | | This is required to make distcheck work and apparently that's the "good way" to do it. See http://comments.gmane.org/gmane.comp.lib.gnulib.bugs/27780 Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* gsm0411_smr: Fix the size of the arrayHolger Hans Peter Freyther2014-05-231-1/+1
| | | | | | | The code is lacking a "," at the end of a string and we ended up doing string concatination instead of having an invalid state. Fixes Coverity CID 1206564
* gsm0411_smr: Make the look-up table staticHolger Hans Peter Freyther2014-05-231-1/+1
|
* timer: Use the now parameter when it is not NULLHolger Hans Peter Freyther2014-05-231-3/+3
| | | | | | | | The code would have used an uninitialized current_time in case "now" was not NULL. As now is const and timersub expects a non const parameter I decided to copy now into current_time. Fixes: CID #1040661
* abis_nm: Add the abis_nm_osmo_att_tlvdef to the abis headerÁlvaro Neira Ayuso2014-05-201-0/+1
| | | | | | | Avoid compiler warnings and declare the presence of the new tlv_description. Signed-off-by: Alvaro Neira Ayuso <anayuso@sysmocom.de>
* Fix introducing osmocom speficic OML attributesHarald Welte2014-05-193-1/+11
| | | | | | | | | | | | | | | | | | | Rename NM_ATT_O_REDUCEPOWER to NM_ATT_OSMO_REDUCEPOWER, which makes it more clear that this is an osmcoom specific attribute. Also, we cannot simply overload 0x01 as an already defined OML attribute. The problem is quite simple: When we use abis_nm_att_tlvdef during the TLV parse, 0x01 will match to NM_ATT_ABIS_CHANNEL, which is defined as { TLV_TYPE_FIXED, 3 }. So instead, we need to introduce a new abis_nm_osmo_att_tlvdef[], which has to be patched into abis_nm_att_tlvdef[] by the means of tlv_def_patch(), exactly how we do it for bs-11 and nanobts specific attributes. I'm using 0xfe for the attribute, as 0xfe doesn't overlap with the IPA specific attribues (and we might want to combine/merge the 12.21 plus IPA plus osmocom spefici attributes)
* protocol/gsm_12_21.h: Add the Manufacturer Attribute ID O_REDUCEPOWER.Álvaro Neira Ayuso2014-05-151-0/+2
| | | | Signed-off-by: Alvaro Neira Ayuso <anayuso@sysmocom.de>
* select: Fix english in commentHolger Hans Peter Freyther2014-05-151-1/+1
|
* backtrace: Speculative fix for FreeBSD10.0 and execinfo.hHolger Hans Peter Freyther2014-04-172-1/+5
| | | | | | | FreeBSD 10.0 ships an execinfo.h but one needs to link to an additional library for the backtrace functions. Check if there is a backtrace symbol in libexecinfo and if so link to that library.
* Release: Prepare the release of 0.6.6Holger Hans Peter Freyther2014-03-315-5/+10
|
* src/socket: Adding unix domain socket supportÁlvaro Neira Ayuso2014-03-262-0/+108
| | | | | | Added some function for adding the unix domain socket support. Signed-off-by: Alvaro Neira Ayuso <anayuso@sysmocom.de>
* sms: Add missing brackets in the relative validity time calculation.Alexander Chemeris2014-03-261-3/+3
|
* Merge remote-tracking branch 'daniel/lapdm-desync'Holger Hans Peter Freyther2014-03-268-12/+300
|\ | | | | | | | | | | | | This should fix long delays when sending a long SMS on an encrypted channel. It is the most minimal change to the polling mode. One option we discussed internally is to queue a higher level representation and generate the actual LAPDm frames later.
| * gsm/lapdm: Prevent LAPD tx_queue from filling up in polling modeDaniel Willmann2014-03-266-17/+39
| | | | | | | | | | | | | | If LAPDm receives an I-Frame while there already is an I-Frame in the tx_queue the code generates an additional RR (to acknowledge the received I-Frame). Instead, N(R) of the I-Frame in the tx_queue should be updated to ACK the data.
| * tests/lapd: Add a testcase to check for LAPDm sync issuesDaniel Willmann2014-03-262-9/+272
| | | | | | | | Regression test for LAPDm recording the current state
| * lapdm: Make lapdm_datalink_for_sapi publicDaniel Willmann2014-03-263-3/+6
|/ | | | | This API allows you to get the lapdm_datalink for a SAPI. It's needed in the lapdm_test, so make it public.
* sms_test: Do not crash on logging.Alexander Chemeris2014-03-201-0/+8
|
* lapd: Improve log message and mention the SAPI the dl is onHolger Hans Peter Freyther2014-03-161-2/+2
| | | | | | | When debugging an issue that involves SAPI=0 and SAPI=3 the log file does not have enough context. Add the SAPI to this message so we at least understand which SAPI we are talking about.
* sms: Fix typo in a macros name: GSM340_SMS_RESSERVED -> GSM340_SMS_RESERVED.Alexander Chemeris2014-03-121-1/+1
|
* Merge branch 'jerlbeck/fixes/ladp-sms'Holger Hans Peter Freyther2014-03-105-59/+165
|\
| * ladpm: Fix msgb handling and SAPI=3 establishment delayJacob Erlbeck2014-03-103-31/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently it takes 3s to establish a SAPI 3 SACCH connection with osmo-bts. This is due to the fact, that a broken SABME request is sent first and and is ignored by the MS. Then, after a T200 timeout (2s) the SABME command is sent again (this time correctly) and answered by the MS. The first SABME message is broken (it has a length field of 3 and ends with 3 bytes from the tail of the original RSL message), because of it is expected throughout lapdm.c that msg buffers containing RSL have msg->l2h == msg->data. Some abis input drivers fulfill this but IPA doesn't, thus the 3 bytes of the IPA header are still part of the msg and confuse length computation. Since internal fields of the msg are modified directly, this is difficult to see. This patch adds a new function msgb_pull_to_l3() that explicitely skips over all headers prepending L3 and therefore resets l1h and l2h. This function is then used instead of msgb_pull_l2h() which only worked correctly when msg->l2h == msg->data. In addition, code manipulating msg->tail and msg->len directly has been replaced by calls to msgb_trim(). Note that this patch does not fix all issues of this case in the LADP related code. Ticket: SYS#192 Sponsored-by: On-Waves ehf
| * lapd/test: Check for empty ACCH queue, tooJacob Erlbeck2014-03-041-0/+2
| | | | | | | | | | | | | | This just adds a single test to verify that the ACCH queue is actually empty. Sponsored-by: On-Waves ehf
| * lapd/test: Extend test case to test msgs having data before l2hJacob Erlbeck2014-03-042-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since e.g. the IPA input driver leaves it's specific header in front of msg->l2h, so that msg->l2h != msg->data. The lapdm code does not expect this at least in rslms_rx_rll_est_req(). This patch modifies the test program to add a dummy L1 header to generated messages (unless the test would abort when doing so). Note that the ok file reflects the current state which is not correct. Sponsored-by: On-Waves ehf
| * lapd/test: Show dequeued messagesJacob Erlbeck2014-03-042-32/+72
| | | | | | | | | | | | This adds and uses a wrapper for lapdm_phsap_dequeue_prim() that prints information about the message that has been taken from the queue.
| * msgb: Add msgb_hexdump() functionJacob Erlbeck2014-03-042-0/+50
|/ | | | | | | | | | | | This function works like osmo_hexdump() and returns a static buffer containing hex bytes along with markers for the layers. Note that it uses osmo_hexdump() internally, thus a call to msgb_hexdump() invalidates the buffer that has been returned by an earlier call to osmo_hexdump(). In short: don't mix them in a single call printf(). Sponsored-by: On-Waves ehf
* lapd: Use the right struct for the talloc_zero_array callHolger Hans Peter Freyther2014-02-091-2/+2
| | | | | | I saw this while playing with talloc pools and wondered why lapd_core is creating a log_info. Use the right struct for the array.
* sms: The msg_ref is passed from the outside so remove the wrong fixmeHolger Hans Peter Freyther2014-02-081-1/+1
|
* lapd/test: Add test case for RSL EST REQ -> LAPDJacob Erlbeck2014-01-262-15/+112
| | | | | | | | | This test case processes RSL establish requests for SMS (SAPI 3) on the SDCCH and the SACCH channels. The TX queues are checked after processing each message. Ticket: SYS#192 Sponsored-by: On-Waves ehf
* lapdm: Fix typo in the commentHolger Hans Peter Freyther2014-01-231-1/+1
|
* debian: Build the new upstream version of libosmocoreHolger Hans Peter Freyther2014-01-201-1/+7
|
* gsm/gsm48ie: Fix range 256 W[i] decodingJacob Erlbeck2014-01-131-4/+4
| | | | | | | | | Currently w[14]/w[15] and w[18]/w[19] are swapped in range 256 format decoding in gsm48_decode_freq_list(). This patch fixes this. Sponsored-by: On-Waves ehf
* sms: Fix gsm_7bit legacy functions return valueJacob Erlbeck2014-01-094-6/+44
| | | | | | | | | | | | | | The legacy 7bit conversion functions (those without the '_n_' in the name) gave wrong return values on 64 bit platforms due to unproper signed/unsigned conversions and the usage of SIZE_MAX. This patch fixes this by using a smaller max size (see GSM_7BIT_LEGACY_MAX_BUFFER_SIZE, currently set to 64k) for the legacy wrappers and by using unsigned int for max_septets. In addition, there are tests now that check the return values of legacy encoding and decoding. Sponsored-by: On-Waves ehf
* abis: Use the right return value for abis_nm_pchan4chcombHolger Hans Peter Freyther2014-01-022-2/+2
| | | | | | | | | abis_nm_pchan4chcomb will return a pchan for a given channel combination but returned a value of the channel combination. Fix it to return the physical channel combination. Fixes: Coverity CID 1040767
* utils: Greatly improve performance of osmo_hexdump routinesNils O. Selåsdal2014-01-022-6/+14
| | | | | | | | | | | | | | | | | | | | | | | | In the osmo-bts and libosmo-abis code the hexdump routine is used for every incoming/outgoing packet (including voice frames) and the usage of snprintf showed up inside profiles. There is a semantic change when more than 4096 characters are used. The code will now truncate at byte boundaries (and not nibbles). Code: static const int lengths[] = { 23, 1000, 52 }; char buf[4096]; int i; for (i = 0; i < 30000; ++i) char *res = osmo_hexdump(buf, lengths[i & 3]); Results: before: after: real 0m3.233s real 0m0.085s user 0m3.212s user 0m0.084s sys 0m0.000s sys 0m0.000s
* utils: Add a simple testcase for osmo_hexdumpHolger Hans Peter Freyther2014-01-024-2/+64
| | | | This code makes a simple dump and tests for the corner case
* logging: Copy the filter_fn and fix the IMSI filter in OpenBSCHolger Hans Peter Freyther2013-12-292-0/+18
| | | | | | | The filter_fn has not been copied into the new structure breaking the imsi and other filters in OpenBSC. Looking at the code we should also introduce a callback for the reset of the context so we could use subscr_get/subscr_put on the subscriber structure.
* debian: Enable hardening options for debianHolger Hans Peter Freyther2013-12-121-0/+2
|
* Refactor COMP128v23 implementation and add test suitMax2013-12-078-42/+4216
|
* gb: Remove comment about ABI changes from the MakefileHolger Hans Peter Freyther2013-11-221-3/+0
| | | | | | Okay. this comment thing has not worked (I totally forgot about it). I think either we try to find ABI breakages with tools or we use #error macros and check for a version...
* debian: Update the changelogJacob Erlbeck2013-11-111-1/+7
| | | | Sponsored-by: On-Waves ehf
* gprs: Fix VTY NSVC initialisation bug by changing gprs_nsvc_create()Jacob Erlbeck2013-11-111-3/+3
| | | | | | | | | | | | | | | | Currently the field nsvci_is_valid is set to 0 in the NSVC object returned by gprs_nsvc_create(). This was a semantic change probably introduced by commit 5e6d679d. As a result, NSVC created via the VTY have this flag set to 0 causing RESET_ACK messages to be rejected. This patch changes the default behaviour of gprs_nsvc_create() to always set this flag. So it must be set to 0 explicitely if needed which is more intuitive and thus less error prone. It fixes breaking connections from the Gbproxy to the SGSN. Ticket: OW#874 Sponsored-by: On-Waves ehf
* implement COMP128 version 2 and 3 A3/A8 algorithmKevin Redon2013-11-035-5/+264
| | | | simple copy into C from reversed code from www.hackingprojects.net
* gprs: Ignore NS RESET_ACK and ALIVE_ACK without RESETJacob Erlbeck2013-10-302-6/+17
| | | | | | | | | | | Currently those messages are answered by a NS_STATUS message when received on an uninitialised (no NS_RESET hat been seen yet) NS_VC which violates GPP TS 08.16 7.3.1 and 7.4.1. This patch adds checks to gprs_ns_vc_create() and eventually returns before the error NS_STATUS message is generated. Sponsored-by: On-Waves ehf
* grps: Add test for NS messages that shall be ignoredJacob Erlbeck2013-10-302-0/+55
| | | | | | | | | | Several messages shall not be answered when a RESET hasn't been received on a NS-VC: - NS_RESET_ACK (see 3GPP TS 08.16, 7.3.1) - NS_ALIVE_ACK (see 3GPP TS 08.16, 7.4.1) - NS_STATUS (see 3GPP TS 08.16, 7.5.1) Sponsored-by: On-Waves ehf