Osmocom library for A-bis (E1/IP) interface
Go to file
Harald Welte b8a44773fb 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
Related: OS#5785, OS#6375, SYS#6801
Fixes: Ia7659c209aea0d26eb37d31e771adc91b17ae668
(cherry picked from commit 12fae9aeeb)
2024-03-15 00:50:05 +07:00
contrib Bump version: 1.3.0.31-1950-dirty → 1.4.0 2023-02-07 13:15:26 +01:00
debian Bump version: 1.4.0.2-5e77 → 1.4.1 2023-05-08 22:54:31 +07:00
include Add missing functions to send HDLC/RAW data 2023-01-15 19:01:00 +01:00
m4 add missing m4 directory 2011-06-05 18:36:27 +02:00
src Fix critical bug in default TCP keepalive user timeout 2024-03-15 00:50:05 +07:00
tests GPRS Trau frame encoder/decoder for Ericsson RBS 2023-01-03 12:24:29 +01:00
.gitignore gitignore: Ignore autofoo files *~ 2021-02-23 16:15:21 +01:00
.gitreview Add gerrit settings 2016-12-22 14:06:57 +00:00
AUTHORS add AUTHORS and COPYING files 2011-07-02 17:42:31 +02:00
COPYING add AUTHORS and COPYING files 2011-07-02 17:42:31 +02:00
Makefile.am Makefile.am: EXTRA_DIST: debian, contrib/*.spec.in 2020-05-22 13:27:37 +02:00
README.md update git URLs (git -> https; gitea) 2022-06-17 23:12:04 +02:00
TODO-RELEASE Bump version: 1.3.0.31-1950-dirty → 1.4.0 2023-02-07 13:15:26 +01:00
configure.ac Bump version: 1.3.0.31-1950-dirty → 1.4.0 2023-02-07 13:15:26 +01:00
git-version-gen git-version-gen: Check first for new tag format 2018-05-02 19:36:36 +02:00
libosmoabis.pc.in pkgconf: require libosmocore 2022-08-10 16:19:12 +07:00
libosmotrau.pc.in pkgconf: require libosmocore 2022-08-10 16:19:12 +07:00

README.md

libosmo-abis - Osmocom Abis interface library

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:

  • libosmoabis contains some abstraction layer over E1/T1 and IP based ETSI/3GPP A-bis interface. It can use mISDN and DAHDI as underlying driver/hardware.
  • libosmotrau contains routines related to A-bis TRAU frame handling

Homepage

The official homepage of the project is https://osmocom.org/projects/libosmo-abis

GIT Repository

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

Documentation

There is no Doxygen-generated API documentation yet for this library. It would be great to some day have it, comparable to libosmocore.

Mailing List

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.

Contributing

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