Wiki » History » Version 32
laforge, 07/25/2022 08:44 AM
gitea
1 | 10 | laforge | h1. [[OsmoBTS]] |
---|---|---|---|
2 | 4 | ipse | |
3 | |||
4 | 15 | laforge | [[OsmoBTS]] is a software implementation of a GSM BTS(Base Transceiver Station). |
5 | |||
6 | It implements the follwing protocols/interfaces: |
||
7 | 10 | laforge | * LAPDm (GSM 04.06) |
8 | * RTP |
||
9 | * A-bis/IP in IPA multiplex |
||
10 | * OML (GSM TS 12.21) |
||
11 | * RSL (GSM TS 08.58) |
||
12 | 1 | laforge | |
13 | 14 | laforge | [[OsmoBTS]] is building up on work done previosuly for [[OpenBSC:]] (e.g. RSL, OML, RTP) and [[OsmocomBB:]] (e.g. LAPDm). The Abis/IP protocol staking is inspired by ip.access A-bis/IP, sometimes called IPA multiplex. |
14 | 1 | laforge | |
15 | 11 | laforge | h2. OsmoBTS in the Osmocom architecture |
16 | |||
17 | 19 | laforge | h3. OsmoBTS in a GSM + GPRS/EDGE network using [[OsmoNITB:]] |
18 | |||
19 | 11 | laforge | {{graphviz_link() |
20 | digraph G { |
||
21 | rankdir = LR; |
||
22 | OsmoTRX -> OsmoBTS [label="bursts over UDP"]; |
||
23 | sysmoPHY -> OsmoBTS [label="/dev/msgq/"]; |
||
24 | octPHY -> OsmoBTS [label="Raw Ethernet"]; |
||
25 | OsmoBTS -> OsmoNITB [label="Abis/IP"]; |
||
26 | OsmoBTS -> OsmoPCU [label="pcu_sock"]; |
||
27 | OsmoPCU -> OsmoSGSN [label="Gb/IP"]; |
||
28 | 19 | laforge | OsmoBTS [color=red]; |
29 | } |
||
30 | }} |
||
31 | |||
32 | h3. OsmoBTS in a GSM + GPRS/EDGE network using [[OsmoBSC:]] and [[OsmoMSC:]] |
||
33 | |||
34 | {{graphviz_link() |
||
35 | digraph G { |
||
36 | rankdir = LR; |
||
37 | OsmoTRX -> OsmoBTS [label="bursts over UDP"]; |
||
38 | sysmoPHY -> OsmoBTS [label="/dev/msgq/"]; |
||
39 | octPHY -> OsmoBTS [label="Raw Ethernet"]; |
||
40 | OsmoBTS -> OsmoBSC [label="Abis/IP"]; |
||
41 | OsmoBSC -> OsmoMSC [label="3GPP AoIP"]; |
||
42 | OsmoMSC -> OsmoHLR [label="GSUP"]; |
||
43 | OsmoBTS -> OsmoPCU [label="pcu_sock"]; |
||
44 | OsmoPCU -> OsmoSGSN [label="Gb/IP"]; |
||
45 | OsmoSGSN -> OsmoGGSN [label="Gp"]; |
||
46 | 11 | laforge | OsmoBTS [color=red]; |
47 | } |
||
48 | }} |
||
49 | 1 | laforge | |
50 | 10 | laforge | h2. Backends / Hardware support |
51 | 9 | laforge | |
52 | 10 | laforge | |
53 | [[OsmoBTS]] is modular and has support for multiple back-ends. A back-end talks to a specific L1/PHY implementation of the respective BTS hardware. Based on this architecture, it should be relatively easy to add a new back-end to support so-far unsupported GSM PHY/L1 and associated hardware. |
||
54 | |||
55 | So far [[OsmoBTS]] has been integrated with several different L1/PHY and hardware systems. The backends are: |
||
56 | * osmo-bts-sysmo |
||
57 | 25 | steviehs | ** Multiple indoor and outdoor BTS products called "sysmoBTS":https://www.sysmocom.de/products/bts/ by "sysmocom":http://sysmocom.de/ |
58 | 28 | keith | * osmo-bts-sysmo-remote |
59 | 29 | fixeria | ** Allows forwarding over UDP of the Layer1 to the "sysmoBTS":https://www.sysmocom.de/products/bts/ hardware, while running [[osmo-bts-sysmo-remote]] on (for example) x86 hardware. |
60 | 1 | laforge | * osmo-bts-trx |
61 | 29 | fixeria | ** Wideband SDR transceiver hardware supported by "OpenBTS":http://openbts.org/ transceiver or [[OsmoTRX:]] PHY layer software, including the [[umtrx:UmTRX]], the USRP family, etc. |
62 | 23 | laforge | ** Multiple indoor and outdoor "fairwaves":https://fairwaves.co BTSs, like UmDESK and UmSITE |
63 | 13 | laforge | * osmo-bts-litecell15 |
64 | * osmo-bts-octphy |
||
65 | 10 | laforge | * osmo-bts-bb |
66 | 29 | fixeria | ** A pretty crazy experimental BTS hardware based on two [[OsmocomBB:]] phones had originally been supported, but needs to be re-integrated with core code changes. |
67 | 10 | laforge | |
68 | 17 | laforge | {{graphviz_link() |
69 | graph G { |
||
70 | OsmoBTS [color=red]; |
||
71 | sysmoBTS [label="sysmocom sysmoBTS\n(many models)", shape=box]; |
||
72 | LC15 [label="Nuran\nLitecell 1.5", shape=box]; |
||
73 | OCT [label="Octasic\nOCTBTS", shape=box]; |
||
74 | TRX [label="OsmoTRX"]; |
||
75 | OtherSDR [label="Other SDR HW", shape=box, style=dashed]; |
||
76 | OtherPHY [label="Other GSM PHY", shape=box, style=dashed]; |
||
77 | UmTRX [label="Fairwaves\nUmTRX", shape=box]; |
||
78 | USRP [label="Ettus USRP\nFamily", shape=box]; |
||
79 | 30 | laforge | LimeSDR [label="LimeSDR\nFamily", shape=box]; |
80 | 17 | laforge | |
81 | OsmoBTS -- sysmoBTS [label="osmo-bts-sysmo"]; |
||
82 | OsmoBTS -- LC15 [label="osmo-bts-lc15"]; |
||
83 | OsmoBTS -- OCT [label="osmo-bts-octphy"]; |
||
84 | OsmoBTS -- TRX [label="osmo-bts-trx"]; |
||
85 | OsmoBTS -- OtherPHY [style=dashed]; |
||
86 | |||
87 | TRX -- USRP; |
||
88 | TRX -- UmTRX; |
||
89 | 30 | laforge | TRX -- LimeSDR; |
90 | 17 | laforge | TRX -- OtherSDR [style=dashed]; |
91 | |||
92 | 18 | laforge | { rank=same; sysmoBTS LC15 OCT UmTRX } |
93 | 17 | laforge | } |
94 | }} |
||
95 | |||
96 | 20 | laforge | {{include(cellular-infrastructure:MacroBinaryPackages)}} |
97 | |||
98 | 16 | laforge | h2. Manuals |
99 | 1 | laforge | |
100 | 31 | laforge | * "OsmoBTS User Manual":https://ftp.osmocom.org/docs/latest/osmobts-usermanual.pdf |
101 | * OsmoBTS VTY Reference: "osmo-bts-lc15":https://ftp.osmocom.org/docs/latest/osmobts-lc15-vty-reference.pdf, "osmo-bts-oc2g":https://ftp.osmocom.org/docs/latest/osmobts-oc2g-vty-reference.pdf, "osmo-bts-octphy":https://ftp.osmocom.org/docs/latest/osmobts-octphy-vty-reference.pdf, "osmo-bts-sysmo":https://ftp.osmocom.org/docs/latest/osmobts-sysmo-vty-reference.pdf, "osmo-bts-trx":https://ftp.osmocom.org/docs/latest/osmobts-trx-vty-reference.pdf, "osmo-bts-virtual":https://ftp.osmocom.org/docs/latest/osmobts-virtual-vty-reference.pdf |
||
102 | * "OsmoBTS Abis Protocol Manual":https://ftp.osmocom.org/docs/latest/osmobts-abis.pdf |
||
103 | 9 | laforge | |
104 | 1 | laforge | h2. GPRS support |
105 | 10 | laforge | |
106 | 12 | laforge | In the GSM architecture, the BTS is an element in the circuit-switched domain only. |
107 | 1 | laforge | |
108 | 12 | laforge | For packet-switched support, OsmoBTS provides a socket interface towards [[OsmoPCU:]]. This adds GPRS and EDGE support to it. |
109 | 10 | laforge | |
110 | h2. Source code |
||
111 | |||
112 | |||
113 | 32 | laforge | The source code is available from @gitea.osmocom.org@ (module @osmo-bts@). |
114 | 6 | ipse | |
115 | 1 | laforge | Public read-only access is available via |
116 | 22 | laforge | <pre> |
117 | 32 | laforge | git clone https://gitea.osmocom.org/cellular-infrastructure/osmo-bts.git |
118 | 22 | laforge | </pre> |
119 | 32 | laforge | You can browse it via cgit: https://gitea.osmocom.org/cellular-infrastructure/osmo-bts |
120 | 6 | ipse | |
121 | 24 | laforge | h2. Test Suite |
122 | |||
123 | We have a TTCN-3 test suite for OsmoBTS as part of our [[cellular-infrastructure:Titan_TTCN3_Testsuites]] |
||
124 | 32 | laforge | * source code: https://gitea.osmocom.org/ttcn3/osmo-ttcn3-hacks/src/branch/master/bts |
125 | 24 | laforge | * results: https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-bts-test/ |
126 | |||
127 | 10 | laforge | h2. Authors / Credits |
128 | 1 | laforge | |
129 | 10 | laforge | |
130 | [[OsmoBTS]] was originally developed in 2011 by Andreas Eversberg and Harald Welte. |
||
131 | 1 | laforge | |
132 | 21 | laforge | Today it is mostly maintained by Harald Welte and his team at sysmocom. |
133 | 27 | laforge | |
134 | {{include(cellular-infrastructure:MacroCommercialSupport)}} |