summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2017-12-07 19:30:38 +0100
committerHarald Welte <laforge@gnumonks.org>2017-12-07 22:30:41 +0000
commit02abf0c761c228d2a30450cc419fc9a5ce42ad36 (patch)
tree8adcd802741283fd40b923a9de3251c520a93d18
parentcef03ec36d8a44442e153703a497ce150462d44f (diff)
OsmoBSC: update overview to explain both SCCPlite and SCCP/M3UA
-rw-r--r--OsmoBSC/chapters/overview.adoc168
1 files changed, 91 insertions, 77 deletions
diff --git a/OsmoBSC/chapters/overview.adoc b/OsmoBSC/chapters/overview.adoc
index 3bb22cc..9b619fb 100644
--- a/OsmoBSC/chapters/overview.adoc
+++ b/OsmoBSC/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 <<a-interface>>.
-The difference between classic GSM network architecture and
-the OsmoNITB based GSM network architecture is illustrated in
-<<fig-gsm-classic>> and <<fig-gsm-nitb>>.
+=== 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 <<bts>> and <<bts-examples>>.
+
+[[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
+<<fig-sccplite>> and <<fig-sccp-m3ua>>.
+
+===== 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 <<bts>> and <<bts-examples>>.
-
-==== 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 <<alink>>.
-
-
==== BSC Implementation
The BSC implementation covers the classic functionality of a GSM Base