Project

General

Profile

News

Cellular Network Infrastructure: July 2024 Osmocom CNI releases

Added by osmith about 13 hours ago

The Osmocom project has released new version 202407 of the CNI (Cellular Network Infrastructure) software, including OsmoTRX, OsmoBTS, OsmoPCU, OsmoBSC, OsmoMGW, OsmoMSC, OsmoHLR, OsmoSGSN, OsmoGGSN, OsmoSTP, OsmoSIPConnector, and others.

Those new tagged/released versions contain 10 months of work since the previous versions released during mid September 2023.

You can find pre-compiled binary packages of our latest release for a variety of Debian and Ubuntu GNU/Linux versions at Latest_Builds.

Versions

Project Version Changelog
osmo-gsm-manuals 1.6.0 https://cgit.osmocom.org/osmo-gsm-manuals/plain/debian/changelog?h=1.6.0
libosmocore 1.10.0 https://cgit.osmocom.org/libosmocore/plain/debian/changelog?h=1.10.0
osmo-e1d 0.7.0 https://cgit.osmocom.org/osmo-e1d/plain/debian/changelog?h=0.7.0
libosmo-abis 1.6.0 https://cgit.osmocom.org/libosmo-abis/plain/debian/changelog?h=1.6.0
libosmo-netif 1.5.0 https://cgit.osmocom.org/libosmo-netif/plain/debian/changelog?h=1.5.0
libosmo-pfcp 0.4.0 https://cgit.osmocom.org/libosmo-pfcp/plain/debian/changelog?h=0.4.0
libosmo-sccp (+ OsmoSTP) 1.9.0 https://cgit.osmocom.org/libosmo-sccp/plain/debian/changelog?h=1.9.0
osmo-iuh 1.6.0 https://cgit.osmocom.org/osmo-iuh/plain/debian/changelog?h=1.6.0
libusrp 3.4.9 https://cgit.osmocom.org/libusrp/plain/debian/changelog?h=3.4.9
libgtpnl 1.3.0 https://cgit.osmocom.org/libgtpnl/plain/debian/changelog?h=1.3.0
libasn1c 0.9.37 https://cgit.osmocom.org/libasn1c/plain/debian/changelog?h=0.9.37
osmo-ggsn 1.12.0 https://cgit.osmocom.org/osmo-ggsn/plain/debian/changelog?h=1.12.0
osmo-hlr 1.8.0 https://cgit.osmocom.org/osmo-hlr/plain/debian/changelog?h=1.8.0
osmo-mgw 1.13.0 https://cgit.osmocom.org/osmo-mgw/plain/debian/changelog?h=1.13.0
osmo-trx 1.7.0 https://cgit.osmocom.org/osmo-trx/plain/debian/changelog?h=1.7.0
osmo-pcu 1.5.0 https://cgit.osmocom.org/osmo-bts/plain/debian/changelog?h=1.5.0
osmo-pcap 0.5.0 https://cgit.osmocom.org/osmo-pcap/plain/debian/changelog?h=0.5.0
osmo-bts 1.8.0 https://cgit.osmocom.org/osmo-bts/plain/debian/changelog?h=1.8.0
osmo-bsc 1.12.0 https://cgit.osmocom.org/osmo-bsc/plain/debian/changelog?h=1.12.0
osmo-msc 1.12.0 https://cgit.osmocom.org/osmo-msc/plain/debian/changelog?h=1.12.0
osmo-sgsn 1.12.0 https://cgit.osmocom.org/osmo-sgsn/plain/debian/changelog?h=1.12.0
osmo-gbproxy 0.5.0 https://cgit.osmocom.org/osmo-gbproxy/plain/debian/changelog?h=0.5.0
osmo-cbc 0.5.0 https://cgit.osmocom.org/osmo-cbc/plain/debian/changelog?h=0.5.0
osmo-smlc 0.3.0 https://cgit.osmocom.org/osmo-smlc/plain/debian/changelog?h=0.3.0
osmo-hnbgw 1.6.0 https://cgit.osmocom.org/osmo-hnbgw/plain/debian/changelog?h=1.6.0
osmo-hnodeb 0.2.0 https://cgit.osmocom.org/osmo-hnodeb/plain/debian/changelog?h=0.2.0
osmo-sip-connector 1.7.0 https://cgit.osmocom.org/osmo-sip-connector/plain/debian/changelog?h=1.7.0

Noteworthy Changes

Common

osmo_io and io_uring

The most notable improvement of these releases is the addition of osmo_io to libosmocore, as well as adjusting several components to use it (libosmocore, libosmogb ns2, libosmo-netif, libosmo-sigtran, libosmo-mgcp-client). osmo_io is a new way of how we do I/O operation in Osmocom projects. It moves from a raw select/poll abstraction (where every application performs its own read/write once the fd becomes readble/writable) to a submission/completion model, where the actual I/O is performed by the library, an the application just submits write requests (as struct msgb) and receives write-completion and read-completion call-backs.

Apart from having more code reuse and a cleaner split between application and I/O library, this has the added advantage that the underlying operating system I/O mechanism can be swapped out without touching each and every application. Specifically, we now have the following two back-ends implemented in libosmocore:
  • POLL: classic osmo_fd based implementation using poll(2) (default)
  • IO_URING: a backend using the Linux kernel io_uring(7) API (new)

The choice of back-end is done via setting the LIBOSMO_IO_BACKEND environment variable. If you set it to IO_URING when starting an Osmocom program, all sub-systems / interfaces ported over to the osmo_io API will make use of the io_uring(7) API (via liburing).

The main advantage of io_uring is performance. Benchmarking has shown that a classic, poll-based production osmo-bsc loaded with 400 TRX is spending about 40% of its CPU cycles in the system call overhad (sock_poll, tcp_poll and do_sys_poll) and a lot of system call entry/exit in general, due to the many small read/write/recvmsg/sendmsg/recfrom/sendto and poll calls.

For more information, see:

Misc

  • Systemd files have been updated to run services as osmocom user instead of root
  • Uniform log format in default configs
  • RPM spec files have been removed from almost all repositories (more)

libosmocore

  • core: Add software UART implementation
  • Add a GSM RLP decoder and encoder
  • libosmosim: Support Microsoft smart card discovery process
  • libosmosim: class_tables: improvements to GlobalPlatform
  • isdn: initial implementation of the V.110 TA
  • LAPD/LAPDm: Add support for RTS based polling
  • Add TW-TS specific BSSMAP IEs and BTS feature flags
  • Add the jhash implementation from the linux kernel
  • Add a VTY command to generate FSM state graphs
  • codec: make osmo_hr_check_sid() more efficient
  • socket: new API osmo_sock_sctp_get_peer_addr_info(), reimplement osmo_sock_init2_multiaddr()
  • GSUP: extend for osmo-epdg (new IE for PCO, new message type for CEAI interface)
  • coding: fix artificial bit errors for PDTCH CS2 and CS3
  • gsup: Convert PDP-Type IE to PDP-Address IE
  • logging: fix nul octets in log output
  • Lots of small fixes and improvements

libosmo-abis

  • Add support for sending and receiving Sa bits, as well as some line signals
  • Various TRAU <> RTP related fixes
  • trau_rtp_conv: add support for HRv1 in 8k format
  • TRAU->RTP: add support for TW-TS-001 & TW-TS-002
  • Build config: add --disable-ortp option
  • Logging improvements

libosmo-netif

  • Support osmo_io
  • stream: Add client-side (segmentation) support for IPA
  • Several docs improvements

osmo-e1d

  • Fix issue on truncated USB transfer
  • Add option to reset receive buffer, when clock drifts too far away
  • Support of setting and indication of Sa bits in time slot 0 of multi frames
  • LOS/AIS/RAI/LOF are indicated and sent to client
  • Fix of some memory leaks / double free
  • Add support to configure CRC4 mode for TX/RX
  • Fixes some issues at channelized mux process

OsmoSGSN

Many minor and cosmetic fixes and improvements.
Most notable new changes are:

  • Add 3k1_AUDIO and FAX_G3 bearer cap
  • Force rate adaptation mode for CSD calls to V.110
  • ASCI: Reject TERMINATION, if MS is not the originator
  • Fix VTY setting for SGs counter
  • Add section about the SGs interface
  • Fix codec mapping for GSM-HR
  • Various fixes on SDP parsing and codec matching
  • GSUP: set default ipa-name at application level
  • SMS-over-GSUP: set Source Name IE for all messages
  • SMS-over-GSUP: set log context in gsm411_gsup_rx()
  • Add LLC and HLC information forwarding to MNCC interface
  • Never page for TMSI with 'no assign-tmsi'
  • Various fixes to deb and rpm package contribution
  • Add timer X36 for delaying LU connections

OsmoHLR (and libosmo-gsup-client)

  • SMS over GSUP: implement forwarding of SMS
  • ctrl: add subscriber.by-*.imsi GET-able variable

OsmoMGW (and libosmo-mgcp-client)

  • ASCI: Add GSM-R support
  • VTY and log: Also show local port for RTP conns
  • mgcp_parse_audio_port_pt(): fix buffer overflow
  • Improve err logging
  • IuUP: Allow Initialization from any address if not yet set
  • IuUP: Allow Initialization with set rem IP address and unset remote port
  • mgcp-client: Transmit remote IP addr in CRCX if known and port=0
  • Various fixes on codec handling
  • Convert mgcp_client from osmo_wqueue to osmo_io
  • Convert RTP/RTCP/OSMUX I/O from osmo_fd to osmo_io
  • Do not fail MGCP on codec mismatch
  • Remove unused transcoding process code

OsmoTRX

  • ms: add demod test tool and data
  • ms: various small improvements
  • doc: Introduce documentation for osmo-trx-ipc and its IPC interface

OsmoBTS

  • ASCI: Add GSM-R support
  • Add GSMTAP encapsulation of RLP frames in CSD NT mode
  • common: Add RTP related rate counters
  • common: add support for TW-TS-001
  • osmo-bts-{oc2g,lc15}: signal CBCH support to BSC
  • oml: implement handling of NM_ATT_IPACC_SUPP_FEATURES
  • Transmit invalid AMR speech blocks instead of dummy FACCH
  • pcuif_proto: signal BTS model via PCUIF
  • Various small fixes and improvements for CSD and more

OsmoPCU

  • Improve User Manual:
    • List supported Gb dialects
    • Add diagram with code architecte
  • Fix potential memory leak
  • Avoid resending TXT.ind (PCU version) over PCUIF

OsmoBSC

  • ASCI: Add GSM-R support
  • recover BORKEN lchans for missing ACK scenarios
  • sccplite: Support multiple MGW in MGW pool
  • add support for RTP extensions via TW-TS-003
  • oml: ipacc: GPRS Cell attributes related improvements
  • CTRL and VTY: various new commands and other improvements
  • Many small fixes and improvements

OsmoMSC

  • ASCI: Add GSM-R support
  • manuals: add section about the SGs interface
  • Various codec handling improvements
  • CSD related fixes
  • VTY improvements
  • Many small fixes and improvements

OsmoSTP (and libosmo-sigtran)

  • Introduced support for M3UA-over-TCP
  • ipa,xua: New set of APIs to do TCP & SCTP I/O in OSMO_IO mode
  • ipa: Use pseudo-random number for SLS in IPA->M3UA direction
  • VTY: New "cs7 instance <0-15> asp NAME disconnect" command
  • VTY: rename 'sctp-role' to 'transport-role' (old naming kept for compat but deprecated)
  • Some minor logging improvements

osmo-cbc

  • cbc-apitool: Make character set configurable
  • SBcAP: Update as1nc skeleton and generated code

OsmoHNBGW

Compatibility note: OsmoHNBGW used to CRCX in loopback mode, to trigger a legacy IuUP hack. CRCX is no longer in loopback mode now, so older osmo-mgw may fail to respond to IuUP Initialization.

  • Fix several asserts being hit aborting the process
  • Fix potential use-after-free after FSM termination
  • Increase default X31 val from 5 to 15 seconds
  • VTY: New "timer hnbgw X35" command (Clean up all hNodeB persistent state after HNB disconnected for a while)
  • Fix forwarding of CS RAB Assignment Request without RTP info
  • Assume HNB's RTP IP address equals Iuh IP address when initially setting up MGW endpoint connection
  • Support forwarding RTP IP address changes between HNB and MGW.
  • Do not start MGW endpointer in loopback mode
  • Improve some RUA ctx tear down scenarios
  • Support per-HNB persistent static configuration in VTY
  • New per-HNB rate_ctr/stats: uptime, rua/ranap/dtap messages, RAB act/deact/modify, CS RAB duration, paging attempts, release causes
  • New per-HNB GTP-U traffic counters via nft
  • Avoid forwarding paging requests to HNB's not yet registered
  • Improved handling of HNBAP HNB-REGISTER-REQ errors and improved rejection.
  • Fixes for 3-digit MNC
  • Drop list of HNBAP UE Context
  • Several logging improvements
  • Several PFCP fixes/improvements:
    • Wrong FAR ID was being modified
    • Added VTY tests for PFCP
    • Implement Tx of Network Instances IEs

libgtpnl

  • Add IPv6 support
  • New QEMU tests

OsmoGGSN

  • kernel-gtp: support IPv6
  • libgtp: move includes to osmocom/include/gtp
  • set state-dir to /var/lib/osmocom/osmo-ggsn

osmo-sip-connector

  • Forward SDP between SIP and MNCC

osmo-hnodeb

  • Use 'iuh/local-ip' as local IP for RTP sockets
  • llsk: Add APIs to interact with llsk->link
  • Close LLSK during shutdown procedure

Osmocom Conferences (OsmoDevCon, OsmoCon, OsmoDevCall): 2024-07-17: G711 transcoding in GSM networks

Added by laforge 11 days ago

we're happy to announce the next incarnation of OsmoDevCall.

This time, falconia will be presenting on GSM networks that require transcoding to G.711: the problem and possible solutions

When: Wednesday, July 17, 2024 from 20:00 CEST

Time Topic Who
20:00 Meet and Greet everyone
20:10 GSM networks that require transcoding to G.711: the problem and possible solutions falconia
21:00 USSE (Unstructured Supplementary Social Event) everyone

Where: https://osmocom.org/OsmoDevCall (Big Blue Button of https://franken.de/)

osmo-ePDG - VoWifi Evolved Packet Data Gateway: First osmo-epdg release (0.1.0): Osmocom ePDG + AAA

Added by laforge 11 days ago

The osmo-epdg development has reached its first release: 0.1.0.

osmo-epdg is combined ePDG and AAA to support Voice over Wifi (VoWiFi) calls.

An ePDG allows a UE to connect over regular wireless networks to an IMS (untrusted non-3GPP network access).

The combined ePDG/AAA is using a modified strongSwan together with osmo-epdg, a daemon written in erlang/OTP.

The osmo-epdg has been tested with open5gs as EPC and kamailio as IMS.

To allow an easy setup of a fully working ePDG/epc/IMS there are ansible playbooks which has been used to create our Hosted ePDG playground

More information can also be found in the video recording of a talk presenting osmo-epdg at OsmoDevCon 2024

Thanks a lot to NLNet for funding development of this project.

libosmocore: libosmocore 1.9.3 patch relase

Added by laforge about 2 months ago

Today we've released the libosmocore 1.9.3 patch release.

The only changes are to libosmosim, fixing two issues related to the transport of GlobalPlatform APDUs in cardem / osmo-remsim use cases which appeared when using M2M eUICCs with osmo-remsim.

The changelog over 1.9.0 is as follows:

libosmocore (1.9.3) unstable; urgency=medium

  * libosmosim: class_tables: Resolve conflicting CLA=8x INS=F2 definitions
  * libosmosim: class_tables: Fix GlobalPlatform CLA=8x INS=CA/CB GET DATA

 -- Harald Welte <laforge@osmocom.org>  Thu, 06 Jun 2024 19:40:40 +0200

libosmocore (1.9.2) unstable; urgency=medium

  [ Pau Espin Pedrol ]
  * sockaddr_str.h Fix OSMO_SOCKADDR_STR_FMT_ARGS_NOT_NULL syntax error

  [ Daniel Willmann ]
  * logging_gsmtap: Temporarily disable logging when sending the logs
  * Disable uring when building for embedded

 -- Oliver Smith <osmith@sysmocom.de>  Tue, 28 Nov 2023 12:59:15 +0100

libosmocore (1.9.1) unstable; urgency=medium

  [ Manawyrm ]
  * logging: ensure ANSI color escape is sent in same line/before newline

 -- Oliver Smith <osmith@sysmocom.de>  Tue, 28 Nov 2023 11:21:41 +0100

Retronetworking: 2024-06-05: RetroNetCall: Nokia TCSM2 Initial examination

Added by laforge about 2 months ago

We're happy to announce the next incarnation of RetroNetCall, the retronetworking oriented spin-off of OsmoDevCall

This time, we have the first part of a series of presentations by falconia on classic circuit-switched GSM TRAU (Transcoder and Rate Adaption Unit): Nokia TCSM2, a bank of TRAUs with E1 interfaces: Part 1, initial examination of the hardware

When: Wednesday, June 5, 2024 from 20:00 CEST (summer time now)

Time Topic Who
20:00 Meet and Greet everyone
20:10 Nokia TCSM2, a bank of TRAUs with E1 interfaces: Part 1, initial examination of the hardware falconia
21:00 USSE (Unstructured Supplementary Social Event) everyone

libsmpp34: libsmpp34 1.14.4 release

Added by osmith about 2 months ago

Today we've released libsmpp34 1.14.4.

The changelog over 1.14.0 is as follows:

libsmpp34 (1.14.4) unstable; urgency=medium

  [ Vadim Yanitskiy ]
  * fix warnings about implicit declaration of strtol()
  * build: include git-version-gen into the release tarball

  [ Oliver Smith ]
  * contrib: remove rpm spec file

 -- Oliver Smith <osmith@sysmocom.de>  Mon, 27 May 2024 11:16:01 +0200

libsmpp34 (1.14.3) unstable; urgency=medium

  [ Vadim Yanitskiy ]
  * binaries/Makefile.am: libraries shall not be in AM_LDFLAGS

  [ Oliver Smith ]
  * debian: set compat level to 10

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Tue, 12 Sep 2023 12:40:43 +0200

libsmpp34 (1.14.2) unstable; urgency=medium

  [ Vadim Yanitskiy ]
  * README.md: fix copy-paste: s/libosmocore/libsmpp34/
  * update git URLs (git -> https; gitea)
  * Makefile.am, configure.ac: fix autoreconf related warnings
  * contrib/jenkins.sh: actually build with $PARALLEL_MAKE

  [ Max ]
  * cosmetic: make linter happy
  * Add #define for default SMPP port 2775

  [ Harald Welte ]
  * test_apps: Fix compilation of example smsc code
  * Add -Werror=implicit-int -Werror=int-conversion -Werror=old-style-definition

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Tue, 07 Feb 2023 14:28:28 +0100

libsmpp34 (1.14.1) unstable; urgency=medium

  [ Eric ]
  * configure.ac: fix libtool issue  with clang and sanitizer

  [ Oliver Smith ]
  * contrib: import RPM spec
  * contrib: integrate RPM spec
  * Makefile.am: EXTRA_DIST: debian, contrib/*.spec.in

  [ Vadim Yanitskiy ]
  * debian/control: change maintainer to the Osmocom team / mailing list

  [ Pau Espin Pedrol ]
  * .gitignore: Ignore new autofoo tmp files

 -- Pau Espin Pedrol <pespin@sysmocom.de>  Tue, 23 Feb 2021 18:00:48 +0100

OsmoTRX: osmo-trx 1.6.2 release

Added by osmith 3 months ago

Today we've released osmo-trx 1.6.2.

The changelog over 1.6.0 is as follows:

osmo-trx (1.6.2) unstable; urgency=medium

  [ Harald Welte ]
  * osmo-trx-uhd: Make sure HOME environment variable is set

  [ Vadim Yanitskiy ]
  * doc/examples: fix missing config files in release tarballs

 -- Oliver Smith <osmith@sysmocom.de>  Wed, 08 May 2024 10:04:43 +0200

osmo-trx (1.6.1) unstable; urgency=medium

  [ Eric Wild ]
  * devices: fix wrong gain to power mapping

 -- Eric Wild <ewild@sysmocom.de>  Thu, 09 Nov 2023 14:16:21 +0200

Cellular Network Infrastructure: Removal of official RPM packages

Added by osmith 3 months ago

As announced previously, the rpm binary packages for CentOS 8 / AlmaLinux 8 are unmaintained.
There were also binary packages for openSUSE Tumbleweed in the Osmocom OBS, but these had no further testing besides making sure that they build.

sysmocom was still ensuring that the rpm binary packages build from the rpm spec files in our own git repositories. But this
is also significant effort that we would rather spend elsewhere, and so we decided to stop providing rpm builds altogether
and that we will remove the spec files from the git repositories.

A separate set of rpm binary packages and spec files are maintained by Martin Hauke in the openSUSE OBS instance:
(1-10/257)

Also available in: Atom

Add picture from clipboard (Maximum size: 48.8 MB)