From 9d0e3a7f2d9ce0cca634a0bf9dbf94327f680408 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Thu, 7 Dec 2017 19:30:38 +0100 Subject: OsmoBSC: update overview to explain both SCCPlite and SCCP/M3UA Change-Id: I1f105b3febd4f99f4491e217ff1b1d0b28912980 --- doc/manuals/chapters/overview.adoc | 168 ++++++++++++++++++++----------------- 1 file changed, 91 insertions(+), 77 deletions(-) diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc index 3bb22ccc0..9b619fb24 100644 --- a/doc/manuals/chapters/overview.adoc +++ b/doc/manuals/chapters/overview.adoc @@ -7,18 +7,65 @@ aspects of configuring and running the OsmoBSC. [[intro_overview]] === About OsmoBSC -OsmoBSC is one particular version of the OpenBSC software suite. +OsmoBSC is the Osmocom implementation of a Base Station Controller. It +implements: -Unlike the highly integrated OmsoNITB, OsmoBSC implements a more classic -GSM Base Station Controller with A-bis interface towards BTSs and A -interface towards a MSC. +- an 'A-bis' interface towards BTSs and +- an 'A' interface towards an MSC. It is important to be aware that there are + two variants of the 'A' interface, see <>. -The difference between classic GSM network architecture and -the OsmoNITB based GSM network architecture is illustrated in -<> and <>. +=== Software Components + +OsmoBSC contains a variety of different software components, which +we'll briefly describe in this section. + +==== A-bis Implementation + +OsmoBSC implements the ETSI/3GPP specified A-bis interface, including TS 08.56 +(LAPD), TS 08.58 (RSL) and TS 12.21 (OML). In addition, it supports a variety +of vendor-specific extensions and dialects in order to communicate with BTSs +from Siemens, Nokia, Ericsson, ip.access, Octasic and sysmocom, as well as +various USRP based BTS implementations, using OsmoBTS and OsmoTRX (like the +Ettus B200 series, the Fairwaves XTRX or the LimeSDR, to name a few). + +For more information, see <> and <>. + +[[a-interface]] +==== A Implementation + +OsmoBSC implements a sub-set of the GSM A interface as specified in TS 08.08 +(BSSAP) and TS 04.08 (DTAP). + +Osmocom offers two variants of the 'A' interface's protocol stacking: -[[fig-gsm-classic]] -.Classic GSM network architecture (simplified) +- 'A/SCCPlite' +- 'A/SCCP/M3UA' + +Traditionally, OsmoBSC only implemented the A/SCCPlite protocol, but since a +proper M3UA implementation is available from 'libosmo-sigtran' +('libosmo-sccp.git'), the stock OsmoBSC now supports only A/SCCP/M3UA. (The +idea is that SCCPlite support may be added to libosmo-sigtran at some point +in the future, after which the new `osmo-bsc` would support both variants of +the A interface.) + +The difference between an A/SCCPlite and A/SCCP/M3UA is illustrated in +<> and <>. + +===== A/SCCPlite + +Unlike classic A interface implementations for E1 interfacs, +`osmo-bsc-sccplite` implements a variant of encapsulating the A interface over +IP. To do so, the SCCP messages are wrapped in an IPA multiplex and then +communicated over TCP. The audio channels are mapped to RTP streams. + +This protocol stacking is sometimes called "SCCPlite". + +At the time of writing, if you would like to use the old A/SCCPlite protocol, +look for binary packages named `osmo-bsc-sccplite`, or compile `osmo-bsc` from +the 'openbsc.git' repository. + +[[fig-sccplite]] +.`osmo-bsc-sccplite` operation using 'A/SCCPlite' [graphviz] ---- digraph G { @@ -29,26 +76,37 @@ digraph G { MS3 [label="MS"]; BTS0 [label="BTS"]; BTS1 [label="BTS"]; - BSC; - MSC [label="MSC/VLR"]; - HLR [label="HLR/AUC"]; - EIR; - SMSC; - MS0->BTS0 [label="Um"]; - MS1->BTS0 [label="Um"]; - MS2->BTS1 [label="Um"]; - MS3->BTS1 [label="Um"]; - BTS0->BSC [label="Abis"]; - BTS1->BSC [label="Abis"]; - BSC->MSC [label="A"]; - MSC->HLR [label="C"]; - MSC->EIR [label="F"]; - MSC->SMSC; + BSC [label="OsmoBSC-SCCPlite"]; + MSC [label="3rd party MSC"]; + {MS0,MS1}->BTS0 [label="Um"]; + {MS2,MS3}->BTS1 [label="Um"]; + {BTS0,BTS1}->BSC [label="Abis\nTCP\nIP"]; + BSC->MSC [label="A\nSCCP\nTCP\nIP"]; } ---- -[[fig-gsm-nitb]] -.GSM system architecture using OsmoNITB +===== A/SCCP/M3UA + +The default OsmoBSC's A interface uses the M3UA variant of SIGTRAN protocol +stacking: + +|===== +|A +|SCCP +|M3UA +|SCTP +|IP +|===== + +To use the now-default A/SCCP/M3UA protocol, look for binary packages named +`osmo-bsc`, or compile `osmo-bsc` from the 'osmo-bsc.git' repository. It is +recommended to use the M3UA variant, which is required to operate with OsmoMSC. + +To route SCCP/M3UA messages between OsmoBSC and and MSC, an STP instance like +OsmoSTP is required. + +[[fig-sccp-m3ua]] +.`osmo-bsc` operation using 'A/SCCP/M3UA' [graphviz] ---- digraph G { @@ -59,60 +117,16 @@ digraph G { MS3 [label="MS"]; BTS0 [label="BTS"]; BTS1 [label="BTS"]; - EXTMNCC [label="Linux Call Router / SoftSwitch / PBX\n(optional)"]; - MS0->BTS0 [label="Um"]; - MS1->BTS0 [label="Um"]; - MS2->BTS1 [label="Um"]; - MS3->BTS1 [label="Um"]; - BTS0->BSC [label="Abis"]; - BTS1->BSC [label="Abis"]; - subgraph cluster_nitb { - label = "OsmoNITB"; - BSC; - MSC [label="MSC/VLR"]; - SMSC; - EIR; - HLR [label="HLR/AUC"]; - BSC->MSC; - MSC->HLR; - MSC->EIR; - MSC->SMSC; - } - MSC -> EXTMNCC [label="external MNCC"]; + BSC [label="OsmoBSC"]; + STP [label="OsmoSTP"]; + MSC [label="OsmoMSC\n(or 3rd-party MSC)"]; + {MS0,MS1}->BTS0 [label="Um"]; + {MS2,MS3}->BTS1 [label="Um"]; + {BTS0,BTS1}->BSC [label="Abis\nTCP\nIP"]; + BSC->STP->MSC [label="A\nSCCP\nM3UA\nSCTP\nIP"]; } ---- - -=== Software Components - -OsmoBSC contains a variety of different software components, which -we'll quickly describe in this section. - -==== A-bis Implementation - -OsmoBSC implements the ETSI/3GPP specified A-bis interface, including -TS 08.56 (LAPD), TS 08.58 (RSL) and TS 12.21 (OML). In addition, it -supports a variety of vendor-specific extensions and dialects in order -to communicate with BTSs from Siemens, Nokia, Ericsson, ip.access and -sysmocom. - -For more information, see <> and <>. - -==== A Implementation - -OsmoBSC implements a minimal sub-set of the GSM A interface as specified -in TS 08.08. - -Unlike classic A interface implementations for E1 interfacs, OsmoBSC -implements a variant of encapsulating the A interface over IP. To do -so, the SCCP messages are wrapped in an IPA multiplex and then -communicated over TCP. The audio channels are mapped to RTP streams. - -This protocol stacking is sometimes called "SCCPlite". - -For more information, see <>. - - ==== BSC Implementation The BSC implementation covers the classic functionality of a GSM Base -- cgit v1.2.3