aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* add ipa ping/pong keepalive for OML/RSL links between bts and bscosmith/pingpongEric Wild2020-01-224-17/+214
| | | | | | Patch-by: ewild, osmith 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
* ensure unix socket paths are NUL-terminated for bind/connectStefan Sperling2018-09-202-7/+15
| | | | | | | | | | | | | The unix(7) man page recommends that sun_path is NUL-terminated when struct sockaddr_un is passed to a bind() or connect() call. Non-NUL-terminated paths only need to be dealt with at the receiving end of a UNIX domain socket. Commit b24efa5 erroneously assumed otherwise. Change-Id: I9beecfa500db75cb679b1edcc352c893bf098b13 Fixes: b24efa551dc91e177c5cb8da674e9f8432d52dc9 Related: OS#2673
* debian: Conflict libosmoabis6 with libosmoabis5Pau Espin Pedrol2018-09-041-0/+4
| | | | | | | | | | | | In previous commit 9540f59b1daeac36d71b20ac9cefe15019d6277c, libosmoabis packaging was fixed to match its contained major lib version. However, systems using nightly may run into issues when upgrading since now libosmoabis6 in repo tries to overwrite libosmoabis5 in their system and fails. By using Conflicts + Replaces it should do it now without erroring. Fixes: OS#3365 Change-Id: If98ae21670f13554da5aa46fe30741d56631fd8c
* Properly deal with sockaddr_un socket path length limitations.Stefan Sperling2018-09-042-7/+18
| | | | | | | | | | | | | | | When parsing the configuration, reject a socket path which exceeds the maximum size supported by the operating system. In unixsocket_line_update() stop copying the line's socket path to a local buffer. The path will be copied again in osmo_sock_unix_init(). Both changes are portable; we don't assume any particular socket path length since the size differs between implementations of Unix, and we rely only on information from the generic sys/un.h header. Change-Id: I36344805a825f5d0e0c9d218d438d8fd985ed9ca Related: OS#2673
* debian: Fix libosmoabis soname package versionPau Espin Pedrol2018-08-302-4/+4
| | | | | | | | LIBVERSION for libosmoabis was increased during v0.4.0 release, but didn't update the debian package name accordingly to match major. Change-Id: I7ead154d72e6dadf795414c47fe276edadd08580 Fixes: OS#3365
* ipaccess: Allow passing return code in e1inp_line_ops->sign_link()Pau Espin Pedrol2018-08-282-3/+3
| | | | Change-Id: Ia83eead3622d86f55c1dc5e91acc78dde73a0367