The Osmocom project has released new version 202001 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 five months of work since the previous versions released during August 2019. The primary focus was on bug-fixing and stabilization as well as some major new features, such as inter-MSC-handover support in osmo-msc.
You can find pre-compiled binary packages of our latest release for a variety of Debian and Ubuntu GNU/Linux versions at Latest_Builds.
List of tagged versions and link to related ChangeLog¶
Noteworthy Changes¶
Misc / Common¶
- libosmocore: logging (and other subsystem) improvements for multi-thread processes (like osmo-trx)
- libosmocore, libosmo-netif, libosmo-sccp: multi-address (multi-homing) support (multi-homing) and configure flags for libsctp (--enable-libsctp)
- libosmocore: integration of libusb in libosmocore's main loop (--enable-libusb)
- libosmocodec: new generic Error Concealment Unit abstraction
- libosmovty: Several crash fixes and improvements regarding command parsing, node tracking, etc.
- libosmogsm: add support for XOR authentication
- libosmo-abis: DAHDI support fixes and improvements. It is now enabled by default (--enable-dahdi)
- osmo-iuh: First version of libosmo-sabp now available, containing SABP ASN.1 from 3GPP TS 25.419 V11.1.0
- osmo-iuh: First version of OsmoHNBGW User Manual now available.
- Add code coverage support
- port most python scripts to use python3 (python2 will become deprecated soon)
- Improve reproducibility, fix sporadic failures of some tests
- Improved robustness all along the code, fixing several crashes and regressions, avoiding unnoticed underrun events, etc.
- Lots of logging improvements (use libosmocore multi-thread lock API, print channel, new log categories, support libuhd's >=3.11 logging system, etc.)
- Several fixes in TRXDv1 and TRXC (avoid dropping ul idle indications, wrong responses on some CMDs, etc.)
- Improved performance in some specific cases (Enable EDGE detection only on PDCH timeslots)
- Multi-arfcn improvements: ARFCN setup verficiation (RXTUNE/TXTUNE), code cleanup
- vty: Simplify filler burst settings and improve help and readability
- Increased robustness and small fixes and improvements all over the code
- Several fixes and improvements in PCU interface: fix endian-swapped CellID, forward ETWS Primary Notification, set correct ARFCN, etc.
- New improved generic MS Power Control Loop available for all BTS variants ("ms-power-control osmo")
- Migrate to use new libosmocore's generic ECU abstraction
- Several fixes and improvements for measurement reports.
- vty: add "logging filter l1-sapi"
- bts-trx: Fix several inconsistencies in TRX setup and lifecycle management of each TRX, clock availability, etc.
- bts-trx: Improvements thanks to information available from TRX using TRXDv1 (C/I, ToA, etc.)
- bts-trx: Improvements handling PDCH: fix handling of PTCCH/U and PTCCH/D logical channels, detect TSC for Access Burstsm etc.
- Improve User Manual documentation
- Forward ETWS Primary Notification to MS
- Several crash, assertion fixes and robustness improvements
- GSMTAP support improved, with more categories and fixes on existing ones
- Move some of the existing timer infrastructure to use osmo_tdef
- PTCCH support added
- bssgp: do not reject SUSPEND ACK / NACK messages
- vty: fix command 'show tbf all': properly filter TBFs
- Cell Broadcast: CBSP and CBCH scheduling support
- SMSCB: Send ETWS primary Notification/Warning
- Fix RSL connection timeout for TRX other than first one
- Send IE MS Power Param during CHAN ACT (to osmo-bts only, to enable Autonomous MS Power Control Loop in BTS)
- Decode classmark of MS and infer its the maximum MS Power Control level, then tell the BTS through MS PWR CTRL message
- Support SCTP multi-homing in AoIP, lots of sigtran improvements (thanks to new libosmo-sccp)
- Several crashes fixes, robustness and logging improved
- Improvements in SGs interface and CSBF
- Several crash fixes, memory leak fixes, robustness and logging improved, specially during Call Control
- MNCC v6: add optional SDP to the socket protocol. Now SDP can be passed SIP<->MSC<->MGW.
- Improved counter documentation
- Fix SM-RP-OA encoding for MO SMS over GSUP
- Implement a VTY global switch on the network to disable call waiting ("[no] call-waiting")
- Support SCTP multi-homing in AoIP, lots of sigtran improvements (thanks to new libosmo-sccp)
OsmoHLR (and libosmo-gsup-client)¶
- Add --db-check program option
- Update tb dv schema v4 (and lots of infra added to test schema update)
- AUC: Add support for setting the AMF separation bit to '1' for EUTRAN
- Make tests more robust: return codes on mipsel and alpha archs, test_nodez.vty expectancies, etc.
- Several crash fixes and increased robustness
OsmoMGW (and libosmo-mgcp-client)¶
- Improvements in codec parsing and management
- Several crash fixes, memleak fixes and increased robustness
- MNCC v6: add optional SDP to the socket protocol
- logging from sofia: add missing newline
- Fixes in systemd's osmo-sip-connector.service dependencies
- Several robustness improvements
OsmoSTP (and libosmo-sigtran)¶
- Introduce SCTP multi-homing (multi address socket) support
- Support for all SS7 traffic modes: override, load-share, broadcast
- Dynamic ASP creation in AS for IPA connetions (identified by IPA unit id)
- Configure freely IPA/SCTP links as client or server, and M3UA link role as SGW or ASP
- osmo_sccp_simple_client(): use sccp instance index 0 instead of 1
- A lot more other SS7 protocol stack fixes and improvements
- File/directory structure cleanup
- Initial OsmoGbPROXY user manual
- Fix of some long standing bugs and crashes
- LLC: Don't use hard-coded N201-U / N201-I values in XID
- Improved Iu/RANAP support and related fixes
- Logging improvements
- Migrate timers to osmo_tdef
- gtp: Drop related pdp contexts on echo timeout against GGSN
- Lots of improvements in (P)MM state FSMs: related timers, actions, etc.
- Gb: implement PS Paging when MS is MM_STANDBY
- Implement echo req/resp and recovery
- libgtp: Manage queue timers internally
- libgtp: Remove packets in tx queue belonging pdp being freed
- Improvedd logging
- Some IPv6 related fixed
- Several crash fixes and improved robustness
It seems we forgot the release announcement in early August:
The Osmocom project has released new version of the CNI (Cellular Network Infrastructure) software, including OsmoTRX, OsmoBTS, OsmoBSC, OsmoMGW, OsmoMSC, OsmoHLR, OsmoSGSN, OsmoGGSN.
Those new tagged/released versions contain four months of work since the previous versions released during April 2019. The primary focus was on bug-fixing and stabilization as well as some major new features, such as inter-MSC-handover support in osmo-msc.
You can find pre-compiled binary packages of our latest release for a variety of Debian and Ubuntu GNU/Linux versions at Latest_Builds.
List of tagged versions and link to related ChangeLog¶
Noteworthy Changes¶
Misc / Common¶
- debian packages now have
-doc
sub-packages containing the corresponding user and VTY reference manuals of each program.
- various robustness fixes
- support LAPDm payloads with more than 200 bytes
- fsm: Allow millisecond granularity in osmo_fsm built-in timer
- CBSP (Cell Broadcast Service Protocol) implementatin in libosmogsm
- vty parser fixes: don't pass incomplete arguments to vty funcs
- work around gcc bug with gcc < 7.3.0 on ARM related to thread-local storage
- shared IPA keep-alive FSM in libosmocore; use it wherever possible
- libosmo-netif Stream client: fix disconnection logic
- new protocol (TRXDv1) support, mainly for passing C/I value from TRX->BTS->PCU for rate adaptation
- proper counting of under/overruns
- LimeSuite stability improvements (recovery / re-synchronization after drop-outs)
- various internal refactoring / code de-duplication
- fix ARM VFP4 convolution
- LimeSuite: automatic detection of device type and device specific gains
- Various Abis OML protocol conformance fixes
- handling of GPRS SUSPEND (from DCCH -> PCU)
- Full CBCH (Cell Broadcast Channel) support, both basic and extended
- RSL CBCH LOAD INDICATION for CBCH flow control
- RSL BS POWER CONTROL support
- Fix RACH load percentage computation
- clear GPRS indicator form SI3 when PCU is not connected
- fix (so far ignored) MS power control in RSL CHANNEL ACTIVATION
- osmo-bts-oc2g specificx
- systemd service file + example config installation
- status LED fixes
- nominal transmit power fix
- generate failure event report if calibration data missing
- osmo-bts-trx specifics
- TRXDv1 protocol support
- 11-bit RACH support
- Various AMR rate handling related fixes between AoIP and Abis
- AMR: Signal usage of octet-aligned or bandwith-efficient mode to MSC
- various inter-BSC hand-over related fixes for AoIP
- various manual updates, including documentation for 3G/4G neighbor cells, OSMUX, ...
- always default to octet-aligned AMR mode
- keep per-BTS statistics about RACH utilization
- re-introduce support for IPA-encapsulated MGCP (used with osmo-bsc_nat)
- OSMUX support with AoIP (we only supported it with SCCPlite so far)
- support assigning TCH/x in signaling mode
- Add SGs interface for CSFB (circuit switched fall-back) and SMS-over-SGs
- various SMS and USSD handling related fixes
- include libsmpp34 memory allocations in talloc reports
- Fix SMS transmission over Iu (use SAPI3)
- allow user to disable retrieval of IMEISV early
- allow transmission of IMEI to HLR (for subscriber-create-on-demand)
- support inter-BSC hand-over
- support inter-MSC hand-over
- do not force encryption on UTRAN/Iu
- OSMUX support with AoIP
- document
--db-upgrade
command line argument
- optionally store IMEI in subscriber table (for non-standard subscriber-create-on-demand)
- support routing of GSUP messages between clients (MSCs) for inter-MSC hand-over
OsmoMGW (and libosmo-mgcp-client)¶
- Add config option to use RFC5593 for GSM HR frames (we normally use ETSI TS 101318 format)
- SDP parsing related fixes
- Support OSMUX configuration via MGCP (activated via BSC and MSC)
- support international Caller-ID
- support emergency calling
- handle SIP re-invite
- support MNCC HOLD/RETRIEVE
OsmoSTP (and libosmo-sigtran)¶
- enable statsd export
- fix bug when saving config file (pointcode+mask of route)
- enable memory usage debugging via talloc introspection
- various parser correctness imporvements for LLC
- send Iu Release Command upon Attach Complete
- send Service Reject when no PDP contexts available
- fix GTP echo behavior
- require GMM authentication by default
- various PCO handling related improvements/fixes
- minimalistic PAP support during PDP context activation
- fix missing GTP-C re-transmission
- Introduce new pdp APIs (and deprecate old ones) to support multiple GSN
Thanks to the great support of the OpenSuSE Build Service, Osmocom is now offering binary package feeds for the popular Raspbian distribution, Version 9.
As a result, running Osmocom CNI (Cellular Network Infrastructure) on Raspbery Pi embedded computers is easier than ever: Just add the Latest_Builds
or Nightly_Builds feed to /etc/apt/sources.list[.d] and run your Osmocom based 2G and/or 3G cellular network.
The feeds are available from
The Osmocom project has released new version of the CNI (Cellular Network Infrastructure) software, including OsmoTRX, OsmoBTS, OsmoBSC, OsmoMGW, OsmoMSC, OsmoHLR, OsmoSGSN, OsmoGGSN.
Those new tagged/released versions contain half a year of work since the previous versions released during summer 2018. The primary focus was on bug-fixing and stabilization as well as some major new features, such as inter-BSC-handover support in osmo-bsc.
You can find pre-compiled binary packages of our latest release for a variety of Debian and Ubuntu GNU/Linux versions at Latest_Builds.
List of tagged versions and link to related ChangeLog¶
Noteworthy Changes¶
Misc¶
- the asciidoc source of the user manuals + VTY reference manuals is now always kept inside the respective repository: osmo-bts.git contains the osmo-bts manual. Before this, we used to have all manuals in osmo-gsm-manuals.git.
- logging vty: deprecate the 'everything' keyword
- various logging related improvements
- various improvements of osmo_fsm
- new osmo-config-merge utility
- SGsAP protocol encoding/decoding (SGsAP not yet part of osmo-msc!)
- GSMTAP definitions for LTE RRC and NAS sub-types
- introduce osmo_timerfd support as part of libosmocore (recurring timers)
- Introduce OsmoTRX user manual
- Direct support of LimeSuite as
osmo-trx-lms
without the detour of uhd+soapy-uhd+soapysdr
- split device-specific parts into their own classes + binaries: osmo-trx-{uhd,lms,usrp1}
- make better use of diferent logging sub-systems / log levels
- various correctness fixes related to advanced SACCH FILL scenarios with different SI5/SI6 per channel/subscriber
- various fixes to bit-rotten CBCH support; related generalization
- CBCH support for osmo-bts-trx
- extend precision of TOA mesaurement reports to 1/256 symbol duration
- make RTP port range configurable
- extensive fixes on correctness of computed + reported measurement reports
- Fix build against gpsd >= 3.18
- Allocate TRX for BTS dynamically, deprecate "-t" command line option
- Initial support for OpenCellular OC-2G BTS model/PHY
- inter-BSC hand-over support (AoIP and SCCPlite)
- large refactoring: use FSMs for lchans; timeslots; MGCP endpoints; ...
- Implement RR Classmark Enquiry in case
- various LCLS related fixes
- various codec / channel type related fixes during ASSIGNMENT
- interop tested against 3rd party MSCs for both AoIP and SCCPlite
- Implementation of MSC-originated CLASSMARK inquiry procedure for MS/UE without early classmark sending to allow A5/3 encryption
- mncc: fix byte ordering of IP-Address in mncc
- various improvements on state introspection via VTY
- forward SS / USSD messages via GSUP to HLR rather than processing it in MSC
- optional forward of SMS via GSUP to/from HLR rather than using internal SMSC
- fix Classmark Update without VLR subscriber
- vty: add SCCP related vty commands
- GSUP client: send CN domain IE on LU request
- vty: add command to show all known BSC
- Add GSUP message router
- Add concept of Internal (IUSE) and external (EUSE) USSD handlers
- Implement handling of USSD received from OsmoMSC via GSUP
- Introduce shared libosmo-gsup-client library for client programs connecting to OsmoHLR (like OsmoMSC, OsmoSGSN).
OsmoMGW (and libosmo-mgcp-client)¶
- Remove libosmo-legacy-mgcp and osmo-bsc-mgcp (they live in deprecated openbsc.git)
- various OSMUX related fixes
- use IETF-allocated port number for call-agent side as default
- introduce the concept of payload type maps
- rewrite/translate payload type numbers as per the ptmap
- make MGCP parser more tolerant (and interoperable)
- add extensive statistics / counters and improve VTY introspection
- various logging improvements (more strings, less numbers)
- better SIP/MNCC cause mapping
OsmoSTP (and libosmo-sigtran)¶
- make SCCP timers configurable (required for some SCCPlite peers)
- osmo-stp: add SCCP related VTY commands
- allow less characters for SCCP address book entries
- skip simple-client default as/asp when saving VTY config
- fix ipa_asp_fsm down state transition
- gprs_gmm: introduce a GMM Attach Request FSM
- sgsn_ggsn_ctx_drop_pdp: protect against nullpointer when MM is gone
- gprs_gmm: dont answer unknown IMSI/TMSI on Service Requests NET_FAIL
- gprs_gmm: Fix missing Security Command for 3G when attaching
- sgsn_libgtp: fix a potential memleak when the GGSN is not reachable
- gb_proxy: Add ctrl interface and nsvc-state, gbproxy-state commands
- osmo-sgsn: ping GGSN periodically and check for restart counter
- Disarm T3395 when dettaching mmctx from pdpctx
- sgsn: cdr: Fix uninitialized string access if ggsn is detached
- gbproxy: Add VTY parameter: link stored-msgs-max-length
- gbproxy: Add new VTY-managed timer: link-list clean-stale-timer
- Remove local libgsupclient; Use libosmo-gsup-client from osmo-hlr
- ggsn: ctrl iface: listen on IP configured by VTY
- gtp: Allow recv DEL CTX REQ in sgsn and DEL CTX RSP in ggsn
- gtp: Log ignore CTX DEL REQ due to no teardown and only 1 ctx active
- gtp: Add new API to avoid freeing pdp contexts during DEL CTX REQ
- fix support for multiple IPCP in PDP protocol configuration options
The Osmocom project has released new version of the CNI (Cellular Network Infrastructure) software, including OsmoBTS, OsmoBSC, OsmoMGW, OsmoMSC, OsmoHLR, OsmoSGSN, OsmoGGSN.
Those new tagged/released versions contain half a year of work since the previous versions released in early November 2017. The primary focus was on bug-fixing and stabilization. Many bugs were introduced during the split of the NITB into individual network elements during 2017, and even more bugs exposed by our ever-growing test coverage, particularly in the Osmocom TTCN-3 test suites.
All-in-all, the post-NITB stack has gained a lot in terms of spec compliance, robustness, stability and features during this period.
You can find pew-compiled binary packages of our latest release for a variety of Debian and Ubuntu GNU/Linux versions at
Latest_Builds.
The developer performing the release related work was Pau Espin. Thanks!
List of tagged versions and link to related ChangeLog¶
Noteworthy Changes¶
Misc¶
- GnuTLS fall-back for obtaining randomness
- support for three-digit MNC throguhout the code-base
- add talloc introspection via VTY
- tighter CRTL input parsing
- stricter VTY config file parsing
- allow to print only basename of source code file in logging
- print log level with color-keying of the level name
- OsmoTRX has now a VTY interface and uses Osmocom-style logging + config file
- use GNU autotest, like other osmocom projects
- re-introduce support for USRP1 devices
- build multiple binaries rather than selecting UHD / USRP1 at compile time
- EFR decoding fixes
- fix dynamic detection/use of CPU optimization (SSE3 vs SSSE3)
- various parsing/encoding fixes for trx-control interface
- add example config file for USRP B200
- higher accuracy reporting of time of arrival
- fix LAPDm UA memory leak
- put useful information into RTCP SDES packets
- fix AMR DTX FSM related crash
- many fixes related to measurement processing + reporting
- more robust RSL message parsing + error reporting
- implement DELETE INDICATION on AGCH overflow
- fix crashes in IPA DLCX processing
- fix operation without System Information Type 1
- support all types of Cell Identifier Lists in BSSMAP PAGING
- fix intra-BSC hand-over (used to work in NITB)
- fix various error paths in hand-over logic
- introduce new "handover 2" algorithm from Andreas Eversberg
- introduce load-based hand-over to balance channel load between overlapping BTSs
- implement SI2ter + SI2bis rest octets
- switch to osmo-mgw for handling media/user plane (instead of old osmo-bsc_mgcp)
- introduce osmo_fsm for subscriber_connection
- reduce several GSM timers to more reasonable default values (T3113, T3109, T3101, ...)
- permit codec list with both TCH/F and TCH/H channels
- permit network supporting more than one A5 cipher
- fix missing L2 pseudo-length in SI5/SI6 messages
- introduce Access Control Class (ACC) ramping to deal with overload situations on network power-up
- switch to "late assignment" by default (we used to do early / very early assignment)
- many fixes related to 3GPP spec / protocol compliance
- fix various use-after-free in GSUP and CC
- fix GSM-MILENAGE in presence of 2G keys
- cancel all paging on IMSI DETACH
- many fixes related to 3GPP spec / protocol compliance
- permit network supporting more than one A5 cipher
- properly pass bearer capabilities between MNCC and CC
- switch to osmo-mgw for handling media/user plane (instead of old osmo-bsc_mgcp)
- use dynamic MGCP endpoint allocation using wildcard
- migrate away from openssl to new libosmocore rand abstraction
- fixes related to SMS validity time
- delete expired SMS automatically
- fix transmission of MM INFO messages
- fix SMS to non-local subscriber
- fix various crashes
- fix response to PURGE_MS
- notify GSUP clients (MSC, SGSN) when HLR subscriber information changes
OsmoMGW (and libosmo-mgcp-client)¶
- Introduce osmo_fsm client API
- various fixes of SDP parser
- significantly improved compliance with MGCP spec
- wildcarded endpoint allocation in CRCX
- integrate libsofia-sip logging with libosmocore logging
- add systemd service file
OsmoSTP (and libosmo-sigtran)¶
- fix various memory leaks
- introduce IPA/SCCPlite support (allows translation of SCCPlite to M3UA/SUA)
- fix some crashes
- migrate away from openssl to new libosmocore rand abstraction
- fix display of GTP addresses in VTY
- re-introduce support for kernel GTP acceleration (was temporarily removed when migrating from OpenGGSN)
- fix byte-order of IPCP IPv4 DNS server addresses
- add support for IPv4v6 End User Addresses
- Validate packet src addr from MS
- various sgsnemu fixes
As Ubuntu 18.04 (Bionic Beaver) has been released two days ago, Osmocom has enabled Binary_Packages builds for this new distribution in both nightly and latest. As a result, you can now use our binary package feeds on this most recent incarnation of Ubuntu just like on the other supported distributions.
This was relatively easy due to the openSUSE Build Service (OBS) immediately adding support for Ubuntu 18.04. so all we had to o is enable it, and fix up some minor failures. Thanks to OBS for making supporting new distributions very easy!