<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>LaForge's home page (Posts about osmodevcon)</title><link>https://laforge.gnumonks.org/</link><description></description><atom:link href="https://laforge.gnumonks.org/blog/tags/osmodevcon.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><lastBuildDate>Thu, 24 Oct 2024 20:08:47 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>OsmoDevCon 2024: "Introduction to XDP, eBPF and AF_XDP"</title><link>https://laforge.gnumonks.org/blog/20240505-osmodevcon2024_xdp_ebpf_and_af_xdp/</link><dc:creator>Harald Welte</dc:creator><description>&lt;p&gt;I've presented a talk
&lt;em&gt;Introduction to XDP, eBPF and AF_XDP&lt;/em&gt;
as part of the
&lt;a class="reference external" href="https://osmocom.org/projects/osmo-dev-con/wiki/OsmoDevCon2024"&gt;OsmoDevCon 2024&lt;/a&gt; conference on Open Source Mobile Communications.&lt;/p&gt;
&lt;p&gt;This talk provides a generic introduction to a set of modern Linux kernel technologies:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://ebpf.io/what-is-ebpf"&gt;eBPF&lt;/a&gt; (extended Berkeley Packet Filter) is a kind of virtual machine that runs sandboxed programs inside the Linux kernel.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://docs.cilium.io/en/latest/bpf/progtypes/#xdp"&gt;XDP&lt;/a&gt; (eXpress Data Path) is a framework for eBPF that enables high-performance programmable packet processing in the Linux kernel&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://www.kernel.org/doc/html/next/networking/af_xdp.html"&gt;AF_XDP&lt;/a&gt; is an &lt;em&gt;address family&lt;/em&gt; 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.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The talk provides a high-level overview. It should provide some basics before the other/later talks on bpftrace and eUPF.&lt;/p&gt;
&lt;p&gt;You can find the video recording at
&lt;a class="reference external" href="https://media.ccc.de/v/osmodevcon2024-204-introduction-to-xdp-ebpf-and-afxdp"&gt;https://media.ccc.de/v/osmodevcon2024-204-introduction-to-xdp-ebpf-and-afxdp&lt;/a&gt;&lt;/p&gt;</description><category>linux</category><category>osmocom</category><category>osmodevcon</category><guid>https://laforge.gnumonks.org/blog/20240505-osmodevcon2024_xdp_ebpf_and_af_xdp/</guid><pubDate>Sat, 04 May 2024 16:00:00 GMT</pubDate></item><item><title>OsmoDevCon 2024: "Using bpftrace to analyze osmocom performance"</title><link>https://laforge.gnumonks.org/blog/20240505-osmodevcon2024_using_bpftrace_to_analyze_osmocom_performance/</link><dc:creator>Harald Welte</dc:creator><description>&lt;p&gt;I've presented a talk
&lt;em&gt;Using bpftrace to analyze osmocom performance&lt;/em&gt;
as part of the
&lt;a class="reference external" href="https://osmocom.org/projects/osmo-dev-con/wiki/OsmoDevCon2024"&gt;OsmoDevCon 2024&lt;/a&gt; conference on Open Source Mobile Communications.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/bpftrace/bpftrace"&gt;bpftrace&lt;/a&gt; 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.&lt;/p&gt;
&lt;p&gt;bpftrace can help us to analyze the performance of [unmodified] Osmocom programs and quickly provide information like, for example:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Histogram of time spent in a specific system call&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Histogram of any argument or return value of any system call&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can find the video recording at
&lt;a class="reference external" href="https://media.ccc.de/v/osmodevcon2024-203-using-bpftrace-to-analyze-osmocom-performance"&gt;https://media.ccc.de/v/osmodevcon2024-203-using-bpftrace-to-analyze-osmocom-performance&lt;/a&gt;&lt;/p&gt;</description><category>linux</category><category>osmocom</category><category>osmodevcon</category><guid>https://laforge.gnumonks.org/blog/20240505-osmodevcon2024_using_bpftrace_to_analyze_osmocom_performance/</guid><pubDate>Sat, 04 May 2024 16:00:00 GMT</pubDate></item><item><title>OsmoDevCon 2024: "Anatomy of the eSIM Profile"</title><link>https://laforge.gnumonks.org/blog/20240504-osmodevcon2024_anatomy_of_the_esim_profile/</link><dc:creator>Harald Welte</dc:creator><description>&lt;p&gt;I've presented a talk
&lt;em&gt;Anatomy of the eSIM Profile&lt;/em&gt;
as part of the
&lt;a class="reference external" href="https://osmocom.org/projects/osmo-dev-con/wiki/OsmoDevCon2024"&gt;OsmoDevCon 2024&lt;/a&gt; conference on Open Source Mobile Communications.&lt;/p&gt;
&lt;p&gt;In the eSIM universe, &lt;em&gt;eSIM profiles&lt;/em&gt; are the virtualised content of a classic USIM (possibly with ISIM, CSIM, applets, etc.).&lt;/p&gt;
&lt;p&gt;Let's have a look what an eSIM profile is:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;how is the data structured / organized?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;what data can be represented in it?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;how to handle features provided by eUICC, how can the eSIM profile mandate some of them?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;how does personalization of eSIM profiles work?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is also hands-on navigation through profiles, based on the &lt;cite&gt;pySim.esim.saip&lt;/cite&gt; module.&lt;/p&gt;
&lt;p&gt;You can find the video recording at
&lt;a class="reference external" href="https://media.ccc.de/v/osmodevcon2024-174-anatomy-of-the-esim-profile"&gt;https://media.ccc.de/v/osmodevcon2024-174-anatomy-of-the-esim-profile&lt;/a&gt;&lt;/p&gt;</description><category>osmocom</category><category>osmodevcon</category><guid>https://laforge.gnumonks.org/blog/20240504-osmodevcon2024_anatomy_of_the_esim_profile/</guid><pubDate>Fri, 03 May 2024 16:00:00 GMT</pubDate></item><item><title>OsmoDevCon 2024: "Detailed workings of OTA for SIM/USIM/eUICC"</title><link>https://laforge.gnumonks.org/blog/20240504-osmodevcon2024_detailed_workings_of_ota_for_sim/</link><dc:creator>Harald Welte</dc:creator><description>&lt;p&gt;I've presented a talk
&lt;em&gt;Detailed workings of OTA for SIM/USIM/eUICC&lt;/em&gt;
as part of the
&lt;a class="reference external" href="https://osmocom.org/projects/osmo-dev-con/wiki/OsmoDevCon2024"&gt;OsmoDevCon 2024&lt;/a&gt; conference on Open Source Mobile Communications.&lt;/p&gt;
&lt;p&gt;Everyone knows that OTA (over the air) access to SIM cards exists for decades, and that somehow authenticated APDUs can be sent via SMS.&lt;/p&gt;
&lt;p&gt;But let's look at the OTA architecture in more detail:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;OTA transport (SCP80) over SMS, USSD, CellBroadcast, CAT-TP, BIP&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &lt;em&gt;new&lt;/em&gt; SCP81 transport (HTTPS via TLS-PSK)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;how to address individal applications on the card via their TAR&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;common applications like RFM and RAM&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;custom applications on the card&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;OTA in the world of eUICCs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;talking to the ECASD&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;talking to the ISD-R&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;talking to the ISD-P/MNO-SD or applications therein&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can find the video recording at
&lt;a class="reference external" href="https://media.ccc.de/v/osmodevcon2024-175-detailed-workings-of-ota-for-sim-usim-euicc"&gt;https://media.ccc.de/v/osmodevcon2024-175-detailed-workings-of-ota-for-sim-usim-euicc&lt;/a&gt;&lt;/p&gt;</description><category>osmocom</category><category>osmodevcon</category><guid>https://laforge.gnumonks.org/blog/20240504-osmodevcon2024_detailed_workings_of_ota_for_sim/</guid><pubDate>Fri, 03 May 2024 16:00:00 GMT</pubDate></item><item><title>OsmoDevCon 2024: "GlobalPlatform in USIM and eUICC"</title><link>https://laforge.gnumonks.org/blog/20240504-osmodevcon2024_globalplatform_in_usim_and_euicc/</link><dc:creator>Harald Welte</dc:creator><description>&lt;p&gt;I've presented a talk
&lt;em&gt;GlobalPlatform in USIM and eUICC&lt;/em&gt;
as part of the
&lt;a class="reference external" href="https://osmocom.org/projects/osmo-dev-con/wiki/OsmoDevCon2024"&gt;OsmoDevCon 2024&lt;/a&gt; conference on Open Source Mobile Communications.&lt;/p&gt;
&lt;p&gt;The GlobalPlatform Card Specification and its many amendments play a significant role in most real-world USIM/ISIM, and even more so in eUICC.&lt;/p&gt;
&lt;p&gt;The talk will try to provide an overview of what GlobalPlatform does in the telecommunications context.&lt;/p&gt;
&lt;p&gt;Topics include:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;security domains&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;key loading&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;card and application life cycle&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;loading and installation of applications&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Secure Channel Protocols SCP02, SCP03&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can find the video recording at
&lt;a class="reference external" href="https://media.ccc.de/v/osmodevcon2024-173-globalplatform-in-usim-and-euicc"&gt;https://media.ccc.de/v/osmodevcon2024-173-globalplatform-in-usim-and-euicc&lt;/a&gt;&lt;/p&gt;</description><category>osmocom</category><category>osmodevcon</category><guid>https://laforge.gnumonks.org/blog/20240504-osmodevcon2024_globalplatform_in_usim_and_euicc/</guid><pubDate>Fri, 03 May 2024 16:00:00 GMT</pubDate></item><item><title>OsmoDevCon 2024: "High-performance I/O using io_uring via osmo_io"</title><link>https://laforge.gnumonks.org/blog/20240503-osmodevcon2024_high_performance_io_using_io_uring_via_osmo_io/</link><dc:creator>Harald Welte</dc:creator><description>&lt;p&gt;I've co-presented a talk (together with &lt;a class="reference external" href="https://eversberg.eu/"&gt;Andreas Eversberg&lt;/a&gt; &lt;em&gt;High-performance I/O using io_uring via osmo_io&lt;/em&gt;
as part of the
&lt;a class="reference external" href="https://osmocom.org/projects/osmo-dev-con/wiki/OsmoDevCon2024"&gt;OsmoDevCon 2024&lt;/a&gt; conference on Open Source Mobile Communications.&lt;/p&gt;
&lt;p&gt;Traditional socket I/O via &lt;cite&gt;read/write/recvfrom/sendto/recvmsg/sendmsg&lt;/cite&gt; 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.&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;io_uring&lt;/cite&gt; is a modern Linux kernel mechanism to avoid this syscall overhead. We have introduced the &lt;cite&gt;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&lt;/cite&gt; / &lt;cite&gt;poll&lt;/cite&gt; approach as well as a new backend for &lt;cite&gt;io_uring&lt;/cite&gt;.&lt;/p&gt;
&lt;p&gt;The talk will cover&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;a very basic io_uring introduction&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;a description of the osmo_io API&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;the difficulties porting from osmo_fd to osmo_io&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;status of porting various sub-systems over to osmo_io&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can find the video recording at
&lt;a class="reference external" href="https://media.ccc.de/v/osmodevcon2024-209-high-performance-i-o-using-iouring-via-osmoio"&gt;https://media.ccc.de/v/osmodevcon2024-209-high-performance-i-o-using-iouring-via-osmoio&lt;/a&gt;&lt;/p&gt;</description><category>linux</category><category>osmocom</category><category>osmodevcon</category><guid>https://laforge.gnumonks.org/blog/20240503-osmodevcon2024_high_performance_io_using_io_uring_via_osmo_io/</guid><pubDate>Thu, 02 May 2024 16:00:00 GMT</pubDate></item></channel></rss>