commit | 12fae9aeebd86e242abd5c682a12fd1c9da68497 | [log] [tgz] |
---|---|---|
author | Harald Welte <laforge@osmocom.org> | Sat Feb 24 06:51:04 2024 +0100 |
committer | laforge <laforge@osmocom.org> | Tue Feb 27 08:08:02 2024 +0000 |
tree | 5c9d894e7bb6770ef1f460cf31e0a07c4bfc6884 | |
parent | 361488f83f2cd721bc735ad65936320b2571590b [diff] |
Fix critical bug in default TCP keepalive user timeout It turns out that our calculation of the TCP_USER_TIMEOUT value was flawed in several ways: * there should have been parenthesis around the + operator (line->keepalive_probe_interval + line->keepalive_idle_timeout) as the keepalive_idle_timeout is in seconds, not milli-seconds. * in the default case, all those values are configured to -1 (E1INP_USE_DEFAULT). This means we're using 1000 * -1 * -1 + -1 = 999 i.e. just below a second which clearly is not enough for a lossy satellite or wifi back-haul. This fixes a regression introduced in Ia7659c209aea0d26eb37d31e771adc91b17ae668 (libosmo-abis >= 1.4.0) when TCP keepalive user timeouts became enabled by default. The initial support for TCP_USER_TIMEOUT was merged in I5e7425958472aa5d758e09bfbefc7d7d37bf6f5f (libosmo-abis >= 0.7.0) but since TCP keepalives were not yet enabled by default, only users with explicit TCP keepalive configuration in their config files would be affected - and then only of the second part of the bug (operator precedence). In addition, let's print the actually-used values to the log, helping to spot unintended values. Change-Id: Idca24d3e676a45d860d9eec60dc2097d8d87f3bf Closes: OS#6375 Related: OS#5785, SYS#6801 Fixes: Ia7659c209aea0d26eb37d31e771adc91b17ae668
This repository contains a set of C-language libraries that form the A-bis interface library of Osmocom Open Source Mobile Communications projects such as OpenBSC / OsmoBSC.
Historically, a lot of this code was developed as part of the OpenBSC project, but which are of a more generic nature and thus useful to (at least) other programs that we develop in the sphere of Free Software / Open Source mobile communications.
The libosmo-abis.git repository build multiple libraries:
The official homepage of the project is https://osmocom.org/projects/libosmo-abis
You can clone from the official libosmo-abis.git repository using
git clone https://gitea.osmocom.org/osmocom/libosmo-abis
There is a web interface at https://gitea.osmocom.org/osmocom/libosmo-abis
There is no Doxygen-generated API documentation yet for this library. It would be great to some day have it, comparable to libosmocore.
Discussions related to libosmo-abis are happening on the openbsc@lists.osmocom.org mailing list, please see https://lists.osmocom.org/mailman/listinfo/openbsc for subscription options and the list archive.
Please observe the Osmocom Mailing List Rules when posting.
Our coding standards are described at https://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards
We us a gerrit based patch submission/review process for managing contributions. Please see https://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit for more details
The current patch queue for libosmo-abis can be seen at https://gerrit.osmocom.org/#/q/project:libosmo-abis+status:open