Osmocom library for network/soecket abstraction and osmux audio multiplex https://osmocom.org/projects/libosmo-netif
Go to file
Pau Espin 96271688cf stream: Return 0 when receiving sctp notification SCTP_COMM_LOST
It was seen on a real pcap trace (sctp & gsmtap_log) that the Linux
kernel stack may decide to kill the connection (sending an ABORT) if
it fails to transmit some data after a while:
ABORT Cause code: "Protocol violation (0x000d)",
      Cause Information: "Association exceeded its max_retrans count".
When this occurs, the kernel sends the
MSG_NOTIFICATION,SCTP_ASSOC_CHANGE,SCTP_COMM_LOST notification when
reading from the socket with sctp_recvmsg(). This basically signals that
the socket conn is dead, and subsequent writes to it will result in
send() failures (and receive SCTP_SEND_FAILED notification upon follow
up reads).
It's important to notice that after those events, there's no other sort
of different event like SHUTDOWN coming in, so that's the time at which
we must tell the user to close the socket.
Hence, let's signal the caller that the socket is dead by returning 0,
to comply with usual recv() API.

Related: SYS#6113
Change-Id: If94d44f25b76a96a5ea402fec9fc14c4e6296ba3
2022-09-30 17:57:40 +02:00
contrib Bump version: 1.1.0.14-d1ab-dirty → 1.2.0 2022-06-28 18:09:49 +02:00
debian Bump version: 1.1.0.14-d1ab-dirty → 1.2.0 2022-06-28 18:09:49 +02:00
examples osmux: Allocate struct osmux_out_handle through API 2022-09-02 11:29:05 +02:00
include amr: Add data[0] field to amr_hdr 2022-09-28 19:03:52 +02:00
m4 initial commit 2011-10-04 02:36:46 +02:00
src stream: Return 0 when receiving sctp notification SCTP_COMM_LOST 2022-09-30 17:57:40 +02:00
tests osmux: Fix unwanted RTP marker bit upon rx of osmux seqnum wrap around 2022-09-29 11:49:47 +02:00
.gitignore gitignore: Ignore autfoo *~ churn 2021-02-19 12:58:44 +01:00
.gitreview Add gerrit settings 2016-12-22 14:06:35 +00:00
COPYING add COPYING file (GPLv2 license) 2011-10-05 13:43:25 +02:00
Doxyfile.in Add minimal doxygen documentation for stream + datagram modules 2017-04-08 20:13:14 +02:00
Makefile.am Makefile.am: EXTRA_DIST: debian, contrib/*.spec.in 2020-05-22 13:29:50 +02:00
README.md update git URLs (git -> https; gitea) 2022-06-17 23:15:16 +02:00
TODO-RELEASE osmux: Allocate struct osmux_out_handle through API 2022-09-02 11:29:05 +02:00
configure.ac Bump version: 1.1.0.14-d1ab-dirty → 1.2.0 2022-06-28 18:09:49 +02:00
git-version-gen initial commit 2011-10-04 02:36:46 +02:00
libosmo-netif.pc.in libosmo-netif.pc.in: Append -lsctp to Libs.private 2019-10-22 19:38:07 +00:00

README.md

libosmo-netif- Osmocom network interface library

This repository contains a C-language library that form the basis of various higher-layer cellular communications protocol implementation. It implements stream server and clients for TCP, UDP, IPA as well as the non-standard/proprietary OSMUX protocol.

Homepage

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

GIT Repository

You can clone from the official libosmo-netif.git repository using

git clone https://gitea.osmocom.org/osmocom/libosmo-netif

There is a web interface at https://gitea.osmocom.org/osmocom/libosmo-netif

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-netif 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-netif can be seen at https://gerrit.osmocom.org/#/q/project:libosmo-netif+status:open