aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* release 0.8.0-fw.1fairwaves/0.8.0-fw.1fairwaves/productionKirill Zakharenko2020-05-011-0/+6
|
* configure.ac: fix libtool issue with clang and sanitizerEric2020-04-111-0/+5
| | | | | | | | | | | | | | | | | | | | | | As pointed out at https://github.com/libexpat/libexpat/issues/312 libtool does not play nice with clang sanitizer builds at all. For those builds LD shoud be set to clang too (and LDFLAGS needs the sanitizer flags as well), because the clang compiler driver knows how linking to the sanitizer libs works, but then at a later stage libtool fails to actually produce the shared libraries and the build fails. This is fixed by this patch. Addtionally LD_LIBRARY_PATH has no effect on conftest runs during configure time, so the rpath needs to be set to the asan library path to ensure the configure run does not fail due to a missing asan library, i.e.: SANS='-fsanitize=memory -fsanitize-recover=all -shared-libsan' export CC=clang-10 ASANPATH=$(dirname `$CC -print-file-name=libclang_rt.asan-x86_64.so`) export LDFLAGS="-Wl,-rpath,$ASANPATH $SANS $LDFLAGS" Change-Id: Ia3644168bfea13bda5e09b8bfe1d2c65abd32ad7
* ortp: disable SO_REUSEADDR + SO_REUSEPORTHarald Welte2020-03-093-2/+8
| | | | | | | | | | | | | | | | | ortp >= 0.24.0 doesn't differentiate between SO_REUSEADDR and SO_REUSEPORT, and has both enabled by default. The latter means that we can end up with non-unique port bindings as we will not fail to bind the same port twice. This should have caused visible problems not only when operating multiple osmo-bts on one machine (rare), but also with a single osmo-bts. Once the range (default 16384-17407 ) wraps, there is a risk of new sockets (for new cals) colliding with old ones. As two ports (RTP+RTCP) are used per call, this means every 512 voice calls we expect the BTS to wrap. And from that point onwards there's a risk of overlapping with previously allocated sockets. Change-Id: I4fc9eee561c7958c70c63b4ffdc6cb700b795e28 Closes: OS#4444
* Add rtp_test to show the double-bind bug of OS#4444Harald Welte2020-03-094-2/+109
| | | | Change-Id: I6742e5504cfb827031031e4d8d49a616ab203a94
* osmo_ortp: add osmo_rtp_socket_set_dscp()Oliver Smith2020-03-073-0/+12
| | | | | Related: OS#4438 Change-Id: I41603db8c1286660ad57ac1c78a8fb393a2b080b
* add ipa ping/pong keepalive for OML/RSL links between bts and bscEric Wild2020-01-244-22/+204
| | | | | | | Patch-by: ewild, osmith Related: OS#4070 Change-Id: I30e3bd601e55355aaf738ee2f2c44c1ec2c46c6a Depends: (libosmo-abis) Ie453fdee8bfd7fc1a3f1ed67ef0331f0abb1d59b
* ipaccess.c: line_already_initialized: int -> boolOliver Smith2020-01-221-2/+2
| | | | Change-Id: I1cff638664029ef1a592b98cd499e1d8b703ada1
* e1d: Implement varions non-LAPD timeslot modesHarald Welte2020-01-121-1/+61
| | | | | | | | So far, the e1d input driver only contained code for LAPD signaling slots, let's extend it with support for all the other slot types, as well as support for run-time re-configuration. Change-Id: I53369004145681bf9178543fe407dfc75e4ae63a
* e1d: Don't connect to e1d at program start timeHarald Welte2020-01-121-7/+8
| | | | | | | | | Let's not print an error at program/library start time if osmo-e1d cannot be reached. This error is confusing to everyone who may have a libosmo-abis with e1d support compiled in, but who is not (currently) using any lines via this driver, but others drivers. Change-Id: If0d033f8a2ab4f0e72549a811ffccc66b91fb0a8
* e1d: Use LOGPIL/LOGPITS logging macros to give contextHarald Welte2020-01-121-13/+9
| | | | Change-Id: I88ba83783ae1d8368990ec30cdc7ecff88884e41
* e1d: Use line->port_nr to specify e1d interface/lineHarald Welte2020-01-121-3/+11
| | | | | | | | | This way we can support more than one E1 line via osmo-e1d. As neither mISDN nor DAHDI distinguish between mutliple cards of single ports vs. multi-port cards, we havee to map both interface + line number into a single uint8_t. Change-Id: I3b6975624a0155a68d2c67bfdbc1fb751fb50b13
* e1d: Remove bogus vty_show function.Harald Welte2020-01-121-9/+0
| | | | | | | It's optional for an input driver to provide this function, and e.g. mISDN doesn't provide it, either. Change-Id: I56ed4244121f2019ece80d15bd07d5a8ce958273
* e1d: Remove EXCEPTFD handlingHarald Welte2020-01-121-3/+1
| | | | | | | | The file decscriptor 'except' handling was only added in the DAHDI input module as the DAHDI kernel side is actually using those. I don't think we can even use this in any way over unix domain sockets. Change-Id: I718629179181a1de3b82e23447549f593046d91f
* e1d: Don't use perror() directly, use osmocom logging insteadHarald Welte2020-01-121-2/+2
| | | | Change-Id: I98f337f8f517b98f9b78dc173e5761687609abd8
* e1d: add missing forward-declaration of e1inp_e1d_init()Harald Welte2020-01-121-0/+1
| | | | Change-Id: I0060e2c9772eb5c0293712cb0da7cc0477eb8abd
* e1d: Use HAVE_E1D in C source, not ENABLE_E1DHarald Welte2020-01-121-1/+1
| | | | | | The config.h files contains HAVE_E1D. Change-Id: Ib7d2db6703300b7d537c78ad9285948673d8b1d3
* e1d: Initial osmo-e1d supportSylvain Munaut2020-01-126-3/+312
| | | | | | | | | | | | | osmo-e1d is part of the Osmocom 'software defined E1 interface, which consists of a USB device for the actual E1 hardware interfacing, and a daemon (osmo-e1d) implementing a libusb-based driver. This commit adds initial support for talking to osmo-e1d using the related libosmoe1d library. You need to use '--enable-e1d' at configure time to enable it. Change-Id: Ia0431c124e3b5b4108aee7b109d8c4bb0d8b45d4 Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* introduce and use logging macros with context on E1 line / timeslotHarald Welte2020-01-126-155/+123
| | | | Change-Id: I447a2360757fed97ed50f9db1e2efbf2f90e46a0
* dahdi: Don't use perror() directly, use osmocom logging insteadHarald Welte2020-01-121-4/+8
| | | | Change-Id: I287e10ee49a8ac26eef903568b29a3b2abf3b43e
* add/clean big-endian packed structs (struct_endianess.py)Neels Hofmeyr2020-01-071-0/+8
| | | | Change-Id: I09c56f59631828ad219a5edd7d95cac8df462c84
* Bump version: 0.7.0.8-4c2c-dirty → 0.8.00.8.0Pau Espin Pedrol2020-01-023-3/+21
| | | | Change-Id: If7099f91a3610d61d16e769406ac27f54e7363f3
* input/ipa_keepalive.c: make sure IPA keepalive FSM is registeredVadim Yanitskiy2020-01-011-1/+1
| | | | | Change-Id: I36997b31f50fb1e051686a58dac09bc9ed391d17 Fixes: CID#206090
* Enable DAHDI support by default; require --disable-dahdi otherwiseHarald Welte2019-12-014-6/+14
| | | | | | | | | | | | | | libosmo-abis was built with DAHDI support, if the related header files were present at built time, and without if not. This kind of automagic enabling/disabling of features is wrong. Let's require DAHDI support by default, and force the user to take a conscious decision by using an explicit --disable-dahdi if he doesn't want it. At the same time, update debian/control to list dahdi-source as build dependency. Change-Id: Id9f7f063e7ca9e3ab4aa96fc93f243caf50fb66a Closes: OS#4248
* e1_input.c: make reference counting get() / put() more verboseVadim Yanitskiy2019-12-021-2/+9
| | | | Change-Id: I1c730d6d146b365712b28e3d37e038344ea850bc
* input/ipaccess.c: fix debug message on receipt of IPAC_MSGT_ID_GETVadim Yanitskiy2019-12-021-1/+1
| | | | Change-Id: I83c52c9733852cfebf183819fb36bd634d84bf7d
* input/ipaccess.c: propagate errors from ipa_parse_unitid()Vadim Yanitskiy2019-12-021-1/+5
| | | | Change-Id: Ic190daae31936959de8efb5a6de8744c016d5643
* dahdi: Use ioctl(DAHDI_SPECIFY) instead of legacy /dev/dahdi/%uHarald Welte2019-11-141-26/+35
| | | | | | | | | | | | It appears that opening "/dev/dahdi/channel" and using ioctl(DAHDI_SPECIFY) is possible at least since dahdi 2.4 (from 2010), and opening "/dev/dahdi/%u" has been deprecated ever since. One advantage of the new interface is that you can use channel numbers larger than 250, which is quite easily possible if you have more than eight E1 lines on a system. It also makes libosmo-abis work on systems where there are no udev rules for creating the legacy device nodes. Change-Id: Id6c8f27d7ae948b50e9cf5a38f039d782ff78e1d
* ipa: Allow setting local addr and port for struct ipa_client_connPau Espin Pedrol2019-11-085-8/+41
| | | | Change-Id: I3133c6b01647506a5b9c67e4699bcad3ff59f843
* ipa: ipa_server_link_close() add checks of link stateAlexander Couzens2019-09-151-0/+6
| | | | | | | When closing a link which failed on open, ipa_server_link_close() would crash it when calling osmo_fd_unregister. Change-Id: I672d4de25464c3829b08aff26b1a6d4ad92e7684
* Bump version: 0.6.0.13-b4a7 → 0.7.00.7.0Harald Welte2019-07-212-2/+32
| | | | Change-Id: Ia5ecb2f69ce5436cae8d7a2d300e446ff24e84bc
* extend the ipa keepalive fsmEric Wild2019-07-212-9/+58
| | | | | | | | | | | | | | | | The new and improved fsm supports multipe use cases: 1) plain old ipa server/client operation 2) ipa client/server operation with custom send callback (i.e. to bypass the tx queue) 3) all of the above + custom timeout callback 4) fully generic operation that will pass opaque data to the callbacks The current code will always kill the fsm and deallocate it upon timeout, so the timeout callback will now return a value: 1 means the fsm will be automatically terminated, 0 means no action, which allows manually stopping/starting the fsm to reuse it. Change-Id: Ie453fdee8bfd7fc1a3f1ed67ef0331f0abb1d59b
* ipaccess.c: Avoid calling close(-1) on error pathHarald Welte2019-07-211-2/+4
| | | | | Change-Id: Idabb9805a4a10c95ba0e01bc3f80ed8db87a9f85 Closes: CID#157118
* spellingDebian Mobcom Maintainers2019-07-171-1/+1
| | | | | | =================================================================== Change-Id: I22c98915648760a83abd5f0004af26d426a5e518
* contrib/jenkins.sh: run "make maintainer-clean"Oliver Smith2019-07-101-0/+1
| | | | | Related: OS#3047 Change-Id: Ib261f25e2c7b48283a6142259991aadfcf40cdec
* add TCP_USER_TIMEOUT to keepaliveEric Wild2019-06-211-0/+11
| | | | | | | | | The patch sets TCP_USER_TIMEOUT to the same timeout value, since keepalive only applies to idle connections, but we obviously want to fail as fast as possible even if there is data to send and it's not acked. Change-Id: I5e7425958472aa5d758e09bfbefc7d7d37bf6f5f
* ipaccess: allow tcp keepalive for ipa clientsEric Wild2019-06-211-2/+4
| | | | | | | This allows using the e1_line x keepalive y z setting for clients like osmo-bts. Change-Id: Iadf22934ca6d3c44adac5573709ba53e75fa07da
* ipa_keepalive_fsm: Suppress error messages for INIT -> INIT transitionHarald Welte2019-04-061-1/+1
| | | | | | | | | | | | If we receive an OSMO_IPA_KA_E_STOP in INIT state, we are trying to re-enter INIT, which is not permitted as per the FSM definition. Adding this permission avoids the below error message from hitting the logs every time this happens: <0003> input/ipa_keepalive.c:158 IPA-KEEPALIVE(server)[0x612000000520]{INIT}: transition to state INIT not permitted! Change-Id: I8db2f2e708fc4fbb81f5019973098a80e8f540d2
* ipa_keepalive_fsm: Fix OSMO_IPA_KA_E_STOP allstate eventHarald Welte2019-04-061-0/+1
| | | | | | | | | We had the allstate_action function registered, and that function implemented handling of OSMO_IPA_KA_E_STOP. However, the allstate_event_mask was not set, rendering this functionality inaccessible. Change-Id: I83fd991bdacb7bab794878e47c7797fecf8b9286
* Add IPA keep-alive FSM implementationHarald Welte2019-03-193-0/+327
| | | | | | | The IPA keep-alive FSM code takes care of periodically transmitting and IPA CCM PING and expecting an IPA CCM PONG in return. Change-Id: I2763da49a74de85046ac07d53592c89973314ca6
* rtp: Add 'autoconnect' feature to the osmo_rtp_socketSylvain Munaut2019-03-192-0/+23
| | | | | | | | | | The bound RTP socket will wait for incoming RTP packets and as soon as it sees one, will 'connect' to it, so all replies will go to that sources and incoming messages from other sources will be discarded. This obviously only works once. Change-Id: I5b54ca4296901fcf37794faf29e0b2acca27bd1b Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* tests: use -no-install libtool flag to avoid ./lt-* scriptsOliver Smith2019-03-191-1/+1
| | | | | | | | This ensures that the rpath of the generated binaries is set to use only the just-compiled so-files and not any system-wide installed libraries while avoiding the ugly shell script wrapper. Change-Id: Idd458471069ef8912704cc7602c6e8c71c0b62be
* ipa: Make ipa_server_conn_destroy() re-entrantHarald Welte2019-03-081-0/+5
| | | | | | | | | | In some situations, the user code called by the closed_cb call-back might be tempted to call itself ipa_server_conn_destroy(), which would lead to a double-llist_del during osmo_fd_unregister() and also a subsequent double talloc_free(). Let's prevent such misuse by existing early in such situations. Change-Id: I0fef264ed5b4218906cdbca243ffa11b891025c6
* Log peer's port in accept callbackMax2019-01-241-2/+2
| | | | | | | * log port from which we accept() the connection in addition to address * use macro helper for logging Change-Id: I186974dae1819af8c92f9ea9eeb966ec7c9c9f55
* Set local IP in ipa_server_link properlyMax2019-01-241-1/+10
| | | | | | | | | | | | | | When creating IPA link for server we might be called without explicit address (which is legit - it means bind to all available addresses). However in this case we won't have 'addr' field of ipa_server_link initialized properly. Fix this by following changes: * don't copy NULL value as address * use socket's local IP when no address set explicitly Change-Id: I33679bb35f426d4cafb223b9200fccbf407e0cf6
* Bump version: 0.5.1.20-de57 → 0.6.00.6.0Harald Welte2019-01-204-6/+38
| | | | Change-Id: I417065deb06ac7e8b3b8468b88cc803a41098c2d
* log IPA tags correctlyStefan Sperling2018-12-061-4/+4
| | | | | | | | | Due to apparent copy-paste errors, wrong values were being logged for IPA tags in ipa_bts_id_resp(). Fixes: 4c57eef663e870247cb7a72130a50750317a44b9 Change-Id: I29a0401db0760219b9b9176709a88d589312261b Related: OS#3355
* osmo_ortp: Log domain and fix strings without endl charPau Espin Pedrol2018-11-121-1/+28
| | | | Change-Id: Ib6df0df04cd6ba342753c84398274d04917ace40
* e1_input.h: Set correct type for input_signal_data->link_typePau Espin Pedrol2018-10-031-1/+1
| | | | | | | link_type field holds values from link->type as set in e1inp_int_snd_event(). Change-Id: Iaa33b793f89f2d16c9d949503c5ecc195bbcd2a4
* ipaccess: Simplify handling of ipaccess e1line tsPau Espin Pedrol2018-10-034-22/+36
| | | | | | | Handle encoding specifics behind a macro to make code easier to understand and follow. Change-Id: Ibf251673bff95b7a0b066b19ef4dc6c0f94fff6b
* ipacces: Log correct trx_nr during IPA GETPau Espin Pedrol2018-10-021-1/+1
| | | | | | | dev->trx_id points to a structure used for whole BTS and doesn't point to related TRX ID, which is encoded in priv_nr. Change-Id: I00b01790990c8d21fdbe0f5750fa02f13ddb2009