Project

General

Profile

News

Removal of official RPM packages

Added by osmith 9 days 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:

Faster I/O with osmo_io and io_uring

Added by laforge 2 months ago

Last night we enabled osmo_io support in the first major sub-system, libosmo-sigtran in master of our git repositories. This change mainly affects the A and IuCS/IuPS interfaces in osmo-bsc, osmo-msc, osmo-sgsn, osmo-hnbgw, osmo-smlc and osmo-stp.

Sub-systems that have been ported over to osmo_io can easily switch from classic poll/read/write/readmsg/writemsg/recfrom/sendto/recv/send syscall based I/O to io_uring, the modern submission/completion-queue based I/O mechanism of the Linux kernel.

Using the io_uring backend of osmo_io will in turn significantly improve the performance of related osmocom programs under high load, where as much as 40% of the process CPU time is spent in I/O related system calls.

All our usual automatic test suites/jenkins jobs continue to use the default (poll) back-end, while we have a set of new jenkins jobs running the same test suites against osmocom-programs with the io_uring backend have been introduced.

We will keep the osmo_io wiki page updated with the migration/porting status, as more and more sub-systems / applications / interfaces get ported to it.

Binary packages for CentOS 8/AlmaLinux 8 are unmaintained

Added by osmith 3 months ago

Maintenance of binary packages for CentOS 8 (and compatible distributions, such as AlmaLinux 8) had been funded by sysmocom customers in the past.

This is no longer the case, so we are making the following changes:
  • Patches submitted to gerrit are not building/running regression tests on CentOS 8 anymore.
  • CentOS 8 binary packages are not tested with our TTCN-3 testsuites anymore on jenkins.osmocom.org.
  • The daily test that ensures CentOS 8 packages can be installed without conflicts, and Osmocom daemons are running as expected, gets disabled.

We will keep the binary packages of CentOS 8 as long as they build fine, but will disable individual packages if they fail to build instead of spending resources on fixing them.

If you are interested in keeping the CentOS 8 packages maintained, contact us as follows:
  • If you would like to fund maintenance of the packages:
  • If you would like to help maintain the packages: IRC

Binary packages: changes in supported distributions

Added by osmith 5 months ago

The official Osmocom binary packages will not be built anymore for the following distributions starting at 2024-02:

  • Raspberry Pi OS 64-bit (use Debian_12 etc. instead)
  • Ubuntu 23.04 (Ubuntu 23.10 and LTS 20.04/22.04 feeds are available)
  • openSUSE 15.4 (openSUSE Tumbleweed feed is available)
  • Debian Testing (Debian Unstable and 12-10 feeds are available)

For Raspberry Pi OS 64-bit users, make sure to adjust your /etc/apt/sources.list.d as described here to switch to a Debian aarch64 feed.

See the new linux distributions article for information on how long we plan to keep building packages for each distribution.

September 2023 Osmocom CNI releases

Added by pespin 8 months ago

The Osmocom project has released new version 202309 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 7 months of work since the previous versions released during mid February 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.

The main areas of work since the previous releases are:
  • Support of Circuit Switched Data (CSD) calls in 2G
  • Support of Advanced Speech Call Items (ASCI) for Voice Group + Broadcast Calls in GSM-R
  • Support of more authentication algorithms (XOR-2G, TUAK)
  • Massive improvements in handling of voice codec negotiation
  • Support for GPRS on Ericsson BTSs with E1/T1 TDM back-haul
  • much more low-level control over the SCTP stack underneath libosmo-sigtran/osmo-stp
  • performance optimizations of OsmoBSC

List of tagged versions and link to related ChangeLog

Project Version Changelog
osmo-gsm-manuals 1.5.0 https://cgit.osmocom.org/osmo-gsm-manuals/plain/debian/changelog?h=1.5.0
libosmocore 1.9.0 https://cgit.osmocom.org/libosmocore/plain/debian/changelog?h=1.9.0
osmo-e1d 0.6.0 https://cgit.osmocom.org/osmo-e1d/plain/debian/changelog?h=0.6.0
libosmo-abis 1.5.0 https://cgit.osmocom.org/libosmo-abis/plain/debian/changelog?h=1.5.0
libosmo-netif 1.4.0 https://cgit.osmocom.org/libosmo-netif/plain/debian/changelog?h=1.4.0
libosmo-pfcp 0.3.0 https://cgit.osmocom.org/libosmo-pfcp/plain/debian/changelog?h=0.3.0
libosmo-sccp (+ OsmoSTP) 1.8.0 https://cgit.osmocom.org/libosmo-sccp/plain/debian/changelog?h=1.8.0
osmo-iuh 1.5.0 https://cgit.osmocom.org/osmo-iuh/plain/debian/changelog?h=1.5.0
libusrp 3.4.8 https://cgit.osmocom.org/libusrp/plain/debian/changelog?h=3.4.8
libgtpnl 1.2.5 https://cgit.osmocom.org/libgtpnl/plain/debian/changelog?h=1.2.5
libasn1c 0.9.36 https://cgit.osmocom.org/libgtpnl/plain/debian/changelog?h=0.9.36
libsmpp34 1.14.3 https://cgit.osmocom.org/libsmpp34/plain/debian/changelog?h=1.14.3
OpenGGSN 1.10.2 https://cgit.osmocom.org/osmo-ggsn/plain/debian/changelog?h=1.10.2
OsmoHLR 1.7.0 https://cgit.osmocom.org/osmo-hlr/plain/debian/changelog?h=1.7.0
osmo-mgw 1.12.0 https://cgit.osmocom.org/osmo-mgw/plain/debian/changelog?h=1.12.0
osmo-pcap 0.4.2 https://cgit.osmocom.org/osmo-pcap/plain/debian/changelog?h=0.4.2
OsmoTRX 1.6.0 https://cgit.osmocom.org/osmo-trx/plain/debian/changelog?h=1.6.0
OsmoBTS 1.7.0 https://cgit.osmocom.org/osmo-bts/plain/debian/changelog?h=1.7.0
OsmoPCU 1.3.0 https://cgit.osmocom.org/osmo-bts/plain/debian/changelog?h=1.3.0
OsmoBSC 1.11.0 https://cgit.osmocom.org/osmo-bsc/plain/debian/changelog?h=1.11.0
OsmoMSC 1.11.0 https://cgit.osmocom.org/osmo-msc/plain/debian/changelog?h=1.11.0
OsmoSGSN 1.10.0 https://cgit.osmocom.org/osmo-sgsn/plain/debian/changelog?h=1.10.0
osmo-gbproxy 1:0.4.1 https://cgit.osmocom.org/osmo-gbproxy/plain/debian/changelog?h=0.4.1
osmo-cbc 0.4.2 https://cgit.osmocom.org/osmo-cbc/plain/debian/changelog?h=0.4.2
osmo-smlc 0.2.4 https://cgit.osmocom.org/osmo-smlc/plain/debian/changelog?h=0.2.4
osmo-sip-connector 1.6.3 https://cgit.osmocom.org/osmo-sip-connector/plain/debian/changelog?h=1.6.3
OsmoHNBGW 1.4.0 https://cgit.osmocom.org/osmo-hnbgw/plain/debian/changelog?h=1.4.0
osmo-hnodeb 0.1.2 https://cgit.osmocom.org/osmo-hnodeb/plain/debian/changelog?h=0.1.2
osmo-uecups 0.2.2 https://cgit.osmocom.org/osmo-uecups/plain/debian/changelog?h=0.2.2

Noteworthy Changes

Misc / Common

  • libosmocore: Add support for CSD (Circuit Switched Data)
  • libosmocore: Add support for the XOR-2G authentication algorithm
  • libosmocore: Add support for TUAK authentication algorithm
  • libosmocore: Support authentication with 256-bit K and/or OP/OPc
  • libosmocore: Added support for ASCI (VBS/VGCS)
  • libosmocore: Add V.110 frame encoder/decoder for ISDN
  • libosmocore: Performance optimizations in main loop/poll code
  • libosmocore: Improvements in socket APIs to create multiaddr sockets (SCTP)
  • libosmocore: New osmo-gsmtap-logsend utility (transmit stdin data through GSMTAP)
  • libosmocore: TLV TLV_TYPE_SINGLE_TV parsing fixes
  • libosmocore: Improved support for FR/EFR SID
  • libosmocore: New GSM-FR ECU implementation
  • libosmocore: Fixes and improvements handling RTP HR TS101318 vs RFC5993
  • libosmocore: Initial osmo_io support with "poll" backend (default) and initial support for io_uring backend (enabled through envvar OSMO_IO_BACKEND_ENV="IO_URING")
  • libosmocore: Added lots of new symbols and definitions for ip.access Abis protocol
  • libosmo-abis: TRAU: Allow multiple secondary sync patterns
  • libosmo-abis: TRAU: Add sync pattern for FA protocol of 3GPP TS 43.045
  • libosmo-abis: TRAU: Ericsson RBS: Support synchronization pattern for MCS9, improve others
  • libosmo-abis: TRAU: RTP FR/EFR SID improvements and fixes
  • libosmo-abis: Improvements and fixes to the misdn driver, support setting Sa bits
  • libosmo-abis: e1d: Add support for HDLC type channels
  • libosmo-abis: e1d: reconnect to osmo-e1d after connection loss
  • libosmo-netif: stream: Lots of improvements and fixes on osmo_stream API
    • osmo_stream nos uses osmo_io, with new ipa segmentation support built-in.
    • osmo_stream_cli now forwards SCTP MSG_NOTIFICATION to upper layers, as already done by osmo_stream_srv
    • osmo_stream_*_set_param() API allows setting several new SCTP related parameters at socket creation time.
  • Lots of general fixes and improvements in code robustness
  • Improvements in doxygen documentation
  • Improved unit test coverage
  • Several fixes and improvements in build system regarding pkgconfig dependencies, linker, etc.
  • Improvements in systemd services

osmo-e1d

  • Close osmo-e1d control socket on connection loss
  • Fix various bugs in code paths during error handling
  • Fix file descriptor and memory leak in error paths
  • Add force-send-all-ts mode to by-pass the compression

OsmoSGSN

  • gmm: Fix parsing of Ciphering Key Sequence Number IE
  • gmm: Update DRX params during rx RAU REQ
  • sm: Fix load of misaligned ptr address when receiving Activate PDP Context Request
  • Relax SGSN RIM forwarding checks when receiving RIM messages from MME

OsmoHLR (and libosmo-gsup-client)

  • Introduce support for XOR-2G test authentication algorithm (in addition to already-supported XOR-3G)
  • Fix several memory leaks
  • USSD: fix handling of ussd-DataCodingScheme != 0x0f
  • Introduce support for 256bit K and/or OP[c] values
  • Introduce support for TUAK authentication algorithm

OsmoMGW (and libosmo-mgcp-client)

  • Don't open unused E1 lines/timeslots (needed for dynamic PDCH in E1 BTS)
  • Fix octet-aligned / bandwidth-efficient comparison
  • Fix codec decision in case multiple codecs are offered in SDP
  • Fix SDP parsing in case multiple codecs are offered in SDP
  • Allow MGCP-auditing of a special 'null' endpoint as a keep-alive/ping-pong by MGC
  • Introduce keepalive feature to mgcp-client
  • Introduce new mode "confecho" for GSM-R/ASCI voice group/broadcast calls
  • Introduce conference bridging with 1..n connections

OsmoTRX

  • Add experimental viterbi equalizer support
  • uhd: add freq/gain override through vty config
  • osmo-trx-ms: Further development work and performance optimizations.

OsmoBTS

As usual, many-many improvements and bug fixes.
Most notable new changes are:
  • ASCI (Voice Group Call Service, Voice Broadcast) support for GSM-R
  • CSD (Circuit Switched Data) support (so far only for osmo-bts-trx)
  • Improved DTX support
  • New PCUIF V11 version.
  • paging: Add support for generating NLN/NLN-Status in P1 Rest Octets
  • ASCI: Retrieve NCH position from System Information 1
  • ASCI: Add Notification CHannel (NCH) support
  • ASCI: Add support for rest octets in Paging request type 2 and 3
  • ASCI: Send only NLN on Paging request type 1 rest octets
  • ASCI: Add Notification/FACCH support
  • ASCI: Enable UPLINK ACCESS on various BTS models
  • ASCI: VGCS/VBS RACH -> RSL TALKER/LISTENER DETECT
  • osmo-bts-virtual: properly handle dynamic TS in vbts_set_ts()
  • osmo-bts-virtual: fix segfault during initialization
  • osmo-bts-{trx,virtual}: properly activate [CBCH/]BCCH/CCCH
  • osmo-bts-trx: fix/improve handling of BS_AG_BLKS_RES!=1
  • osmo-bts-trx: Fix no NM Radio{Carrier,Channel} switching to Enabled
  • osmo-bts-trx: Avoid pushing interf_meas for disabled TRX
  • osmo-bts-trx: alloc/free burst buffers during channel act/deact
  • osmo-bts-trx: implement CSD scheduling support
  • osmo-bts-trx: implement FACCH/[FH] support for CSD
  • osmo-bts-trx: various scheduler improvements
  • rtp: implement rate adaptation for CSD (RFC4040 'clearmode')
  • rtp: implement rtp continuous-streaming mode
  • osmo-bts-sysmo: emit empty RTP ticks during FACCH stealing on TCH/F
  • osmo-bts-trx: transmit invalid speech blocks instead of dummy FACCH
  • osmo-bts-trx: remove model-specific BFI packet formats
  • osmo-bts-*: HR1 codec: accept both TS101318 and RFC5993 formats
  • osmo-bts-*: HR1 codec: select RTP output format via vty option
  • osmo-bts-*: FR/HR/EFR TCH DL: implement DTX rules
  • osmo-bts-*: make the Uplink ECU optional, move from -trx to l1sap
  • osmo-bts-*: major improvements to handling of SID frames
  • pcu_sock: PCUIF version bump: 10 -> 11
  • pcu_sock: do not confirm PAGING COMMAND messages
  • pcu_sock: use PCU_IF_SAPI_AGCH_2 instead PCU_IF_SAPI_AGCH
  • pcu_sock: Submit all DATA.ind regardless of link quality
  • pcu_sock: migrate to osmo_wqueue, drop connection on overflow
  • pcuif_proto: rename tlli to msg_id
  • pcuif_proto: include IMSI in DATA.req for PCH
  • pcuif_proto: use confirm flag in struct gsm_pcu_if_pch
  • pcuif_proto: remove unnecessary members from gsm_pcu_if_data_cnf_dt
  • osmo-bts-sysmo: Delay marking phy_link as connected until L1 reset + got info
  • osmo-bts-{sysmo,oc2g,lc15}: Fix RTP of AMR SID_FIRST_P1
  • osmo-bts-{sysmo,lc15,oc2g}: fix segfault in ph_tch_req()
  • osmo-bts-lc15: fixed various compilation warnings/errors
  • osmo-bts-sysmo: mute PHY until OML is ready
  • osmo-bts-sysmo: Fix pinst->version filled too early
  • abis_rsl: Avoid tx RF Resource Ind for disabled TRX
  • abis_rsl: rsl_rx_ipac_XXcx: parse csd_fmt_d/ir
  • lc15,oc2g,sysmo: Update GPRS NM object state at the right time
  • abis_nm: Apply OPSTART through NM FSMs
  • abis_nm: Apply BTS/TRX/TS OML Attributes through NM FSMs
  • abis_nm: FSMs for GPRS NSE, GPRS NSVC, and GPRS Cell objects
  • abis_nm: Properly report all states through NM FSM upon OML link up
  • bbtransc/rcarrier: Fix statechg done twice upon NM_EV_RX_OPSTART
  • vty: Print AMR MultiRate Configuration in "show lchan"
  • systemd: depend on networking-online.target
  • contrib: Add BER testing tool

OsmoPCU

  • New PCUIF v11 unix socket interface. V10 still supported, but will be deprecated most probably around next release.
    • New SAPI PCU_IF_SAPI_PCH_2 replaces the old SAPI PCU_IF_SAPI_PCH
      • Full IMSI sent if available in its own field, instead of prepeding a paging group
      • New field "confirm" filled by PCU and the BTS/BSC obeys to it in order to know whether to confirm or not.
      • New field "msg_id" filled by PCU and confirmed back from BTS/BSC, so that PCU can match requests and confirmations.
      • New SAPI PCU_IF_SAPI_AGCH_2 replaces the old SAPI PCU_IF_SAPI_AGCH. Same features as in SAPI PCU_IF_SAPI_PCH_2 but without the IMSI member.
      • New primitive data_cnf2 (struct gsm_pcu_if_data_cnf) added.
  • Support for Ericsson RBS E1 CCU
  • Lots of refactoring, improvements and tons of fixes around RLC/MAC layer.
  • Add support for NACC with UTRAN and E-UTRAN cells
  • vty: Allow modifying default msclass

OsmoBSC

  • Various performance optimizations, specially Paging and Subscriber Lookup code
  • C0 power reduction mode improvements (resuming after BTS restart)
  • Support GPRS on Ericsson RBS (see #5198)
  • Channel / codec selection improvements for CSD (see #4393)
  • Fixed/improved handling of BTS features (nanoBTS, osmo-bts)
  • Implemented VGCS/VBS (Voice Group Call Service, Voice Broadcast) support for GSM-R (see #4852)
  • Improved meas_feed performance for loaded setups (>200 BTS)
  • {vty,ctrl}: added pchan dynamic/{osmocom,ipaccess}
  • ctrl: many new GET/SET commands for BTS paraneters
  • vty: explicit role & sctp-role fields in ASP configurations
  • vty: 'msc / codec-list' improvements
  • vty: fixed/improved si2quater related commands
  • vty: improved handling/printing of GPRS related commands
  • pcuif: various improvements for BSC co-located PCU
  • pcuif: new PCUIFv11 protocol

OsmoMSC

  • Remove IuUP loopback hack (osmo-mgw now uspports proper IuUP)
  • Proper matching / mapping of voice codecs over MS, BSS, CN and remote call leg
  • Allow multiple permitted codecs in MGCP towards MGW
  • Send+receive full SDP via the MNCC interface
    • This requires an update of osmo-sip-connector when updating osmo-msc
  • Include the "Codec List IE (MSC Preferred)" in Handover Request
  • Close SMS database on start-up error, avoiding sqlite3 backtraces on next startup
  • Instruct MGW to decapsulate IuUP to AMR to allow 2G <-> 3G AMR calls
    • This requires an update of osmo-mgw when updating osmo-msc
  • Support for CSD (circuit switched data) with external MNCC (RTP CLEARMODE)
  • Support for voice broadcast calls (VBCS) and voice group calls (VGCS) as used in GSM-R
    • This only works if all other elements in the network (BTS, BSC, MGW, MS, ...) support it
  • Fix SMPP memory leaks

OsmoSTP (and libosmo-sigtran)

  • Performance improvements looking up connections through conn_id
  • Clarify ASP SCTP and M3UA selected roles based on configuration (explicit setting now required)
  • Improve logging lines printing ASP related context information
  • ASPAC/ASPIA/DUNA/DAVA/DUPU: Don't add routing context IE in ASP-role if routing context 0
  • SCCP: implement variable limit on Optional Data (CR,CC,CREF,RLSD)
  • Make ASP default LM timers VTY configurable
  • Improve handling of SCTP notifications from SCTP sockets
  • Support configuring per-ASP SCTP Primary Address and SCTP Peer Primary Address
  • Support configuring per-ASP SCTP INIT parameters
  • ipa: use LSBs of file descriptor as SLS in IPA->M3UA direction

osmo-cbc

  • Update asn1c skeleton files (work around asan stack overflow check failures)
  • Document re-generating SBcAP code from ASN.1 files
  • Catch and forbid configuring peers before configuring main protocol node

OsmoHNBGW

  • Fix UE context state leak
  • Migrate from 'sccp cr max-payload-len' to generic libosmo-sigtran SCCP payload length limits ('cs7 instance N' / 'sccp max-optional-data N')
  • Introduce proper finite state machines for RUA <-> SCCP connection mapping
  • Improve reliability when operating Iuh over lossy / flaky links
  • Fix various asn1 related memory leaks
  • Allow IuCS and IuPS to operate in separate 'cs7 instance'
  • Introduce support for CN pooling (MSC / SGSN pooling)
  • Include Global RNC-ID in RESET / RESET-ACK (spec conformance)

osmo-uecups

  • Avoid double-unlock in error path of gtp_tunnel_alloc
  • Avoid null-dereference in argc < 0 case
  • Fix error paths in gtp_daemon_alloc

Support for GPRS/EGPRS on Ericsson RBS6000

Added by laforge about 1 year ago

After months of work (primarily by dexter), we're happy to have finally merged code into OsmoBSC to support GPRS/EGPRS on the Ericsson_RBS family of cellular base stations.

This means that [inexpensive] decommissioned Ericsson RBS6000 hardware (as described in Minimal_RBS_Assemblies can now not only be used for providing classic circuit-switched GSM services, but also to provide GPRS/EGPRS services.

Development of this work was made possible by yet another grant from the NLnet foundation (see also https://nlnet.nl/project/Osmocom-RBS/).

The majority of the related code lives in the OsmoBSC and OsmoPCU projects, together with libosmocore and libosmo-abis. OsmoBSC now provides a PCU socket interface (like OsmoBTS does in our normal BTS-colocated PCU), and OsmoPCU can directly open the E1 tieslots for the PDCH channels (similar to how OsmoMGW handles voice channels in E1 based BTS).

For a list of relevant commits, see https://gerrit.osmocom.org/q/topic:e1_gprs

Updates to the user manual and wiki (e.g. Ericsson_RBS2000_GPRS) should follow shortly. If you're curious to try it, you can find an example file at source:doc/examples/osmo-bsc/ericsson/osmo-bsc.dug20-rus02-1trx-1pdch-16kbps.cfg

The code has so far only been tested in our lab. Your mileage my vary. If you do try it, please feel free to report any issues you may find.

Osmocom to receive funding from OpenTechFund

Added by laforge over 1 year ago

We're happy to announce that sysmocom has achieved to obtain funding from Open Technology Fund for a variety of enhancements and improvemnts of the Open Source Cellular Network Infrastructure sphere.

The funded activities are in the following areas:

  • Better integration between the Osmocom 2G/3G core network elements and the open5gs 4G EPC (evolved packet core)
  • Improving the stability, quality and maturity of the open5gs EPC by implementing functional test suites in TTCN-3
  • Establishing interoperability with various base station hardware
  • Support three trial deployments in rural Mexico with our partner Rhizomatica
  • Organize a series of webinars for security researchers on how to use our tools for furthering their research projects

See also the project description at the OpenTechFund website

We'd like to thank OTF awarding funding to our proposal.

We'd also like to thank Rhizomatica and specifically Peter Bloom for all his help in putting together the proposal.

Osmocom binary package repository URLs have changed

Added by osmith over 1 year ago

This is a reminder to update the repository URLs. As previously announced:

  • The binary packages are being built on Osmocom's own OBS server now.
  • We will stop pushing packages to the openSUSE OBS server at the end of October (in one week).

If you are using Osmocom binary packages, please make sure that you have configured the new repository URLs.

See the wiki for details:
https://osmocom.org/projects/cellular-infrastructure/wiki/Binary_Packages

Binary packages moved to new location

Added by osmith almost 2 years ago

The nightly and latest feeds of the Osmocom binary packages for Debian, Raspbian, Ubuntu, openSUSE and CentOS are from now on available at downloads.osmocom.org. See the binary packages wiki page for the exact, distribution specific URLs and for instructions for adding the repositories in these distributions.

As transitional phase, the packages will still be available at the old location (download.opensuse.org) until end of October 2022 . Make sure to change the URLs on your systems, so "apt upgrade" etc. still work as expected.

The reason for this change is, that we decided to self-host the openSUSE build service at https://obs.osmocom.org. See #5557 for details.

(1-10/43)

Also available in: Atom

Add picture from clipboard (Maximum size: 48.8 MB)