From fca59bea770346cf1c1f9b0e00cb48a61b44a8f3 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 25 Oct 2015 21:00:20 +0100 Subject: import of old now defunct presentation slides svn repo --- 2012/osmo_erlang-osdc2012/core_net.pdf | Bin 0 -> 576753 bytes 2012/osmo_erlang-osdc2012/core_net.snm | 0 2012/osmo_erlang-osdc2012/core_net.tex | 139 ++++++++++ 2012/osmo_erlang-osdc2012/gsm_network.png | Bin 0 -> 57000 bytes 2012/osmo_erlang-osdc2012/map_messaging.png | Bin 0 -> 89579 bytes 2012/osmo_erlang-osdc2012/map_supervision.png | Bin 0 -> 127410 bytes 2012/osmo_erlang-osdc2012/osi_model.png | Bin 0 -> 67094 bytes 2012/osmo_erlang-osdc2012/section-core_network.tex | 282 +++++++++++++++++++++ 2012/osmo_erlang-osdc2012/section-erlang.tex | 72 ++++++ .../section-implementations.tex | 176 +++++++++++++ 2012/osmo_erlang-osdc2012/tcap_messaging.png | Bin 0 -> 86453 bytes 2012/osmo_erlang-osdc2012/tcap_supervision.png | Bin 0 -> 259177 bytes 12 files changed, 669 insertions(+) create mode 100644 2012/osmo_erlang-osdc2012/core_net.pdf create mode 100644 2012/osmo_erlang-osdc2012/core_net.snm create mode 100644 2012/osmo_erlang-osdc2012/core_net.tex create mode 100644 2012/osmo_erlang-osdc2012/gsm_network.png create mode 100644 2012/osmo_erlang-osdc2012/map_messaging.png create mode 100644 2012/osmo_erlang-osdc2012/map_supervision.png create mode 100644 2012/osmo_erlang-osdc2012/osi_model.png create mode 100644 2012/osmo_erlang-osdc2012/section-core_network.tex create mode 100644 2012/osmo_erlang-osdc2012/section-erlang.tex create mode 100644 2012/osmo_erlang-osdc2012/section-implementations.tex create mode 100644 2012/osmo_erlang-osdc2012/tcap_messaging.png create mode 100644 2012/osmo_erlang-osdc2012/tcap_supervision.png (limited to '2012/osmo_erlang-osdc2012') diff --git a/2012/osmo_erlang-osdc2012/core_net.pdf b/2012/osmo_erlang-osdc2012/core_net.pdf new file mode 100644 index 0000000..8fec0b2 Binary files /dev/null and b/2012/osmo_erlang-osdc2012/core_net.pdf differ diff --git a/2012/osmo_erlang-osdc2012/core_net.snm b/2012/osmo_erlang-osdc2012/core_net.snm new file mode 100644 index 0000000..e69de29 diff --git a/2012/osmo_erlang-osdc2012/core_net.tex b/2012/osmo_erlang-osdc2012/core_net.tex new file mode 100644 index 0000000..61d5f55 --- /dev/null +++ b/2012/osmo_erlang-osdc2012/core_net.tex @@ -0,0 +1,139 @@ +% $Header: /cvsroot/latex-beamer/latex-beamer/solutions/conference-talks/conference-ornate-20min.en.tex,v 1.7 2007/01/28 20:48:23 tantau Exp $ + +\documentclass{beamer} + +\usepackage{url} +\makeatletter +\def\url@leostyle{% + \@ifundefined{selectfont}{\def\UrlFont{\sf}}{\def\UrlFont{\tiny\ttfamily}}} +\makeatother +%% Now actually use the newly defined style. +\urlstyle{leo} + + +% This file is a solution template for: + +% - Talk at a conference/colloquium. +% - Talk length is about 20min. +% - Style is ornate. + + + +% Copyright 2004 by Till Tantau . +% +% In principle, this file can be redistributed and/or modified under +% the terms of the GNU Public License, version 2. +% +% However, this file is supposed to be a template to be modified +% for your own needs. For this reason, if you use this file as a +% template and not specifically distribute it as part of a another +% package/program, I grant the extra permission to freely copy and +% modify this file as you see fit and even to delete this copyright +% notice. + + +\mode +{ + \usetheme{Warsaw} + % or ... + + \setbeamercovered{transparent} + % or whatever (possibly just delete it) +} + + +\usepackage[english]{babel} +% or whatever + +\usepackage[latin1]{inputenc} +% or whatever + +\usepackage{times} +\usepackage[T1]{fontenc} +% Or whatever. Note that the encoding and the font should match. If T1 +% does not look nice, try deleting the line with the fontenc. + + +\title{Erlang SCCP/TCAP/MAP Implementations} + +%\subtitle +%{community based Free / Open Source Software for communications} + +\author{Harald Welte } + +\institute +{gnumonks.org\\hmw-consulting.de\\sysmocom GmbH} +% - Use the \inst command only if there are several affiliations. +% - Keep it simple, no one is interested in your street address. + +\date[] % (optional, should be abbreviation of conference name) +{October 13, 2012 - OSDC.fr - Paris / France} +% - Either use conference name or its abbreviation. +% - Not really informative to the audience, more for people (including +% yourself) who are reading the slides online + +\subject{Communications} +% This is only inserted into the PDF information catalog. Can be left +% out. + + + +% If you have a file called "university-logo-filename.xxx", where xxx +% is a graphic format that can be processed by latex or pdflatex, +% resp., then you can add a logo as follows: + +% \pgfdeclareimage[height=0.5cm]{university-logo}{university-logo-filename} +% \logo{\pgfuseimage{university-logo}} + + + +% Delete this, if you do not want the table of contents to pop up at +% the beginning of each subsection: +%\AtBeginSubsection[] +%{ +% \begin{frame}{Outline} +% \tableofcontents[currentsection,currentsubsection] +% \end{frame} +%} + + +% If you wish to uncover everything in a step-wise fashion, uncomment +% the following command: + +%\beamerdefaultoverlayspecification{<+->} + + +\begin{document} + +\begin{frame} + \titlepage +\end{frame} + +\begin{frame}{Outline} + \tableofcontents[hideallsubsections] + % You might wish to add the option [pausesections] +\end{frame} + + +% Structuring a talk is a difficult task and the following structure +% may not be suitable. Here are some rules that apply for this +% solution: + +% - Exactly two or three sections (other than the summary). +% - At *most* three subsections per section. +% - Talk about 30s to 2min per frame. So there should be between about +% 15 and 30 frames, all told. + +% - A conference audience is likely to know very little of what you +% are going to talk about. So *simplify*! +% - In a 20min talk, getting the main ideas across is hard +% enough. Leave out details, even if it means being less precise than +% you think necessary. +% - If you omit details that are vital to the proof/implementation, +% just say so once. Everybody will be happy with that. + +\include{section-core_network} +\include{section-erlang} +\include{section-implementations} + +\end{document} diff --git a/2012/osmo_erlang-osdc2012/gsm_network.png b/2012/osmo_erlang-osdc2012/gsm_network.png new file mode 100644 index 0000000..c5f6399 Binary files /dev/null and b/2012/osmo_erlang-osdc2012/gsm_network.png differ diff --git a/2012/osmo_erlang-osdc2012/map_messaging.png b/2012/osmo_erlang-osdc2012/map_messaging.png new file mode 100644 index 0000000..49d1dd9 Binary files /dev/null and b/2012/osmo_erlang-osdc2012/map_messaging.png differ diff --git a/2012/osmo_erlang-osdc2012/map_supervision.png b/2012/osmo_erlang-osdc2012/map_supervision.png new file mode 100644 index 0000000..1be3d11 Binary files /dev/null and b/2012/osmo_erlang-osdc2012/map_supervision.png differ diff --git a/2012/osmo_erlang-osdc2012/osi_model.png b/2012/osmo_erlang-osdc2012/osi_model.png new file mode 100644 index 0000000..982e529 Binary files /dev/null and b/2012/osmo_erlang-osdc2012/osi_model.png differ diff --git a/2012/osmo_erlang-osdc2012/section-core_network.tex b/2012/osmo_erlang-osdc2012/section-core_network.tex new file mode 100644 index 0000000..e9948cf --- /dev/null +++ b/2012/osmo_erlang-osdc2012/section-core_network.tex @@ -0,0 +1,282 @@ +\section{The GSM core network} + +\subsection{GSM core network components} + +\begin{frame}{GSM core network components} + \begin{description}[MSC] + \item[MSC] (Mobile Switching Center): The central switch + \item[HLR] (Home Location Register): Database of subscribers + \item[AUC] (Authentication Center): Database of authentication keys + \item[VLR] (Visitor Location Register): For roaming users + \item[EIR] (Equipment Identity Register): To block stolen phones + \end{description} +\end{frame} + +\begin{frame}{GSM network structure} +\begin{description}[BTS] +\item[MSC] Actual call switching and top-level mobility functions. May serve dozens of location areas +\item[VLR] Temporary cache of subscriber data from HLR + TMSI +\item[HLR] Subscriber databases + subscriber location information +\item[AUC] Generation of authentication tuples +\item[SMSC] SMS Service Centre, store+forward for SMS +\end{description} +\end{frame} + +\begin{frame}{GSM core network integration} +\begin{itemize} + \item VLR often integrated into MSC + \item AUC often integrated with AUC + \item integration so common, many graphs/diagrams are actually +not 100\% correct +\end{itemize} +\end{frame} + +\begin{frame}{GSM Network Structure} +\includegraphics[width=100mm]{gsm_network.png} +\end{frame} + +\begin{frame}{GSM network interfaces} + \begin{description}[D] + \item[C] Interface between GMSC and HLR + \item[D] Interface between MSC and HLR + \item[E] Interface between MSC and MSC + \end{description} +All of them based on MAP, so C/D/E not commonly distinguished +\end{frame} + +\subsection{GSM core network protocols} + +\begin{frame}{core network protocol stack} +Traditional telephony based on SS7 / CS7, GSM too +\begin{itemize} + \item Lower layers (MTP2/MTP3) re-used + \item ISUP used for actual call control signalling + \item SCCP for routing / GTT + \item TCAP for transaction supprt + \item MAP for actual GSM related signalling +\end{itemize} +\end{frame} + +\begin{frame}{SS7 networks} +\begin{itemize} + \item STP - Signalling Transfer Point + \begin{itemize} + \item {\em Router} for SCCP + \item performs GTT (see below) + \end{itemize} + \item SCP - Signalling Control Point + \begin{itemize} + \item {\em End-node} like MSC/HLR + \item SCP has GT, PC, .. + \end{itemize} +\end{itemize} +\end{frame} + +\begin{frame}{SS7 addresses} +\begin{itemize} + \item Point Code (PC) + \begin{itemize} + \item typically unique within PLMN / country + \end{itemize} + \item Global Title (GT) + \begin{itemize} + \item world-wide unique address + \item translated into PC by GTT at STP + \end{itemize} + \item Subsystem Number (SSN) + \begin{itemize} + \item logical function address inside network (MSC, VLR, HLR, ...) + \item not used on international links + \end{itemize} +\end{itemize} +\end{frame} + +\begin{frame}{SS7 GTT (Global Title Translation)} +Global Title Translation +\begin{itemize} + \item can happen at any STP + \item translates a Destination GT into new destination address + \item new dest address can be any address, such as + \begin{itemize} + \item new global title (GT) + \item point code (PC) + \item sub-system number (SSN) + \end{itemize} + \item GTT rules explicitly configured by operator, e.g. + \begin{itemize} + \item prefix or range based match + \item (inter)nationalize numbering plan + \item add digits at beginning or end + \end{itemize} +\end{itemize} +\end{frame} + +\begin{frame}{SS7 physical layer} +\begin{itemize} + \item{classic SS7 signalling over TDM circuits} + \begin{itemize} + \item E1 timeslot (64kbps) + \item multiple E1 timeslots (N*64kbps) + \item MTP Level 2 / MTP Level 3 + \end{itemize} + \item modern networks use SIGTRAN + \begin{itemize} + \item IP as network layer replaces E1 lines + \item SCTP on top(no TCP/UDP!) + \item many different SIGTRAN stacking options + \end{itemize} + \item some vendor-proprietary protocols like SCCPlite +\end{itemize} +\end{frame} + +\begin{frame}{SIGTRAN stacking options} +SIGTRAN != SIGTRAN +\begin{itemize} + \item IP/SCTP/M2PA/MTP2/MTP3/SCCP/TCAP/MAP + \item IP/SCTP/M2UA/MTP3/SCCP/TCAP/MAP + \item IP/SCTP/M3UA/SCCP/TCAP/MAP + \item IP/SCTP/SUA/TCAP/MAP +\end{itemize} +\end{frame} + +\begin{frame}{SCCP} +SCCP takes care of +\begin{itemize} + \item Global Title based addressing + \item Global Title Translation + \item connection-oriented or connectionless semantics + \item GSM core network interfaces with MAP/CAP only use +connection-less UDT service +\end{itemize} +\end{frame} + +\begin{frame}{TCAP} +\begin{itemize} + \item Idea: decouple transaction logic from actual application + \item transaction semantics can be used by multiple higher-layer protocols + \item state machines on both sides maintained outside of application + \item protocol specified in ASN.1, BER encoding +\end{itemize} +\end{frame} + +\begin{frame}{MAP - Mobile Application Part} +\begin{itemize} + \item used between all classic GSM core network components + \item application protocol on top of TCAP + \item protocol specified in ASN.1, BER encoding +\end{itemize} +\end{frame} + +\begin{frame}{CAP - Camel Application Part} +\begin{itemize} + \item used for CAMEL entities (gsmSCF, gsmSSF, gprsSSF, gsmSRF) + \item application protocol on top of TCAP + \item protocol specified in ASN.1, BER encoding +\end{itemize} +\end{frame} + +%\section{Roaming interfaces} +% +%\subsection{Roaming introduction} +% +%\begin{frame}{Introduction to Roaming} +%Roaming enables subscribers to use other operators' networks +%\begin{itemize} +% \item Home Network is called HPLMN +% \item Visited Network is called VPLMN +% \item Roaming requres between HPLMN and VPLMN +% \begin{itemize} +% \item Roaming agreement (contract) +% \item SS7 connectivity (ISUP/MAP/CAP) +% \item IP connectivity (for packet data) +% \end{itemize} +%\end{itemize} +%\end{frame} +% +%\begin{frame}{Roaming principle} +%\begin{itemize} +% \item MS, MSC, VLR and SGSN are in VPLMN +% \item HLR, AUC, GMSC and GGSN are in HPLMN +% \item they talk to each other via MAP, just like in non-roaming case +% \item selection of HPLMN based on IMSI of subscriber +% \item non-roaming caes: HPLMN == VPLMN +%\end{itemize} +%\end{frame} +% +%\begin{frame}{MVNO - Mobile Virtual Network Operators} +%A MVNO setup is a special case of roaming +%\begin{itemize} +% \item MNO operates PLMN with RAN and CN +% \item MVNO operates HPLMN without RAN (BSC/BTS) +% \item MVNO subscribers always roam into MNO network +%\end{itemize} +%\end{frame} +% +%\subsection{Roaming transactions} +%FIXME + +%\subsection{Traditional Billing} +% +%\begin{frame}{Traditional Billing} +%Initially, GSM was designed for business users +%\begin{itemize} +% \item Billing was always post-paid +% \item Each PLMN simply logs all call/sms +% \item Logs called CDR (Call Data Record) +% \item At the end of the month, invoices are generated +% \item CDR records are exchanged between roaming partners +%\end{itemize} +%\end{frame} +% +%\begin{frame}{Billing for Roaming} +%\begin{itemize} +% \item CDR files often vendor-specific / custom +% \item GSMA established a standard called TAP +% \item TAP is the standard for exchange of billing records +%between roaming partners +% \item Summary: Intra-PLMN: CDR, Inter-PLMN: TAP +% \item TAP has many versions/generations +% \item Specified in ASN.1 +%\end{itemize} +%\end{frame} +% +%\begin{frame}{The advent of pre-paid} +%\begin{itemize} +% \item At some point, users wanted pre-paid services +% \item Difficult to implement in traditional billing architecture +% \item In HPLMN, every operator could come up with custom +%solution +% \item Thus, pre-paid initially not supported in roaming +% \item In the early pre-paid days, there were lots of ways to exceed pre-paid balance +%\end{itemize} +%\end{frame} +% +%\begin{frame}{Pre-paid required fundamental changes} +%\begin{itemize} +% \item The pre-paid balance / account is maintained in HPLMN +% \item HPLMN needs much more control over user while roaming +% \item A new protocol (CAMEL) was introduced, as well as new +%entities in the network +% \item Lots of changes all over netowrk elements (MSC, SGSN, HLR) +%\end{itemize} +%\end{frame} +% +%\subsection{CAMEL} +% +%\begin{frame}{CAMEL - Customized Applications Mobile Enhanced Logic} +%\begin{itemize} +% \item gsmSCF - Service Control Function +% \begin{itemize} +% \item receives per-subscriber specific config from HLR +%(CSI: CAMEL Subscription Information) +% \item remotely controls call, SMS, etc. processing +% \end{itemize} +% \item gsmSSF - Service Switching Function +% \begin{itemize} +% \item built into MSC +% \item hooks / triggers at key state changes +% \item allows gsmSCF to alter/override/abort transactions +% \end{itemize} +% \item gprsSSF provides similar feature inside SGSN +%\end{itemize} +%\end{frame} diff --git a/2012/osmo_erlang-osdc2012/section-erlang.tex b/2012/osmo_erlang-osdc2012/section-erlang.tex new file mode 100644 index 0000000..1af42e2 --- /dev/null +++ b/2012/osmo_erlang-osdc2012/section-erlang.tex @@ -0,0 +1,72 @@ +\section{Erlang in Osmocom} + +\begin{frame}{Introducing Erlang} +Erlang/OTP +\begin{itemize} + \item is a functional, non-OO programming language + \item promotes some principles that make it easier to write secure code + \item was crreated by Ericsson for Telecom signalling applications + \item has excellent built-in ASN.1 compiler + runtime support + \item has {\tt gen\_fsm} support for well-defined finit state machines +\end{itemize} +\end{frame} + +\begin{frame}{Safe and secure programming} +Erlang enables and encourages to +\begin{itemize} + \item avoid defensive programming, rather fail-fast and raise exceptions + \item avoid having global/shared state as everything is pass-by-value, not reference + \item avoid accidential/improper reuse of variables by single assignment + \item not have to worry about memory allocation problems like + buffer overflows / double-free +\end{itemize} +\end{frame} + +\begin{frame}{Erlang headaches} +If you're used to C/C++ or even Java, Erlang will give you headaches, +too. +\begin{itemize} + \item you have no interative loops like for/while, but always + have to use (tail) recursion + \item you have to type a lot when accessing members of records + (structures), as you need to specify the type name on + every access + \item avoiding global state may be useful, but very hard at + times +\end{itemize} +\end{frame} + +\begin{frame}{Reasons to use Erlang in Osmocom} +\begin{itemize} + \item best ASN.1 support found as Free Software for any + programming language + \begin{itemize} + \item TCAP/MAP use ASN.1 Information Object Classes, + which e.g. asn1c doesn't support + \item supports PER aligned and unaligned, required in + RANAP/RRC for UMTS. + \item very strict validation of input data, including + range checks of integer values against + constraings in ASN.1, etc. + \end{itemize} + \item built-in support for finite state machines + \item Erlang {\em many processes and message passing} model 1:1 + match to ITU TCAP specification. +\end{itemize} +\end{frame} + +\begin{frame}{Erlang in Osmocom projets} +\begin{itemize} + \item all current Osmocom developers are C (possibly C++) developers + \item nobody really likes to use some bloatet inefficient and + unknown programming language (compared to C...) + \item almost every other sub-project of Osmocom is implemented + in pure C + \item apart from my projects described here, Erlang hasn't + really picked up with other developers + \item Erlang wasn't chosen because we love it, but because it + makes techical sense in some specific applications, + compared to alternavies requiring to buy/user + porprietary ASN.1 tools or write our own +\end{itemize} +\end{frame} diff --git a/2012/osmo_erlang-osdc2012/section-implementations.tex b/2012/osmo_erlang-osdc2012/section-implementations.tex new file mode 100644 index 0000000..1c695ac --- /dev/null +++ b/2012/osmo_erlang-osdc2012/section-implementations.tex @@ -0,0 +1,176 @@ + +\section{Core Network protocol implementations} + +\subsection{Erlang implementations} + +\begin{frame}{Erlang osmo\_ss7} +\begin{itemize} + \item Signalling link management + \item Signalling linkset management + \item MTP-level routing + \item Protocol codecs + \begin{itemize} + \item BSSMAP, ISUP, M2PA, M2UA, M3UA, MTP3, SCCP, SUA + \end{itemize} + \item Various different protocol implementations + \begin{itemize} + \item SIGTRAN: M3UA, M2PA, M2UA, SUA + \item IPA multiplex / SCCP lite + \end{itemize} +\end{itemize} +\end{frame} + +\begin{frame}{Erlang osmo\_sccp} +SCCP implementation, typcially used on top of osmo\_sccp +\begin{itemize} + \item SCCP connectionless (SCLC) + \item SCCP connection oriented (SCOC) + \item SCCP routing / gtt (SCRC) + \item applications can bind to SSN numbers +\end{itemize} +\end{frame} + +\begin{frame}{Erlang osmo\_map} +\begin{itemize} + \item Not a full-blown MAP end-user implementation + \item Primarily a set of integrated TCAP+MAP codec + \item Used for protocol analysis/dissection + \item Used for transparent MAP mangling engines + \item Think of FTP/IRC NAT in TCP/IP, where you need to modify + addresses contained in the payload (not header) of the + messages +\end{itemize} +\end{frame} + +\begin{frame}{Erlang mgw\_nat} +\begin{itemize} + \item Strange transparent SCCP/TCAP/MAP gateway + \item Supports all kinds of strange operations + \begin{itemize} + \item SCCP Global Title Masquerade (dynamic GT pool) + \item Replace VLR/MSC GT inside MAP payload + \item Supported Camel Phase patching + \item 1:1 IMSI mapping in MAP payload + \item ISUP GT mangling + \item national/international numbering plan conversions + \end{itemize} + \item Used in multiple production installations in real operator + core network for ~ 2 years +\end{itemize} +\end{frame} + +\begin{frame}{Erlang signerl TCAP} +\includegraphics[width=60mm]{osi_model.png} +\end{frame} + +\begin{frame}{Erlang signerl TCAP} +\begin{itemize} + \item Full ITU-T TCAP implementation + \item 1:1 mapping of ITU-T TCAP state machines to Erlang gen\_fsm + \begin{itemize} + \item DHA - Dialogue Handling + \item TSM - Transaction State Machine + \item ISM - Invocation State Machine + \end{itemize} + \item 1:1 mapping of other ITU-T entities to Erlang gen\_server + \begin{itemize} + \item CCO - Componen Coordinator + \item TCO - Transaction Coordinator + \end{itemize} + \item Some old/incomplete/bit-rotten ANSI TCAP code +\end{itemize} +\end{frame} + +\begin{frame}{Message flow among signerl TCAP Processes} +\includegraphics[width=100mm]{tcap_messaging.png} +\end{frame} + +\begin{frame}{Erlang supervisor hierarchy in signerl TCAP} +\includegraphics[width=70mm]{tcap_supervision.png} +\end{frame} + + +\begin{frame}{Erlang signerl TCAP} +\begin{itemize} + \item properly implements the N-primitives to lower level + \item properly implements all TR-primitives internally (TC / TR + split) + \item properly implements all TC-primitives towards the TCAP user + \item Can be used on top of osmo\_sccp + \item Can be used directly by application servers or via signerl MAP +\end{itemize} +\end{frame} + +\begin{frame}{Erlang signerl MAP} +\begin{itemize} + \item Interface between MAP primitives and TCAP primitives + \item Provides very little benefit over using TCAP directly + \item Not used much so far, I always use TCAP user API instead +\end{itemize} +\end{frame} + + +\begin{frame}{Message flow among signerl MAP Processes} +\includegraphics[width=100mm]{map_messaging.png} +\end{frame} + +\begin{frame}{Erlang supervisor hierarchy in signerl TCAP} +\includegraphics[width=90mm]{map_supervision.png} +\end{frame} + +\begin{frame}{Erlang application servers} +\begin{itemize} + \item No complete implementation of any GSM core network node + yet + \item Lots of testing / experimentation code for generating + single MAP transactions against existing/proprietary + core network components + \item Work on a HLR based on Mnesia DB should be starting soon +\end{itemize} +\end{frame} + +%\subsection{C implementations} +% +%\begin{frame}{libosmo-sccp} +%\begin{itemize} +% \item minimalistic SCCP implementation +% \item only used inside IPA multiplex / SCCP lite +% \item no retransmissions / GT routing / translation +% \item stable, used in production (osmo-bsc) +%\end{itemize} +%\end{frame} +% +%\begin{frame}{libosmo-asn1-tcap} +%\begin{itemize} +% \item asn1c-generated TCAP codec +% \item almost no manual code +% \item built as shared library +%\end{itemize} +%\end{frame} +% +%\begin{frame}{libosmo-tcap} +%\begin{itemize} +% \item First attempt of Harald to implement TCAP (before Erlang) +% \item 1:1 mapping of ITU-T TCAP components to C source files +% \item Heavily based on asn1c-generated data structures +% \item Uses libosmo-asn1-tcap +%\end{itemize} +%\end{frame} +% +%\begin{frame}{libosmo-asn1-map} +%\begin{itemize} +% \item asn1c-generated MAP code +% \item almost no manual code +% \item built as shared library +%\end{itemize} +%\end{frame} +% +%\begin{frame}{Future of C implementation?} +%\begin{itemize} +% \item unclear at this point +% \item first finish testing/deploying Erlang implementations +% \item possible use case for Gc interface of osmo-sgsn (SGSN-HLR) +% \item Do we interface C code with Erlang MAP or maintain C implementation in parallel? +%\end{itemize} +%\end{frame} + diff --git a/2012/osmo_erlang-osdc2012/tcap_messaging.png b/2012/osmo_erlang-osdc2012/tcap_messaging.png new file mode 100644 index 0000000..25a644f Binary files /dev/null and b/2012/osmo_erlang-osdc2012/tcap_messaging.png differ diff --git a/2012/osmo_erlang-osdc2012/tcap_supervision.png b/2012/osmo_erlang-osdc2012/tcap_supervision.png new file mode 100644 index 0000000..4199fd0 Binary files /dev/null and b/2012/osmo_erlang-osdc2012/tcap_supervision.png differ -- cgit v1.2.3