Project

General

Profile

OsmoBSC » History » Version 27

dexter, 03/28/2023 08:56 AM

1 15 laforge
{{>toc}}
2
3 1 laforge
h1. OsmoBSC
4
5 23 laforge
[[OsmoBSC:]] is an implementation of a GSM BSC (Base Station Controller), i.e. it offers the following interfaces:
6 24 dexter
* A-bis (IP and E1) interface towards the Base Transceiver Stations (BTSs)
7 23 laforge
* A-over-IP (AoIP) interface towards an Mobile Switching Centre (MSC) (e.g. [[OsmoMSC:]]).
8
* Media Gateway Control Protocol (MGCP) interface towards a Media Gateway (MGW) (e.g. [[OsmoMGW:]] for handling the RTP user plane (voice call codec frames)
9
* Lb interface towards a Serving Mobile Location Centre (SMLC) (e.g. [[OsmoSMLC:]])
10
* CBSP interface towards a Cell Broadcast Centre (CBC) (e.g. [[OsmoCBC:]])
11 27 dexter
* Custom unix domain socket interface to run [[OsmoPCU:]] in co location with OsmoBSC
12 1 laforge
13
14 23 laforge
OsmoBSC started as a very humble implementation, but by now is a rather feature-complete Base Station Controller with support for (example)
15
* intra-BSC, inter-BSC, inter-MSC, inter-PLMN hand-over
16
* interference, power and load based hand-over
17
* circuit-switched fallback (CSFB) from LTE/E-UTRAN with fast return
18
* dynamic timeslot usage (SDCCH/TCH/PDCH) - depending on BTS support
19
* MSC pooling
20
* Cell Broadcast (CBS) / Emergency Broadcast (ETWS)
21
* Location Services
22
* SACCH Repetition
23
* Basic VAMOS support - depending on BTS support
24 19 laforge
25 23 laforge
26 12 laforge
h2. OsmoBSC in the Osmocom architecture
27
28
h3. Signaling Plane only
29
30
{{graphviz_link()
31
digraph G {
32
    rankdir = LR;
33
    subgraph cluster_RAN {
34 1 laforge
        OsmoBTS1 [label="OsmoBTS"];
35 12 laforge
        OsmoBTS2 [label="OsmoBTS"];
36 24 dexter
        BTS [label="BTS"];
37 12 laforge
        OsmoBSC [color=red];
38
        label = "RAN";
39
    }
40
    subgraph cluster_CN {
41
        OsmoMSC [label="MSC\ne.g. OsmoMSC"];
42
        Core [label="Other CN Elements"];
43
        label = "CN";
44 1 laforge
    }
45 12 laforge
    OsmoBTS1 -> OsmoBSC [label="Abis/IP"];
46
    OsmoBTS2 -> OsmoBSC [label="Abis/IP"];
47 24 dexter
    BTS -> OsmoBSC [label="Abis/E1"];
48 12 laforge
    OsmoBSC -> OsmoMSC [label="3GPP AoIP\nvia SIGTRAN/STP"];
49
    OsmoMSC -> Core [label="MAP/ISUP/SIP/GSUP"];
50
51
52
    }
53
}
54
}}
55
56
h3. Signaling + User (Media) Plane
57
58
{{graphviz_link()
59
digraph G {
60 1 laforge
    rankdir = LR;
61 12 laforge
    subgraph cluster_RAN {
62
        OsmoBTS1 [label="OsmoBTS"];
63
        OsmoBTS2 [label="OsmoBTS"];
64 24 dexter
        BTS [label="BTS"];
65 1 laforge
        OsmoBSC [color=red];
66 12 laforge
        OsmoMGW [label="OsmoMGW\n(for BSC)"];
67
68
        OsmoBTS1 -> OsmoBSC [label="Abis/IP"];
69
        OsmoBTS2 -> OsmoBSC [label="Abis/IP"];
70 24 dexter
        BTS -> OsmoBSC [label="Abis/E1"];
71 12 laforge
        OsmoBSC -> OsmoMGW [label="MGCP"];
72
        { rank = same; OsmoBSC; OsmoMGW }
73
74
        OsmoBTS1 -> OsmoMGW [label="RTP"];
75
        OsmoBTS2 -> OsmoMGW [label="RTP"];
76 24 dexter
        BTS -> OsmoMGW [label="TRAU/E1"];
77 12 laforge
78
        label = "RAN";
79
    }
80
    subgraph cluster_CN {
81
        OsmoMGW1 [label="OsmoMGW\n(for MSC)"];
82
        OsmoMSC [label="MSC\ne.g. OsmoMSC"];
83
        Core [label="Other CN Elements"];
84
        OsmoMSC -> Core [label="MAP/ISUP/SIP/GSUP"];
85
        OsmoMSC -> OsmoMGW1 [label="MGCP"];
86
        { rank = same; OsmoMSC; OsmoMGW1 }
87
        OsmoMGW -> OsmoMGW1 [label="RTP"];
88
        OsmoMGW1 -> Core [label="RTP"];
89
        label = "CN";
90
    }
91
92
    OsmoBSC -> OsmoMSC [label="3GPP AoIP\nvia SIGTRAN/STP"];
93
94
}
95
}}
96 10 laforge
97 2 laforge
98 4 laforge
h2. BTS Support
99
100 26 dexter
OsmoBSC supports currently all BTSs running the [[OsmoBTS:]] software (such as sysmoBTS), as well as ip.access nanoBTS devices and legacy E1/TDM based BTSs (such as Ericson RBS2000/RBS6000) Other Abis/IP or Abis/E1 devices may be supported.
101 13 laforge
102 4 laforge
{{graphviz_link()
103
graph G {
104
105 7 neels
        MSC [label="MSC\n(e.g. OsmoMSC)"];
106 9 neels
        STP [label="STP\n(e.g. OsmoSTP)"];
107 4 laforge
        nanoBTS [label="ip.access\nnanoBTS", shape=box];
108
        OsmoBTS;
109
        sysmoBTS [label="sysmocom sysmoBTS\n(many models)", shape=box];
110
        LC15 [label="Nuran\nLitecell 1.5", shape=box];
111
        OCT [label="Octasic\nOCTBTS", shape=box];
112
        TRX [label="OsmoTRX"];
113
        OtherSDR [label="Other SDR HW", shape=box, style=dashed];
114
        OtherPHY [label="Other GSM PHY", shape=box, style=dashed];
115
        UmTRX [label="Fairwaves\nUmTRX", shape=box];
116
        USRP [label="Ettus USRP\nFamily", shape=box];
117 1 laforge
118 9 neels
        MSC -- STP [label="A/IP"];
119
        STP -- BSC [label="A/IP"];
120 4 laforge
121
        BSC -- nanoBTS [label="Abis/IP"];
122
        BSC -- OsmoBTS [label="Abis/IP"];
123
124
        BSC -- BS11 [label="Siemens\nAbis/E1"];
125
        BSC -- RBS2K [label="Ericsson\nAbis/E1"];
126
        BSC -- Nokia [label="Nokia\nAbis/E1"];
127
128
        subgraph cluster_2 {
129 6 neels
                BSC [label="BSC\n(OsmoBSC, 3rd party)" color=red];
130 4 laforge
                color=white
131
        }
132
133
        subgraph cluster_0 {
134
                BS11 [label="Siemens BS-11", shape=box];
135
                SIU [label="Ericsson SIU"];
136
                RBS2K [label="Ericsson RBS 2000\n(many models)", shape=box];
137
                Nokia [label="Nokia InSite, MetroSite", shape=box];
138
139
                BSC -- L2TPD [label="Unix Socket"];
140
                L2TPD -- SIU [label="Ericsson\nL2TP/IP"];
141
                SIU -- RBS2K [label="Ericsson\nAbis/E1"];
142
143
                { rank=same; BS11 RBS2K Nokia }
144
145
                label = "Classic E1/T1";
146
        }
147
148
        subgraph cluster_1 {
149
150
                OsmoBTS -- sysmoBTS [label="osmo-bts-sysmo"];
151
                OsmoBTS -- LC15 [label="osmo-bts-lc15"];
152
                OsmoBTS -- OCT [label="osmo-bts-octphy"];
153
                OsmoBTS -- TRX [label="osmo-bts-trx"];
154
                OsmoBTS -- OtherPHY [style=dashed];
155
156
                TRX -- USRP;
157
                TRX -- UmTRX;
158
                TRX -- OtherSDR [style=dashed];
159
160
                { rank=same; nanoBTS sysmoBTS LC15 OCT UmTRX }
161
162
                label = "IP/Ethernet based";
163
        }
164
165
}
166 1 laforge
}}
167 26 dexter
168
Note: The L2TPD/Ericsson SIU path depicted above relates to an experimental setup, which is not actively supported since it has been superseded by a direct Abis/E1 + TRAU interface between OsmoBSC, [[OsmoMGW:]] and [[OsmoPCU:]]
169
170 2 laforge
171 11 laforge
{{include(cellular-infrastructure:MacroBinaryPackages)}}
172
173 2 laforge
h2. User Manuals
174 1 laforge
175
* osmo-bsc User Manual: http://ftp.osmocom.org/docs/latest/osmobsc-usermanual.pdf
176
* osmo-bsc VTY Reference: http://ftp.osmocom.org/docs/latest/osmobsc-vty-reference.pdf
177
178
h2. Source code
179 15 laforge
180 21 laforge
The source code is available from @gitea.osmocom.org@ (module @osmo-bsc@).
181 15 laforge
182
Public read-only access is available via
183
<pre>
184 22 laforge
git clone https://gitea.osmocom.org/cellular-infrastructure/osmo-bsc
185 15 laforge
</pre>
186
187 21 laforge
You can browse it via gitea: https://gitea.osmocom.org/cellular-infrastructure/osmo-bsc
188 15 laforge
189 18 laforge
Contributions are welcome via [[Cellular-Infrastructure:Gerrit]].
190 15 laforge
191 17 laforge
h2. Test Suite
192
193
We have a TTCN-3 test suite as part of our [[cellular-infrastructure:Titan_TTCN3_Testsuites]]
194 21 laforge
* source code: https://gitea.osmocom.org/ttcn3/osmo-ttcn3-hacks/src/branch/master/bsc
195 17 laforge
* results: https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-bsc-test/
196
197 15 laforge
h2. Contact / Getting Help
198
199 18 laforge
Contact us via the openbsc@ mailing list, see [[Cellular-Infrastructure:Mailing Lists]].
200 15 laforge
201
You can file issues (bugs / feature requests) using the redmine project you're currently viewing.
202 1 laforge
203
h2. Authors / Credit
204
205
The old OsmoBSC-SCCPlite was created by Holger Freyther based on the earler OpenBSC/OsmoNITB code by Dieter Spaar, Harald Welte, Holger Freyther and contributors.
206 14 laforge
207
3GPP AoIP support was developed by sysmocom.  Today, OsmoBSC is maintained by Harald Welte and his team at sysmocom.
208 23 laforge
209
h2. History / Naming / SCCPlite
210
211
Until 2017, we used to have an @osmo-bsc@ part of the old @openbsc.git@ repository which implemented a smaller sub-set of the BSC functionality with an [[cellular-infrastructure:SCCPLite]] based A interface.  This legacy program is now called @osmo-bsc-sccplite@ and continues to be available for legacy users.  However, it is not actively developed anymore.  SCCPlite protocol support has been re-introduced in the new @osmo-bsc@ from @osmo-bsc.git@.  Users should not use the obsolete and unmaintained @osmo-bsc-sccplite@ anymore.
212 20 laforge
213
{{include(cellular-infrastructure:MacroCommercialSupport)}}
Add picture from clipboard (Maximum size: 48.8 MB)