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)}} |