OsmoBSC » History » Revision 27
Revision 26 (dexter, 03/28/2023 08:00 AM) → Revision 27/28 (dexter, 03/28/2023 08:56 AM)
{{>toc}}
h1. OsmoBSC
[[OsmoBSC:]] is an implementation of a GSM BSC (Base Station Controller), i.e. it offers the following interfaces:
* A-bis (IP and E1) interface towards the Base Transceiver Stations (BTSs)
* A-over-IP (AoIP) interface towards an Mobile Switching Centre (MSC) (e.g. [[OsmoMSC:]]).
* Media Gateway Control Protocol (MGCP) interface towards a Media Gateway (MGW) (e.g. [[OsmoMGW:]] for handling the RTP user plane (voice call codec frames)
* Lb interface towards a Serving Mobile Location Centre (SMLC) (e.g. [[OsmoSMLC:]])
* CBSP interface towards a Cell Broadcast Centre (CBC) (e.g. [[OsmoCBC:]])
* Custom unix domain socket interface to run [[OsmoPCU:]] in co location with OsmoBSC
OsmoBSC started as a very humble implementation, but by now is a rather feature-complete Base Station Controller with support for (example)
* intra-BSC, inter-BSC, inter-MSC, inter-PLMN hand-over
* interference, power and load based hand-over
* circuit-switched fallback (CSFB) from LTE/E-UTRAN with fast return
* dynamic timeslot usage (SDCCH/TCH/PDCH) - depending on BTS support
* MSC pooling
* Cell Broadcast (CBS) / Emergency Broadcast (ETWS)
* Location Services
* SACCH Repetition
* Basic VAMOS support - depending on BTS support
h2. OsmoBSC in the Osmocom architecture
h3. Signaling Plane only
{{graphviz_link()
digraph G {
rankdir = LR;
subgraph cluster_RAN {
OsmoBTS1 [label="OsmoBTS"];
OsmoBTS2 [label="OsmoBTS"];
BTS [label="BTS"];
OsmoBSC [color=red];
label = "RAN";
}
subgraph cluster_CN {
OsmoMSC [label="MSC\ne.g. OsmoMSC"];
Core [label="Other CN Elements"];
label = "CN";
}
OsmoBTS1 -> OsmoBSC [label="Abis/IP"];
OsmoBTS2 -> OsmoBSC [label="Abis/IP"];
BTS -> OsmoBSC [label="Abis/E1"];
OsmoBSC -> OsmoMSC [label="3GPP AoIP\nvia SIGTRAN/STP"];
OsmoMSC -> Core [label="MAP/ISUP/SIP/GSUP"];
}
}
}}
h3. Signaling + User (Media) Plane
{{graphviz_link()
digraph G {
rankdir = LR;
subgraph cluster_RAN {
OsmoBTS1 [label="OsmoBTS"];
OsmoBTS2 [label="OsmoBTS"];
BTS [label="BTS"];
OsmoBSC [color=red];
OsmoMGW [label="OsmoMGW\n(for BSC)"];
OsmoBTS1 -> OsmoBSC [label="Abis/IP"];
OsmoBTS2 -> OsmoBSC [label="Abis/IP"];
BTS -> OsmoBSC [label="Abis/E1"];
OsmoBSC -> OsmoMGW [label="MGCP"];
{ rank = same; OsmoBSC; OsmoMGW }
OsmoBTS1 -> OsmoMGW [label="RTP"];
OsmoBTS2 -> OsmoMGW [label="RTP"];
BTS -> OsmoMGW [label="TRAU/E1"];
label = "RAN";
}
subgraph cluster_CN {
OsmoMGW1 [label="OsmoMGW\n(for MSC)"];
OsmoMSC [label="MSC\ne.g. OsmoMSC"];
Core [label="Other CN Elements"];
OsmoMSC -> Core [label="MAP/ISUP/SIP/GSUP"];
OsmoMSC -> OsmoMGW1 [label="MGCP"];
{ rank = same; OsmoMSC; OsmoMGW1 }
OsmoMGW -> OsmoMGW1 [label="RTP"];
OsmoMGW1 -> Core [label="RTP"];
label = "CN";
}
OsmoBSC -> OsmoMSC [label="3GPP AoIP\nvia SIGTRAN/STP"];
}
}}
h2. BTS Support
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.
{{graphviz_link()
graph G {
MSC [label="MSC\n(e.g. OsmoMSC)"];
STP [label="STP\n(e.g. OsmoSTP)"];
nanoBTS [label="ip.access\nnanoBTS", shape=box];
OsmoBTS;
sysmoBTS [label="sysmocom sysmoBTS\n(many models)", shape=box];
LC15 [label="Nuran\nLitecell 1.5", shape=box];
OCT [label="Octasic\nOCTBTS", shape=box];
TRX [label="OsmoTRX"];
OtherSDR [label="Other SDR HW", shape=box, style=dashed];
OtherPHY [label="Other GSM PHY", shape=box, style=dashed];
UmTRX [label="Fairwaves\nUmTRX", shape=box];
USRP [label="Ettus USRP\nFamily", shape=box];
MSC -- STP [label="A/IP"];
STP -- BSC [label="A/IP"];
BSC -- nanoBTS [label="Abis/IP"];
BSC -- OsmoBTS [label="Abis/IP"];
BSC -- BS11 [label="Siemens\nAbis/E1"];
BSC -- RBS2K [label="Ericsson\nAbis/E1"];
BSC -- Nokia [label="Nokia\nAbis/E1"];
subgraph cluster_2 {
BSC [label="BSC\n(OsmoBSC, 3rd party)" color=red];
color=white
}
subgraph cluster_0 {
BS11 [label="Siemens BS-11", shape=box];
SIU [label="Ericsson SIU"];
RBS2K [label="Ericsson RBS 2000\n(many models)", shape=box];
Nokia [label="Nokia InSite, MetroSite", shape=box];
BSC -- L2TPD [label="Unix Socket"];
L2TPD -- SIU [label="Ericsson\nL2TP/IP"];
SIU -- RBS2K [label="Ericsson\nAbis/E1"];
{ rank=same; BS11 RBS2K Nokia }
label = "Classic E1/T1";
}
subgraph cluster_1 {
OsmoBTS -- sysmoBTS [label="osmo-bts-sysmo"];
OsmoBTS -- LC15 [label="osmo-bts-lc15"];
OsmoBTS -- OCT [label="osmo-bts-octphy"];
OsmoBTS -- TRX [label="osmo-bts-trx"];
OsmoBTS -- OtherPHY [style=dashed];
TRX -- USRP;
TRX -- UmTRX;
TRX -- OtherSDR [style=dashed];
{ rank=same; nanoBTS sysmoBTS LC15 OCT UmTRX }
label = "IP/Ethernet based";
}
}
}}
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:]]
{{include(cellular-infrastructure:MacroBinaryPackages)}}
h2. User Manuals
* osmo-bsc User Manual: http://ftp.osmocom.org/docs/latest/osmobsc-usermanual.pdf
* osmo-bsc VTY Reference: http://ftp.osmocom.org/docs/latest/osmobsc-vty-reference.pdf
h2. Source code
The source code is available from @gitea.osmocom.org@ (module @osmo-bsc@).
Public read-only access is available via
<pre>
git clone https://gitea.osmocom.org/cellular-infrastructure/osmo-bsc
</pre>
You can browse it via gitea: https://gitea.osmocom.org/cellular-infrastructure/osmo-bsc
Contributions are welcome via [[Cellular-Infrastructure:Gerrit]].
h2. Test Suite
We have a TTCN-3 test suite as part of our [[cellular-infrastructure:Titan_TTCN3_Testsuites]]
* source code: https://gitea.osmocom.org/ttcn3/osmo-ttcn3-hacks/src/branch/master/bsc
* results: https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-bsc-test/
h2. Contact / Getting Help
Contact us via the openbsc@ mailing list, see [[Cellular-Infrastructure:Mailing Lists]].
You can file issues (bugs / feature requests) using the redmine project you're currently viewing.
h2. Authors / Credit
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.
3GPP AoIP support was developed by sysmocom. Today, OsmoBSC is maintained by Harald Welte and his team at sysmocom.
h2. History / Naming / SCCPlite
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.
{{include(cellular-infrastructure:MacroCommercialSupport)}}