summaryrefslogtreecommitdiff
path: root/2010/gsm_foss-mt2010/section-openbsc.tex
diff options
context:
space:
mode:
Diffstat (limited to '2010/gsm_foss-mt2010/section-openbsc.tex')
-rw-r--r--2010/gsm_foss-mt2010/section-openbsc.tex200
1 files changed, 200 insertions, 0 deletions
diff --git a/2010/gsm_foss-mt2010/section-openbsc.tex b/2010/gsm_foss-mt2010/section-openbsc.tex
new file mode 100644
index 0000000..0c1b9f4
--- /dev/null
+++ b/2010/gsm_foss-mt2010/section-openbsc.tex
@@ -0,0 +1,200 @@
+\section{OpenBSC}
+
+%\subsection{OpenBSC Introduction}
+
+\begin{frame}{OpenBSC software}
+OpenBSC is a Open Source implementation of (not only) the BSC features
+of a GSM network.
+\begin{itemize}
+ \item Support A-bis interface over E1 and IP
+ \item Support for BTS vendor/model is modular, currently Siemens BS-11 and ip.access nanoBTS
+ \item Multiple BTS models/vendorrs can be mixed!
+ \item Can work as a {\em pure BSC} or as a full {\em network in a box}
+ \item Supports mobility management, authentication, intra-BSC hand-over, SMS, voice calls (FR/EFR/AMR)
+ \item GPRS + EDGE support if combined with OsmoSGSN and OpenGGSN
+\end{itemize}
+\end{frame}
+
+\begin{frame}{OpenBSC}
+\begin{itemize}
+ \item Supports Siemens BS-11 BTS (E1) and ip.access nanoBTS (IP based)
+ \item Has classic 2G signalling, voice and SMS support
+ \item Implements various GSM protocols like
+ \begin{itemize}
+ \item A-bis RSL (TS 08.58) and OML (TS 12.21)
+ \item TS 04.08 Radio Resource, Mobility Management, Call Control
+ \item TS 04.11 Short Message Service
+ \end{itemize}
+ \item Telnet console with Cisco-style interface
+\end{itemize}
+\end{frame}
+
+\begin{frame}{OpenBSC software architecture}
+\begin{itemize}
+ \item Implemented in pure C, similarities to Linux kernel
+ \begin{itemize}
+ \item Linked List handling, Timer API, coding style
+ \end{itemize}
+ \item Single-threaded event-loop / state machine design
+ \item Telnet based command line interface {\em Cisco-style}
+ \item Input driver abstraction (mISDN, Abis-over-IP)
+\end{itemize}
+\end{frame}
+
+\begin{frame}{OpenBSC: GSM network protocols}{The A-bis interface}
+ \begin{description}[Layer 4+]
+ \item[Layer 1] Typically E1 line, TS 08.54
+ \item[Layer 2] A variant of ISDN LAPD with fixed TEI's, TS 08.56
+ \item[Layer 3] OML (Organization and Maintenance Layer, TS 12.21)
+ \item[Layer 3] RSL (Radio Signalling Link, TS 08.58)
+ \item[Layer 4+] transparent messages that are sent to the MS via Um
+ \end{description}
+\end{frame}
+
+%\begin{frame}{OpenBSC: How it all started}
+%\begin{itemize}
+% \item In 2006, I bought a Siemens BS-11 microBTS on eBay
+% \begin{itemize}
+% \item This is GSM900 BTS with 2 TRX at 2W output power (each)
+% \item A 48kg monster with attached antenna
+% \item 200W power consumption, passive cooling
+% \item E1 physical interface
+% \end{itemize}
+% \item I didn't have much time at the time (day job at Openmoko)
+% \item Started to read up on GSM specs whenever I could
+% \item Bought a HFC-E1 based PCI E1 controller, has mISDN kernel support
+% \item Found somebody in the GSM industry who provided protocol traces
+%\end{itemize}
+%\end{frame}
+
+%\begin{frame}{OpenBSC: Timeline}
+%\begin{itemize}
+% \item In November 2008, I started the development of OpenBSC
+% \item In December 2008, we did a first demo at 25C3
+% \item In January 2009, we had full voice call support
+% \item In June 2009, I started with actual security related stuff
+% \item In August 2009, we had the first field test with 2BTS and > 860 phones
+%\end{itemize}
+%\end{frame}
+
+\begin{frame}{OpenBSC: Field Test at HAR2009}
+\begin{figure}[h]
+\subfigure{\includegraphics[width=5cm]{bts_tree_full.jpg}}
+\subfigure{\includegraphics[width=5cm]{openbsc_host.jpg}}
+\end{figure}
+\end{frame}
+
+
+\subsection{OpenBSC Network In The Box}
+
+\begin{frame}{OpenBSC in NITB mode}{Network In a Box Mode}
+The {\tt bsc\_hack} program
+\begin{itemize}
+ \item implements the A-bis interface towards any number of BTS
+ \item provides most typical features of a GSM network in one software
+ \item no need for MSC, AuC, HLR, VLR, EIR, ...
+ \begin{itemize}
+ \item HLR/VLR as SQLite3 table
+ \item Authentication + Ciphering support
+ \item GSM voice calls, MO/MT SMS
+ \item Hand-over between all BTS
+ \item Multiple Location Areas within one BSC
+ \end{itemize}
+\end{itemize}
+\end{frame}
+
+\begin{frame}{OpenBSC NITB features}
+OpenBSC NITB features
+\begin{itemize}
+ \item Run a small GSM network with 1-n BTS and OpenBSC
+ \item No need for MSC/HLR/AUC/...
+ \item No need for your own SIM cards (unless crypto/auth rqd)
+ \item Establish signalling and voice channels
+ \item Make incoming and outgoing voice calls between phones
+ \item Send/receive SMS between phones
+ \item Connect to ISDN PBX or public ISDN via Linux Call Router
+\end{itemize}
+\end{frame}
+
+\begin{frame}{OpenBSC in NITB mode}{Network In a Box Mode}
+The {\tt bsc\_hack} program
+\begin{itemize}
+ \item does not implement any other GSM interfaces apart from A-bis
+ \item no SS7 / TCAP / MAP based protocols
+ \item no integration (roaming) with existing traditional GSM networks
+ \item wired telephony interfacing with ISDN PBX {\tt lcr} (Linux Call Router)
+ \item Has been tested with up to 800 subscribers on 5 BTS
+ \item Intended for R\&D use or private PBX systems
+\end{itemize}
+\end{frame}
+
+\begin{frame}{OpenBSC LCR integration}{Interfacing with wired telephony}
+OpenBSC (NITB mode) can be linked into Linux Call Router ({\tt lcr})
+\begin{itemize}
+ \item OpenBSC is compiled as libbsc.a
+ \item libbsc.a includes full OpenBSC NITB mod code
+ \item linking the library into {\tt lcr} results in GSM {\em line interfaces} to become available inside {\tt lcr}
+ \item OpenBSC no longer takes care of call control, but simply hands everything off to {\tt lcr}
+ \item Dialling plan, etc. is now configure in {\tt lcr} like for any other wired phones
+\end{itemize}
+\end{frame}
+
+\subsection{OpenBSC BSC-only mode}
+
+\begin{frame}{OpenBSC in BSC-only mode}
+The {\tt osmo-bsc} program
+\begin{itemize}
+ \item behaves like a classic GSM BSC
+ \item uses SCCP-Lite (ip.access multipex) to any SoftMSC like ADC
+ \item used in production/commercial deployments (~ 75 BSCs)
+ \item mainly intended to replace proprietary BSC in traditional GSM networks
+\end{itemize}
+\end{frame}
+
+\begin{frame}<handout:0>{OpenBSC}
+ Demonstration
+\end{frame}
+
+\subsection{OpenBSC GPRS support}
+
+\begin{frame}{GPRS and OpenBSC}
+\begin{itemize}
+ \item The BSC doesn't really do anything related to GPRS
+ \item GPRS implemented in separate SGSN and GGSN nodes
+ \item GPRS uses its own Gb interface to RAN, independent of A-bis
+ \item OpenBSC can configure the nanoBTS for GPRS+EDGE support via OML
+ \item Actual SGSN and GGSN implemented as OsmoSGSN and OpenGGSN programs
+\end{itemize}
+\end{frame}
+
+\begin{frame}{OsmoSGSN}
+The Osmocom SGSN program implements
+\begin{itemize}
+ \item basic/minimal SGSN functionality
+ \item the Gb interface (NS/BSSGP/LLC/SNDCP)
+ \item mobility management, session management
+\end{itemize}
+It's a work in progress, many missing features
+\begin{itemize}
+ \item no HLR integration yet
+ \item no paging coordination with MSC/BSC
+ \item no encryption support yet
+\end{itemize}
+\end{frame}
+
+\begin{frame}{OpenGGSN}
+\begin{itemize}
+ \item GPL licensed Linux program implementing GGSN node
+ \item Implements GTP-U protocol between SGSN and GGSN
+ \item User-configurable range/pool of IPv4 addresses for MS
+ \item Uses {\tt tun} device for terminating IP tunnel from MS
+ \item provides GTP implementation as libgtp
+ \item Experimental patches for IPv6 support
+\end{itemize}
+\end{frame}
+
+%\begin{frame}<handout:0>{OpenBSC + OpenGGSN + OsmoSGSN}
+% Demonstration
+%\end{frame}
+
+% FIXME: include slide showing full OpenBSC+OsmoSGSN+OpenGGSN network
personal git repositories of Harald Welte. Your mileage may vary