To see our schedule with full functionality, like timezone conversion and personal scheduling, please enable JavaScript and go here.
11:00
11:00
15min
Welcome to OsmoDevCon 2024
Harald Welte (sysmocom)

Welcome to the event, organizational matters, thanks to sponsors, ...

Meeting Room
11:15
11:15
15min
Brief Introductions

Not every participant knows every other participant; Let's do a quick introduction round.

Meeting Room
12:30
12:30
60min
Operating Open Source Mobile Networks at Scale
Michael Iedema

TBD

Meeting Room
13:30
13:30
90min
Lunch Break
Meeting Room
13:30
90min
Lunch (Fri)

Lunch

Restaurant
15:00
15:00
30min
Codec resolution: AMR rates in 2G, 3G and SIP
Neels Hofmeyr

AMR requires out-of-band negotiation of a set of bitrates.
Let's take a tour of the various ways AMR rates are represented across our technologies.
How do we, in detail, navigate this perilous landscape to select AMR rates so that call legs match?

Meeting Room
15:30
15:30
30min
GPRS support in osmocom-bb
Vadim Yanitskiy, Pau Espin Pedrol

The sysmocom team has been working on implementing an open source GPRS modem for DARC on behalf of a grant by ARDC. This talk will present the current state of the implementation and demonstrate how to use it.

Meeting Room
16:00
16:00
30min
2.024 G
Keith Whyte

It's the year 2024, so that's 2.024K (or G for grand), right?

What does it mean to use 2.024 G data (aka EDGE 2.5G) in the year 2024?

Meeting Room
16:30
16:30
30min
Afternoon break (with snack)
Meeting Room
17:00
17:00
45min
High-performance I/O using io_uring via osmo_io
Andreas Eversberg, Harald Welte (sysmocom)

Traditional socket I/O via read/write/recvfrom/sendto/recvmsg/sendmsg and friends creates a very high system call load. A highly-loaded osmo-bsc spends most of its time in syscall entry and syscall exit.

io_uring is a modern Linux kernel mechanism to avoid this syscall overhead. We have introduced the osmo_ioAPI to libosmocore as a generic back-end for non-blocking/asynchronous I/O and a back-end for our classic osmo_fd / poll approach as well as a new backend for io_uring.

The talk will cover
* a very basic io_uring introduction
* a description of the osmo_io API
* the difficulties porting from osmo_fd to osmo_io
* status of porting various sub-systems over to osmo_io

Meeting Room
17:45
17:45
45min
open5gs status: recent, current and future developments
Sukchan Lee

The talk will provide an overview over
* recent developments in open5gs (2023)
* current areas of work
* outlook / roadmap

Meeting Room
18:30
18:30
45min
OsmoPCU: past, present and future
Pau Espin Pedrol

Summary of the architectural changes done over osmo-pcu code base over last years, what we accomplished and possible next steps.

Meeting Room
19:15
19:15
45min
Proposal for Osmocom non-for-profit
Harald Welte (sysmocom)

Harald will present the general ideas/plans about the Osmocom non-for-profit and share draft bylaws.

We can have some related discussions within this event and throughout the USSE and the next day, as needed. I just thought it's good to get this out of the door early, before we schedule the foundation assembly.

Meeting Room
20:00
20:00
90min
Dinner Break
Meeting Room
20:00
90min
Dinner (Fri)

Dinner

Restaurant
21:30
21:30
150min
Unstructured Supplementary Social Event (USSE) Friday

Chat + Hack + Drink

Meeting Room
10:00
10:00
15min
Schedule Planning/Update (Sat)

Daily Schedule Planning/Update

Meeting Room
10:15
10:15
45min
GlobalPlatform in USIM and eUICC
Harald Welte (sysmocom)

The GlobalPlatform Card Specification and its many amendments play a significant role in most real-world USIM/ISIM, and even more so in eUICC.

The talk will try to provide an overview of what GlobalPlatform does in the telecommunications context.

Topics include:
* security domains
* key loading
* card and application life cycle
* loading and installation of applications
* Secure Channel Protocols SCP02, SCP03

Meeting Room
11:00
11:00
30min
srsRAN Project - Application in UL heavy traffic scenarios
Supreeth Herle

First, we explore the usecase of Uplink heavy traffic scenarios. Then, describe the approach taken in srsRAN Project to meet the needs of these scenarios and finally showcase its working in a demo

Meeting Room
11:30
11:30
30min
My Kamailio Config
Keith Whyte

This talk should maybe be titled "How (NOT) to write a Kamailio Config" :-)

Meeting Room
12:00
12:00
30min
Detailed workings of OTA for SIM/USIM/eUICC
Harald Welte (sysmocom)

Everyone knows that OTA (over the air) access to SIM cards exists for decades, and that somehow authenticated APDUs can be sent via SMS.

But let's look at the OTA architecture in more detail:
* OTA transport (SCP80) over SMS, USSD, CellBroadcast, CAT-TP, BIP
* The new SCP81 transport (HTTPS via TLS-PSK)
* how to address individal applications on the card via their TAR
* common applications like RFM and RAM
* custom applications on the card
* OTA in the world of eUICCs
* talking to the ECASD
* talking to the ISD-R
* talking to the ISD-P/MNO-SD or applications therein

Meeting Room
12:30
12:30
30min
onomondo softsim: A software USIM implementation
Philipp Maier

During 2022, sysmocom was tasked by IoT operator Onomondo to develop a software implementation of a rather fully-featured 3GPP USIM (and ETSI UICC). The idea of this project is that one would run it inside an existing trusted execution environment / secure element of an IoT device, removing the need for a physical chip or slot.

After some grace period, this project was released as open source software in 2024. Let's have a look on what it can do and how it can be used.

Meeting Room
13:00
13:00
30min
Anatomy of the eSIM profile
Harald Welte (sysmocom)

In the eSIM universe, eSIM profiles are the virtualised content of a classic USIM (possibly with ISIM, CSIM, applets, etc.).

Let's have a look what an eSIM profile is:
* how is the data structured / organized?
* what data can be represented in it?
* how to handle features provided by eUICC, how can the eSIM profile mandate some of them?
* how does personalization of eSIM profiles work?

There will be some hands-on navigation through profiles, based on the pySim.esim.saip module.

Meeting Room
13:30
13:30
90min
Lunch Break
Meeting Room
13:30
90min
Lunch (Sat)

Lunch

Restaurant
15:00
15:00
30min
GSMTAPv3 - The long-awaited successor
Shinjo Park

We all know the inherent problems of GSMTAP (v2) as we know it. Can we finally tackle the much desired successor GSMTAPv3 in 2024?

Meeting Room
15:30
15:30
30min
JESD204B : Interfacing to modern ADC/DAC with LiteX
Sylvain Munaut

JESD204B is a pretty common interface to higher speed ADC/DAC used in software defined radio.
I'd like to take a moment to explain how it works and how to use the open-hardware LiteJESD204B core to interface to them.

Meeting Room
16:00
16:00
20min
fx2adc: Using USB oscilloscopes as general purpose ADC
Steve Markgraf

There are several USB oscilloscopes based on the Cypress FX2 + AD9288 (e.g. Hantek 6022BE). So far, most of them were supported by the open source sigrok project, but not for continuous acquisition of samples. This talk will show how those devices can be used to digitize SDR IF signals, and for projects like vhsdecode.

For more information, see:
https://github.com/steve-m/fx2adc

Meeting Room
16:30
16:30
30min
Afternoon break (with snack)
Meeting Room
17:00
17:00
45min
open5gs - feedback from user point of view
Pau Espin Pedrol, Oliver Smith, Alexander Couzens

This is a session in which we will try to summarize some of the experience we've gained with using open5gs over the last few years.

The idea is to sched some light on what we believe could be improved from the user point of view.

Meeting Room
17:45
17:45
30min
Sky130 and TinyTapeout : A quick intro
Sylvain Munaut

Just a few words about the Sky130 Open PDK and associated tooling as well as the related TinyTapeout program

Meeting Room
18:15
18:15
30min
my hobby dabbles at examining network traces
Neels Hofmeyr

Often I get a 3GPP related network trace (pcap), and have to manually gather leads to find out what exactly is going on in it. I have tried different ways to automate the analysis part, and will share what I ended up with.

Meeting Room
20:00
20:00
90min
Dinner Break
Meeting Room
20:00
90min
Dinner (Sat)

Dinner

Restaurant
21:30
21:30
150min
Unstructured Supplementary Social Event (USSE) Saturday

Chat + Hack + Drink

Meeting Room
10:00
10:00
15min
Schedule Planning/Update (Sun)

Daily Schedule Planning/Update

Meeting Room
10:15
10:15
45min
osmo-epdg: The osmocom ePDG for VoWiFi
Pau Espin Pedrol, Alexander Couzens

After working on it on and off during 2023, we finally have a working ePDG in the Osmocom universe. Let's have a look at its internal architecture, how it integrates with other network elements and have a look at a demo and protocol traces.

Meeting Room
11:00
11:00
45min
Introduction to XDP, eBPF and AF_XDP
Harald Welte (sysmocom)

This talk provides a generic introduction to a set of modern Linux kernel technologies:

  • eBPF (extended Berkeley Packet Filter) is a kind of virtual machine that runs sandboxed programs inside the Linux kernel.
  • XDP (eXpress Data Path) is a framework for eBPF that enables high-performance programmable packet processing in the Linux kernel
  • AF_XDP is an address family that is optimized for high-performance packet processing. It allows in-kernel XDP eBPF programs to efficiently pass packets to userspace via memory-mapped ring buffers.

The talk will provide a high-level overview. It should provide some basics before the other/later talks on bpftrace and eUPF.

Meeting Room
11:45
11:45
45min
Using bpftrace to analyze osmocom performance
Harald Welte (sysmocom)

bpftrace is a utility that uses the Linux kernel tracing infrastructure (and eBPF) in order to provide tracing capabilities within the kernel, like uprobe, kprobe, tracepoints, etc.

bpftrace can help us to analyze the performance of [unmodified] Osmocom programs and quickly provide information like, for example:
* Histogram of time spent in a specific system call
* Histogram of any argument or return value of any system call

Meeting Room
12:30
12:30
45min
A tale of OsmoGGSN, libgtpnl, kernel GTP-U and IPv6
Oliver Smith

An overview of how OsmoGGSN, libgtpnl and kernel GTP-U works (now with IPv6), and the new QEMU tests in libgtpnl.

Meeting Room
13:30
13:30
90min
Lunch Break
Meeting Room
13:30
90min
Lunch (Sun)

Lunch

Restaurant
15:00
15:00
30min
Low cost, high speed data acquisition over HDMI
Steve Markgraf

Through a reverse-engineering effort it is possible to (ab)use a combination of cheap USB 3.2 HDMI video grabbers based on the Macrosilicon MS2130 in combination with small FPGA dev boards like the Sipeed Tang nano series (both ~10 USD each) to capture arbitrary data by connecting them via an HDMI cable. This can be used as a low cost, high speed logic analyzer, ADC capture, DIY SDR etc.

Meeting Room
15:30
15:30
30min
First impression of eUPF
Neels Hofmeyr

eUPF is a rather new implementation of a 3GPP User Plane Function. It is implemented in go and uses eBPF and AF_XDP in order to perform all the GTP-U handling inside the Linux kernel.

This talk is about the first impression from setting it up (in combination with open5gs)

Meeting Room
16:30
16:30
30min
Afternoon break (with snack)
Meeting Room
17:00
17:00
120min
CSFB in practice
Keith Whyte

In the spirit of "real world" performance testing, Let's take a look at how CSFB from LTE to 2G (or 3G if someone wants to do that as well) is performing with some example phones, using the osmocom 2G/3G stack and open5gs.

In my experience, this is not working with sufficient reliability. Let try to improve some of this.

Meeting Room
19:00
19:00
60min
Foundation assembly of Osmocom non-for-profit
Harald Welte (sysmocom)

Let's finally get our act together and establish a non-for-profit entity as an umbrella for the Osmocom project. This should help to legally decouple osmocom.org from sysmocom or any individual person like Harald.

Legally, the first step in this process is to hold a foundation assembly with at least 7 individuals. This is what this event is all about.

Meeting Room
20:00
20:00
90min
Dinner Break
Meeting Room
20:00
90min
Dinner (Sun)

Dinner

Restaurant
21:30
21:30
150min
Unstructured Supplementary Social Event (USSE) Sunday

Chat + Hack + Drink

Meeting Room