blob: 9b619fb24073cfd2c9c86b547fba70aeed1b1ff2 [file] [log] [blame]
Harald Welte75c0e082016-02-20 10:56:10 +01001[[overview]]
2== Overview
3
4This manual should help you getting started with OsmoBSC. It will cover
5aspects of configuring and running the OsmoBSC.
6
7[[intro_overview]]
8=== About OsmoBSC
9
Neels Hofmeyr9d0e3a72017-12-07 19:30:38 +010010OsmoBSC is the Osmocom implementation of a Base Station Controller. It
11implements:
Harald Welte75c0e082016-02-20 10:56:10 +010012
Neels Hofmeyr9d0e3a72017-12-07 19:30:38 +010013- an 'A-bis' interface towards BTSs and
14- an 'A' interface towards an MSC. It is important to be aware that there are
15 two variants of the 'A' interface, see <<a-interface>>.
Harald Welte75c0e082016-02-20 10:56:10 +010016
17=== Software Components
18
19OsmoBSC contains a variety of different software components, which
Neels Hofmeyr9d0e3a72017-12-07 19:30:38 +010020we'll briefly describe in this section.
Harald Welte75c0e082016-02-20 10:56:10 +010021
22==== A-bis Implementation
23
Neels Hofmeyr9d0e3a72017-12-07 19:30:38 +010024OsmoBSC implements the ETSI/3GPP specified A-bis interface, including TS 08.56
25(LAPD), TS 08.58 (RSL) and TS 12.21 (OML). In addition, it supports a variety
26of vendor-specific extensions and dialects in order to communicate with BTSs
27from Siemens, Nokia, Ericsson, ip.access, Octasic and sysmocom, as well as
28various USRP based BTS implementations, using OsmoBTS and OsmoTRX (like the
29Ettus B200 series, the Fairwaves XTRX or the LimeSDR, to name a few).
Harald Welte75c0e082016-02-20 10:56:10 +010030
31For more information, see <<bts>> and <<bts-examples>>.
32
Neels Hofmeyr9d0e3a72017-12-07 19:30:38 +010033[[a-interface]]
Harald Welte75c0e082016-02-20 10:56:10 +010034==== A Implementation
35
Neels Hofmeyr9d0e3a72017-12-07 19:30:38 +010036OsmoBSC implements a sub-set of the GSM A interface as specified in TS 08.08
37(BSSAP) and TS 04.08 (DTAP).
Harald Welte75c0e082016-02-20 10:56:10 +010038
Neels Hofmeyr9d0e3a72017-12-07 19:30:38 +010039Osmocom offers two variants of the 'A' interface's protocol stacking:
40
41- 'A/SCCPlite'
42- 'A/SCCP/M3UA'
43
44Traditionally, OsmoBSC only implemented the A/SCCPlite protocol, but since a
45proper M3UA implementation is available from 'libosmo-sigtran'
46('libosmo-sccp.git'), the stock OsmoBSC now supports only A/SCCP/M3UA. (The
47idea is that SCCPlite support may be added to libosmo-sigtran at some point
48in the future, after which the new `osmo-bsc` would support both variants of
49the A interface.)
50
51The difference between an A/SCCPlite and A/SCCP/M3UA is illustrated in
52<<fig-sccplite>> and <<fig-sccp-m3ua>>.
53
54===== A/SCCPlite
55
56Unlike classic A interface implementations for E1 interfacs,
57`osmo-bsc-sccplite` implements a variant of encapsulating the A interface over
58IP. To do so, the SCCP messages are wrapped in an IPA multiplex and then
Harald Welte75c0e082016-02-20 10:56:10 +010059communicated over TCP. The audio channels are mapped to RTP streams.
60
Jonathan Brielmaier1389bd12016-05-25 15:01:11 +020061This protocol stacking is sometimes called "SCCPlite".
Harald Welte75c0e082016-02-20 10:56:10 +010062
Neels Hofmeyr9d0e3a72017-12-07 19:30:38 +010063At the time of writing, if you would like to use the old A/SCCPlite protocol,
64look for binary packages named `osmo-bsc-sccplite`, or compile `osmo-bsc` from
65the 'openbsc.git' repository.
Harald Welte75c0e082016-02-20 10:56:10 +010066
Neels Hofmeyr9d0e3a72017-12-07 19:30:38 +010067[[fig-sccplite]]
68.`osmo-bsc-sccplite` operation using 'A/SCCPlite'
69[graphviz]
70----
71digraph G {
72 rankdir=LR;
73 MS0 [label="MS"];
74 MS1 [label="MS"];
75 MS2 [label="MS"];
76 MS3 [label="MS"];
77 BTS0 [label="BTS"];
78 BTS1 [label="BTS"];
79 BSC [label="OsmoBSC-SCCPlite"];
80 MSC [label="3rd party MSC"];
81 {MS0,MS1}->BTS0 [label="Um"];
82 {MS2,MS3}->BTS1 [label="Um"];
83 {BTS0,BTS1}->BSC [label="Abis\nTCP\nIP"];
84 BSC->MSC [label="A\nSCCP\nTCP\nIP"];
85}
86----
87
88===== A/SCCP/M3UA
89
90The default OsmoBSC's A interface uses the M3UA variant of SIGTRAN protocol
91stacking:
92
93|=====
94|A
95|SCCP
96|M3UA
97|SCTP
98|IP
99|=====
100
101To use the now-default A/SCCP/M3UA protocol, look for binary packages named
102`osmo-bsc`, or compile `osmo-bsc` from the 'osmo-bsc.git' repository. It is
103recommended to use the M3UA variant, which is required to operate with OsmoMSC.
104
105To route SCCP/M3UA messages between OsmoBSC and and MSC, an STP instance like
106OsmoSTP is required.
107
108[[fig-sccp-m3ua]]
109.`osmo-bsc` operation using 'A/SCCP/M3UA'
110[graphviz]
111----
112digraph G {
113 rankdir=LR;
114 MS0 [label="MS"];
115 MS1 [label="MS"];
116 MS2 [label="MS"];
117 MS3 [label="MS"];
118 BTS0 [label="BTS"];
119 BTS1 [label="BTS"];
120 BSC [label="OsmoBSC"];
121 STP [label="OsmoSTP"];
122 MSC [label="OsmoMSC\n(or 3rd-party MSC)"];
123 {MS0,MS1}->BTS0 [label="Um"];
124 {MS2,MS3}->BTS1 [label="Um"];
125 {BTS0,BTS1}->BSC [label="Abis\nTCP\nIP"];
126 BSC->STP->MSC [label="A\nSCCP\nM3UA\nSCTP\nIP"];
127}
128----
Harald Welte75c0e082016-02-20 10:56:10 +0100129
130==== BSC Implementation
131
132The BSC implementation covers the classic functionality of a GSM Base
133Station Controller, i.e.
134
135* configuring and bringing up BTSs with their TRXs and TSs
136* implementing the A-bis interface / protocols for signalling and actual
137 voice data (TRAU frames).
138* processing measurement results from the mobile stations in dedicated
139 mode, performing hand-over decision and execution.
140* Terminating the TS 04.08 RR (Radio Resource) sub-layer from the MS.
141
142For more information, see <<net>>, <<bts>> and <<bts-examples>>.
143
144
145==== TRAU mapper / E1 sub-channel muxer
146
147Unlike classic GSM networks, OsmoBSC does not perform any transcoding.
148Rather, a compatible codec is selected for both legs of a call, and
149codec frames are passed through transparently. In order to achieve this
150with E1 based BTS, OsmoBSC contains a E1 sub-channel de- and
151re-multiplexer as well as a TRAU mapper that can map uplink to downlink
152frames and vice versa.
Max2e904b12016-05-04 14:30:49 +0200153
154=== Control interface
155
156The actual protocol is described in <<common-control-if>> section. Here we
157describe variables specific to OsmoBSC.
158
159.Variables available over control interface
160[options="header",width="100%",cols="20%,5%,5%,50%,20%"]
161|===
162|Name|Access|Trap|Value|Comment
163|msc_connection_status|RO|Yes|"connected", "disconnected"|Indicate the status of connection to MSC.
164|bts_connection_status|RO|Yes|"connected", "disconnected"|Indicate the status of connection to BTS.
165|location|RW|Yes|"<unixtime>,(invalid\|fix2d\|fix3d),<lat>,<lon>,<height>"|Set/Get location data.
166|timezone|RW|No|"<hours>,<mins>,<dst>", "off"|-19 <= hours <= 19, mins in {0, 15, 30, 45}, and 0 <= dst <= 2
167|notification|WO|Yes||
168|inform-msc-v1|WO|Yes||
169|ussd-notify-v1|WO|Yes||
170|===
171
172Some comments.
173FIXME: commands defined in src/ctrl/control_if.c? Nodes? Traps?
174