Project

General

Profile

News

Osmocom nightly + latest feeds for Ubuntu 18.04

Added by laforge almost 6 years ago

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!

2017 Osmocom Cellular Infrastructure Review

Added by laforge about 6 years ago

Osmocom Review 2017

This is a review of the most significant changes and events in the Osmocom Cellular Infrastructure projects in 2017

January 2017

  • announce of first ever public OsmoCon conference in April
  • osmo-bts
    • Add Abis OML failure event reporting
    • fix memory leaks in osmo-bts-{sysmo,lc15} at every channel activation
  • openbsc/osmo-bsc
    • support multiple UARFCNs in SI2quater
  • osmo-hlr
    • add test suite for 2G and 3G authentication
    • fix UMTS AKA re-sync

February 2017

  • weekly manual testing with related weekly test reports to mailing list
  • heads-up about the (lack of a )future of osmo-nitb
  • heads-up about libosmo-sccp SIGTRAN work
  • sysmo-usim-tool
  • libosmo-abis
    • unix domain socket support (for Ericsson L2TP)
  • osmo-bts
    • fix AMR HR DTX FSM logic
    • fix SACCH sending fo system information with enum value > 7
    • osmo-bts-trx: fix RXGAIN and POWER parameters on second TRX
    • fix TCH/H interleaving table bit position
    • sysmoBTS 1020/1100: slow power ramp-up on TRX enable
  • osmo-sgsn
    • fix PDP context activation memory allocation bug
    • integrate support for UMTS AKA
  • openggsn
    • fix kernel-gtp tunnel creation/removal for GTPv1
    • release 0.93

March 2017

  • cgit improvements (about page, change-ID hyperlinks, issue hyperlinks)
  • Add README.md files to all our repositories
  • libosmocore
    • migrate gsm 05.03 coding from OsmoBTS to libosmocore
    • fix SQN / SEQ handling in UMTS AKA
    • 3GPP AoIP message encoding/decoding
  • libosmo-abis
    • fix ever-increasing jitter buffer
  • libosmo-netif
    • handle SCTP in in stream server
    • doxygen documentation on stream an datagram modules
  • osmo-bts
    • octphy: CBCH support
    • include MS timing offset in RSL measurements
  • osmo-sgsn
    • handle IMSIs with leading zeroes
  • osmo-bsc
    • fix T3186 encoding in SI13
    • Improved Ericsson OM2000/RBS2000 support
    • new ctrl2soap proxy in python
  • osmo-hlr
    • add CTRL interface
    • fix SQN/SEQ handling in UMTS AKA

April 2017

  • update of coding style for longer line lengths
  • OsmoCon2017 and OsmoDevCon2017
  • libosmocore
  • libosmo-netif
    • fix file descriptor leak in error paths
    • work around linux kenrel SCTP bug with sender_dry_events
    • RTP marker bit support
  • libosmo-sccp
    • Add new [[libosmo-sigtran:]] library with SS7 AS/ASP Link/Linkset handling, M3UA support, new FSM based SCCP implementation
    • Add osmo-stp program
  • osmo-bts
    • inform BSC of PCU disconnect
    • fix measurement reporting period
    • exclude idle channels from uplink measurement processing
    • octphy: measurement reports

May 2017

  • libosmocore
    • fix embedded builds
    • import and generalise 'sercomm' from osmocom-bb into libosmocore
    • SSE optimized convolutional coder
    • fix wrong GSM FR codec SID frame generation
    • doxygen docs for libosmocoding
  • osmo-bsc
    • TS 04.14 mobile station side loop control
  • osmo-bts
    • consistently check all RSL and OML TLVs for minimum length value
    • fix bit-order in every HR codec parameter (spec compliance)
    • OML get/set attribute handling
    • SI2quater support
    • bypass radio link timeout for lab testing
  • osmo-bsc
    • PCU socket support for BSC-colocated PCU for Ericsson RBS2000
    • reelase 1.0.1
  • M3UA and SUA testing as part of jenkins
  • osmo-gsm-tester produces successful runs with NITB as well as new AoIP

June 2017

  • libosmocore
    • doxygen autobrief
    • doxygen documentation for libosmogb
  • osmo-bts
    • use CLOCK_MONOTONIC timer for GSM frame timer
    • PDTCH loopback support

July 2017

  • Plan for openbsc.git split and code review
  • libosmocore
    • PDP charging characteristics in GSUP
    • PRBS sequence generators
    • multicast IP related helper functions
    • 'make release' target
  • libosmo-sccp
    • SCCP address book
  • osmo-bts
    • new virtual BTS osmo-bts-virtual for testing without radio hardware
    • don't send dummy UI frames on unused BCCH slots on TC=5
    • GSMTAP: don't log/send fill frames consisting of only padding
  • osmo-hlr
    • change to default GSUP port 4222

August 2017

  • Support for SMPP Delivery Receipt / GSM03.40 Status Report
  • Jenkins now executing M3UA, SUA and GGSN testsuite
  • libosmocore
    • fix crash in lapd_est_req()
  • libosmo-abis
    • release 0.4.0
  • osmo-bts
    • osmo-bts-trx: fix MS power control loop
    • release 0.6.0
    • support sending/removing SI13 to/from PCU
  • osmo-bsc
    • indicate R99+ MSC in SI3 to enable UMTS AKA over GERAN
  • osmo-sgsn
    • properly report GERAN/UTRAN mode in PDP CTX ACT REQ to GGSN
  • osmo-msc
    • implement IuCS support
    • split openbsc.git into osmo-bsc.git, osmo-msc.git and osmo-sgsn.git
  • openggsn
    • Add IPv6 address pool and IPV6 user (inner) plane support
    • release 0.94

September 2017

  • libosmocore.git
  • osmo-hlr
    • CTRL interface tests
  • openggsn
    • various cleanups and conversion to osmocom style/apis
    • fork osmo-ggsn from openggsn; obsolete openggsn
  • osmo-ggsn
    • release 1.0.0
    • allow enable/disable of G-PDU sequence numbers on ggsn and sgsnemu
    • sgsnemu: Add IPv6 PDP context support

October 2017

  • new 'osmocom:latest' package feed
  • libosmocore.git
  • libosmo-netif.git
    • release 0.1.0 and 0.1.1
  • libosmo-sccp.git
    • release 0.8.0 and 0.8.1
  • osmo-bts
    • don't require gsm_data_shared.[ch] from openbsc.git anymore
    • fix multiple subsequent SI1quater BCCH FILLING from BSC
    • fix AMR DTX FSM name to avoid invalid characters in name/identifier
    • release 0.7.0
  • osmo-bsc
    • release 1.1.0, 1.1.1 and 1.1.2
  • osmo-hlr
    • replace/reimplement CTRL interface commands
    • release 0.1.0
  • osmo-sgsn
    • release 1.2.0
  • osmo-msc
    • release 1.1.0, 1.1.1 and 1.1.2
    • ensure we default to enable TMSI allocation
  • osmo-ggsn
    • release 1.1.0

November 2017

  • LimeSDR support in osmocom package feeds
  • Add SPDX License identifiers in library projects
  • libosmocore
    • fix SSE3 optimization on non-SSSE3 machines
    • fix memory leaks in various unit tests for memory leak ebugging
    • add counter group introspection via CTRL
    • release 0.10.2
  • libosmo-netif
    • fix another file descriptor leak in stream server implementation
  • libosmo-sccp.git
  • osmo-bts
    • don't abort if oversized RTP packets are received
  • osmo-bsc
    • migrate from osmo-bsc_mgcp to osmo-mgw for switching user plane
    • more SI2quater fixes
    • report per-BTS connection state and uptime in VTY + CTRL
  • osmo-ggsn
    • various improvements in kernel GTP support

December 2017

  • libosmocore
    • improvements of XML export for VTY command reference generation
  • osmo-bts
    • put useful information in RTCP SDES
  • osmo-bsc
    • move lots of counters / KPIs from BSC level down to per-BTS granularity
    • reduce T3101 default from 10s to 3s
    • generate mandatory SI2bis and SI2ter rest octets (on RSL; Um was always fine)
    • reduce T3113 from 60s to 10s
    • various new per-BTS counters
  • osmo-msc
    • SMS database related fixes
    • properly set permitted ciphering algorithms in BSSMAP Cipher Mode Command
    • fix GSM-Milenage in presence of 2G keys
  • osmo-ggsn
    • fix byte order in IPCP IPV4 DNS server addresses

Osmocom operates GSM/UMTS network at 34C3

Added by laforge about 6 years ago

A team of Osmocom volunteers has continued the tradition of operating an experimental test network at the annual Chaos Communication Congress 34C3 held in Leipzig (Germany) from December 27 through December 30, 2017.

You can find some more information about this network at the GSM page in the 34C3 wiki and the report by tsaitgaist as part of the 34C3 infrastructure review (from minute 35 onwards of http://live.dus.c3voc.de/relive//34c3/8911/muxed.mp4)

Osmocom thanks
  • Deutsche Telekom for providing us with 3 ARFCN in the 1800 MHz band
  • Bundesnetzagentur for providing the experimental license for UMTS in the 850 MHz band
  • The team of volunteers working on the setup and operation of the network

Outreachy project selects Osmocom Debian Packaging

Added by laforge over 6 years ago

The Outreachy project has selected work on Debian packaging for Osmocom for the Dec 2017 to Mar 2018 Outreachy Interns

You can read the related announcement at the outreachy announce mailing list

Kira "kobr" Obrezkova will be working on this, with Debian developer Thorsten Alteholz as mentor.

Congratulations, Kira! Thanks to Thorsten Alteholz for mentoring as well as to Outreachy and its sponsors!

In Osmocom, we have made tremendous progress during 2016 and 2017 in re-structuring our code base, with a proper 3GPP AoIP interface between BSC and MSC, the split-up of OsmoNITB, the externalization of the HLR and full 3G integration. This has had lots of fall-out in terms of packaging, and it's important to have the new post-NITB architecture packaged properly in upstream Debian.

Outreachy provides three-month internships for people from groups traditionally underrepresented in tech. Interns are paid a stipend of $5,500 and have a $500 travel stipend available to them. Interns work remotely with mentors from Free and Open Source Software (FOSS) communities on projects ranging from programming, user experience, documentation, illustration and graphical design, to data science.

Osmocom "latest" binary packages for Debian + Ubuntu

Added by laforge over 6 years ago

Starting today, Osmocom offers an osmocom:latest package feed with Ubuntu + Debian packages of the latest tagged releases of all Osmocom cellular infrastructure software.

Since early 2016, Osmocom has already been offering Nightly_Builds of the master-of-the-day of each individual projects git repository to enable users to utilize Osmocom software without having to build from source. However, by their very nature, nightly builds are volatile as they track each indiviudal development step. This is interesting for users who are testing latest developments or who need to track fixes introduced only very recently.

The new Latest_Builds only change whenever a new release tag is set in the respective source code repository, i.e. every few weeks to months for a given project. While this is not a long-terms supported release, osmocom:latest is a much more suitable choice for deployments.

Virtual Um layer between BTS and MS

Added by laforge over 6 years ago

During the last couple of days, I've been working on completing, cleaning up and merging a Virtual Um interface (i.e. virtual radio layer) between OsmoBTS and OsmocomBB. After I started with the implementation and left it in an early stage in January 2016, Sebastian Stumpf has been completing it around early 2017, with now some subsequent fixes and improvements by me. The combined result allows us to run a complete GSM network with 1-N BTSs and 1-M MSs without any actual radio hardware, which is of course excellent for all kinds of testing scenarios.

The Virtual Um layer is based on sending L2 frames (blocks) encapsulated via GSMTAP UDP multicast packets. There are two separate multicast groups, one for uplink and one for downlink. The multicast nature simulates the shared medium and enables any simulated phone to receive the signal from multiple BTSs via the downlink multicast group.

In OsmoBTS, this is implemented via the new osmo-bts-virtual BTS model.

In OsmocomBB, this is realized by adding virtphy virtual L1, which speask the same L1CTL protocol that is used between the real OsmcoomBB Layer1 and the Layer2/3 programs such as Mobile and the like.

Now many people would argue that GSM without the radio and actual handsets is no fun. I tend to agree, as I'm a hardware person at heart and I am not a big fan of simulation.

Nevertheless, this forms the basis of all kinds of possibilities for automatized (regression) testing in a way and for layers/interfaces that osmo-gsm-tester cannot cover as it uses a black-box proprietary mobile phone (modem). It is also pretty useful if you're travelling a lot and don't want to carry around a BTS and phones all the time, or get some development done in airplanes or other places where operating a radio transmitter is not really a (viable) option.

If you're curious and want to give it a shot, I've put together some setup instructions at Virtual Um.

Upcoming Osmocom talks at OpenCellular Workshop in Nairobi

Added by laforge almost 7 years ago

We're happy to announce that there will be two talks related to the Osmocom cellular infrastructure projects at the upcoming OpenCellular Workshop held in Nairobi, Kenya on June 19 and June 20.

At the OpenCellular workshop hosted by iHub, technology and business leaders will share their insights and drive discussions around radio design, site planning, business models and many other topics on rural connectivity.

The two talks about Osmocom will be on:

  • Osmocom: Open-source cellular stack for 2G and 3G by Harald Welte, Osmocom and sysmocom co-founder
  • End to end testing of the Osmocom stack by Pau Espin Pedrol, engineer at sysmocom

You can learn more about the event (including venue, schedule, etc.) at https://www.opencellular.ihub.co.ke/

We're looking forward to meeting all parties involved in providing rural communications, as we consider the Osmocom cellular protocol stack a key factor in driving cost and innovation in connecting the next billion mobile subscribers.

Osmocom 3G and 2G Now Support Milenage Authentication

Added by neels about 7 years ago

The Osmocom core network landscape is transforming. Adding full UMTS Authentication support, paired with the 3G developments of the past year, has rocked the boat of the good old OsmoNITB. Here is why:

From previous 3G announcements1, you may already know that the OsmoNITB, the Network-In-The-Box, combines BSC, MSC and HLR (among other things), which has drawbacks. Our MSC code was nicely placed in a separate libmsc, but libmsc never stood on its own. From the start it always had its fingers deep in libbsc data structures. In 3G core networks, there no longer is a BSC, so we needed a clear interface to talk to libmsc, and make it not depend on libbsc. We do have a standalone OsmoBSC, so technically, it could talk to a standalone MSC implementation, instead of having both in the same program. Thus, on the 3G branch, we basically killed off the BSC part of OsmoNITB: the first step towards our brand new standalone OsmoMSC.

But what is a 3G core network without full 3G authentication? UMTS AKA2 was published in Release 1999 of the 3GPP technical specifications (R99) and provides the means for mutual authentication, usually using the Milenage algorithm. Since R99, SIM cards (USIM) not only verify their authenticity to the core network, they also expect the core network to verify its own authenticity, hence the term mutual authentication. 3G USIMs may fall back to pre-R99 authentication, but in general, 3G is expected to be synonymous with UMTS AKA. So far, Osmocom fell short of that.

We have had the Milenage algorithms implemented in libosmocore for years, but our stock OsmoNITB is unable to use it. The main reason: the subscriber database is incapable of managing UMTS AKA tokens. Another shortcoming of this database is that it runs synchronously in the OsmoNITB process: if it is locked or needs a bit longer, our entire core network stalls until the request is completed. And a third clumsy fact is that the OsmoSGSN cannot use OsmoNITB's subscriber database, duplicating the authorization configuration.

It made sense to solve all of these subscriber database problems in one effort, again trimming OsmoNITB, but this time at the other end. Enter stage the brand new OsmoHLR, a separate process managing the subscriber database:

  • OsmoHLR has full UMTS AKA support.
  • It serves GSUP to both our MSC and SGSN.
  • As a separate process, the HLR now runs fully asynchronously.

Of course, the MSC needs to act as a GSUP client to use the separate OsmoHLR server. We needed to teach libmsc to handle GSUP requests asynchronously. In the 3GPP TS specifications, this is handled by the VLR, the Visitor Location Register. So far the VLR existed implicitly within OsmoNITB, basically as an in-RAM storage of subscriber data read directly from the database storage. But the VLR is more than that: it is specified to follow detailed state machines interacting with MSC and HLR, which allow, you guessed it, asynchronous handling of subscriber data. With the HLR moving to a separate process, we needed to implement a VLR proper. A generic finite state machine implementation has been added to libosmocore, and the specs' state machine definitions for the VLR have been implemented, supporting UMTS AKA right from the start.

Adding the new feature set had the logical consequence of profound code changes. In the 3G developments, we have for some time called the OsmoNITB-without-BSC a Circuit-Switched Core Network (OsmoCSCN). As it turns out, OsmoCSCN was merely a working title, it is already gone from code and documentation. Because, what do you get when you also strip from it the HLR? You get an OsmoMSC! (Technically, to accurately call it "OsmoMSC", we would also need to externalize the SMS storage3. It's on the todo list!)

By now it may be clear to you that OsmoNITB will not be around for long. But the transition away from OsmoNITB is not trivial: users have to get familiar with the new OsmoHLR. OsmoNITB's VTY configuration commands for subscriber management no longer exist. And, of course, our OsmoMSC cannot talk to OsmoBSC yet: to fully replace OsmoNITB with OsmoBSC + OsmoMSC + OsmoHLR, we also need a proper A-interface implementation on the OsmoMSC side. Even though OsmoNITB will stick around as a 2G solution until then, the move to an external HLR process in itself is a profound change in admin processes.

In consequence, we have taken yet another profound decision: we will not merge these new developments to openbsc.git's master branch. To clearly mark the move to the new Osmocom core network topology with the VLR-HLR separation and support for 3G by the new OsmoMSC program, we will create a brand new git repository that will be the focus of ongoing development. The current openbsc.git repository will remain as it is; it may see backports in urgent cases, but in essence it will be laid to rest and clearly marked as legacy4. Before we can flip that switch, we still need to sort out some petty details of what should move where, and then agree on a good name for the new repository. Until then, 2G with UMTS AKA support will live on the openbsc.git vlr_2G branch, while 3G with UMTS AKA support will live on the vlr_3G branch. The vlr_2G branch still features an OsmoNITB, but with an external OsmoHLR. The vlr_3G (previously sysmocom/iu) extends the vlr_2G branch to transform OsmoNITB to OsmoMSC and support the IuCS interface.

What about UMTS AKA on packet-switched connections? OsmoSGSN has had a GSUP client for quite some time now5. In fact GSUP was initially named "GPRS Subscriber Update Protocol" -- the G now re-coined to "Generic". Adding UMTS AKA to the OsmoSGSN was a breeze. You don't even need a special branch for that, it's already merged to master.

UMTS AKA is not limited to 3G. Any 2G network that indicates compliance with Release 1999 in the System Information bits can benefit from mutual authentication, and so does Osmocom, now.

Here is an overview of the current landscape:

Legacy 2G without UMTS AKA
openbsc.git master

                   ┌────────────────────────┐
                   │ OsmoNITB               │
  ┌─────┐          ├╌╌╌╌╌┐ ╔═════╤════════╗ │
  │ BTS │ <-Abis-> │ BSC ┆ ║ SMS ┆ subscr ║ │
  │     │          └─────┴─╨─────┴────────╨─┘
  │     │
  │     │          ┌──────────┐         ┌──────────┐
  │ PCU │ <-Gb---> │ OsmoSGSN │ <-GTP-> │ OpenGGSN │
  └─────┘          └──────────┘         └──────────┘

2G with UMTS AKA
openbsc.git vlr_2G

                   ┌─────────────────────┐
                   │ OsmoNITB            │
  ┌─────┐          ├╌╌╌╌╌┐ ╔═════╗ ┌╌╌╌╌╌┤          ┌────────────┐
  │ BTS │ <-Abis-> │ BSC ┆ ║ SMS ║ ┆ VLR │ <-GSUP-> │ OsmoHLR    │
  │     │          └─────┴─╨─────╨─┴─────┘          │            │
  │     │                                           │            │
  │     │          ┌─────────────────────┐          │ ╔════════╗ │
  │ PCU │ <-Gb---> │ OsmoSGSN            │ <-GSUP-> │ ║ subscr ║ │
  └─────┘          │                     │          └─╨────────╨─┘
                   │                     │          ┌──────────┐
                   │                     │ <-GTP--> │ OpenGGSN │
                   └─────────────────────┘          └──────────┘

3G with UMTS AKA
openbsc.git vlr_3G

                                               ┌─────────────────────┐
                                               │ OsmoMSC             │
  ┌───────────┐         ┌───────────┐          │       ╔═════╗ ┌╌╌╌╌╌┤          ┌────────────┐
  │ 3G hNodeB │ <-Iuh-> │ OsmoHNBGW │ <-IuCS-> │       ║ SMS ║ ┆ VLR │ <-GSUP-> │ OsmoHLR    │
  └───────────┘         │           │          └───────╨─────╨─┴─────┘          │            │
                        │           │                                           │            │
                        │           │          ┌─────────────────────┐          │ ╔════════╗ │
                        │           │ <-IuPS-> │ OsmoSGSN            │ <-GSUP-> │ ║ subscr ║ │
                        └───────────┘          │                     │          └─╨────────╨─┘
                                               │                     │          ┌──────────┐
                                               │                     │ <-GTP--> │ OpenGGSN │
                                               └─────────────────────┘          └──────────┘

2G with UMTS AKA and 3G support are not packaged yet. To use them, you need to build the software from source.

  • For OsmoNITB with 2G UMTS AKA, you need to build openbsc.git using the vlr_2G branch.
  • For 3G including UMTS AKA support, refer to the 3G wiki page.

To get assistance, you may ask on the mailing list, or contact for example sysmocom for professional support and development services.

With the help of Osmocom's sponsors and supporters, including but not limited to NLnet and sysmocom, we were able to invest due time and effort and have reached a remarkable milestone: UMTS AKA is now supported on Osmocom 3G as well as 2G networks, using Free Software all the way. Thank you for making this possible!


1 News post: 3G Voice Works


2 Universal Mobile Telecommunications System, Authentication and Key Agreement protocol


3 So far our OsmoMSC has a local sqlite database to manage SMS persistently, which is still a potential source of stalling due to synchronism.


4 Another reason for moving to a new repository: OpenBSC was the early name of the project, but by now the lack of "Osmo" in its name is a source of confusion among new users, since "OpenBSC" wrongly suggests affiliation with the unrelated OpenBTS project.


5 See config item auth-policy remote.

Call for accelerate3g5 Proposals Concluded

Added by neels about 7 years ago

The lucky receivers of a free nano3G femto cell sponsored by sysmocom have been contacted.
The selected projects will be documented at the [[cellular infrastructure:accelerate3g5|accelerate3g5 wiki page]].
If your project has been selected, kindly follow the instructions found there and mark the start of your project.

We are glad to have reached many new community members and are looking forward to seeing your projects evolve.
Here is a huge Thank You to all contestants from the Osmocom community and the sysmocom team!

(21-30/41)

Also available in: Atom

Add picture from clipboard (Maximum size: 48.8 MB)