diff options
Diffstat (limited to '2012/core_net-odc2012/section-implementations.tex')
-rw-r--r-- | 2012/core_net-odc2012/section-implementations.tex | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/2012/core_net-odc2012/section-implementations.tex b/2012/core_net-odc2012/section-implementations.tex new file mode 100644 index 0000000..27d409d --- /dev/null +++ b/2012/core_net-odc2012/section-implementations.tex @@ -0,0 +1,153 @@ + +\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 for ~ 1 year +\end{itemize} +\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}{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}{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} + |