OsmoBSC » History » Version 26
dexter, 03/28/2023 08:00 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 | 1 | laforge | |
12 | |||
13 | 23 | laforge | OsmoBSC started as a very humble implementation, but by now is a rather feature-complete Base Station Controller with support for (example) |
14 | * intra-BSC, inter-BSC, inter-MSC, inter-PLMN hand-over |
||
15 | * interference, power and load based hand-over |
||
16 | * circuit-switched fallback (CSFB) from LTE/E-UTRAN with fast return |
||
17 | * dynamic timeslot usage (SDCCH/TCH/PDCH) - depending on BTS support |
||
18 | * MSC pooling |
||
19 | * Cell Broadcast (CBS) / Emergency Broadcast (ETWS) |
||
20 | * Location Services |
||
21 | * SACCH Repetition |
||
22 | * Basic VAMOS support - depending on BTS support |
||
23 | 19 | laforge | |
24 | 23 | laforge | |
25 | 12 | laforge | h2. OsmoBSC in the Osmocom architecture |
26 | |||
27 | h3. Signaling Plane only |
||
28 | |||
29 | {{graphviz_link() |
||
30 | digraph G { |
||
31 | rankdir = LR; |
||
32 | subgraph cluster_RAN { |
||
33 | 1 | laforge | OsmoBTS1 [label="OsmoBTS"]; |
34 | 12 | laforge | OsmoBTS2 [label="OsmoBTS"]; |
35 | 24 | dexter | BTS [label="BTS"]; |
36 | 12 | laforge | OsmoBSC [color=red]; |
37 | label = "RAN"; |
||
38 | } |
||
39 | subgraph cluster_CN { |
||
40 | OsmoMSC [label="MSC\ne.g. OsmoMSC"]; |
||
41 | Core [label="Other CN Elements"]; |
||
42 | label = "CN"; |
||
43 | 1 | laforge | } |
44 | 12 | laforge | OsmoBTS1 -> OsmoBSC [label="Abis/IP"]; |
45 | OsmoBTS2 -> OsmoBSC [label="Abis/IP"]; |
||
46 | 24 | dexter | BTS -> OsmoBSC [label="Abis/E1"]; |
47 | 12 | laforge | OsmoBSC -> OsmoMSC [label="3GPP AoIP\nvia SIGTRAN/STP"]; |
48 | OsmoMSC -> Core [label="MAP/ISUP/SIP/GSUP"]; |
||
49 | |||
50 | |||
51 | } |
||
52 | } |
||
53 | }} |
||
54 | |||
55 | h3. Signaling + User (Media) Plane |
||
56 | |||
57 | {{graphviz_link() |
||
58 | digraph G { |
||
59 | 1 | laforge | rankdir = LR; |
60 | 12 | laforge | subgraph cluster_RAN { |
61 | OsmoBTS1 [label="OsmoBTS"]; |
||
62 | OsmoBTS2 [label="OsmoBTS"]; |
||
63 | 24 | dexter | BTS [label="BTS"]; |
64 | 1 | laforge | OsmoBSC [color=red]; |
65 | 12 | laforge | OsmoMGW [label="OsmoMGW\n(for BSC)"]; |
66 | |||
67 | OsmoBTS1 -> OsmoBSC [label="Abis/IP"]; |
||
68 | OsmoBTS2 -> OsmoBSC [label="Abis/IP"]; |
||
69 | 24 | dexter | BTS -> OsmoBSC [label="Abis/E1"]; |
70 | 12 | laforge | OsmoBSC -> OsmoMGW [label="MGCP"]; |
71 | { rank = same; OsmoBSC; OsmoMGW } |
||
72 | |||
73 | OsmoBTS1 -> OsmoMGW [label="RTP"]; |
||
74 | OsmoBTS2 -> OsmoMGW [label="RTP"]; |
||
75 | 24 | dexter | BTS -> OsmoMGW [label="TRAU/E1"]; |
76 | 12 | laforge | |
77 | label = "RAN"; |
||
78 | } |
||
79 | subgraph cluster_CN { |
||
80 | OsmoMGW1 [label="OsmoMGW\n(for MSC)"]; |
||
81 | OsmoMSC [label="MSC\ne.g. OsmoMSC"]; |
||
82 | Core [label="Other CN Elements"]; |
||
83 | OsmoMSC -> Core [label="MAP/ISUP/SIP/GSUP"]; |
||
84 | OsmoMSC -> OsmoMGW1 [label="MGCP"]; |
||
85 | { rank = same; OsmoMSC; OsmoMGW1 } |
||
86 | OsmoMGW -> OsmoMGW1 [label="RTP"]; |
||
87 | OsmoMGW1 -> Core [label="RTP"]; |
||
88 | label = "CN"; |
||
89 | } |
||
90 | |||
91 | OsmoBSC -> OsmoMSC [label="3GPP AoIP\nvia SIGTRAN/STP"]; |
||
92 | |||
93 | } |
||
94 | }} |
||
95 | 10 | laforge | |
96 | 2 | laforge | |
97 | 4 | laforge | h2. BTS Support |
98 | |||
99 | 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. |
100 | 13 | laforge | |
101 | 4 | laforge | {{graphviz_link() |
102 | graph G { |
||
103 | |||
104 | 7 | neels | MSC [label="MSC\n(e.g. OsmoMSC)"]; |
105 | 9 | neels | STP [label="STP\n(e.g. OsmoSTP)"]; |
106 | 4 | laforge | nanoBTS [label="ip.access\nnanoBTS", shape=box]; |
107 | OsmoBTS; |
||
108 | sysmoBTS [label="sysmocom sysmoBTS\n(many models)", shape=box]; |
||
109 | LC15 [label="Nuran\nLitecell 1.5", shape=box]; |
||
110 | OCT [label="Octasic\nOCTBTS", shape=box]; |
||
111 | TRX [label="OsmoTRX"]; |
||
112 | OtherSDR [label="Other SDR HW", shape=box, style=dashed]; |
||
113 | OtherPHY [label="Other GSM PHY", shape=box, style=dashed]; |
||
114 | UmTRX [label="Fairwaves\nUmTRX", shape=box]; |
||
115 | USRP [label="Ettus USRP\nFamily", shape=box]; |
||
116 | 1 | laforge | |
117 | 9 | neels | MSC -- STP [label="A/IP"]; |
118 | STP -- BSC [label="A/IP"]; |
||
119 | 4 | laforge | |
120 | BSC -- nanoBTS [label="Abis/IP"]; |
||
121 | BSC -- OsmoBTS [label="Abis/IP"]; |
||
122 | |||
123 | BSC -- BS11 [label="Siemens\nAbis/E1"]; |
||
124 | BSC -- RBS2K [label="Ericsson\nAbis/E1"]; |
||
125 | BSC -- Nokia [label="Nokia\nAbis/E1"]; |
||
126 | |||
127 | subgraph cluster_2 { |
||
128 | 6 | neels | BSC [label="BSC\n(OsmoBSC, 3rd party)" color=red]; |
129 | 4 | laforge | color=white |
130 | } |
||
131 | |||
132 | subgraph cluster_0 { |
||
133 | BS11 [label="Siemens BS-11", shape=box]; |
||
134 | SIU [label="Ericsson SIU"]; |
||
135 | RBS2K [label="Ericsson RBS 2000\n(many models)", shape=box]; |
||
136 | Nokia [label="Nokia InSite, MetroSite", shape=box]; |
||
137 | |||
138 | BSC -- L2TPD [label="Unix Socket"]; |
||
139 | L2TPD -- SIU [label="Ericsson\nL2TP/IP"]; |
||
140 | SIU -- RBS2K [label="Ericsson\nAbis/E1"]; |
||
141 | |||
142 | { rank=same; BS11 RBS2K Nokia } |
||
143 | |||
144 | label = "Classic E1/T1"; |
||
145 | } |
||
146 | |||
147 | subgraph cluster_1 { |
||
148 | |||
149 | OsmoBTS -- sysmoBTS [label="osmo-bts-sysmo"]; |
||
150 | OsmoBTS -- LC15 [label="osmo-bts-lc15"]; |
||
151 | OsmoBTS -- OCT [label="osmo-bts-octphy"]; |
||
152 | OsmoBTS -- TRX [label="osmo-bts-trx"]; |
||
153 | OsmoBTS -- OtherPHY [style=dashed]; |
||
154 | |||
155 | TRX -- USRP; |
||
156 | TRX -- UmTRX; |
||
157 | TRX -- OtherSDR [style=dashed]; |
||
158 | |||
159 | { rank=same; nanoBTS sysmoBTS LC15 OCT UmTRX } |
||
160 | |||
161 | label = "IP/Ethernet based"; |
||
162 | } |
||
163 | |||
164 | } |
||
165 | 1 | laforge | }} |
166 | 26 | dexter | |
167 | 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:]] |
||
168 | |||
169 | 2 | laforge | |
170 | 11 | laforge | {{include(cellular-infrastructure:MacroBinaryPackages)}} |
171 | |||
172 | 2 | laforge | h2. User Manuals |
173 | 1 | laforge | |
174 | * osmo-bsc User Manual: http://ftp.osmocom.org/docs/latest/osmobsc-usermanual.pdf |
||
175 | * osmo-bsc VTY Reference: http://ftp.osmocom.org/docs/latest/osmobsc-vty-reference.pdf |
||
176 | |||
177 | h2. Source code |
||
178 | 15 | laforge | |
179 | 21 | laforge | The source code is available from @gitea.osmocom.org@ (module @osmo-bsc@). |
180 | 15 | laforge | |
181 | Public read-only access is available via |
||
182 | <pre> |
||
183 | 22 | laforge | git clone https://gitea.osmocom.org/cellular-infrastructure/osmo-bsc |
184 | 15 | laforge | </pre> |
185 | |||
186 | 21 | laforge | You can browse it via gitea: https://gitea.osmocom.org/cellular-infrastructure/osmo-bsc |
187 | 15 | laforge | |
188 | 18 | laforge | Contributions are welcome via [[Cellular-Infrastructure:Gerrit]]. |
189 | 15 | laforge | |
190 | 17 | laforge | h2. Test Suite |
191 | |||
192 | We have a TTCN-3 test suite as part of our [[cellular-infrastructure:Titan_TTCN3_Testsuites]] |
||
193 | 21 | laforge | * source code: https://gitea.osmocom.org/ttcn3/osmo-ttcn3-hacks/src/branch/master/bsc |
194 | 17 | laforge | * results: https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-bsc-test/ |
195 | |||
196 | 15 | laforge | h2. Contact / Getting Help |
197 | |||
198 | 18 | laforge | Contact us via the openbsc@ mailing list, see [[Cellular-Infrastructure:Mailing Lists]]. |
199 | 15 | laforge | |
200 | You can file issues (bugs / feature requests) using the redmine project you're currently viewing. |
||
201 | 1 | laforge | |
202 | h2. Authors / Credit |
||
203 | |||
204 | 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. |
||
205 | 14 | laforge | |
206 | 3GPP AoIP support was developed by sysmocom. Today, OsmoBSC is maintained by Harald Welte and his team at sysmocom. |
||
207 | 23 | laforge | |
208 | h2. History / Naming / SCCPlite |
||
209 | |||
210 | 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. |
||
211 | 20 | laforge | |
212 | {{include(cellular-infrastructure:MacroCommercialSupport)}} |