Welcome to the event, organizational matters, thanks to sponsors, ...
Not every participant knows every other participant; Let's do a quick introduction round.
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.
TBD
Lunch
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?
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?
Summary of the architectural changes done over osmo-pcu code base over last years, what we accomplished and possible next steps.
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_io
API 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
The talk will provide an overview over
* recent developments in open5gs (2023)
* current areas of work
* outlook / roadmap
DebugMux is a vendor specific interface/protocol exposed by [Sony] Ericsson phones and modems. Similar to QMI (Qualcomm MSM Interface), it allows debugging the GSM/GPRS/UMTS stack at run-time. In this talk I will demonstrate an open source DebugMux client software and share my findings about this interface, as well as other interfaces working on top of it.
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.
Dinner
Chat + Hack + Drink
Daily Schedule Planning/Update
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
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
This talk should maybe be titled "How (NOT) to write a Kamailio Config" :-)
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
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.
Lunch
Brief talk about the lower layers of osmo-trx-ms, the mobile-station side GSM transceiver
We all know the inherent problems of GSMTAP (v2) as we know it. Can we finally tackle the much desired successor GSMTAPv3 in 2024?
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.
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
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.
Just a few words about the Sky130 Open PDK and associated tooling as well as the related TinyTapeout program
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.
Let's talk about our code review culture.
Are there pitfalls or frustrations and can we resolve them?
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.
Dinner
The demos that should originally have been part of the "GlobalPlatform in USIM/eUICC" talk
Chat + Hack + Drink
Daily Schedule Planning/Update
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.
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.
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
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.
Lunch
An overview of how OsmoGGSN, libgtpnl and kernel GTP-U works (now with IPv6), and the new QEMU tests in libgtpnl.
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)
Small update on our iridium research.
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.
We at Rhizomatica are running the High-frequency Emergency and Rural Multimedia Exchange System (HERMES) already for some years, based on P2P connections in a star topology, using UUCP. Now it is time to move forward. This workshop is focused on the next generation HERMES network stack, which hopefully will allow for worldwide deployment of the network.
Dinner
Chat + Hack + Drink
Daily Schedule Planning/Update
Everybody can quickly talk about / present their favorite tooling and other tips and tricks that make a good development workflow for working on Osmocom related software.
Let's do a quick demo on what we can show in terms of the relatively now CSD (circuit switched data) support in osmocom CNI using some [ancient and new] GSM modems as well as GSM fax machines.
With some luck we might also have GSM <-> ISDN interworking for V.110 at the time of the talk.
Lunch