summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Fix copyright header in gan.cHarald Welte2014-09-111-4/+4
| | | | | When I wrote the gan.c, I used the wrong copyright/license header (AGPLv3+ intead of GPLv2+). This was a mistake and is fixed hereby.
* add missing copyright statements to source code filesHarald Welte2014-09-115-0/+106
| | | | | | Some source code files didn't have the usual copyright and licence statement at their top. I'm adding them baesed on information in the commitlog.
* logging: Add ability to save/print current log filtersHarald Welte2014-08-252-3/+7
| | | | | | This enables the persistent configuration of let's say 'log filter imsi 012345678' for a given log file in the config file.
* libctrl: Add support for 'deferred control commands'Harald Welte2014-08-242-0/+77
| | | | | | | | | | | | | | Sometimes a control interface command cannot be processed and responded immediately, but we need to process it asynchronously. In order to support this, we introduce the 'ctrl_cmd_def', which represents such a deferred command. It is created by the service implementing the command using ctrl_cmd_def_make(), and a response is later sent using ctrl_cmd_def_send(). ctrl_cmd_def_is_zombie() must be called to handle the case where the control connection has disconnected/died between receiving the command and sending the response.
* ctrl: Attempt fix the build on FreeBSD and add include fileHolger Hans Peter Freyther2014-08-211-0/+1
| | | | | IPPROTO_TCP is defined in netinet/in.h. Include it and hope the build is fixed for FreeBSD.
* prepare for 0.7.0 releaseHarald Welte2014-08-213-3/+3
|
* rename controlif_setup() to ctrl_interface_setup()Harald Welte2014-08-211-2/+2
| | | | | which means that all control interface related functions now have the common ctrl_ prefix.
* libctrl: Make two internal helper functions staticHarald Welte2014-08-211-2/+2
|
* libctrl: Move bulk of control node lookup inti libosmoctrlHarald Welte2014-08-211-3/+127
| | | | | | The control interface user now only has to register a very short node lookup function callback. This function is optional, and only required if hierarchical command lookup should be supported.
* libctrl: remove 'struct gsm_network' referencesHarald Welte2014-08-211-4/+4
| | | | | libctrl doesn't need any knowledge about the type of the user-private data that it gets passed upon setup time and includes on callbacks.
* libctrl: adopt to recent ipaccess/ipa naming changeHarald Welte2014-08-211-2/+3
|
* libctrl: autotools build system integrationHarald Welte2014-08-211-5/+10
| | | | Now we actually build the recently-imported libctrl
* libctrl: Add DLCTRL as logging context for the control interfaceHarald Welte2014-08-213-28/+33
| | | | ... and make libctrl code use it
* libctrl: Avoid using external tall_bsc_ctxHarald Welte2014-08-211-6/+6
| | | | | | Instead of using one flat talloc context (and one that is specific to openbsc), we should attach the objects to whatever parent context they are being used in.
* libctrl: remove openbsc headers, convert from make_sock to libosmocoreHarald Welte2014-08-212-19/+9
|
* libctrl: Remove reference to 'DNAT' in favor of 'DCTRL'Harald Welte2014-08-211-1/+1
|
* libctr: rename/move control interface to libosmocore naming schemeHarald Welte2014-08-213-0/+1071
|
* gsm0808: Fix copy and paste pointed out by clangHolger Hans Peter Freyther2014-08-211-1/+1
| | | | | | | | | | | | | | | The element following the identifier list was the GSM0808_IE_LSA_INFORMATION. It is a TLV type as well and the issue got introduced in 92107dfd3b99ab0dbb0f4770286454ad94a36de2. Fixes: gsm0808.c:316:40: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] [GSM0808_IE_LSA_IDENTIFIER_LIST] = { TLV_TYPE_TLV }, ^~~~~~~~~~~~ gsm0808.c:315:40: note: previous initialization is here [GSM0808_IE_LSA_IDENTIFIER_LIST] = { TLV_TYPE_TLV },
* macaddr: Add some code for FreeBSD (it should work on the others too)Holger Hans Peter Freyther2014-08-211-0/+41
| | | | | | | | There doesn't seem to be a way to share this code with Linux as it doesn't have the sockaddr_dl concept inside the getifaddrs. I manually verified this on a FreeBSD10 box and hex decoding gave me the correct mac address and rc was 0.
* ipa: use %z as format string whne printing sizeof() resultHarald Welte2014-08-211-1/+1
| | | | thanks to Holger for reminding me
* ipa: fix compiler warning regarding printf (%d -> %lu)Harald Welte2014-08-211-1/+1
|
* macaddr: add #include unistd.h for close() functionHarald Welte2014-08-211-0/+1
| | | | this fixes a compile warning
* ipa: rename functions for consistencyHarald Welte2014-08-203-24/+39
| | | | | | | | As we are breaking builds by moving functions from libosmo-abis to libosmocore anyway, we might as well give functions more appropriate names. ipaccess is a company, while IPA is the multiplex protocol, and CCM is the protocol used for establishing identities on the IPA multiplex.
* import various generic IPA related functions from libosmo-abisHarald Welte2014-08-202-1/+448
| | | | | | | | | libosmo-abis is about forming A-bis interfaces/lines by means of E1 or the IPA multiplex (or possibly other link layers). The IPA multiplex is used in other contexts, such as the Control interface, or the A interface. In that context, it makes sense to have generic IPA related functions in libosmocore.
* Add osmo_get_macaddr() function to obtain etherent mac addressHarald Welte2014-08-181-0/+26
| | | | | This used to be private in osmo-bts/common/abis.c, where it really didn't belong.
* osmocore: Add function osmo_macaddr_parse() to parse ETH MAC addressHarald Welte2014-08-182-1/+27
|
* abis_nm: add abis_nm_msg_disc_names[] value_stringHarald Welte2014-08-172-0/+10
|
* abis_nm: introduce abis_nm_{osmo,ipa}_magic[]Harald Welte2014-08-172-0/+5
| | | | ... used to be oml_{osmo,ipa}_magic in osmo-bts
* gprs-ns: Re-initialize the list head and free the unknown_nsvcHolger Hans Peter Freyther2014-07-071-0/+3
| | | | | | | | | | | | | | | | | Fix re-initialize issue of the GPRS NS. This was found while working on the GB Proxy tests. ==27800== Invalid write of size 4 ==27800== at 0x403C263: rate_ctr_group_alloc (linuxlist.h:65) ==27800== by 0x4050974: gprs_nsvc_create (gprs_ns.c:209) ==27800== by 0x405320D: gprs_ns_instantiate (gprs_ns.c:1330) ==27800== by 0x804B212: main (gbproxy_test.c:797) ==27800== Address 0x434173c is 52 bytes inside a block of size 784 free'd ==27800== at 0x4029DA8: free (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==27800== by 0x4041BBD: _talloc_free (talloc.c:609) ==27800== by 0x40432B2: talloc_free (talloc.c:578) ==27800== by 0x40532D3: gprs_ns_destroy (gprs_ns.c:1363) ==27800== by 0x804B1FE: main (gbproxy_test.c:791)
* write_queue: Use EBADF instead of EBABDFD for portabilityHolger Hans Peter Freyther2014-07-013-5/+5
| | | | | EBADFD is linux specific while EBADF is POSIX. Fix the build on FreeBSD and use EBADF throughout the file.
* vty: Avoid use-after-free in VTY telnet interfaceDaniel Willmann2014-06-222-4/+4
| | | | | | If the read callback closes the connection conn is already freed so we can't derefernce it. Instead return -EBADFD in the read function if it closed the connection and check for that.
* write_queue: Avoid possible use-after-free if fd is read-/writableDaniel Willmann2014-06-221-5/+18
| | | | | | | | | If the FD is both readable and writable and the read callback closes the connection (and frees the surrounding structure) we shouldn't call the write callback (or check anything else in the read fd). With this patch callback functions can return -EBADFD if they don't want the FD to be handled any more.
* update TS 08.08 header + TLV definitions to TS 48.008 / 11.7.0Harald Welte2014-06-211-16/+149
| | | | | | | | | | This adds support for A-over-IP and LCLS related message/IEI definitions. Old definitions are in decimal, which is very hard (at least for me) to compare with the binary tables in the spec. Hex is much easier to manually compare for completeness/correctness. I didn't touch the existing definitions, but think they should move to hex, too.
* gsm: Add Kasumi cipher implementationSylvain Munaut2014-06-162-1/+187
| | | | | Submitted-by: Max <max.suraev@fairwaves.co> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* include: Switch to #pragma once patternSylvain Munaut2014-06-164-16/+4
| | | | 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
* Fix introducing osmocom speficic OML attributesHarald Welte2014-05-192-0/+8
| | | | | | | | | | | | | | | | | | | 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)
* 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-171-1/+2
| | | | | | | 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-311-1/+1
|
* src/socket: Adding unix domain socket supportÁlvaro Neira Ayuso2014-03-261-0/+102
| | | | | | 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
|
* gsm/lapdm: Prevent LAPD tx_queue from filling up in polling modeDaniel Willmann2014-03-262-0/+27
| | | | | | | 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.
* lapdm: Make lapdm_datalink_for_sapi publicDaniel Willmann2014-03-262-3/+4
| | | | | This API allows you to get the lapdm_datalink for a SAPI. It's needed in the lapdm_test, so make it public.
* 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.
* ladpm: Fix msgb handling and SAPI=3 establishment delayJacob Erlbeck2014-03-101-27/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* msgb: Add msgb_hexdump() functionJacob Erlbeck2014-03-041-0/+49
| | | | | | | | | | | | 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.