diff options
Diffstat (limited to '2012/osmo_erlang-osdc2012/section-implementations.tex')
-rw-r--r-- | 2012/osmo_erlang-osdc2012/section-implementations.tex | 176 |
1 files changed, 176 insertions, 0 deletions
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} + |