September 2023 Osmocom CNI releases

The Osmocom project has released new version 202309 of the CNI (Cellular Network Infrastructure) software.
Added by pespin 5 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
libosmocore 1.9.0
osmo-e1d 0.6.0
libosmo-abis 1.5.0
libosmo-netif 1.4.0
libosmo-pfcp 0.3.0
libosmo-sccp (+ OsmoSTP) 1.8.0
osmo-iuh 1.5.0
libusrp 3.4.8
libgtpnl 1.2.5
libasn1c 0.9.36
libsmpp34 1.14.3
OpenGGSN 1.10.2
OsmoHLR 1.7.0
osmo-mgw 1.12.0
osmo-pcap 0.4.2
OsmoTRX 1.6.0
OsmoBTS 1.7.0
OsmoPCU 1.3.0
OsmoBSC 1.11.0
OsmoMSC 1.11.0
OsmoSGSN 1.10.0
osmo-gbproxy 1:0.4.1
osmo-cbc 0.4.2
osmo-smlc 0.2.4
osmo-sip-connector 1.6.3
OsmoHNBGW 1.4.0
osmo-hnodeb 0.1.2
osmo-uecups 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


  • 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


  • 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


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


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
  • 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
  • contrib: Add BER testing tool


  • 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


  • 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


  • 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


  • 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


  • 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)


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


Add picture from clipboard (Maximum size: 48.8 MB)