| [[overview]] |
| == Overview |
| |
| This manual should help you getting started with OsmoBSC. It will cover |
| aspects of configuring and running the OsmoBSC. |
| |
| [[intro_overview]] |
| === About OsmoBSC |
| |
| OsmoBSC is the Osmocom implementation of a Base Station Controller. It |
| implements: |
| |
| - 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 |
| |
| 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: |
| |
| - 'BSSAP/SCCPlite' |
| - 'BSSAP/SCCP/M3UA' (called AoIP) |
| |
| Traditionally, OsmoBSC only implemented the BSSAP/SCCPlite protocol, but since a |
| proper M3UA implementation became available in 2017 as part of 'libosmo-sigtran' |
| ('libosmo-sccp.git'), the stock OsmoBSC now supports BSSAP/SCCP/M3UA. SCCPlite |
| support has been subsequently added to libosmo-sigtran in 2018, and now both |
| variants of the 'A' interface are supported by `osmo-bsc`. |
| |
| The difference between an BSSAP/SCCPlite and BSSAP/SCCP/M3UA is illustrated in |
| <<fig-sccplite>> and <<fig-sccp-m3ua>>. |
| |
| ===== BSSAP/SCCPlite |
| |
| Unlike classic A interface implementations for E1 interfacs, |
| `osmo-bsc` 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". |
| |
| [[fig-sccplite]] |
| .`osmo-bsc-sccplite` operation using 'BSSAP/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="BSSAP\nSCCP\nTCP\nIP"]; |
| } |
| ---- |
| |
| ===== BSSAP/SCCP/M3UA |
| |
| The default OsmoBSC's A interface uses the M3UA variant of SIGTRAN protocol |
| stacking: |
| |
| |===== |
| |BSSAP |
| |SCCP |
| |M3UA |
| |SCTP |
| |IP |
| |===== |
| |
| 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 'BSSAP/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="BSSAP\nSCCP\nM3UA\nSCTP\nIP"]; |
| } |
| ---- |
| |
| ==== BSC Implementation |
| |
| The BSC implementation covers the classic functionality of a GSM Base |
| Station Controller, i.e. |
| |
| * configuring and bringing up BTSs with their TRXs and TSs |
| * implementing the A-bis interface / protocols for signalling and actual |
| voice data (TRAU frames). |
| * processing measurement results from the mobile stations in dedicated |
| mode, performing hand-over decision and execution. |
| * Terminating the TS 04.08 RR (Radio Resource) sub-layer from the MS. |
| |
| For more information, see <<net>>, <<bts>> and <<bts-examples>>. |
| |
| |
| ==== TRAU mapper / E1 sub-channel muxer |
| |
| Unlike classic GSM networks, OsmoBSC does not perform any transcoding. |
| Rather, a compatible codec is selected for both legs of a call, and |
| codec frames are passed through transparently. In order to achieve this |
| with E1 based BTS, OsmoBSC contains a E1 sub-channel de- and |
| re-multiplexer as well as a TRAU mapper that can map uplink to downlink |
| frames and vice versa. |