OsmoBSC: update overview to explain both SCCPlite and SCCP/M3UA
Change-Id: I1f105b3febd4f99f4491e217ff1b1d0b28912980
This commit is contained in:
parent
b4045a0c69
commit
9d0e3a7f2d
|
@ -7,111 +7,125 @@ aspects of configuring and running the OsmoBSC.
|
||||||
[[intro_overview]]
|
[[intro_overview]]
|
||||||
=== About OsmoBSC
|
=== 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.
|
|
||||||
|
|
||||||
The difference between classic GSM network architecture and
|
|
||||||
the OsmoNITB based GSM network architecture is illustrated in
|
|
||||||
<<fig-gsm-classic>> and <<fig-gsm-nitb>>.
|
|
||||||
|
|
||||||
[[fig-gsm-classic]]
|
|
||||||
.Classic GSM network architecture (simplified)
|
|
||||||
[graphviz]
|
|
||||||
----
|
|
||||||
digraph G {
|
|
||||||
rankdir=LR;
|
|
||||||
MS0 [label="MS"];
|
|
||||||
MS1 [label="MS"];
|
|
||||||
MS2 [label="MS"];
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
----
|
|
||||||
|
|
||||||
[[fig-gsm-nitb]]
|
|
||||||
.GSM system architecture using OsmoNITB
|
|
||||||
[graphviz]
|
|
||||||
----
|
|
||||||
digraph G {
|
|
||||||
rankdir=LR;
|
|
||||||
MS0 [label="MS"];
|
|
||||||
MS1 [label="MS"];
|
|
||||||
MS2 [label="MS"];
|
|
||||||
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"];
|
|
||||||
}
|
|
||||||
----
|
|
||||||
|
|
||||||
|
- 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>>.
|
||||||
|
|
||||||
=== Software Components
|
=== Software Components
|
||||||
|
|
||||||
OsmoBSC contains a variety of different software components, which
|
OsmoBSC contains a variety of different software components, which
|
||||||
we'll quickly describe in this section.
|
we'll briefly describe in this section.
|
||||||
|
|
||||||
==== A-bis Implementation
|
==== A-bis Implementation
|
||||||
|
|
||||||
OsmoBSC implements the ETSI/3GPP specified A-bis interface, including
|
OsmoBSC implements the ETSI/3GPP specified A-bis interface, including TS 08.56
|
||||||
TS 08.56 (LAPD), TS 08.58 (RSL) and TS 12.21 (OML). In addition, it
|
(LAPD), TS 08.58 (RSL) and TS 12.21 (OML). In addition, it supports a variety
|
||||||
supports a variety of vendor-specific extensions and dialects in order
|
of vendor-specific extensions and dialects in order to communicate with BTSs
|
||||||
to communicate with BTSs from Siemens, Nokia, Ericsson, ip.access and
|
from Siemens, Nokia, Ericsson, ip.access, Octasic and sysmocom, as well as
|
||||||
sysmocom.
|
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>>.
|
For more information, see <<bts>> and <<bts-examples>>.
|
||||||
|
|
||||||
|
[[a-interface]]
|
||||||
==== A Implementation
|
==== A Implementation
|
||||||
|
|
||||||
OsmoBSC implements a minimal sub-set of the GSM A interface as specified
|
OsmoBSC implements a sub-set of the GSM A interface as specified in TS 08.08
|
||||||
in TS 08.08.
|
(BSSAP) and TS 04.08 (DTAP).
|
||||||
|
|
||||||
Unlike classic A interface implementations for E1 interfacs, OsmoBSC
|
Osmocom offers two variants of the 'A' interface's protocol stacking:
|
||||||
implements a variant of encapsulating the A interface over IP. To do
|
|
||||||
so, the SCCP messages are wrapped in an IPA multiplex and then
|
- '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.
|
communicated over TCP. The audio channels are mapped to RTP streams.
|
||||||
|
|
||||||
This protocol stacking is sometimes called "SCCPlite".
|
This protocol stacking is sometimes called "SCCPlite".
|
||||||
|
|
||||||
For more information, see <<alink>>.
|
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 {
|
||||||
|
rankdir=LR;
|
||||||
|
MS0 [label="MS"];
|
||||||
|
MS1 [label="MS"];
|
||||||
|
MS2 [label="MS"];
|
||||||
|
MS3 [label="MS"];
|
||||||
|
BTS0 [label="BTS"];
|
||||||
|
BTS1 [label="BTS"];
|
||||||
|
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"];
|
||||||
|
}
|
||||||
|
----
|
||||||
|
|
||||||
|
===== 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 {
|
||||||
|
rankdir=LR;
|
||||||
|
MS0 [label="MS"];
|
||||||
|
MS1 [label="MS"];
|
||||||
|
MS2 [label="MS"];
|
||||||
|
MS3 [label="MS"];
|
||||||
|
BTS0 [label="BTS"];
|
||||||
|
BTS1 [label="BTS"];
|
||||||
|
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"];
|
||||||
|
}
|
||||||
|
----
|
||||||
|
|
||||||
==== BSC Implementation
|
==== BSC Implementation
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue